操作系统内核是个什么东西?

什么是内核  内核是操作系统的最核心最重要的模块,是操作系统首先加载到内存的部分,在保证尽可能小的内存使用的同时要尽可能多的为操作系统的应用程序以及其他部分提供基本的服务,内核代码通常是被加载到内存的保护区域,从而防止应用直接访问内核的内存区域,起到应用和内核隔离的作用,保证了操作系统的可靠稳定。  严格地说,内核并不是计算机操作系统中必要的组成部分,但是为了抽象出统一的硬件操作接口,几乎每个操作系统都会有一个内核,比如Linux内核就被广泛的使用在Linux,FreeBSD,Android等操作系统上。

内核负责哪些内容  内核是连接硬件和应用的桥梁。通常来说,内核负责的内容包括:内存管理进程和任务管理设备管理IO通信中断处理文件系统等等两个主要内核架构1 宏内核架构(Monolithic Kernel)  在此类内核架构的早期阶段所有基本的系统服务(如进程和内存管理,中断处理等)都打包到内核空间中的单个模块中。

这种类型的体系结构存在一些严重的缺点,例如:内核的大小非常大;可维护性很差;修复一个错误或添加某个新功能可能导致重新编译整个内核,耗费数小时。  在现代的宏内核架构中,内核由可以动态加载和卸载的不同模块组成。这种模块化方法可以轻松扩展操作系统的功能。内核的可维护性变得非常容易,因为每当特定模块中发生更改或错误修复后,只需要加载和卸载相关的模块。

没有必要重新编译整个内核。此外,这种动态加载模块的方式为各种平台(例如嵌入式设备等)裁剪内核变得非常容易,因为我们可以轻松卸载我们不想要的模块。我们熟知的Linux内核就是宏内核。2 微内核架构(Micro Kernel)  这种内核架构主要为了解决不断增长的内核代码大小的问题,因为在宏内核中不能很有效的进行控制。

微内核架构允许在用户空间运行设备驱动程序,协议栈,文件系统等基本服务。这减少了内核代码的大小,并且还提高了操作系统的安全性和稳定性,因为我们只在内核中运行最少的代码。假如网络服务等基本服务因缓冲区溢出而崩溃,那么只有网络服务的内存会被破坏,系统的其余部分仍然可以运行。  在微内核架构中,操作系统所有基础的服务都作为户空间的一部分,系统中的其他程序通过进程间通信(IPC)使用这些服务。

例如:有用于设备管理的驱动,网络协议栈,文件系统,图形管理等服务。微内核服务本质上是一些守护进程,除了内核授予它们中的一些特权来与物理内存的某些部分进行交互,否则大多数程序都不能与这些部分进行交互。授予特权的服务(尤其是设备驱动服务)可以直接与硬件交互。那么,微内核架构在内核空间中推荐的最低限度是什么,或者说最基本的微内核需要包括什么?内存保护进程调度进程间通信(IPC)除此之外,所有其他基本服务都可以成为用户空间的一部分,并且可以以服务的形式运行。

FreeBSD操作系统很优秀,为何Linux大行其道?

本来bsd类系统发展得比linux好,现在本该是bsd系统的天下。但是有一家公司声称它拥有unix系统的版权(bsd类系统最初是由unix发展而来),警告bsd的用户将来可能会追究侵权责任。并且同bsd系统开发组织打官司。这家公司早已没有其它业务,是个空壳公司,就指望打官司能赢笔钱。打官司的这期间各大企业不敢再用bsd系统,担心会惹上官司。

这时linux就成了一个替代品,原来bsd的用户陆续转到linux上。这场官司持续数年,最后那家公司败诉,但bsd已经失去了机会,linux已经占据了主导地位。bsd和linux的授权协议有很大区别,bsd授权是真正送给你用,是真正的自由软件;linux使用gpl授权协议,要求你修改或包含它的源码后必须把你自己编的软件也开源。


文章TAG:FreeBSD  freebsd什么内核  什么  内核  
下一篇