重点回顾
计算机主要以二进制作为单位,而目前常用的磁盘容量单位为bytes,其单位换算为1Byte = 8bits, 其他的以1024为其倍数,如 1GByte=1024MBytes等等。
操作系统(Operation System)主要在管理与驱动硬件,因此必须要能够管理内存、管理装置、 负责行程管理以及系统呼叫等等。因此,只要能够让硬件准备妥当(Ready)的情况, 就是一个阳春的操作系统了。
最阳春的操作系统仅在驱动与管理硬件,而要使用硬件时,就得需要透过应用软件或者是壳程序(shell) 的功能,来呼叫操作系统操纵硬件工作。因此,目前称为操作系统的, 除了上述功能外,通常已经包含了日常工作所需要的应用软件在内了。
Unix的前身是由贝尔实验室(Bell lab.)的Ken Thompson利用汇编语言写成的, 后来在1971-1973年间由Dennis Ritchie以C程序语言进行改写,才称为Unix。
1977年由Bill Joy释出BSD (Berkeley Software Distribution),这些称为Unix-like的操作系统。
1984年由Andrew Tanenbaum制作出Minix操作系统,该系统可以提供原始码以及软件;
1984年由Richard Stallman提倡GNU计划,倡导自由软件(Free software), 强调其软件可以『自由的取得、复制、修改与再发行』,并规范出GPL授权模式, 任何GPL(General Public License)软件均不可单纯仅贩卖其软件,也不可修改软件授权。
1991年由芬兰人Linus Torvalds开发出Linux操作系统。简而言之,Linux成功的地方主要在于: Minix(Unix), GNU, Internet, POSIX 及虚拟团队的产生。
Linux本身就是个最阳春的操作系统,其开发网站设立在http://www.kernel.org,我们亦称Linux操作系统最底层的数据为『核心(Kernel)』。
目前Linux核心的发展分为两种版本,分别是稳定版本的偶数版,如2.6.X,适合于商业与家用环境使用; 一种是发展中版本的奇数版如2.5.X 版,适合开发特殊功能的环境。
Linux distributions的组成含有:『Linux Kernel + Free Software + Documentations(Tools) + 可完全安装的程序』所制成的一套完整的系统。
本章习题
- 你在你的主机上面安装了一张网络卡,但是开机之后,系统却无法使用,你确定网络卡是好的,那么可能的问题出在哪里?该如何解决?
因为所有的硬件都没有问题,所以,可能出问题的地方在于系统的核心(kernel) 不支持这张网络卡。解决的方法,(1)到网络卡的开发商网站,(2)下载支持你主机操作系统的驱动程序, (3)安装网卡驱动程序后,就可以使用了。
- 我在一部主机上面安装Windows操作系统时,并且安装了显示适配器的驱动程序,他是没有问题的。但是安装Linux时,却无法完整的显示整个X Window。请问,我可不可以将Windows上面的显示适配器驱动程序拿来安装在Linux上?
不行!因为核心不同,针对硬件所写的驱动程序也会不相同,编译程序也不同,当然,驱动程序也无法在两个操作系统间兼容。 这也是为何开发商在他们的网站上面,都会同时提供许多不同操作系统的驱动程序之故。
- 一个操作系统至少要能够完整的控制整个硬件,请问,操作系统应该要控制硬件的哪些单元?
根据硬件的运作,以及数据在主机上面的运算情况与写入/读取情况,我们知道至少要能够控制: (1)input/output control, (2)device control, (3)process management, (4)file management. 等等!
- 一个GBytes的硬盘空间,等于几个KBytes?
1GBytes = 1024 MBytes * 1024 KBytes/MBytes = 1048576 KBytes
- 我在Windows上面玩的游戏,可不可以拿到Linux去玩?
当然不行!因为游戏也是一个应用程序 (application),他必须要使用到核心所提供的工具来开发他的游戏, 所以这个游戏是不可在不同的平台间运作的。除非这个游戏已经进行了移植。
- Linux本身仅是一个核心与相关的核心工具而已,不过,他已经可以驱动所有的硬件, 所以,可以算是一个很阳春的操作系统了。经过其他应用程序的开发之后,被整合成为Linux distribitions。请问众多的distributions之间,有何异同?
相同:(1)同样使用 http://www.kernel.org 所释出的核心; (2)支持同样的标准,如 FHS、LSB 等; (3)使用几乎相同的自由软件 (例如 GNU 里面的 gcc/glibc/vi/apache/bind/sendmail... ); (4)几乎相同的操作接口 (例如均使用 bash/KDE/GNOME 等等)。
不同:使用的 kernel 与各软件的版本可能会不同;各开发商加入的应用工具不同,使用的套件管理模式不同(dpkg 与 RPM)
- Unix 是谁写出来的? GNU 计划是谁发起的?
Unix 是 Ken Thompson 写的,1973 年再由 Dennis Ritchie 以 C 语言改写成功。 至于 GNU 与 FSF 则是 Richard Stallman 发起的。
- GNU 的全名为何?他主要由那个基金会支持?
GNU 是 GNU is Not Unix 的简写,是个无穷循环! 另外,这个计划是由自由软件基金会 (Free Software Foundation, FSF) 所支持的! 两者都是由 Stallman 先生所发起的!
- 何谓多人 ( Multi-user ) 多任务 ( Multitask )?
Multiuser 指的是 Linux 允许多人同时连上主机之外,每个用户皆有其各人的使用环境,并且可以同时使用系统的资源!
Multitask 指的是多任务环境,在 Linux 系统下, CPU 与其他例如网络资源可以同时进行多项工作, Linux 最大的特色之一即在于其多任务时,资源分配较为平均!
- 简单说明 GNU General Public License ( GPL ) 与 Open Source 的精神:
1. GPL 的授权之软件,乃为自由软件(Free software),任何人皆可拥有他; 2. 开发 GPL 的团体(或商业企业)可以经由该软件的服务来取得服务的费用; 3. 经过 GPL 授权的软件,其属于 Open source 的情况,所以应该公布其原始码; 4. 任何人皆可修改经由 GPL 授权过的软件,使符合自己的需求; 5. 经过修改过后 Open source 应该回馈给 Linux 社群。
- 什么是 POSIX ?为何说 Linux 使用 POSIX 对于发展有很好的影响?
POSIX 是一种标准规范,主要针对在 Unix 操作系统上面跑的程序来进行规范。 若你的操作系统符合 POSIX ,则符合 POSIX 的程序就可以在你的操作系统上面运作。 Linux 由于支持 POSIX ,因此很多 Unix 上的程序可以直接在 Linux 上运作, 因此程序的移植相当简易!也让大家容易转换平台,提升 Linux 的使用率。
- Linux 的发展主要分为哪两种核心版本?
主要分为奇数的发展中版本(develop),如 2.5 ,及偶数的稳定版本,如 2.6 。
- 简单说明 Linux 成功的因素?
1. 藉由 Minix 操作系统开发的 Unix like ,没有版权的纠纷;
2. 藉助于 GNU 计划所提供的各项工具软件, gcc/bash 等;
3. 藉由 Internet 广为流传;
4. 藉由支持 POSIX 标准,让核心能够适合所有软件的开发;
5. 托瓦兹强调务实,虚拟团队的自然