linux文件系统

Docker-镜像原理之个人理解

旧街凉风 提交于 2020-01-27 16:00:49
一、Docker镜像是什么 轻量级的、可执行的软件包,用来打包软件运行环境和基于运行环境开发的的软件,包含运行某个软件的所有内容,包含代码、运行时、库、环境变量和配置文件 1、UnionFS(联合文件系统) 一种分层、轻量级并且高性能的文件系统,支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。Union文件系统时Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。 一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件 2、Docker镜像加载原理 docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS bootfs(boot file system)主要包含bootloader和kernel,bootload主要引导加载kernel,Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。 rootfs(root file system),在bootfs之上

JAVA nio 2 和 Path 类简介

橙三吉。 提交于 2020-01-27 07:44:53
想要初步了解 NIO.2 API,也就是通常所说的“JSR203: More New I/O APIs for the Java Platform”,最好的切入点就是新的抽象类 java.nio.file.Path 类。这个类是 NIO.2 的里程碑,所有应用程序中的 I/O 操作都和这个类密不可分。这个类几乎可以说是 NIO.2 中最常用的类。 Path 类简介 文件路径存在于文件系统中。文件系统可以通过 java.nio.file.FileSystems 这个 final 类来进行访问,从这个类中可以获取 java.nio.file.FileSystem 类的对象。FileSystems 类提供了下面两个很重要的方法,同时也提供了 newFileSystem() 方法,用来创建一个新的文件系统: getDefault():这个静态方法返回 JVM 默认的 FileSystem – 一般说来,也就是操作系统的默认文件系统。 getFileSystem(URI uri):这个静态方法从一组文件系统提供者中返回一个与 URI 匹配的文件系统(FileSystem)。Path 类可以在任何文件系统(FileSystem)和任何存储空间(java.nio.file.FileStore; 这个类反应了底层的存储)上操作文件。默认情况下(最常用),Path 类引用默认文件系统

Docker 镜像

时光总嘲笑我的痴心妄想 提交于 2020-01-26 12:31:09
一、底层原理 镜像是一种轻量级、可执行的独立软件包, 用来打包软件运行环境和基于运行环境开发的软件 ,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 1、UnionFS(联合文件系统) UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统, 它支持对文件系统的修改作为一次提交来一层层的叠加 ,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。 Union 文件系统是 Docker 镜像的基础 。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。 特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。 2、Docker镜像加载原理 Docker镜像加载原理: docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。 bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,

linux目录结构详细说明

二次信任 提交于 2020-01-26 02:55:27
Linux各目录及每个目录的详细介绍 【常见目录说明】 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等), 常用命令 一般都在这里。 /etc 存放系统 管理和配置 文件 /home 存放所有用户文件的根目录 ,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /usr 用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用 )。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。 /usr/x11r6 存放x window的目录 /usr/bin 众多的应用程序 /usr/sbin 超级用户的一些管理程序 /usr/doc linux文档 /usr/include linux下开发和编译应用程序所需要的头文件 /usr/lib 常用的动态链接库和软件包的配置文件 /usr/man 帮助文档 /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的库 /opt 额外安装的可选应用程序 包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。 /proc 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 /root 超级用户

初次接触linux文件系统 - 1

爷,独闯天下 提交于 2020-01-25 15:42:37
[所学] linux的文件权限以及目录的概念 文件和目录 文件和目录的权限 权限操作 文件和目录 文件是用来承载数据的,一般可以分为文本文件,二进制文件和一些特殊格式的文档文件,目录就是windows下的文件夹,相当与一个树的节点 文件和目录的权限 使用命令 `ls -all` 查看但前路径下的所有文件和目录,其中两条如下: -rw------- 1 easecat easecat 50640 1月 22 18:27 .xsession-errors.old drwxr-xr-x 2 easecat easecat 4096 1月 19 21:33 公共的 每行开头的十个符号,表示其文件的属性,从第一行开始,其中有:’-rw- — ---’,分别代表,’ - ’ 表示文件的类型,‘r w -’ 表示文件的权限, ‘- - -’ 表示群组的权限, ‘- - -’ 表示其他人的权限 easecat 表示所属的用户,第二个easecat表示所属的群组,后面的分别是他的更新时间和档名,rwx分别代表了读取、修改、执行的权限,当该文件是目录时,只有r权限用户是不能访问该目录下的文件的,必须拥有执行权限,当然,如该你是root用户除外,如过该目录在你的本机上,也不受目录执行权限的影响 权限操作 chgrp :改变文件所属群组 chown :改变文件拥有者 chmod :改变文件的权限,

Linux就该这么学06学习笔记

