一、操作系统概述
计算机由CPU、内存、硬盘、主板、输入/输出设备等硬件组成。
SHELL是特殊的应用程序,为用户提供与系统进行交互的入口。
SHELL分为两类:
GUI(Graphical User Interface),如Gnome、KDE、Xfce、Windows等;
CLI(Command Line Interface),如sh、bash、ksh、cmd等
二、操作系统发展史
早期的操作系统为批处理系统,如job1$$$$job2$$$$job3$$$......
GE、Bell实验室、MIT联合开发多用户、多任务的操作系统,命名为Multics,在项目的后期已经基本完成多用户、多任务的功能,但是由于早期缺乏对于项目的管理,各机构相继退出。
Bell实验室的Ken Thompson在Multics上开发了一款名为“star travell”的游戏,由于Bell实验室的退出,他无法继续使用Multics。于是他模仿Multics,并结合自己的理解,开发出Unics,后来更名为Unix。
Bell实验室的Dennis Ritchie,在B语言的基础上引入变量、指针等,开发出C语言,与Ken Thompson重写Unix,解决了移植性的问题。
Bill Joy成立BSRG(Berkeley System Research Group),研究从Bell实验室获取的Unix源代码,开发相关的驱动程序和外围软件,打包发行,BSD(Berkeley System Distribution),后续又有OpenBSD、FreeBSD、NetBSD等分支。
Bell实验室从AT&T分拆,迫切将Unix商业化,与BSD打起了官司。
荷兰的教授Andrew S. Tanenbaum,由于Unix商业化无法继续使用,按照对Unix的理解,开发出Minix。
芬兰赫尔辛基大学Linus Torvalds,由于Minix的移植性问题,开发出Linux内核。
Richard Stallman,发起程序界的自由软件运动,成立GNU(GNU is Not Unix),所有加入GPL(General Public License)的软件都是自由软件。GNU提供了大量软件,如Emacs、GCC等。
Linux内核结合GNU提供的外围工具软件组成Linux操作系统,称为GNU/Linux。
由于Linux内核及GNU提供的软件提供的都是源代码,用户要使用Linux,必须进行编译并安装,于是厂商针对各平台进行编译,常见的发行版有:Redhat、CentOS、Debian、Ubuntu、SUSE及二次发行版。