天天看点

第一讲:什么是LINUX

一.操作系统

1.一个比较『完整的操作系统』应该要包含 两个东西,一个是『核心与其提供的接口工具』、 一 个是『利用核心提供的接口工具所开发出来的软件』。

2.一般来说,Kernel 为了达成使用者所需要的正确运算结果,他必须要管理的事项有:

(1) 系统呼叫接口(System call interface) : 为了方便程序开发者可以轻易的透过与 kernel 的沟 通,将硬件的资源进一步的利用, 于是需要有这个简易的接口来方便程序开发者。

(2) 行程管理(Process control) : 一部计算机可能同时间有很 多的工作跑到 CPU 等待运算处理, Kernel 这个时候必须要能够控制这些工作,让 CPU 的资源 作有效的分配才行!

(3) 内存管理(Memory management) : 控制整个系统的内存管理,若内存不足, Kernel 最好还能够 提供虚拟内存的功能

(4)档案系统管理(File system management) : 档案系统的管理,例如数据的输入输出 (I/O) 等等 的工作! 还有不同档案格式的支持等等,如果你的核心不认识某个档案系统, 那么您将无 法使用该档案格式的档案!例如: Windows 98 就不认识 NTFS 档案格式的硬盘;

(5)装置的驱动(Device drivers) :硬件的管理是 Kernel 的主要工作之一, 当然,装置的驱动程序就是核心需要做的事情! 好在目前都有所谓的『可加载模块』功能, 可以将驱动程序编辑成模块, 就不需要重新的编译核心。

注:(1)所有硬件的资源都是 kernel 来管理的!

(2)核心是控制整个硬件支持的咚咚,也是一个操作系统的最底层, 然而要让整个 操作系统更完备的话,那还需要含有相当丰富的核心提供的工具, 以及核心相关的应用软件来支持。

3.Linux 的优缺点

(1)稳定的系统:

Linux 本来就是基于 Unix 概念而发展出来的操作系统,因此, Linux 具有与 Unix 系统相似的的程序接口跟操作方式,当然也继承了 Unix 稳定并且有效率的特点。常听到安装 Linux 的主机 连续运做一年以上而不曾当机、不必关机是稀松平常的事;

(2)免费或少许费用:

由于 Linux 是基于 GPL 的基础下的产物,因此任何人皆可以自 由取得 Linux , 至于一些『安 装套件』的发行者, 他们发行的 安装光盘也仅需要些许费用即可获得!不同于 Unix 需要负担庞 大的版权费用,当然也不同于微软需要一而再、 再而三的更新你 的系统,并且缴纳大量费用啰!

(3)安全性、漏洞的快速修补:

(4) 多任务、多使用者:

与 Windows 系统不同的, Linux 主机上可以同时允许多人上线来工作, 并且资源的分配较为公 平,比起 Windows 的单人假多任务系统要稳定的多!可以在一部 Linux 主机上面规划出不同等级的使用者,而且每个 使用者登入系统时的工作环境都可以不相同, 此外,还可以允许不同的使用者在同一个时间登入 主机,以同时使用主机的资源。

(5)使用者与群组的规划:

在 Linux 的机器中,档案的属性可以分为『可读、可写、可执行』 等参数来定义一个档案的适 用性,此外,这些属性还可以分为三个种类, 分别是『档案拥有者、档案所属群组、其它非拥有者与群组者』。 这对于项目计划或者其它计划开发者具有相当良好的系统保密性。

(6)相对比较不耗资源的系统:

Linux 只要一部 p-100 以上等级的计算机就可以安装并且使用愉快!不过,如果要架设的是属于大型的主机(服务上百人以上的主机系统), 那么就需要比较好一点的机器。不过,目前市面上任何一款个人计算机均可以达到这一个要求!

(7)适合需要小核心程序的嵌入式系统:

由于 Linux 只要几百 K 不到的程序代码就可以完成一个完整的操作系统, 因此相当适合于目前 家电或者是小电子用品的操作系统—『嵌入式』系统. Linux 真的是很适 合例如手机、数字相机、PDA、家电用品等等的微电脑操作系统!

二.服务器、工作站、终端机

1.服务器 ( Server ):

提供 Internet 一种以上的网络服务的主机,例如 yahoo 提供的是 WWW 的 服务,那么 yahoo 就可以称之为 服务器 了!服务器是有规模大小之分的!目前一 部 Linux 上面就可以架设多个服务器软件!例如 WWW 服务器的 Apache 软件、 FTP 服务器的 Wu-ftp 软件等等的;