不问归期 提交于 2020-01-25 14:20:31
参考链接: https://www.linuxprobe.com/chapter-06.html 1.一切从“/”开始 Linux 系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。另外,Linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT均代表不同的目录,并且文件名称中不得包含斜杠(/) 目录名称 应放置文件的内容 /boot 开机所需文件—内核、开机菜单以及所需配置文件等 /dev 以文件形式存放任何设备与接口 /etc 配置文件 /home 用户主目录 /bin 存放单用户模式下还可以操作的 命令 /lib 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 /sbin 开机过程中需要的命令 /media 用于挂载设备文件的目录 /opt 放置第三方的软件 /root 系统管理员的家目录 /srv 一些网络服务的数据文件目录 /tmp 任何人均可使用的“共享”临时目录 /proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 /usr/local 用户自行安装的软件 /usr/sbin Linux系统开机时不会使用到的软件/命令/ 脚本 /usr/share 帮助与说明文件,也可放置共享文件 /var 主要存放经常变化的文件

FUSE文件系统

耗尽温柔 提交于 2020-01-24 13:54:12
用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。目前Linux通过内核模块对此进行支持。一些文件系统如ZFS,glusterfs和luster使用FUSE实现。 Linux用于支持用户空间文件系统的内核模块名叫FUSE,FUSE一词有时特指Linux下的用户空间文件系统。 文件系统是一个通用操作系统重要的组成部分。传统上操作系统在内核层面上对文件系统提供支持。而通常内核态的代码难以调试,生产率较低。 Linux从2.6.14版本开始通过FUSE模块支持在用户空间实现文件系统。 在用户空间实现文件系统能够大幅提高生产率,简化了为操作系统提供新的文件系统的工作量,特别适用于各种虚拟文件系统和网络文件系统。上述ZFS和 glusterfs都属于网络文件系统。但是,在用户态实现文件系统必然会引入额外的内核态/用户态切换带来的开销,对性能会产生一定影响。 目前Linux,FreeBSD,NetBSD,OpenSolaris和Mac OSX支持用户空间态文件系统。 比较知名的用户空间文件系统: ExpanDrive: 商业文件系统,实现了SFTP/FTP/FTPS协议; GlusterFS: 用于集群的分布式文件系统,可以扩展到PB级; SSHFS: 通过SSH协议访问远程文件系统; GmailFS:

Linux下监控文件系统

前提是你 提交于 2020-01-24 13:53:59
Linux下监控文件系统 Linux的后台程序通常在机器没有问题的情况下,需要长期运行(比如说数个月,甚至是数年)。但是,程序的配置文件有时候是需要定期作调整。为了不影响程序对外服务(不重启),动态加载配置文件是一种非常常见的需求。通过监控某个文件的创建、删除和修改等事件,可以很方便做出对应的动作(比如说reload)。 1. Linux下监控文件系统的常用方法 监控配置文件或配置文件目录的变化,一种可行的方法是程序启动的时候记录下文件(或目录)的修改时间,周期性检查(比如说一秒一次)文件是否已经被修改,来决定是否需要重新加载配置文件。 另一种更为优雅的办法是使用Linux系统从内核层面支持的系统API dnotify、inotify或者fanotify。inotify API提供一个文件描述符,可以在该文件描述符上注册对指定的文件或者目录的文件系统事件(文件删除、文件修改和文件创建),然后通过read系统调用读取该文件描述法上的事件。 2. 使用stat或fstat监控Linux文件系统 通过周期性地获取被监控文件的状态,stat和fstat可以帮助用户监控指定文件的状态。 int stat(const char *path, struct stat *buf); int fstat(int fd, struct stat *buf); struct stat { dev_t

文件系统层次标准FHS的详细介绍

浪子不回头ぞ 提交于 2020-01-24 01:49:39
  Filesystem Hierarchy Standard (文件系统层次标准,FHS)标准依据文件系统使用的频繁与否与是否允讲使用者随意更动, 而 将目录定义成四种交互作用的形态 ,具体如下:    可分享的:可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据, 是 能够分享给网络上其他主机挂载用的目录; 不可分享的:自己机器上面运作的装置档案或者是与程序有关的 socket 档案等, 由于仅与自身 机器有关,所以当然就不适合分享给其他主机了。 不 变的:有些数据是不会经常变动的,跟随着 distribution 而不变动。 例如函式库、文件说明 文件、系统管理员所管理的主机服务配置文件等等; 可变动的:经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。   事实上,FHS针对目录树架构 仅定义出三层目录 下应该放置哪些数据,分别是下面三个目录: /(根目录):与开机系统有关; /usr(unix software resource):与软件安装执行有关; /var(variable):与系统运作过程有关。   下面分别对上述三层目录进行详细的阐述。   (1) /(根目录)   根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机/还原/系统修复等动作有关。由于系统开机时需要特定的开机软件、核心档案

阿里云服务器Linux常用命令

情到浓时终转凉″ 提交于 2020-01-23 22:41:30
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列 PCI 设备 lsusb -tv 显示 USB 设备 date 显示系统日期 cal 2007 显示2007年的日历表 date 041217002007.00 设置日期和时间 - 月日时分年.秒 clock -w 将时间修改保存到 BIOS 关机 (系统的关机、重启以及登出 ) shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours