unix/linux内核在系统里扮演什么

   unix/linux内核在系统里扮演什么角色?

  不仅仅是FreeBSD系统,每一个操作系统都有一个内核---从MS-DOS、Windows到高级终端大型机,但是各种系统对内核的态度不同,有些系统花费了很大精力对用户隐藏内核。不管是Windows或UNIX系统的发行版本都有一个默认的内核,而且每次发行一个新版本时,所做的改动大部分为新设备提供了驱动支持。内核负责遥相呼应以连接到系统的设备,这也就是为什么Windows需要为新的或以前不支持的设备安装驱动程序的原因,而且一般都需要重新启动系统--因为内核已经被修改了,为了使用新的内核,系统必须重新启动,否则就要求系统能够将新设备作为一个内核扩展或都模块载入。

  从内核的构架来看,FreeBSD使用微内核(microkernel)构架,也就是说内核较小而且是模块化的。Windows NT和Mach(Mac OS X基于的内核)是微内核的另外几个例子,在这些系统中,新设备一般都被伪内核模块加入系统中---这些模块可能在系统运行过程中装载和卸载而不用重新编译内核。但是Linux和Windows 9x系统是整体内核(monolithic kernel),其中的内核代码都从性能角度考虑,尽可能地进行了优化并且使得开发人员维护起来也很容易,但每次往系统中加入新设备之后,会要求系统管理员重新编译内核。

  这并不是一个十分准确的描述---Linux正在尽量将内核模块化,FreeBSD的内核因为这些不同的原因而必须重新编译,微内核和整体内核之间的不同很大各应骒一个理论问题,不仅仅是在设备支持上有着不同,二者之间最基本的不同在于,微内核提供了一个支持非系统调用的用户处理级别或环,而不用全部在系统内部完成,使得岩代大郎的核心精简蛭了只包含精华的程序,也就是说内核中包含的都是必须要求以监护模式执行状态的最高级别的部分,是为了增加内核运行的健壮性,并保证内核处理过程容易理解和管理,同时也容易实现设备的模块化。

  尽管上述都挺好的,不幸的是满足每种设备类型和选项都可模块化而且都可在运行时,进行装载要求的崊就和主同一样不现实,在有了一定的FreeBSD使用经验之后,读者脍体会到这一点,会发现无论如何也不可避免地需要重新编译内核。

  Windows内核在哪里?

  在Windows中内核是C:WindowsSystem中的可执行文件:

  UNIX内核在哪里?

  在很多UNIX系统中,通常放置内核的位置位于文件系统顶部的根目录;而FreeBSD系统的内核是放在/boot中的。

时间: 2025-01-02 10:38:02

unix/linux内核在系统里扮演什么的相关文章

与oracle紧密相关的unix/linux内核参数

        下面是几个与oracle紧密相关的unix/linux内核参数,在安装数据库的时候,一般都需要根据实际情况进行调整. Init.ora Parameter Kernel Parameter db_block_buffers shmmax, shmall db_files(maxdatafiles) nfile, maxfiles large_pool_size shmmax, shmall log_buffer shmmax, shmall processes nproc, se

探讨Linux内核时间系统的概况

时间系统的工作需要软硬件以及操作系统的互相协作,在上一部分,我们已经看到大多数时间函数都依赖内核系统调用,GlibC 仅仅做了一次请求的转发.因此必须深入内核代码以便了解更多的细节. 内核自身的正常运行也依赖于时钟系统.Linux 是一个典型的分时系统,CPU 时间被分成多个时间片,这是多任务实现的基础.Linux 内核依赖 tick,即时钟中断来进行分时. 为了满足应用和内核自己的需求,内核时间系统必须提供以下三个基本功能: 提供系统 tick 中断(驱动调度器,实现分时) 维护系统时间 维护

探讨最新Linux内核时间系统的变化

