作者:小小一株含羞草2010 | 来源:互联网 | 2024-09-27 20:30
1. Lunix是什么
1.1 Lunix是操作系统还是应用程序
Lunix是一套操作系统,它提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构, 这个架构是沿袭Unix 良好的传统来的,所以相当的稳定而功能强大!Lunix具有核心和系统呼叫两层。Torvalds 先生在 1991 年写出 Linux 核心的时候,其实该核心仅能『驱动 386 所有的硬件』而已, 所谓的『让 386 计算机开始运作,并且等待用户指令输入』。
1.2 Lunix之前,Unix历史
1969 年以前:一个伟大的梦想--Bell,MIT 与 GE 的『Multics』系统
早期的计算机架构很难使用,除了指令周期并不快之外,操作接口也很麻烦! 因为那个时候的输入设备只有卡片
阅读机、输出设备只有打印机, 用户也无法与操作系统互动(批次型操作系统)。
后来可以使用键盘来进行信息的输入。不过,在一间学校里面,主机毕竟可能只有一部,如果多人等待使用,那怎么办?于是1960年代初期麻省理工学院(MIT)发展了所谓的: 『兼容分时系统(Compatible Time-Sharing System, CTSS)』, 它可以让大型主机透过提供数个终端机(terminal)以联机方式进入主机,同时利用主机的资源进行运算工作。兼容分时系统可以说是近代操作系统的始祖!它可以让多个使用者在某一段时间内分别使用 CPU 的资源, 感觉上你会觉得大家是同时使用该主机的资源!
为了更加强化大型主机的功能,以让主机的资源可以提供更多使用者来利用,在 1965 年前后,由贝尔实验室(Bell)、麻省理工学院(MIT)及奇异公司(GE, 或称为通用电器)共同发起了 Multics 的计划,Multics 计划的目的是想要让大型主机可达成提供 300 个以上的终端机联机使用的目标。不过,到了 1969 年前后,计划进度落后,资金也短缺,所以该计划虽然继续在研究,但贝尔实验室还是退出了该计划的研究工作。
1969 年:Ken Thompson 的小型 file server system
但是,贝尔研究室原本参与 Multics 计划的人员Ken Thompson (肯·汤普森),由于个人需要(想要移植一套名为『太空旅游』的游戏),希望开发一个小小的操作系统以提供自己的需求。在开发时,有一部DEC (Digital Equipment Corporation)公司推出的 PDP-7 刚好没人使用,于是他就准备针对这部主机进行操作系统核心程序的撰写。经过四个星期的奋斗,他终于以汇编语言(Assembler)写出了一组核心程序,同时包括一些核心工具程序, 以及一个小小的文件系统。那个系统就是 Unix 的原型! 当时 Thompson 将 Multics 庞大的复杂系统简化了不少,于是同实验室的朋友都戏称这个系统为:Unics。
Thompson 的这个文件系统有两个重要的概念,些概念在后来对于 Linux 的发展有相当重要的影响。分别是:
- 所有的程序或系统装置都是文件
- 不管建构编辑器还是附属文件,所写的程序只有一个目的,且要有效的完成目标。
1973 年:Unix 的正式诞生,Ritchie 等人以 C 语言写出第一个正式 Unix 核心
Unics 本来是以汇编语言写成的,汇编语言具有专一性,加上当时的计算机机器架构都不太相同,因此每次要安装到不同的机器都得要重新编写汇编语言。后来 Thompson 与 Ritchie 合作想将 Unics 改以高阶程序语言来撰写。当时现成的高阶程序语言有 B语言。 但是由 B 语言所编译出来的核心效能不是很好。后来 Dennis Ritchie 将 B 语言重新改写成 C 语言,再以 C 语言重新改写与编译 Unics 的核心, 最后正名与发行出 Unix 的正式版本!
贝尔实验室是隶属于美国电信大厂 AT&T 公司的, AT&T 当时忙于其他商业活动,对于Unix 并不支持也不排斥。
1977 年:重要的 Unix 分支--BSD 的诞生
1977 年,Berkeley 大学的 Bill Joy 针对他的机器修改了 UNIX 源码,称为BSD(Berkeley Software Distribution)。这个BSD 是 Unix 很重要的一个分支,Bill Joy 也是 Sun这家公司的创办者! Sun 公司即是以 BSD 发展的核心进行自己的商业 Unix 版本的发展的。
1979 年:重要的 System V 架构与版权宣告
1979 年,AT&T推出 System V 第七版 Unix 。 这一版最重要的特色是可以支持 x86 架构的个人计算机系统。但是,在该版本中特别提到了 『不可对学生提供原始码』的严格限制!不再开源。
1984 年之一:x86 架构的 Minix 操作系统开始撰写并于两年后诞生
没有核心原始码,老师如何教导学生认识 Unix 呢?Andrew Tanenbaum (谭宁邦)教授于是自己动手写了 Minix 这个 Unix Like的核心程序!Minix 并不是完全免费的,但是购买的磁盘还会附上 Minix 的原始码,这意味着使用者可以学习 Minix 的核心程序设计概念!
1984 年之二:GNU 计划与 FSF 基金会的成立
1984 年,史托曼开始 GNU 计划,这个计划的目的是:建立一个自由、开放的 Unix 操作系统(Free Unix)。为提高GNU计划知名度,史托曼开始撰写 C 语言的编译程序,那就是现在相当有名的GNU C Compiler(gcc)。
但这并不顺利,他先转而将他原先就已经写过的 Emacs 编辑器写成可以在Unix 上面跑的软件,并公布原始码。 Emacs 是一种程序编辑器,他可以在用户撰写程序的过程中就进行程序语法的检验,此一功能可以减少程序设计师除错的时间!因为 Emacs 太优秀了,因此,很多人便直接向他购买。他也因此赚了写钱,并且成立自由软件基金会(FSF, Free Software Foundation),请更多工程师与志工撰写软件。终于还是完成了 GCC,这比 Emacs 还更有帮助! 此外,他还撰写了更多可以被呼叫的 C函式库(GNU C library),以及可以被使用来操作操作系统的基本接口 BASH shell!
1985 年,为了避免 GNU 所开发的自由软件被其他人所利用而成为专利软件, 史托曼与律师草拟了有名的通用公共许可证(General Public License, GPL)。这造成后来很多的软件开发者可以藉由这些基础的工具来进行程序开发! 进一步壮大了自由软件团体,但是对于 GNU 的最初构想 『建立一个自由的 Unix 操作系统』来说,有这些优秀的程序是仍无法满足, 因为,当下并没有『自由的 Unix 核心』存在!
1988 年:图形接口 XFree86 计划
有鉴于图形用户接口(Graphical User Interface, GUI) 的需求日益加重,在 1984 年由 MIT 与其他第三方首次发表了 X Window System ,并且更在 1988 年成立了非营利性质的 XFree86 这个组织。
1991 年:芬兰大学生 Linus Torvalds 的一则简讯
1991 年,芬兰的赫尔辛基大学的 Linus Torvalds 在 BBS 上面贴了一则消息, 宣称他以 bash, gcc等 GNU 的工具写了一个小小的核心程序,该核心程序单纯是个玩具,不像 GNU 那么专业。 不过该核心程序可以在 Intel 的 386 机器上面运作就是了。这让很多人很感兴趣!从此开始了 Linux 不平凡的路程!
以下为截自网络上UNIX历史图谱。『UNIX进化史(UNIX大家族族谱1969-2013)』
linux distribution是Linux发行版。其实Linux是指的系统的内核,不能认为是一个系统。有人在内核的基础上增加一些软件,就成了一个操作系统了。这个系统因为以Linux为内核,所有就叫Linux发行版。大部分人为了简单,所以把发行版省掉了,实际上世上没有Linux 这个操作系统,因为他只是个内核。现在出现Linux这一称呼,实际上是Linux发行版。这是正规的说法,比如,我用的 Linux 是 CentOS 这个 distribution,版本为 7.x 版。
各大 Linux Distributions 的主要异同:支持标准
上鸟哥认为 distributions 主要分为两大系统,一种是使用 RPM 方式安装软件的系统,包括 Red Hat, Fedora, SuSE 等都是这类; 一种则是使用 Debian 的 dpkg 方式安装软件的系统,包括 Debian, Ubuntu, B2D 等等。若是加上商业公司或社群单位的分类,可以简单的用下表来做个解释!
1.4 Linux 该如何学习
- 计算器概论与硬件相关知识
- 先从 Linux 的安装与指令学起
- Linux 操作系统的基础技能
- 务必学会 vi 文书编辑器
- Shell 与 Shell Script 的学习
- 一定要会软件管理员
- 网络基础的建立