第一章 什么是Linux
学习笔记
计算机:计算的辅助工具
计算机的记忆/存储单位以字节(Byte)或位(bit)为基本单位。他们的换算关系如下:
1 Byte = 8 bit
1 KB = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
什么是操作系统
“比较完整的操作系统”应该包含两个组件,一个是“核心与其提供的接口工具”,另一个是“利用核心提供的接口工具所开发的软件”。
核心就是“Kernel”,它是操作系统最底层的东西,每个操作系统都有自己的核心,由它来掌握整个硬件资源的工作状态。
一般来说,Kernel 为了实现用户所需要的正确运算结果,必须要管理的事项有:
系统调用接口(System call interface) : 通过这个接口,程序开发人员可以轻松地与核心沟通,进一步利用硬件资源。
进程控制(Process control) : 在多任务环境中,一部计算机可能同时有很多的作业 等待CPU 运算处理, 核心这时必须能够控制这些工作并有效地分配CPU的资源。
内存管理(Memory management) : 控制整个系统的内存;若内存不足,核心还能够提供虚拟内存的功能。
文件系统管理(File system management) : 文件系统的管理,例如数据的输入输出 (I/O) 以及不同文件格式的支持等,如果核心不能识别某个文件系统, 那么将无法使用该文件格式的文件。例如: Windows 98 就不认识 NTFS 文件格式的硬盘。
设备驱动程序(Device drivers) : 如上所述,硬件管理是 核心的主要工作之一,当然,设备驱动程序就是核心需要做的事情。 “可加载模块”功能可以将驱动程序编辑成模块,而不需要重新的编译核心。
Linux历史
-
Unix创始人:贝尔实验室的Ken Thompson和Dennis M.Ritchie.
Linux 创始人 :Linus Tovalds 林纳斯.托瓦兹
SUN的BSD是Unix重要一个分支。
-
FSF(Free Software Foundation)自由软件基金会
GNU (GNU’s Not Unix) GUN计划:目标创建一套自由完整的操作系统。
GPL(General Public License) 通用公共许可证
FHS(File Hierarchy Standard) 文件系统层次标准
Linux 核心网站: http://www.kernel.org
版本号:偶数->稳定版 奇数->测试版
主要流行发行版本
-
CentOS :从RED HAT 发展而来的发行版,由志愿者维护。
-
Debian :一个强烈信奉自由软件,并由自愿者维护的系统。
-
Fedora :是REDHAT的社区版
-
Knoppix :第一个Live CD发行版,可以从可移动介质运行,Debian的衍生版。
-
Kubuntu :使用KDE桌面的Ubuntu。
-
Open SUSE :最初由Slackware分离出来,现在由Novell维护。
-
RedHat :是Fedora的商业版,由Redhat维护和提供技术支持。
-
Ubuntu :一个非常流行的桌面发行版,由Patrick J.Volkerding维护。
-
Mandriva :最初为Redhat的衍生版,现在由法国一个同门的公司维护。
课后习题及答案
-
一个完整的操作系统至少要能够完整地控制整个硬件,请问,操作系统应该要控制硬件的哪些单元?
(1)input/output crontrol
(2)device control
(3)process management
(4)file management或
运算单元、控制单元、寄存器组、总线接口单元、输入/输出单元。操作系统只是在管理整个硬件资源,包括CPU、内存、输入输出设备及文件系统,因此操作系统要控制的就是这些硬件的内部单元。
-
核心功能在于管理控制整个系统硬件,这包括CPU运算单元的管理、输入/输出的管理,内存的管理,等等。那么,请问一个较为完整的操作系统,应该包含哪些部分?
应该包含 kernel + kernel Tools +Applications 等等
-
1GB硬盘空间等于多少KB?
1GBytes = 1024 MBytes * 1024 KBytes/MBytes = 1048576 KBytes
-
您在主机上安装了一张网卡,开机之后系统无法使用,您确定网络卡是好的,那么问题可能出现在哪里?该如何解决?
因所有的硬件都没有问题,所以,最可能出问题的地方在于系统核心(Kernel)不支持这张网卡。解决办法,到网卡的开发商网站,下载支持您主机作业系统的驱动程序(一般为源码),编译后,挂载网卡驱动模块就可以使用了。
网卡问题:
硬件问题——网卡的PCI插槽没有插好,重新插好即可。
软件问题——
①没有禁用主板自带网卡,导致新装网卡无法识别,禁用即可;
②网卡过新,原有网卡驱动程序版本老旧导致系统无法识别,更新驱动程序即可;
③网卡驱动未安装,安装驱动即可。 -
我在一台主机上安装Windows操作系统时,安装了显卡的驱动程序,它是没有问题的。但是安装Linux时,却无法完整地显示整个X Windows。请问,是否可以将Windows上的显卡驱动程序安装在Linux上?
不行! 因为核心不同,针对硬件所写的驱动程序也会不相同, 编译器也不同,当然,驱动程序也无法在两个操作系统间兼容。 这也是为何开发商在他们的网站上面,都会同时提供许多不同操作系统的驱动程序之故。
-
在Windows上能玩的游戏,是否可以到Linux去玩?
当然不行! 跟上一题相似的,因为游戏也是一个应用程序 (application), 他必须要使用到核心所提供的工具来开发他的游戏, 所以这个游戏是不可在不同的平台间运作的。 除非这个游戏已经进行了移植。
-
什么是软件的移植?
程式是由代码(通成为ASCII格式)经过编译器编译成为 binary file 之后, 才能够在该操作系统上面执行。 因此,您可以将您的程序的代码修改成可以适应其他操作系统的环境,并且加以编译,使程序可以在其他平台上运作, 此修改的动作即为移植。
-
Linux本身仅是一个核心与相关的核心工具而已,不过,它已经可以驱动所有的硬件,所以,可以算是一个很优秀的操作系统。经过其他应用程序的开发后,被整合成为Linux发行版。请问众多的版本之间有什么异同?
相同:利用同样的 Linux kernel (http://www.kernel.org),几乎相同的自由软件套件 (例如 GNU 里面的 gcc/glibc/vi/apache/bind/sendmail… ),几乎相同的操作界面 (例如均使用 bash/KDE/GNOME 等等)。
不同:使用的 kernel 与各软件的版本可能会不同;各开发商加入的应用工具不同, 使用的套件管理模式不同(debian 与 RPM)
-
UNIX是谁写出来的?GNU计划是谁发起的?
Unix 是 Ken Thompson 写的,1973 年再由 Dennis Ritchie 以 C 语言改写成功。 至于 GNU 与 FSF 则是 Richard Stallman 发起的。
-
GNU的全名是什么?主要由哪个基金会支持?
Unix 是 Ken Thompson 写的,1973 年再由 Dennis Ritchie 以 C 语言改写成功。 至于 GNU 与 FSF 则是 Richard Stallman 发起的。
-
如何获取Linux发行版的可安装光盘?
目前各大版本的 Linux distribution 大致上仍然依附在 GPL 这个版权宣告上, 因此在网络上面都可以轻易的下载,若有兴趣的话可以到各发展的厂商主网页去下载。
-
简单说明什么是GNU的GPL?(简单说明 GNU General Public License ( GPL ) 与 Open Source 的精神)
1.任何个人或公司均可释出自由软件(free software);
2.任何释出自由软件的个人或公司,均可由自己的服务来收取适当的费用;
3.该软件的源代码 (Source Code) 需要随软件附上,并且是可公开发布的;
4.任何人均可通过任何正常渠道取得此一自由软件,且均可取得此一授权模式
5.经过修改后Open Source 应该回馈给Linux社群。 -
何为多用户(Multi-user)、多任务(Multitask)?
Multiuser 指的是 Linux 允许多人同时连上主机之外, 每个用户皆有其各人的使用环境,并且可以同时使用系统的资源!
Multitask 指的是多工环境,在 Linux 系统下, CPU 与其他例如网络资源可以同时进行多项工作, Linux 最大的特色之一即在于其多工时,资源分配较为平均!
-
有人问"Linux”是什么?该如何回答?
简单的说Linux就是一个作业系统,或者说,Linux是作业系统最底层的核心,这个核心可以管理整个电脑硬件,让电脑硬件可以万恒的做作起来,并等待使用者输入指令。最早Linux是由Linus Torvalds在1991年写出来的,后来由于他承接了Unix的良好传统;稳定性高、多人多工作的环境设计优良,要求配置低等优点,所以很多软件开发商在这个核心上面开发,而某些厂商将这些软件与核心整合成为可以完整安装的光碟,而成为目前大家常听到的Linux操作系统了。
-
什么是POSIX?为什么说Linux使用POSIX对开发者有好处?
POSIX是一种标准规范,主要针对在UNIX作业系统上面跑的应用程序而进行的规范。若您的作业系统符合POSIX规范,则符合POSIX的程序就可以在您的作业系统上面运行。Linux由于支持POSIX规范,因此,很多Unix上的程序可以直接在LINUX运作,因此,程序的移植就相当简易。也让大家容易转换平台,提升Linux的使用率。
-
Linux的开发主要分为那连个核心版本?
主要分为奇数的发展中版本,如:2.5 ,及偶数的稳定版本 如:2.6
-
简单的说明自由软件与开放源码的软件的区别?
自由软件指:你可以拥有自由的取得、复制、修改,再发行该软件的权力,由于具有这些权力,因此自由软件通常是指 Open Source的。
开放源码是指:软件释放出来时,同时释放原始代码,但使用者取得原始代码后,能否修改源代码,则依据该软件的授权而定,意识是说,自由软件是Open Source的,但Open Source不见得是自由软件。
-
什么是LINUX的Live CD?
所谓Live CD 就是将完整的Linux distribution 放置到一张光碟当中,然后透过成新开机以(光碟开机),就能够不使用硬盘而直接进入LINUX系统的环境.
-
简单说明Linux成功的因素。
1.由MINIX操作系统开发的类UNIX系统,没有版权纠纷;
2.由GNU计划所提供的各项工具软件,如:GCC 、bash等;
3.由INTERNET广为流传;
4.支持POSIX标准,让核心能够适合所有软件的开发;
5.托瓦兹强调务实,虚拟团队的自然形成。