近年来,随着 Linux 的广泛使用,对时间编程提出了更高的要求.http://www.aliyun.com/zixun/aggregation/18208.html">实时应用.多媒体软件对时钟和定时器的精度要求不断提高,在早期 Linux 内核中,定时器所能支持的最高精度是一个 tick.为了提高时钟精度,人们只能提高内核的 HZ 值 (一个内核参数,代表内核时钟中断的频率).更高的 HZ 值,意味着时钟中断更加频繁,内核要花更多的时间进行时钟处理.而内核的任何工作对于应用来说纯粹是无

Torvalds 对于 Linux 内核中潦草的 Unix 千年虫 bug 补丁感到很不爽

2000年到来前,"千年虫"bug曾经引发了很大的恐慌,甚至不少影视剧中都有夸大的描写.不过在紧急磋商和"打补丁"之后,软硬件"无法正确处理2000年问题"的千年虫危机算是平稳度过了.但--事实真的如此吗?对于Unix类操作系统来说,它们其实还面临着同样的问题,那就是--2038年危机!(又称"Unix千年虫") 该操作系统底层的日期数值,存储在一个32位的整数签名中,而起始点则是1970年1月1日.(还记得iOS里往前调时间

《UNIX/Linux 系统管理技术手册(第四版)》——1.5 本书使用的示例系统

1.5 本书使用的示例系统 UNIX/Linux 系统管理技术手册(第四版) 我们已经选择了3款Linux发行版本和3款UNIX变体,把它们作为我们全书讨论所采用的示例系统:Ubuntu Linux.openSUSE.Red Hat Enterprise Linux.Solaris.HP-UX和AIX.这些系统是整个市场的代表,它们加起来占据了现如今投入使用的系统的绝大多数. 除非指定一种特定发行版本,否则本书中的内容一般都适用于我们用作示例的所有发行版本.只适用于某种特定发行版本的细节将采用发

Torvalds对于Linux内核中潦草的Unix千年虫bug补丁感到很不爽

2000年到来前,"千年虫"bug曾经引发了很大的恐慌,甚至不少影视剧中都有夸大的描写.不过在紧急磋商和"打补丁"之后,软硬件"无法正确处理2000年问题"的千年虫危机算是平稳度过了.但--事实真的如此吗?对于Unix类操作系统来说,它们其实还面临着同样的问题,那就是--2038年危机!(又称"Unix千年虫") 该操作系统底层的日期数值,存储在一个32位的整数签名中,而起始点则是1970年1月1日.(还记得iOS里往前调时间

Linux内核里的数据结构——位数组

Linux 内核中的位数组和位操作 除了不同的基于链式和树的数据结构以外,Linux 内核也为位数组(或称为位图(bitmap))提供了 API.位数组在 Linux 内核里被广泛使用,并且在以下的源代码文件中包含了与这样的结构搭配使用的通用 API: lib/bitmap.c include/linux/bitmap.h 除了这两个文件之外,还有体系结构特定的头文件,它们为特定的体系结构提供优化的位操作.我们将探讨 x86_64 体系结构,因此在我们的例子里,它会是 arch/x86/incl

Linux内核里的DebugFS

DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据.类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上,而是Linux内核运行起来后才建立起来. 通常情况下,最常用的内核调试手段是printk.但printk并不是所有情况都好用,比如打印的数据可能过多,我们真正关心的数据在大量的输出里不是那么一目了然;或者我们在调试时可能需要修改某些内核变量,这种情况下printk就无能为力,而如果为了修改某个值重新

Linux 内核里的数据结构——位数组

Linux 内核中的位数组和位操作 除了不同的基于链式和树的数据结构以外,Linux 内核也为位数组(或称为位图bitmap)提供了 API.位数组在 Linux 内核里被广泛使用,并且在以下的源代码文件中包含了与这样的结构搭配使用的通用 API: lib/bitmap.c include/linux/bitmap.h 除了这两个文件之外,还有体系结构特定的头文件,它们为特定的体系结构提供优化的位操作.我们将探讨x86_64 体系结构,因此在我们的例子里,它会是 arch/x86/include