操作系统的体系结构是什么?
内核是操作系统最基础的构件,因而,内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。
尽管随着理论和实践的不断演进,操作系统高层特性与内核结构之间的耦合有日趋缩小之势,但习惯上,内核结构仍然是操作系统分类之常用标准!内核的结构可以分为单内核、微内核、混合内核、外内核等。
单内核(Monolithic kernel),又称为宏内核。
单内核结构是操作系统中各内核部件杂然混居的形态,该结构于1960年代(亦有1950年代初之说,尚存争议),历史最长,是操作系统内核与外围分离时的最初形态。
微内核(Microkernel),又称为微核心。
微内核结构是1980年代产生出来的较新的内核结构,强调结构性部件与功能性部件的分离。
20世纪末,基于微内核结构,理论界中又发展出了超微内核与外内核等多种结构。
尽管自1980年代起,大部分理论研究都集中在以微内核为首的“新兴”结构之上,然而,在应用领域之中,以单内核结构为基础的操作系统却一直占据着主导地位。
混合内核(Hybrid kernel)像微内核结构,只不过它的组件更多的在核心态中运行,以获得更快的执行速度。
外内核(Exokernel)的设计理念是尽可能的减少软件的抽象化,这使得开发者可以专注于硬件的抽象化。
外核心的设计极为简化,它的目标是在于同时简化传统微内核的讯息传递机制,以及整块性核心的软件抽象层。
在众多常用操作系统之中,除了QNX和基于Mach的UNIX等个别系统外,几乎全部采用单内核结构,例如大部分的Unix、Linux,以及Windows(微软声称Windows NT是基于改良的微内核架构的,尽管理论界对此存有异议)。
微内核和超微内核结构主要用于研究性操作系统,还有一些嵌入式系统使用外核!
如何最快搭建LINUX服务器集群
1.2.并行技术 这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.使用MPICH构建一个四节点的集群系统 这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.1 所需设备 1).4台采用Pentium II处理器的PC机,每台配 置64M内存,2GB以上的硬盘,和EIDE接口的光盘驱动器。
2).5块100M快速以太网卡,如SMC 9332 EtherPower 10/100(其中四块卡用于连接集群中的结点,另外一块用于将集群中的其中的一个节点与其它网络连接。
) 3).5根足够连接集群系统中每个节点的,使用5类非屏蔽双绞线制作的RJ45缆线 4).1个快速以太网(100BASE-Tx)的集线器或交换机 5).1张Linux安装盘 2.2 构建说明 对计算机硬件不熟的人,实施以下这些构建步骤会感到吃力。
如果是这样,请找一些有经验的专业人士寻求帮助。
1. 准备好要使用的采用Pentium II处理器的PC机。
确信所有的PC机都还没有接上电源,打开PC机的机箱,在准备与网络上的其它设备连接的PC机上安装上两块快速以太网卡,在其它的 PC机上安装上一块快速以太网卡。
当然别忘了要加上附加的内存。
确定完成后盖上机箱,接上电源。
2. 使用4根RJ45线缆将四台PC机连到快速以太网的集线器或交换机上。
使用剩下的1根RJ45线将额外的以太网卡(用于与其它网络相连的那块,这样机构就可以用上集群)连接到机构的局域网上(假定你的机构局域网也是快速以太网),然后打开电源。
3. 使用LINUX安装盘在每一台PC机上安装。
请确信在LINUX系统中安装了C编译器和C的LIB库。
当你配置TCP/IP时,建议你为四台PC分别指定为192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。
第一台PC为你的服务器节点(拥有两块网卡的那台)。
在这个服务器节点上的那块与机构局域网相连的网卡,你应该为其指定一个与机构局域网吻合的IP地址。
4.当所有PC都装好Linux系统后,编辑每台机器的/etc/hosts文件,让其包含以下几行: 192.168.1.1 node1 server 192.168.1.2 node2 192.168.1.3 node3 192.168.1.4 node4 编辑每台机器的/etc/hosts.equiv文件,使其包含以下几行: node1 node2 node3 node4 $p# 以下的这些配置是为了让其能使用MPICH's p4策略去执行分布式的并行处理应用。
1. 在服务器节点 ,建一个/mirror目录,并将其配置成为NFS服务器,并在/etc/exports文件中增加一行: /mirror node1(rw) node2(rw) node3(rw) node4(rw) 2. 在其他节点上,也建一个/mirror目录,关在/etc/fstab文件中增加一行: server:/mirror /mirror nfs rw,bg,soft 0 0 3. /mirror这个目录从服务器上输出,装载在各个客户端,以便在各个节点间进行软件任务的分发。
4. 在服务器节点上,安装MPICH。
MPICH的文档可在 5.任何一个集群用户(你必须在每一个节点新建一个相同的用户),必须在/mirror目录下建一个属于它的子目录,如 /mirror/username,用来存放MPI程序和共享数据文件。
这种情况,用户仅仅需要在服务器节点上编译MPI程序,然后将编译后的程序拷贝到在/mirror目录下属于它的的子目录中,然后从他在/mirror目录下属于它的的子目录下使用p4 MPI策略运行MPI程序。
2.3 MPICH安装指南 1.如果你有gunzip,就d下载mpich.tar.gz,要不然就下载mpich.tar.Z。
你可以到http://www.mcs.anl.gov/mpi/mpich/downloa下载,也可以使用匿名FTP到ftp.mcs.anl.gov的pub/mpi目录拿。
(如果你觉得这个东西太大,你可以到pub/mpi/mpisplit中取分隔成块的几个小包,然后用cat命令将它们合并) 2.解压:gunzip ;c mpich.tar.gz tar xovf-(或zcat mpich.tar.Z tar xovf-) 3.进入mpich目录 4.执行:./configure为MPICH选择一套适合你的实际软硬件环境的参数组,如果你对这些默认选择的参数不满意,可以自己进行配置(具体参见MPICH的配置文档)。
最好选择一个指定的目录来安装和配置MPICH,例如: ./configure -prefix=/usr/local/mpich-1.2.0 5.执行:make >&make.log 这会花一段较长的时间,不同的硬件环境花的时间也就不同,可能从10分钟到1个小时,甚至更多。
6.(可选)在工作站网络,或是一台单独的工作站,编辑mpich/util/machines/machines.xxx(xxx是MPICH对你机器体系结构取的名称,你能很容易的认出来)以反映你工作站的当地主机名。
你完全可以跳过这一步。
在集群中,这一步不需要。
7.(可选)编译、运行一个简单的测试程序: cd examples/basic make cpi ln ;s ../../bin/mpirun mpirun ./mpirun ;np 4 cpi 此时,你就在你的系统上运行了一个MPI程序。
8.(可选)构建MPICH其余的环境,为ch_p4策略使 用安全的服务会使得任何启动速度加快,你可以执行以下命令构建: make serv_p4 (serv_p4是一个较新的P4安全服务的版本,它包含在MPICH 1.2.0版中),nupshot程序是upshot程序的一个更快版本,但他需要tk 3.6版的源代码。
如果你有这个包,你就用以下命...
linux与其他操作系统的区别是什么?
Linux与其他操作系统的区别(MS-DOS之间的区别):1. Linux可以与MS-DOS、OS/2、Windows等其他操作系统共存于同一台机器上。
它们均为操作系统,具有一些共性,但是互相之间各有特色,有所区别。
2. 在同一系统上运行Linux和MS-DOS已很普遍,就发挥处理器功能来说,MS-DOS没有完全实现x86处理器的功能,而Linux完全在处理器保护模式下运行,并且开发了处理器的所有特性。
Linux可以直接访问计算机内的所有可用内存,提供完整的Unix接口。
而MS-DOS只支持部分Unix的接口。
3. 就使用费用而言,Linux和MS-DOS是两种完全不同的实体。
与其他商业操作系统相比,MS-DOS价格比较便宜,而且在PC机用户中有很大的占有率,任何其他PC机操作系统都很难达到MS-DOS的普及程度,因为其他操作系统的费用对大多数PC机用户来说都是一个不小的负担。
Linux是免费的,用户可以从internet上或者其他途径获得它的版本,而且可以任意使用,不用考虑费用问题。
4. 就操作系统的功能来说,MS-DOS是单任务的操作系统,一旦用户运行了一个MS-DOS的应用程序,它就独占了系统的资源,用户不可能再同时运行其他应用程序。
而Linux是多任务的操作系统,用户可以同时运行多个应用程序。
再看一下Linux与OS/2、Windows、Windows NT之间的区别:1. 从发展的背景看,Linux与其他操作系统的区别是,Linux是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows NT等,都是自成体系,无对应的相依托的操作系统。
这一区别使得Linux的用户能大大地从Unix团体贡献中获利。
因为Unix是世界上使用最普遍、发展最成熟的操作系统之一,它是七十年代中期发展起来的微机和巨型机的多任务系统,虽然有时接口比较混乱,并缺少相对集中的标准,但还是发展壮大成为了最广泛使用的操作系统之一。
无论是Unix的作者还是Unix的用户,都认为只有Unix才是一个真正的操作系统,许多计算机系统(从个人计算机到超级计算机)都存在Unix版本,Unix的用户可以从很多方面得到支持和帮助。
因此,Linux做为Unix的一个克隆,同样会得到相应的支持和帮助,直接拥有Unix在用户中建立的牢固的地位。
2. 从使用费用上看,Linux与其他操作系统的区别在于Linux是一种开放、免费的操作系统,而其他操作系统都是封闭的系统,需要有偿使用。
这一区别使得我们能够不用花钱就能得到很多Linux的版本以及为其开发的应用软件。
当我们访问Internet时,会发现几乎所有可用的自由软件都能够运行在Linux系统上。
有来自很多软件商的多种Unix实现,Unix的开发、发展商以开放系统的方式推动其标准化,但却没有一个公司来控制这种设计。
因此,任何一个软件商(或开拓者)都能在某种Unix实现中实现这些标准。
OS/2和Windows NT等操作系统是具有版权的产品,其接口和设计均由某一公司控制,而且只有这些公司才有权实现其设计,它们是在封闭的环境下发展的!
linux操作系统的主要特点
LINUX系统的主要特点。
1、开放性:特别是遵循开放系统互连(OSI)国际标准。
2、多用户:操作系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。
3、多任务:计算机同时执行多个程序,而同时各个程序的运行互相独立。
4、良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用。
Linux还为用户提供了图形用户界面。
它利用鼠标、菜单、窗口、滚劢条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。
5、设备独立性:操作系统把所有外部设备统一当作成文件来看待,只要安装驱劢程序,任何用户都可以象使用文件一样,操纵、使用这些设备。
Linux是具有设备独立性的操作系统,内核具有高度适应能力。
6、提供了丰富的网络功能:完善的内置网络是Linux一大特点。
7、可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。
8、良好的可移植性:将操作系统从一个平台转移到另一个平台使它仍然能挄其自身的方式运行的能力。
Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。
UC/OS与Linux操作系统的区别?
uc/os和uclinux操作系统是两种性能优良源码公开且被广泛应用的的免费嵌入 式操作系统,可以作为研究实时操作系统和非实时操作系统的典范。
本文通过对 uc/os和uclinux的对比,分析和总结了嵌入式操作系统应用中的若干重要问题,归纳了嵌入式系统开发中操作系统的选型依据。
两种开源嵌入式操作系统介绍 uc/os和uclinux操作系统,是当前得到广泛应用的两种免费且公开源码的嵌入 式操作系统。
uc/os适合小型控制系统,具有执行效率高、占用空间小、实时性 能优良和可扩展性强等特点,最小内核可编译至2k。
uclinux则是继承标准linux 的优良特性,针对嵌入式处理器的特点设计的一种操作系统,具有内嵌网络协议、 支持多种文件系统,开发者可利用标准linux先验知识等优势。
其编译后目标文 件可控制在几百k量级。
uc/os是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。
其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服 务等功能。
uclinux是一种优秀的嵌入式linux版本。
uclinux是micro-conrol-linux的缩写。
同标准linux相比,它集成了标准linux操作系统的稳定性、强大网络功能和出 色的文件系统等主要优点。
但是由于没有mmu(内存管理单元),其多任务的实 现需要一定技巧。
两种嵌入式操作系统主要性能比较 嵌入式操作系统是嵌入式系统软硬件资源的控制中心,它以尽量合理的有效方法 组织多个用户共享嵌入式系统的各种资源。
其中用户指的是系统程序之上的所有 软件。
所谓合理有效的方法,指的就是操作系统如何协调并充分利用硬件资源来 实现多任务。
复杂的操作系统都支持文件系统,方便组织文件并易于对其规范化 操作。
嵌入式操作系统还有一个特点就是针对不同的平台,系统不是直接可用的,一般 需要经过针对专门平台的移植操作系统才能正常工作。
进程调度、文件系统支持和系统移植是在嵌入式操作系统实际应用中最常见的问 题,下文就从这几个角度入手对uc/os和uclinux进行分析比较。
进程调度 任务调度主要是协调任务对计算机系统内资源(如内存、i/o设备、cpu)的争夺 使用。
进程调度又称为cpu调度,其根本任务是按照某种原则为处于就绪状态 的进程分配cpu。
由于嵌入式系统中内存和i/o设备一般都和cpu同时归属于 某进程,所以任务调度和进程调度概念相近,很多场合不加区分,下文中提到的 任务其实就是进程的概念。
进程调度可分为"剥夺型调度"和"非剥夺型调度"两种基本方式。
所谓"非剥夺型 调度"是指:一旦某个进程被调度执行,则该进程一直执行下去直至该进程结束,或由于某种原因自行放弃cpu进入等待状态,才将cpu重新分配给其他进程。
所谓"剥夺型调度"是指:一旦就绪状态中出现优先权更高的进程,或者运行的进 程已用满了规定的时间片时,便立即剥夺当前进程的运行(将其放回就绪状态),把cpu分配给其他进程。
作为实时操作系统,uc/os是采用的可剥夺型实时多任务内核。
可剥夺型的实时 内核在任何时候都运行就绪了的最高优先级的任务。
uc/os中最多可以支持64 个任务,分别对应优先级0"63,其中0为最高优先级。
调度工作的内容可以分 为两部分:最高优先级任务的寻找和任务切换。
其最高优先级任务的寻找是通过建立就绪任务表来实现的。
uc/os中的每一个任 务都有独立的堆栈空间,并有一个称为任务控制块tcb(task control block)数据 结构,其中第一个成员变量就是保存的任务堆栈指针。
任务调度模块首先用变量 ostcbhighrdy记录当前最高级就绪任务的tcb地址,然后调用os_task_sw() 函数来进行任务切换。
uclinux的进程调度沿用了linux的传统,系统每隔一定时间挂起进程,同时系 统产生快速和周期性的时钟计时中断,并通过调度函数(定时器处理函数)决定进 程什么时候拥有它的时间片。
然后进行相关进程切换,这是通过父进程调用fork 函数生成子进程来实现的。
uclinux系统fork调用完成后,要么子进程代替父进程执行(此时父进程已经 sleep),直到子进程调用exit退出;要么调用exec执行一个新的进程,这个时候 产生可执行文件的加载,即使这个进程只是父进程的拷贝,这个过程也不可避免。
当子进程执行exit或exec后,子进程使用wakeup把父进程唤醒,使父进程继续 往下执行。
uclinux由于没有mmu管理存储器,其对内存的访问是直接的,所有程序中访 问的地址都是实际的物理地址。
操作系统队内存空间没有保护,各个进程实际上 共享一个运行空间。
这就需要实现多进程时进行数据保护,也导致了用户程序使 用的空间可能占用到系统内核空间,这些问题在编程时都需要多加注意,否则容 易导致系统崩溃。
由上述分析可以得知,uc/os内核是针对实时系统的要求设计实现的,相对简单,可以满足较高的实时性要求。
而uclinux则在结构上继承了标准linux的多任务 实现方式,仅针对嵌入式处理器特点进行改良。
其要实现实时性效果则需要使系 统在实时内核的控制下运行,rt-linux就是可以实现这一个功能的一种实时内 核。
文件系统 所谓文件系统是指负责存取和管理文件信息的机构,也可以说是负责文件的建 立、撤销、组织、读写、修改、复制...
Linux系统的特点?
1.模块化程度高Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。
2.源码公开由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。
任何人、任何组织只要遵守GPL条款,就可以自由使用Linux 源代码,为用户提供了最大限度的自由度。
这一点也正投嵌入式系统所好,因为嵌入式系统应用千差万别,设计者往往需要针对具体的应用对源码进行修改和优化,所以是否能获得源代码 对于嵌入式系统的开发是至关重要的。
加之Linux的软件资源十分丰富,每种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。
这一切就使设计者在其基础之上进行二次开发变得非常容易。
另外,由于Linux源代码公开,也使用户不用担心有“后闸”等安全隐患。
同时,源码开放给各教育机构提供极大的方便,从而也促进了Linux的学习、推广和应用。
3.广泛的硬件支持Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。
目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。
由于世界范围内有众多开发者在为Linux的扩充贡献力量,所以Linux有着异常丰富的驱动程序资源,支持各种主流硬件设各和最新的硬件技术,甚至可在没有存储管理单元MMU 的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。
4.安全性及可靠性好内核高效稳定。
Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。
Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。
为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。
5.具有优秀的开发工具开发嵌入式系统的关键是需要有一套完善的开发和调试工具。
传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。
在线仿真器的价格非常高,而且只适合做非常底层的调试。
如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。
嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。
6.有很好的网络支持利文件系统支持Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。
目前,Linux几乎支持所有主流的网络硬件、网络协议和文件系统,因此它是NFS的一个很好的平台。
另一方面,由于Linux有很好的文件系统支持(例如,它支持Ext2、FAT32、romfs等文件系统),是数据各份、同步和复制的良好平台,这些都为开发嵌入式系统应用打下了坚实的基础。
7.与UNIX完全兼容目前,在Linux中所包含的工具和实用程序,可以完成UNIX的所有主要功能。
但由于Linux不是为实时而设计的,因而这就成了Linux在实时系统中应用的最大遗憾。
不过,目前有众多的自由软件爱好者正在为此进行不懈的努力,也取得了诸多成果。
转载请注明出处51数据库 » linux软件体系结构