1.1、Linux为何物
Linux就是一个操作系统,正如Windows和Mac OS。那么,操作系统是什么?
操作系统:是一组软件,负责管理计算机的所有活动以及驱动系统中的所有硬件。
操作系统示意图
如上图所示,操作系统由内核和系统调用两部分组成,不过现在的操作系统都会添加一些基础的应用程序,比如文档管理器、浏览器等等,严格来说应用程序不属于操作系统。早期的Linux系统是针对386来开发的,它不含有应用程序。
1.2、Linux历史简介
- 操作系统始于二十世纪50年代,当时的操作系统能运行
批处理程序
。批处理程序不需要用户的交互,它从文件或者穿孔卡片读取数据,然后输出到另外一个文件或者打印机。 - 二十世纪六十年代初,
交互式操作系统
开始流行。它不仅仅可以交互,还能使多个用户从不同的终端同时操作主机。这样的操作系统被称作分时操作系统,它的出现对批处理操作系统是个极大的挑战。许多人尝试开发分时操作系统, 其中包括一些大学的研究项目和商业项目。当时有一个项目叫做"Multics"
,它的技术在当时很创新。"Multics"项目的开发并不顺利。它花费了远超过预计的时间来完成,却没有在操作系统市场上占到多少份额。而参加该项目的一个开发团体-贝尔实验室退出了这个项目。他们在退出后开发了他们自己的一个操作系统——Unix。
Unix最初免费发布并因此在大学里受到欢迎。后来,Unix实现了TCP/IP协议栈,成为了早期工作站的操作系统的一个流行选择。 - 1990年,Unix在服务器市场尤其是大学校园成为主流操作系统,许多校园都有Unix主机,当然还包括一些研究它的计算机系的学生。这些学生都渴望能在自己的电脑上运行Unix。不幸的是,从那时候开始,Unix开始变得商业化,它的价格也变得非常昂贵。而唯一低廉的选择就是
Minix
,这是一个功能有限的类似Unix的操作系统,作者Andrew Tanebaum开发它的目的是用于教学。 - 1991年10月,Linus Torvalds(Linux之父)在赫尔辛基大学接触Unix,他希望能在自己的电脑上运行一个类似的操作系统。可是Unix的商业版本非常昂贵,于是他从Minix开始入手,计划开发一个比Minix性能更好的操作系统。很快他就开始了自己的开发工作。他将自己写好的第一个版本的
Linux内核
发布在网上,很快吸引了一些对此感兴趣的人。这些人的加入使它(Linux Kernel)很快就具有了许多吸引人的特性。
Linux本来只是指Linux操作系统的内核。内核是使其他程序能够运行的基础。它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序实际上都运行在内核之上。其中有些程序是必需的,比如说,命令行解释器(Shell),它用于用户交互和编写shell脚本(.bat文件)。 Linus没有自己去开发这些应用程序,而是使用已有的自由软件。这减少了搭建开发环境而所需花费的工作量。实际上,他经常改写内核,使得那些程序能更容易在Linux上运行。许多重要的软件,包括C编译器,都来自于自由软件基金GNU项目。GNU项目开始于1984年,目的是为了开发一个完全类似于Unix的免费操作系统。为了表扬GNU对Linux的贡献,许多人把Linux称为GNU/Linux(GNU有自己的内核。) - 1992-1993年,Linux内核具备了挑战Unix的所有本质特性,包括TCP/IP网络,图形界面系统(X window)。Linux 同样也吸引了许多行业的关注。一些小的公司开发和发行Linux,有几十个Linux用户社区成立。1994年,LINUX 杂志也开始发行。
- Linux 内核1.0在1994年三月发布,内核的发布要经历许多开发周期,直至到达一个稳定的版本。
下面列举一下Linux诞生大事件
• 1965年,Bell实验室、MIT、GE(通用电气公司)准备开发Multics系统,为了同时支持300个终端访问主机,但是1969年失败了;
刚开始并没有鼠标、键盘,输入设备只有卡片机,因此如果要测试某个程序,则需要将读卡纸插入卡片机,如果有错误,还需要重新来过;
Multics:Multiplexed Information and Computing Service
• 1969年,Ken Thompson(C语言之父)利用汇编语言开发了FIle Server System(Unics,即Unix的原型)
因为汇编语言对于硬件的依赖性,因此只能针对特定硬件;
只是为了移植一款“太空旅游”的游戏;
• 1973年,Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核将B语言改成C语言,由此产生了C语言之父;
90%的代码是C语言写的,10%的代码用汇编写的,因此移植时只要修改那10%的代码即可;
• 1977年,Berkeley大学的Bill Joy针对他的机器修改Unix源码,称为BSD(Berkeley Software Distribution)
Bill Joy是Sun公司的创始人;
• 1979年,Unix发布System V,用于个人计算机;
• 1984年,因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学;
• 1984年,Stallman开始GNU(GNU's Not Unix)项目,创办FSF(Free Software Foundation);
产品:GCC、Emacs、Bash Shell、GLIBC;
倡导“自由软件”;
GNU的软件缺乏一个开放的平台运行,只能在Unix上运行;
自由软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着GPL的版权;
自由软件自身并不被允许卖的,只是卖服务、手册等;
• 1985年,为了避免GNU开发的自由软件被其他人用作专利软件,因此创建GPL(General Public License)版权声明;
• 1988年,MIT为了开发GUI,成立了XFree86的组织;
• 1991年,芬兰赫尔辛基大学的研究生Linus Torvalds基于gcc、bash开发了针对386机器的Lniux内核;
• 1994年,Torvalds发布Linux-v1.0;
• 1996年,Torvalds发布Linux-v2.0,确定了Linux的吉祥物:企鹅;
①.UNIX进化史
②.GNU
③.linu kernel
④.Linux的20年发展史中20个大事件