发布时间:2014-09-05 13:30:55作者:知识屋
在学习Linux的过程中,总有一些基本的概念困扰着我,比如,什么是文件系统,根文件系统?挂装到底是个什么概念?文件系统和内核到底是什么关系啊?这次主要通过度娘和Google把这些不太清楚的概念归纳了一下,具体如下:
在Linux基本概念(一)中,简单的解惑了什么是Linux内核。这里我相信肯定有不少人和我一样,对什么是文件系统可能有所了解,但是往往会非常困惑于Linux操作系统,Linux内核和文件系统到底是个什么关系?所以这里我们将首先介绍这三者之间的关系,三者的关系可以用下图简单的表示:
内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。文件系统和内核是彼此依赖的,可以把内核简单的理解成执行单元,文件系统是存储单元。Linux内核中,跟文件系统相关的组件如下图所示:
什么是文件系统?文件系统是对一个存储设备上的数据和元数据进行组织的机制。Linux可以支持的文件系统类型很多,可以预料到 Linux 文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。
Linux 以一组通用对象的角度看待所有文件系统。这些对象是超级块(superblock)、inode、dentry 和文件。超级块在每个文件系统的根上,超级块描述和维护文件系统的状态。文件系统中管理的每个对象(文件或目录)在 Linux 中表示为一个 inode。inode 包含管理文件系统中的对象所需的所有元数据(包括可以在对象上执行的操作)。另一组结构称为 dentry,它们用来实现名称和 inode 之间的映射,有一个目录缓存用来保存最近使用的 dentry。dentry 还维护目录和文件之间的关系,从而支持在文件系统中移动。
什么是根文件系统?根文件系统是安装Linux时,安装程序为用户创建的文件系统,它的目录组织形式是固定的,在根文件系统下可以挂载其他的文件系统。Linux根文件系统就是我们输入cd / 显示出来的一系列文件夹,Linux下一些主要目录如下:
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公用的临时文件存储点
/root 系统管理员的主目录(呵呵,特权阶级)
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信 息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包 含:
/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 本地增加的库
什么是挂装(挂载)呢?在 Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂装(mount)。使用 mount 命令将一个文件系统附着到当前文件系统层次结构中(根)。在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。
为了说明 Linux 文件系统层的功能(以及挂装的方法),我们在当前文件系统的一个文件中创建一个文件系统。实现步骤如下:
Step1. 创建一个经过初始化的文件, 用 dd 命令创建一个指定大小的文件(使用 /dev/zero 作为源进行文件复制
$ dd if=/dev/zero of=file.img bs=1kcount=10000
Step 2. 用 losetup 命令将一个循环设备与这个文件关联起来,让它看起来像一个块设备,而不是文件系统中的常规文件
$ losetup /dev/loop0 file.img
Step3. 用 mke2fs 在这个设备上创建一个文件系统。这个命令创建一个指定大小的新的 ext2 文件系统
$ mke2fs -c /dev/loop0 10000
Step 4.用 mount 命令将循环设备(/dev/loop0)所表示的file.img 文件挂装到挂装点 /mnt/point1。注意,文件系统类型指定为 ext2。挂装之后,就可以将这个挂装点当作一个新的文件系统,比如使用 ls 命令
$ mkdir /mnt/point1
$ mount -t ext2 /dev/loop0 /mnt/point1
$ ls /mnt/point1
lost+found
参考如下:
http://www.ibm.com/developerworks/cn/linux/l-linux-filesystem/
http://linux.chinaunix.net/techdoc/beginner/2007/03/30/953684.shtml
http://blog.csdn.net/hguisu/article/details/6122513
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能