① 有谁可以提供一些linux系统概述的资料,要快,非常感谢。
Linux概述
1.1 什么是linux?
最节俭地说,linux是一个操作系统。它使得计算机上的软件和硬件之间协调工作,就好像Microsoft Windows(MS windows,微软的windows系统)系列操作系统(MS Windows和linux之间又有着巨大的差别。不仅差别巨大,甚至互相对立,互相攻击。缘何对立?缘何攻击?尽在本章中。)。至于linux具体特性,很难用一句或者一段话来表述清楚。但可以有一个大概了解:linux是一个多任务的多用户的多平台的在保护模式下的遵守POSIX标准的遵守SYSV和BSD扩展的遵守GPL许可的32位(也有64位)的类UNIX的开放源代码的免费操作系统。这句话基本上涵概了当今linux最流行最重要最主要的特性。可能读者对以上的一些名词云里雾里,不知所云,简单介绍:
1.多任务
计算机在同一时刻运行多个应用程序的能力。
2.多用户
计算机在同一时刻被多个用户访问的能力。如网络上的服务器必须是多用户的。因为网络上的服务器需要能够同时接受多个用户的同时访问。除了linux系统,比较熟悉的Win2000也是多用户的操作系统。多用户操作系统最主要的特点是:同一时刻不同的用户访问。例:一台windows98机器,虽然可以有好几个不同的帐号,但不能同时访问,所以它并不是多用户的。
3.多平台
可以在不同种类的CPU下工作。不要以为世界上就只有intel ,AMD这样的兼容CPU,还有很多种类的CPU。如:Alpha、Sparc。
4.保护模式
在linux下应用软件无法访问系统分配的内存以外的内存区域。如此,一个软件的错误不会造成整个系统的瘫痪。有些人没事在那里叫嚣:linux理论上永远也不会死机,就是这个原因。(但事实上还是会死的)
5.POSIX
POSIX表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX 是为了读音更像UNIX)。电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE) 最初开发 POSIX 标准,是为了提高 UNIX 环境下应用程序的可移植性。然而,POSIX 并不局限于 UNIX。 许多其它的操作系统,例如 WinNT,都支持 POSIX 标准,尤其是 POSIX.1。POSIX.1 提供了源代码级别的C 语言应用编程接口(API)给操作系统的服务程序,例如读写文件。POSIX.1 已经被国际标准化组织(International Standards Organization,ISO)所接受,被命名为 ISO/IEC 9945-1:1990 标准。
6.SYSV和BSD扩展
可以理解为和SYSV和BSD源代码级的兼容。简单一点,就是Linux下的应用程序同时也能在这两个系统上运行。SYSV和BSD也是两个操作系统,不知道这两个系统是什么?那就往下看。
7.GPL(General Public License)
公用许可证,下文会有详解。
1.2发音问题
1.2.1 linux的发音
linux发音是五花八门版本颇多,就笔者见到和听到的不下10种。对这种情况,据说,linux的创始人Linus(Linus Torvalds)针对读音分歧较多的情况,特意录了一段他对Linux的发音。这段录音的内容是这样的:“Hello,this is Linus Torvalds and I pronounce Linux as Linux”。我听出来的是/'li:nэks/,综合网上和linus自己的读音,概括出几个自认为最合适也最通用的读法:/Li'nQks/(“里那克斯”)或/'li:nэks/(“里呢克斯”)或/Li'nu:ks?/(“里纽克斯”)。这几个应该是谁都听得懂的。至于哪个比较正宗,当然是linus的原音。但事实上似乎使用linus那种读发的人并不在多数。
提示:上面的这段录音可以在RedHat中调试声卡的时候可以听到,如果你的声卡调试成功,系统会播放上面一段声音以示成功。
1.2.2 Linus Torvalds的发音
我们还应该了解一下其作者名子的发音。毕竟是一个人的名子,没人敢随便念。基本上比较统一。在英语中,Linus Torvalds(/li'nus 'tRwR:z/)中文就是“李纽斯·托沃兹”,也有翻成“李纳斯·托沃兹”的。但是你有机会听上面提到的那段录音,可以发现他念的是“李纽斯·托沃兹”。一般我们称他为linus先生,也就是“李牛死”。
2、体系结构概述
按照Garlan和Shaw提出的Linux操作系统分层方法:Linux操作系统分为4层次,即四个子系统,分别是用户进程、系统调用接口、Linux内核、硬件控制器。下面简单介绍一下这四个组成部分。
用户进程:用户应用程序是运行在Linux操作系统最高层的一个庞大的软件及核。当一个用户程序在操作系统之上运行时,它就是操作系统的一个进程。计算机不同,程序的集合大小会有所变化。
系统调用接口:为了在应用程序中实现特定的任务,可以通过系统调用来调用操作系统内核中特定的过程,以实现特定的服务。一般认为,这些调用和服务业时操作系统的一部分,内和编程接口也属于这一部分。系统调用本身也是由若干条指令组成的,但与一般过程不同的是:系统调用运行在内核模式,而一般的进程运行在用户模式。
Linux内核:内核式操作系统的灵魂,包括内核抽象核对硬件资源(如cpu)的间接访问,它负责管理磁盘上的文件、内存,负责启动系统并运行程序,负责从网络上接收和发送数据包等等
硬件:这个子系统包括了Linux安装时需要的所有可能的物理设备。
3、Linux内核
从程序员的角度来讲,操作系统的内核提供了一个虚拟的机器接口。它抽象了许多硬件细节,程序可以以某种统一的方式来进行数据管理,而内核将所有的硬件抽象成统一的虚拟借口。
Linux以统一的方式支持多任务,而这种方式对用户进程是透明的,每一个进程运行起来就好像只有它一个进程在计算机上运行一样,独占内存和其他的硬件资源。实际上内核在并发的运行几个进程。并且能够让几个进程公平合理地使用硬件资源,也能使各个进程之间互不干扰安全的运行。读到这里你就明白了为什么linux不会象windows那样常死机、蓝屏。linux如果使用图形界面可能会发现计算机好像死机了,其实没有死,而是某个进程死了,可能就是你的kde,gnome.杀死这个进程就可以了不必reset.
Linux内核也要完成一般操作系统必须完成的任务:
对文件系统的读写进行管理,把对文件系统的操作映射成对磁盘或者其他块设备的操作,Linux系统把所有的设备对定义为文件了,哈哈,这可与windows不同。
管理程序的运行,为程序分配资源,并且处理程序之间的通讯。
管理存储器,为程序分配内存,并且管理虚拟内存
管理输入输出,将设备映射成文件。
管理网络:有“网络之子”之称的Linux,对网络的管理可是她的强项。使用Linux你就会感受到它的网络功能的强大,可以使用Linux模拟强大的Csico高级路由器,那种感觉真实太棒了,只要几百块钱买一台486的计算机哦,就可以在上面自己构造强大功能的路由器,是不是动心了,哈哈,不过软件实现的路由器性能肯定比不上硬件路由器。
内核必须包含虚拟文件系统(VFS)管理程序以及各种具体文件系统映射成VFS的程序。这可是Linux较有特设的一部分,这就是为什么Linux支持的文件系统(minix文件系统、ext2/ext3文件系统、msdos/vfat/ntfs文件系统、iso9600CD-ROM的标准文件系统、hpfs OS/2用的文件系统、ufs/sysv 文件系统)很多的原因。对于内存的管理,Linux使用虚拟存储管理方式,利用现代处理器的页面映射能力,在x86处理器上,Linux使用4GB的地址空间,操作系统处理利用物理存储器外还支持将硬盘空间映射成虚拟内存。所有的存储器(物理内存和虚拟内存)被分成大小相等的页面,系统通过给出页号和页面内偏移量对某个内存地址进行访问。物理内存紧张的时候,操作系统把某些没有使用的页面从内存移动到硬盘上以便腾出空闲的页面供程序使用,这个过程叫做交换(SWAP).Linux使用交换分区来处理交换需要的虚拟存储空间,在硬盘上开设一个独立的分区专门用于映射虚拟内存,交换分区可以有多个,之所以这样是因为早期的Linux核心要求每一个交换分区不能超过128MB.对于较重负荷的服务器,交换内存用到256MB甚至更多都是很正常的事情,因此那时的系统经常有多个交换分区。目前这个限制已经去除。
内核的另外一个任务是执行用户程序,为此核心必须支持可执行格式。Linux使用多种可执行文件个时,诸如elf、aout等等,这可与windows不同,没有办法从名字上区分一个文件到底是什么格式,核心只关心二进制文件的具体形式。
linux内核由五个主要的子系统组成:进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)、进程间通信(IPC)。进程调度处于核心位置,所有的子系统都依赖于它,因为每一个子系统都需要挂起或者恢复进程。一般情况下,当一个进程等待硬件操作完成时,它会被挂起;当操作真正完成时,进程恢复执行。各个子系统之间的依赖关系如下:
进程调度与内存管理之间的关系:这两个子系统互相依赖。在多道程序环境下,程序运行必须为之创建进程,而创建进程的第一件事就是要将程序和数据装入内存。
进程间通信与内存管理的关系:进程间通信子系统要依赖内存管理支持共享内存通信机制。这种机制尤许两个进程除了拥有自己的私有内存外,还可存取共同的内存区域。
虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统(NFS),也利用内存管理支持RAMDISK设备
内存管理与虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程定期地由调度程序调度。
也可参照以下网址:http://ew.gqjy.net/kcgg/zczn/Win2000/200608/22649.html