◆1.较为完整的操作系统应该包括:Kernel + Kernel Tools + Applications
◆2.操作系统核心Kernel所需完成的任务:【APMFD】
A - 系统呼叫接口 System Call Interface(也算种API吧)
P - 进程管理 Process control
M - 内存管理 Memory Management
F - 文件管理 File System Management
D - 设备的驱动 Device Drivers
◆3.驱动程序可以看成“硬件说明书 for OS Kernel”
◆4.Linux本身仅是一个核心与相关的核心工具而已,不过,他已经可以驱动所有的硬件。经过其它应用程序的开发之后,被整合成为 Linux distributions(Kernel + Tools + Free Software + Documentations + 可完整安装的程序),这些distributions之间:
☞ 同:
- 利用同样的 Linux kernel (http://www.kernel.org)
- 几乎相同的自由软件套件 (例如 GNU 里面的gcc/glibc/vi/apache/bind/sendmail... )
- 几乎相同的操作接口 (例如均使用 bash/KDE/GNOME 等等)。
☞ 异:
- 使用的 kernel 与各软件的版本可能会不同
- 各开发商加入的应用工具不同
- 使用的套件管理模式不同(debian 与 RPM)
◆5.记事:
☞ 1969 Ken Thompson(Bell Lab.)- 在一个失败的计划Multics(一个强化大型主机的多终端系统的计划)的基础上,用组译语言编写Unix前身:Unics
☞ 1973 Dennis Ritchie - 以C语言改写Unics成功,正式称之Unix
☞ 1977 Bill Joy(加州Berkeley大学) - 发布BSD (Berkeley Software Distribution),Unix很重要的一个分支(Unix Like)
☞ 1984 Andrew Tannenbaum(谭宁邦) - Minix操作系统,该系统可以提供原始码以及软件(Unix Like)
☞ 1984 Richard Stallman - 提倡 GNU 计划,倡导自由软件(Free software), 建立自由软件基金会(FSF),强调其软件可以『自由的取得、复制、修改与再发行』,并规范出 GPL 授权模式, 任何 GPL (General Public License) 软件均不可单纯仅贩卖其软件,也不可修改软件授权。
GNU发布的几个重要自由软件(Unix下的基础程序开发工具):
o Emacs
o GNU C (GCC)
o GNU C Library (glibc)
o Bash shell
☞ 1991 Linus Torvalds(芬兰的赫尔辛基大学) - 开发出 Linux 操作系统。
◆6.Unix-Like:
FreeBSD, BSD, Sun Unix, HP Unix, Red Hat Linux, Mandrake Linux ...
◆7.GNU GPL(GNU General Public License)
- 任何个人或公司均可释出自由软件 ( free software );
- 任何释出自由软件的个人或公司,均可由自己的服务来收取适当的费用;
- 该软件的原始码 ( Source Code ) 需要随软件附上,并且是可公开发表的;
- 任何人均可透过任何正常管道取得此一自由软件,且均可取得此一授权模式。
◆8.POSIX是一种标准规范,主要针对在 Unix 操作系统上面跑的程序来进行规范。 若您的操作系统符合 POSIX ,则符合 POSIX 的程序就可以在您的操作系统上面运作。 Linux 由于支持 POSIX ,因此很多 Unix 上的程序可以直接在 Linux 上运作, 因此程序的移植相当简易!也让大家容易转换平台,提升 Linux 的使用率。
◆9.Linux能成功的地方主要在于: Minix(Unix), GNU, Internet, POSIX 及虚拟团队的产生。
- 1. 藉由 Minix 操作系统开发的 Unix like ,没有版权的纠纷
- 2. 藉助于 GNU 计划所提供的各项工具软件, gcc/bash 等
- 3. 藉由 Internet 广为流传
- 4. 藉由支持 POSIX 标准,让核心能够适合所有软件的开发
- 5. 托瓦兹强调务实,虚拟团队的自然形成
ps:目前 Linux 的发展分为两种版本,分别是稳定版本的偶数版,如 2.6.X,适合于商业与家用环境使用; 一种是发展中版本如 2.5.X 版,适合开发特殊功能的环境。
◆10.Linux应用范围:
- 1.服务器
- 2.工作站
- 3.PC
- 4.嵌入式系统