Linux是一种实用性很强的现代操作系统,开发它的中坚力量是软件工程师,因此所以实用性和效率为出发点,很多地方还考虑了工业规范和兼容性等因素,因此不同于教学性操作系统追求理论上的最先进行,Linux系统内核最注重的问题是实用和效率。
1.Linux内核被设计成单巨内核结构(相对微内核而言,微内核是一种功能更贴近硬件的核心软件,它一般仅仅包括初等内存管理、同步原语、程间通讯机制、I/O操作和中断管理,这样做有利于扩展性和移植性。但是微内核与诸如文件管理、设备驱动、虚拟内存管理、进程管理等其它上层模块之间需要有较高的通讯开销,所以目前多集中在理论教学领域,对工业应用效率难以保证。),因此效率高,紧凑性强。
2. 2.6版本前Linux内核是单线程结构----所谓但线程结构是说同一时间只有一个执行线程(内核中的执行程序)允许在内核中运行,不会被调度程序打断运行其它任务,这种内核被成为非抢占的,它的好处在于内核中没有并发任务(单处理器而言),因此避免了许多复杂的同步问题,但其不利影响是非抢占特性延迟了系统响应速度,新任务必须等待当前任务在内核执行退出才能获得运行机会。工业控制领域需要高响应速度,因此2.6版本后由于Robert love等人的贡献,将抢占技术引入了Linux内核,使得其变为内核抢占系统,当然付出的代价是同步操作进一步复杂化了。
3.Linux支持内核线程(或称守护进程)。内核线程是在后台运行而又无终端或登录shell和它结合在一起的进程。有许多标准的内核线程,其中有一些周期地运行来完成特定的任务(如swapd),而其余一些则连续地运行,等待处理某些特定的事件(如inetd和lpd)。内核线程可以说是用户进程,但和一般的用户进程又有不同,它象内核一样不被换出,因此运行效率较高。
4. Linux支持多种平台的虚拟内存管理。内存管理是和硬件平台密切相关的部分,为了支持不同的硬件平台而又保证虚拟存储管理技术的通用性,Linux的虚拟内存管理为不同的硬件平台提供了统一的接口,因此把Linux内核移植到一个新的硬件平台并不是一件很困难的事。
wamyrjn 于 2013-09-05 08:42:40发表:
路过学习