Unix 操作系统的诞生
1965 年之前的时候, 电脑并不像现在一样普遍, 它可不是一般人能碰的起的, 除非是军事或者学院的研究机构, 而且当时大型主机至多能提供 30 台终端(30 个键盘, 显示器), 连接一台电脑.
[为了解决数量不够用的问题]
1965 年左后由 贝尔实验室加入了 麻省理工学院以及 通用电气合作的计划 -- 该计划要建立一套 多使用者 (multi-user), 多任务(multi-processor), 多层次(multi-level) 的 MULTICS 操作系统, 想让大型主机支持 300 台终端.
1969 年前后这个项目进度缓慢, 资金短缺, 贝尔实验室退出了研究.
1969 年从这个项目中退出的 Ken Thompson 当时在实验室无聊时, 为了让一台空闲的电脑上能够运行 "星际旅行(Space Travel)" 游戏, 在 8 月份左右趁着其妻子探亲的时间, 用了 1 个月的时间, 使用汇编写出了 Unix 操作系统的原型.
1970 年, 美国贝尔实验室的 Ken Thompson, 以 BCPL 语言为基础, 设计出很简单且很接近硬件的 B 语言(取 BCPL 的首字母), 并且他用 B 语言写了第一个 UNIX 操作系统.
1971 年, 同样酷爱 "星际旅行(Space Travel)" 的 Dennis M.Ritchie 为了能早点儿玩上游戏, 加入了 Thompson 的开发项目, 合作开发 UNIX, 他的主要工作是改造 B 语言, 因为 B 语言的跨平台性较差
1972 年, Dennis M.Ritchie 在 B 语言的基础上最终设计出了一种新的语言, 他取了 BCPL 的第二个字母作为这种语言的名字, 这就是 C 语言.
1973 年初, C 语言的主体完成, Thompson 和 Ritchie 迫不及待地开始用它完全重写了现在大名鼎鼎的 Unix 操作系统.
肯. 汤普逊 (左) 和丹尼斯. 里奇(右)
C 语言的诞生
在把 UNIX 移植到其他类型的计算机上使用时, C 语言强大的移植性 (Portability) 在此显现.
机器语言和汇编语言都不具有移植性, 为 x86 开发的程序, 不可能在 Alpha,SPARC 和 ARM 等机器上运行
而 C 语言程序则可以使用在任意架构的处理器上, 只要那种架构的处理器具有对应的 C 语言编译器和库, 然后将 C 源代码编译, 连接成目标二进制文件之后即可运行
Minix 的诞生
因为 AT&T(通用电气)的政策改变, 在 Version 7 Unix 推出之后, 发布新的使用条款, 将 UNIX 源代码私有化, 在大学中不再能使用 UNIX 源代码
Andrew S. Tanenbaum(塔能鲍姆)教授为了能 在课堂上教授学生操作系统运作的细节, 决定在不使用任何 AT&T 的源代码前提下, 自行开发与 UNIX 兼容的操作系统, 以避免版权上的争议
以 小型 UNIX(mini-UNIX)之意, 将它称为 MINIX
Unix 操作系统家族进化史
Linux 的诞生
1991 年 林纳斯 (Linus) 就读于赫尔辛基大学期间, 对 Unix 产生浓厚兴趣, 尝试着在 Minix 上做一些开发工作
因为 Minix 只是教学使用, 因此功能并不强, 林纳斯经常要用他的终端 仿真器 (Terminal Emulator) 去访问大学主机上的新闻组和邮件, 为了方便读写和下载文件, 他自己编写了磁盘驱动程序和文件系统, 这些在后来成为了 Linux 第一个内核的雏形, 当时, 他年仅 21 岁.
林纳斯. 本纳第克特. 托瓦兹
它利用 GNU 的 bash 当做开发环境, gcc 当做编译工具, 编写了 Linux 内核, 一开始 Linux 并不能兼容 Unix
---------- 即 Unix 上跑的应用程序不能在 Linux 上跑, 即应用程序与内核之间的接口不一致
---------- 一开始 Linux 只适用于 386, 后来经过全世界的网友的帮助, 最终能够兼容多种硬件
Linux 内核及发行版
Linux 内核版本
内核 (kernel) 是系统的心脏, 是运行程序和管理像磁盘和打印机等硬件设备的核心程序, 它提供了一个在裸设备与应用程序间的抽象层
Linux 内核版本又分为
稳定版和开发版
两种版本是相互关联, 相互循环
稳定版: 具有工业级强度, 可以广泛地应用和部署. 新的稳定版相对于较旧的只是修正一些 bug 或加入一些新的驱动程序
开发版: 由于要试验各种解决方案, 所以变化很快
内核源码网址: http://www.kernel.org
所有来自全世界的对 Linux 源码的修改最终都会汇总到这个网站, 由 Linus 领导的开源社区对其进行甄别和修改最终决定是否进入到 Linux 主线内核源码
Linux 发行版本
Linux 发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境, 办公套件, 媒体播放器, 数据库等应用软件
常见的发行版本如下:
- Ubuntu
- Tails
- Elementary OS
- RedHat
- Fedora
- openSUSE
- Linux Mint
- Debian
- Manjaro
- Mageia
- CentOS
- Arch
十大 Linux 服务器发行版排行榜: https://www.10besty.com/best-linux-distros/
Linux 的应用领域
服务器领域
Linux 在服务器领域的应用是其重要分支
Linux 免费, 稳定, 高效等特点在这里得到了很好的体现
早期因为维护, 运行等原因同样受到了很大的限制
近些年来 Linux 服务器市场得到了飞速的提升, 尤其在一些高端领域尤为广泛
嵌入式领域
近些年来 Linux 在嵌入式领域的应用得到了飞速的提高
Linux 运行稳定, 对网络的良好支持性, 低成本, 且可以根据需要进行软件裁剪, 内核最小可以达到几百 KB 等特点, 使其近些年来在嵌入式领域的应用得到非常大的提高
主要应用: 机顶盒, 数字电视, 网络电话, 程控交换机, 手机, PDA, 手表, 眼镜等都是其应用领域, 得到了 Google, 三星, 摩托罗拉, NEC 等公司的大力推广
个人桌面领域
此领域是传统 Linux 应用最薄弱的环节
传统 Linux 由于界面简单, 操作复杂, 应用软件少的缺点, 一直被 Windows 所压制
近些年来随着 Ubuntu,Fedora 等优秀桌面环境的兴起, 同时各大硬件厂商对其支持的加大, Linux 在个人桌面领域的占有率在逐渐的提高
Linux 和 Windows
单用户操作系统和多用户操作系统
单用户操作系统: 指一台计算机在同一时间 只能由一个用户使用, 一个用户独自享用系统的全部硬件和软件资源
Windows XP 之前的版本都是单用户操作系统
多用户操作系统: 指一台计算机在同一时间可以由 多个用户使用, 多个用户共同享用系统的全部硬件和软件资源
Unix 和 Linux 的设计初衷就是多用户操作系统
Windows 和 Linux 文件系统区别
Windows 的文件系统
在 Windows 下, 打开 "计算机", 我们看到的是一个个的驱动器盘符:
每个驱动器都有自己的根目录结构, 这样形成了多个树并列的情形, 如图所示
Linux 下的文件系统
在 Linux 下, 我们是看不到这些驱动器盘符, 我们看到的是文件夹(目录)
Ubuntu 没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面
什么叫做用户目录
Windows 系统的用户目录
在 cmd 下输入 echo %USERPROFILE% 可以查看当前系统用户目录
这边列举一些其他常用的获取系统路径的:
%WINDIR% {系统目录 - C:\Windows}
%SYSTEMROOT% {系统目录 - C:\Windows}
%SYSTEMDRIVE% {系统根目录 - C:}
%HOMEDRIVE% {当前用户根目录 - C:}
%USERPROFILE% {当前用户目录 - C:\Documents and Settings\wy}
%HOMEPATH% {当前用户路径 - \Documents and Settings\wy}
%TMP% {当前用户临时文件夹 - C:\DOCUME~1\wy\LOCALS~1\Temp}
%TEMP% {当前用户临时文件夹 - C:\DOCUME~1\wy\LOCALS~1\Temp}
%APPDATA% {当前用户数据文件夹 - C:\Documents and Settings\wy\Application Data}
%PROGRAMFILES% {程序默认安装目录 - C:\Program Files}
%COMMONPROGRAMFILES% {文件通用目录 - C:\Program Files\Common Files}
%USERNAME% {当前用户名 - wy}
%ALLUSERSPROFILE% {所有用户文件目录 - C:\Documents and Settings\All Users}
%OS% {操作系统名 - Windows_NT}
%COMPUTERNAME% {计算机名 - IBM-B63851E95C9}
%NUMBER_OF_PROCESSORS% {处理器个数 - 1}
%PROCESSOR_ARCHITECTURE% {处理器芯片架构 - x86}
%PROCESSOR_LEVEL% {处理器型号 - 6}
%PROCESSOR_REVISION% {处理器修订号 - 0905}
%USERDOMAIN% {包含用户帐号的域 - IBM-B63851E95C9}
%PATH% {搜索路径}
Linux 系统的用户目录
位于 /home 目录下, 称之为用户工作目录或家目录, 表示方式:
cd /home/user cd ~
来源: http://www.bubuko.com/infodetail-3359958.html