2.工作站 ( Workstation ) :

基本上, 工作站可以视为仅提供一群特定人士,作为数值分析、科 学用途的机器。工作站与服务器的差别,就在于有没有提供 internet 上面的服务而已,例如,如果将 Sun 上面的 mail server 开启之后, 那么这部机 器就可以称之为服务器了!同时也是我们的工作站喔! 当然,更广义的定义是,只要是没有对 Internet 上面提供网络服务的,那就是工作站了!这当然也就包含所谓的终端机!

3.终端机 ( Terminal ) :

简单的说,就是 end-user ( 就是你 ) 前面的那部计算机!更狭义的来说,『终端机』本身应该是不具备任何可 以作业的软件的, 在终端机上面一定要连上 Server 之后,才能进行各项作业! 那才是最狭义 的终端机!

注意:

(1)计算机主要以二进制作为单位,而目前常用的磁盘容量单位为 bytes,其单位换算为 1Byte = 8bits, 其它的以 1024 为其倍数,如 1GByte=1024MBytes 等等。

三、练习题

1.一个完整的操作系统至少要能够完整的控制整个硬件,请问,操作系统应该要控制硬件的哪些单元?

(1)input/output control, (2)device control, (3)process management, (4)file management.

2.核心的功能在于管控整个系统的硬件,这包括了 CPU 运算单元的管理,输入/输出的管理,内存 的管理等等。 那么请问一个较为完整的操作系统,应该包含哪些部分?

Kernel + Kernel Tools + Applications

3.你在你的主机上面安装了一张网络卡,但是开机之后,系统却无法使用,您确定网络卡是好的, 那 么可能的问题出在哪里?该如何解决?

因为所有的硬件都没有问题,所以,可能出问题的地方在于系统的核心(kernel) 不支持这张网络卡

解决的方法,到网络卡的开发商网站,下载支持您主机操作系统的驱动程序, 安装网络卡驱 动程序后,就可以使用了。

4.我在一部主机上面安装 Windows 操作系统时,并且安装了显示卡的驱动程序,他是没有问题的。 但是安装 Linux 时,却无法完整的显示整个 X Window 。请问,我可不可以将 Windows 上面的 显 示卡驱动程序拿来安装在 Linux 上?

不行!因为核心不同,针对硬件所写的驱动程序也会不相同, 编译器也不同,当然,驱动程序也 无法在两个操作系统间兼容。 这也是为何开发商在他们的网站上面,都会同时提供许多不同操作 系统的驱动程序之故

5.我在 Windows 上面玩的游戏,可不可以拿到 Linux 去玩?

当然不行!跟上一题相似的,因为游戏也是一个应用程序 (application), 他必须要使用到核心 所提供的工具来开发他的游戏, 所以这个游戏是不可在不同的平台间运作的。除非这个游戏已经 进行了移植。

6.什么是软件的移植?

程序是由程序代码(通成为 ASCII 格式)经过编译器编译成为 binary file 之后, 才能够在该操 作系统上面执行。因此,您可以将您的程序的程序代码修改成可以适应 其它操作系统的环境,并 且加以编译,使程序可以在其它平台上运作, 这个修改的动作即为移植

7.简单的说明一下什么是 GNU 的 GPL ?

1.任何个人或公司均可释出自由软件 ( free software );

2.任何释出自由软件的个人或公司,均可由自己的服务来收取适当的费用;

3.该软件的原始码 ( Source Code ) 需要随软件附上,并且是可公开发表的; 4. 任何人均可透过任何正常管道取得此一自由软件,且均可取得此一授权模式。

8.何谓多人 ( Multi-user ) 多任务 ( Multitask )?

Multiuser 指的是 Linux 允许多人同时连上主机之外, 每个使用者皆有其各人的使用环境,并 且可以同时使用系统的资源

9.有个朋友问我说『 Linux 是什么?』我该如何回答比较好?

Linux 就是一个操作系统,或者说, Linux 是操作系统最底层的核心。 这个核心可 以管理整个计算机硬件,让计算机硬件可以完整的运作起来,并等待使用者输入指令。 最早 Linux 是由 Torvalds 在 1991 年写出来的,后来他承接了 Unix 的良好传统:稳定性高、 多人多 任务的环境设计优良、要求配备较低等优点

10.Linux 的发展主要分为哪两种核心版本?

主要分为奇数的发展中版本(develop),如 2.5 ,及偶数的稳定版本,如 2.6 。

继续阅读