Unix目录结构的来历
Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。
![bg2012020601.jpg](http://image.beekka.com/blog/201202/bg2012020601.jpg)
举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但是,/usr子目录下面还有/usr/bin,以及/usr/local/bin,也用于存放二进制程序;某些系统甚至还有/opt/bin。它们有何区别?
长久以来,我也感到很费解,不明白为什么这样设计。像大多数人一样,我只是根据《Unix文件系统结构标准》(Filesystem Hierarchy Standard),死记硬背不同目录的区别。
昨天,我读到了Rob Landley的简短解释,这才恍然大悟,原来Unix目录结构是历史造成的。
话说1969年,Ken Thompson和Dennis Ritchie在小型机PDP-7上发明了Unix。1971年,他们将主机升级到了PDP-11。
![bg2012020602.jpg](http://image.beekka.com/blog/201202/bg2012020602.jpg)
当时,他们使用一种叫做RK05的储存盘,一盘的容量大约是1.5MB。
![bg2012020603.jpg](http://image.beekka.com/blog/201202/bg2012020603.jpg)
没过多久,操作系统(根目录)变得越来越大,一块盘已经装不下了。于是,他们加上了第二盘RK05,并且规定第一块盘专门放系统程序,第二块盘专门放用户自己的程序,因此挂载的目录点取名为/usr。也就是说,根目录"/"挂载在第一块盘,"/usr"目录挂载在第二块盘。除此之外,两块盘的目录结构完全相同,第一块盘的目录(/bin, /sbin, /lib, /tmp...)都在/usr目录下重新出现一次。
后来,第二块盘也满了,他们只好又加了第三盘RK05,挂载的目录点取名为/home,并且规定/usr用于存放用户的程序,/home用于存放用户的数据。
从此,这种目录结构就延续了下来。随着硬盘容量越来越大,各个目录的含义进一步得到明确。
/:存放系统程序,也就是At t开发的Unix程序。
/usr:存放Unix系统商(比如IBM和HP)开发的程序。
/usr/local:存放用户自己安装的程序。
/opt:在某些系统,用于存放第三方厂商开发的程序,所以取名为option,意为"选装"。
《UNIXLinux程序设计教程》一2.5 文件定位 本节书摘来自华章出版社《UNIXLinux程序设计教程》一 书中的第2章,第2.5节,作者:赵克佳 沈志宇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
《UNIXLinux程序设计教程》一2.8 格式I/O 本节书摘来自华章出版社《UNIXLinux程序设计教程》一 书中的第2章,第2.8节,作者:赵克佳 沈志宇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
《UNIXLinux程序设计教程》一2.9 临时文件 本节书摘来自华章出版社《UNIXLinux程序设计教程》一 书中的第2章,第2.9节,作者:赵克佳 沈志宇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
《UNIXLinux程序设计教程》一3.5 fdopen()和fileno()函数 本节书摘来自华章出版社《UNIXLinux程序设计教程》一 书中的第3章,第3.5节,作者:赵克佳 沈志宇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
《UNIXLinux程序设计教程》一3.8 readv()和writev()函数 本节书摘来自华章出版社《UNIXLinux程序设计教程》一 书中的第3章,第3.8 节,作者:赵克佳 沈志宇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
阮一峰 阿里技术专家。著名技术博客作者,技术方向为 React + Node,自由软件运动的支持者
相关文章
- vue(16)vue-cli创建项目以及项目结构解析[通俗易懂]
- Maven 菜鸟教程 2 项目目录结构
- JCIM|药物发现中基于AI的蛋白质结构预测:影响和挑战
- react源码解析--源码目录结构和调试
- PNG文件解读(2):PNG格式文件结构与数据结构解读—解码PNG数据
- 掌握 Linux 系统的目录结构:查看所在目录(linux查看所在目录)
- jQuery结构(位置)伪类选择器
- 微众银行重视人才培养 不断优化人才结构
- 使用Linux Map遍历文件及目录结构(linuxmap遍历)
- 结构MySQL配置文件:明确目录结构(mysql配置文件目录)
- 深入理解Redis表结构(redis表结构)
- 下的作用Linux下的CD命令:轻松掌控目录结构(cd在linux)
- Linux目录结构深度解析(linux目录结构说明)
- MySQL和SQL中的树状结构:简介与应用(mysqlsql树)
- 龄分组SQL Server利用年龄分组构建数据分析结构(sqlserver 按年)
- Linux目录结构解析:深入了解操作系统的文件组织结构。(linux 目录结构)
- MySQL 目录结构解析(mysql 目录结构)
- 结构最佳使用Redis点赞哪种数据结构最能达到最佳效果(点赞用redis哪种数据)
- 深入探究mysqlres结构体的用途和实现方法(mysql_res结构体)
- 结构Oracle中查看表结构的方法(oracle中怎样查看表)
- 用Oracle1565构建可靠的数据库结构(Oracle1565)
- Linux的目录结构
- rsync只同步目录结构不同步文件的方法