1.操作系统和内核简介:
⑴操作系统:
是指在整个系统中负责完成最基本功能和系统管理的那些部分。这些部分应该包括内核,设备驱动程序,启动引导程序,命令行shell或者其他种类的用户界面,基本的文件管理工具和系统工具。
⑵系统:
包括操作系统和所有运行在它之上的应用程序。
⑶内核:
由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。
⑷内核空间:
对于提供保护机制的现代系统来说,内核独立干普通应用程序,它一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。这种系统态和被保护起来的内存空间,统称为内核空间。当内核运行的时候,系统以内核态进入内核空间.
⑸用户空间:
应用程序在用户空间执行。只能看到允许它们使用的部分系统资源,并且不能使用某些特定的系统功能,不能直接访问硬件,还有其他一些使用限制〖其实,没有固定的结论,例如,它们不再被使用).普通用户程序以用户态进入用户空间.应用程序通过系统调用和内核通信来运行.
⑹进程上下文:
当一个应用程序请求执行一条系统调用,我们说内核正在代其执行。在这种情况下,应用程序被称为通过系统调用在内核空间运行,而内核被称为运行于进程上下文中。这种交互关系一应用程序通过系统调用陷入内核一一是应用程序完成其工作的基本行为方式。
⑺中断机制:
当硬件设备想和系统通信的时候,它首先要发出一个异步的中断信号去打断内核正在执行的工作。中断通常对应着一个中断号,内核通过这个中断号查找相应的中断服务程序,并调用这个程序响应和处理中断。为了保证同步,内核可以停用中止一一既可以停止所有的中断也可以有选择的停止某个中断号对应的中断。许多操作系统的中断服务程序都不在进程上下文中执行。它们在一个与所有进程都无关的、专门的中断上下文中运行。之所以存在这样一个专门的执行环境,就是为了保证中断服务程序能够在第一时间响应和处理中断请求,然后快速的退出。
⑻处理器活动范围:
在任何指定时间点上的活动范围概括为下列三者之一:
①运行于内核空间,处于进程上下文,代表某个特定的进程执行。
②运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断。
③运行于用户空间,执行用户进程。
以上所列几乎包括所有情况。即使边边角角的情况也不例外,例如,处理器空闲时,内核就运行一个空进程,处于进程上下文,但运行于内核空间。
2.linux内核与unix内核的比较:
操作系统内核可以分为两大设计阵营:单内核和微内核(第三阵营外内核,主要用在科研系统中,但也逐渐在现实世界中壮大起来〉。
⑴
单内核:
单内核是两大阵营中一种较为简单的设计。单内核就是把它从整体上作为一个单独的大过程来实现,并同时运行在一个单独的地址空间。因此,这样的内核通常以单个静态二进制文件的形式存放于磁盘。所有内核服务都在这样的一个大内核空间中运行。内核之间的通信是微不足道的,因为大家都运行在内核态,并身处同一地址空间:内核可以直接调用函数,这与用户空间没有什么区别。这种模式的支持者认为、单模块具有简单和高性能的特点。unix系统大多是但内核。
⑵
微内核:
微内核的功能被划分为独立的过程,每个过程叫做一个服务器。理想情况下,只有强烈请求特权服务的服务器才运行在特权模式下,其他服务器都运行在用户空间。不过,所有的服务器都保持独立并运行在各自的地址空间。因此,就不可能像单模块内核那样直接调用函数,而是通过消息传递处理微内核通信。
⑶
linux内核:
Linux是一个单内核,也就是说,Linux内核运行在单独的内核地址空间。不过,Linux汲取
了微内核的精华:其引以为豪的是模块化设计、抢占式内核、支持内核线程以及动态装载内核模块的能力。不仅如此,Linux还避其微内核设计上性能损失的缺陷,让所有事情都运行在内核态,直接调用函数,无需消息传递。至今,Linux是模块化的、多线程的以及内核本身可调度的操作系统。
⑷
linux内核和unix内核分析比较:
①
Linux
支持动态加载内核模块。尽管Linux内核也是单内核,可是允许在需要的时候动态地卸
除和加载部分内核代码。
②
Linux支持对称多处理(SMP)机制,尽管许多Unix的变体也支持SMP,但传统的Unix并不
支持这种机制。
③Linux内核可以抢占(preemptive)。与传统的Unix不同,Linux内核具有允许在内核运行任
务优先执行的能力。在其他各种Unix产品中,只有Solaris和IRIX支持抢占,但是大多数传统的Unix内核不支持抢占。
务优先执行的能力。在其他各种Unix产品中,只有Solaris和IRIX支持抢占,但是大多数传统的Unix内核不支持抢占。
④
Linux
对线程支持的实现比较有意思:内核并不区分线程和其他的一般进程。对于内核来说,
所有的进程都一样——只不过其中的一些共享资源而已。
⑤Limix提供具有设备类的面向对象的设备模型、热插拔事件,以及用户空间的设备文件统(sysfs)
⑥Linux忽略了一些被认为是设计得很拙劣的Unix特性,像STREAMS,它还忽略了那些实际上已经
已经根本不会使用的过时标准。
⑦Linux体现了自由这个词的精髓。现有的Linux特性集就是Linux公开开发模型自由发展的结
果。如果一个特性没有任何价值或者创意很差,没有任何人会被迫去实现它。相反的,在Linux的发展过程中已经形成了一种值得称赞的务实态度:任何改变都要针对现实中确实存
⑧⑨⑩