资料介绍
在计算机技术的发展史上。 Unix操作系统的出现是一个重要的里程碑。早期的Unix曾免费供美国及一些西方国家的大学和科研机构使用,并且提供源代码,这一方面为高校和科研机构普及使用计算机提供了条件:另一方面,也是更重要的,为计算机软件的核心技术“操作系统”的教学和实验提供了条件,特别是Unix内核第6版的源代码,在相当长的一段时明内是大学计算机系高年级学生和研究生使用的教材,甚至可以说,美国当时整整一代的计算机专业人 员都是读着Unix的源代码成长的。反过来,这也促进了Unix的普及和发展,并且在当时形成了一个Unix产业。事实上,回既硅谷的形成和发展,也可以看到Unix起着重要的作用。Unix 两大主流之:的BSD就是在加州大学白克利分校开发的,后来,Unix 成了商品,其源代码也受到了版权的保护,再说也日益复亲和庞大了,面第6版则又慢慢显得陈旧了,便逐断不再用Unix内核的源代码作为教材了(但是直到现在还有在用的)。
在这种情况下,出于教学的需婴,荷兰的著8教授Andrew s. Tanenbaum 编写了一个小型的“类Unix“操作系统Minix,在PC机上运行,其源代码在20世纪80年代后期和90年代前期普被广泛采用但是,Minix 虽说是“类Unis”。其实离Unix相当远。首先,Minix 是个所谓“微内核”。与Unmix内核属于不同的设计,功能上更是不可同日而语。再说Unix也不仅仅是内核。还包括了其“外壳Shell和许多工具性的“实用程序”,如果内核提供的支持不完整,就不能与这些成分结合起来形成Unix环境。这样,Minix虽然不失为一一个 不错的教学工具,却缺乏实用价值。看到Minix的这个缺点,当时的一个5兰学生Linus Torvaks 就萌生了一一个念头, 即组织一些人,以Minix为起点,基本上按照Unix的设计,并且博采各种版本之长,在PC机上实现,开发由一个真正可以实用的Unix内核。这样,公众就既有免费的(现代) Unix系统,又有系统的源代码,且不存在版权问题。可是,Tanenbaum 教授的目光却完全盯在教学E.因此并不认为这是一个好主意,没有采纳这个建议。
毕竟是“初生牛犊不怕虎”,加上自身的天赋和動奋,还有公益心,Linus Tovalds就自己动手干了起来。由于所实现的基本是Lnix, Linus Tovalds就把它称为Limux.那时候互联网虽然还不像现在这么普及,但是在大学和公司中已经用得很多了。Linus Torvalds 在基本完成了Linux 内核的第一个版本以后就把它放在了互联网E,一米是把自己写的代码公诸于众,二米是邀请有兴趣的人也来参与,他的这种做法很快便引起了热烈的反应,并且与美国“自由软件基金会“FSF的主张正好不谋而合。当时FSF已经有计划要开发一个类Unix (但又不是Unix,所以称为GNU,这是“Gnu is Not Unix”的缩写)的操作系统和应用环境,而Linux的出现正是适得其时,适得其所。于是,由Linus Torvalds主持的Linux内核的开发,改进与维护,就成了FSF的主要项目之-。同时,FSF 的其它项目,如GNU的C编译gce.程序调试工具gadb.还有各种Shell和实用程序。乃至Web服务器Apache,河览器Moilla(实际上就是Netscape) 等等,则正好与之配套成龙。人们普前认为自由软件的开发是软件领城中的一个奇迹, 这么多志愿者参与,只是通过5联网维持松救的组织,居然能有条不紊地互相配合,开发出高质量的而且又是准度较大的系统软件。实在令人赞叹。
那么,Limux与它的前身Minix的区别有在呢?简单地说,Minix 是个“微内核”,而Linax是个“宏内核”: Minix 是个类Unmix的教学用模型,面Linux甚本上就是Unix.而且是Unix的延续和发展,甚至是各种Unix版本与变种的集大成者。
大家知道,传统意义F的操作系统。其内核应具备多个方面的功能或成分。既包含用于管理属于应用层的“进程”的成分,如进程管理,也包含为这些进程提供各种服务的成分,如进程间通信、设备驱动和文件系统等等。内核中提供各种服务的成分与使用这些服务的进程之间实际上就形成一种典型的“ClientServer“的关系,其实,这些服务提供者并不一定非得都留在内核中不可,他们本身也可以被设计并实现某些“服务进程”,其中必须婴留在内核中的成分其实只有进程间通信。如果把这些服务提供者从内核转移到进程的层次t,那么内核本身的结构就可以大大减小和简化。而各个服务进程,既然已从内核中游离出来,便可以”独地设计,实现以及调试,更重要的是可以按实际的需要来配置和启动,基于这样的想法,各种“微内核”(Micro Kemel)便应运而生。特别是对于一些专用的系统,主要是实时系统和“嵌入式”系统(Enmbedded System), 微内核的思想就很有吸引力。究其原因。主要是因为通常这些系统都不带磁盘,整↑系统部必须放在EPROM中,常常受到存储空间的限制,而所需要的服务又比较单一和简单。 所以,几乎所有的嵌入式系统和实时系统都采用微内核,如PSOS.VxWorks等。当然,微内核也有缺点。将这些服务的提供都放在进程层次t.再通过进程间通信(通常是报文传递》提供服务,势必增加系线的运行开销。降低了效率。
与微内核相对应,传统的内核结构就称为“宏内核”(Macro-Kermel),或称为“一本化内核”(Monolithic Kernel)。 通用式的系统由f所需的服务面广而量大,- 体化内核就更为合适,作为一种通用式系统,Linux 采用-体化内核是很自然的事。
传统的Unix内核是“全封闭”的。如果要往内核中加一个设备(增加一种服务),早期一般的做法是编写这个设备的驱动程序,并变动内核源程序中的某些数据结构《设备表),再重新编译整个内核,并重新引导整个系统。这样做当然也有好处,如系统的安全性更能得到保证,但其缺点也是很明显的。那就是太做化了。在这样的情况下,当某一个公司开发出一种新的外部设备时(比方说,一台彩色扫描仪),它就不可能的同这新的设备提供-片软盘或光盘给用户,使得用户只要运行一F**setup“就可以把这设备安装上了《像对DOS/Windows那样),有能力修改Linux内核的设备表,并重新编译内核的用户毕竟不多。
在Linux里,这个问题就解决得比较好。Linux 既允许把设备驱动程序在编译时静态地连接在内核中,如传统的驱动程序那样:也允许动态地在运行时安装,称为“模块”:还允许在运行状态F当需要用到某一模块时由系统自动安装。这样的模块仍然在内核中运行,面不是像在微内核中那样作为单独的进程运行,所以其运行效率还是得到保证。模块,也就是动态安装的设备驱动程序的实现(详见设备驱动程序一), 是很大的改进。它使Linux设备驱动程序的设计,实现、调试以及发布都大大地简化,甚至可以说是发生了根本性地变化,
Linux 最初是在Intel 80386 “平台”上实现的,但是已经被移植到各种主要的CPU系列上,包括Alpla. M68K. MIPS. SPARC. Power PC等等(Pentium. Pentium I等等均属于386系列)》可以说Linux 内核是现今覆盖面最广的-体化内核。同时,在同一个系列的CPU E. Linux内核还支持不同的系统结构,它既支持常现的单CPU结构,也支持多CPU结构,不过,本书将专注于1386 CPU,并且以单CPU结构为主,但是最后有一。究专们讨论多CPU结构。,
- 模拟电路讲义(上下册)pdf 0次下载
- 华为模拟电路讲义上下册资源下载 158次下载
- 使用51单片机实现温度上下限控制的源代码资料合集免费下载 57次下载
- 嵌入式Linux应用程序开发详解的源代码合集免费下载 24次下载
- Python深度学习2018的源代码合集免费下载 69次下载
- LINUX内核源代码情景分析下册PDF电子书免费下载 98次下载
- LINUX内核源代码情景分析上册PDF电子书免费下载 89次下载
- LabVIEW宝典的源代码合集免费下载 106次下载
- Linux内核情景分析上下册全集资料免费下载 11次下载
- Linux内核源代码情景分析(全册高清带书签)pdf下载 9次下载
- Linux内核源代码情景分析(全册高清带书签) 58次下载
- 电工学(第四版)上下册 0次下载
- Linux内核源代码情景分析(下册)浙江大学 0次下载
- Linux内核源代码情景分析(上册)浙江大学 0次下载
- 全国统一建筑工程定额(土建-上下册)下载
- 获取Linux内核源码的方法 514次阅读
- Linux内核自解压过程分析 691次阅读
- 如何分析Linux CPU上下文切换问题 1830次阅读
- Linux:QEMU调试内核的步骤 3040次阅读
- 深入linux内核架构 Linux内核架构分析解读 3604次阅读
- 使用C语言实现万年历星期速算法的源代码免费下载 2990次阅读
- Linux操作的防火墙软件应用程序定义和配置设置及底层源代码 4946次阅读
- Linux内核与Android的关系 4504次阅读
- Linux内核的发展简史与系统层次结构 7204次阅读
- 论述学习Linux内核的各个阶段 4900次阅读
- 基于嵌入式Linux内核的系统设备驱动程序开发设计 1113次阅读
- Linux内核地址映射模型与Linux内核高端内存详解 3397次阅读
- 嵌入式Linux的学习方法解析 3091次阅读
- linux最常用的20个命令介绍 7964次阅读
- PowerPC平台Linux的移植(二) 1194次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多