linux内核管理

 

一  linux组成:kernel、库、rootfs、程序

    一、kernel的功能:linux

        1) kernel提供的功能都经过系统调用给用户接口npm

   2) kernel包括:进程管理 、内存管理 、网络管理 、驱动程序、安全管理 、文件系统安全

 

 

  二、库网络

    函数功能模块集合,调用接口是二进制程序,要想运行,必须别其余程序调用,即其余程序面向硬件的一个中间层,有两种情形模块化

      1)过程调用(procedure)无返回值函数

      2)函数调用(function ):有返回值post

  三、rootfsui

    linux一切皆文件,除了一级文件外,其余文件须要挂载至根文件系统spa

  四、程序操作系统

    1)、开机过程
                  开机 -->内核运行 --> 内核加载根文件系统 -->运行根文件系统上的第一个应用程序init

    init:它是负责后面的总的应用程序的启动回收等,启动可能须要向内核申请,这一切都在用户空间运行,若是init程序终止了,则用户空间的全部程序终止
              2)、配置文件
                  让程序按照咱们须要的方式一直运行下去

 

二 运行中分为二层系统环境

  1)用户空间:应用程序

  2)内核空间:系统调用时会运行

 

三 内核程序设计流派

  内核也是应用程序,内核具备许多功能,那么是将这些功能全都整合到内核中,仍是各功能独立成子系统,是内核设计流派不一样的主要缘由。

    

 

 

  注:linux在一步步的发展中吸收了微内核的设计经验,虽然是单内核,可是兼具微内核的特性。

       linux经过使用模块化内核设计来兼具微内核特性,但这样的模块化设化设计并非像微内核同样是各个子系统,而是由核心加外围的功能性模块组成内核。而微内核子系统都是各自独立运行的,不须要依赖其余部分就能工做。而linux各模块必须依赖核心,在使用时进行装载,不用时被动态卸载。linux下的模块外在表现为类型程序的库文件,只是程序库文件后缀名为.so,而内核模块后缀名为.ko(kernel object),被内核调用。  

 

四 linux操做系统中内核特色

支持模块化

        linux内核会将其各部分功能模块化,这使得在安装linux内核时,能够仅保持最基本的内核和功能,不过内核中模块数量会变多。linux内核中的.ko(kernel object)文件就是能够被内核调用的内核模块

        作如下假设:驱动是内核提供的,编译好一个内核以后,在装在主机上,在将来添加新的硬件设备没有新的驱动的话。是从新编译一次内核?这种设计是一件反人类的设计啊,所以引入了模块设计

       模块化设计得以免这种状况,故各大厂商能够经过模块化的形式开发本身的驱动,只需针对某一特定设备开发本身驱动程序便可,在编译驱动模块。因为linux支持动态装载和卸载模块,所以当我须要和不须要某一功能时,可自行拆卸,此操做并不影响核心的正常运行。

 

五 linux内核的组成部分

  一、内核核心文件

    /boot/vmlinuz-VERSION-release

       VERSION :内核版本,release:rpm包的发行号,不是必要的  

  二、ramdisk(内存盘)

     CentOS 5:/boot/initrd-VERSION-release.img
                  CentOS 6,7:/boot/initramfs-VERSION-release.img

  当系统完成内核的加载以后,内核要加载根文件系统以启动用户空间,可是根文件系统是在某个硬件设备之上,内核须要某驱动程序来装载根文件系统,可是驱动程序的文件又存在某目录之下,也就是存在根文件系统之下(鸡和蛋的问题)

            内核有两种解决方案:

    方案一:将驱动程序编译进内核,可是由于不知道用户要装载哪一种根文件系统,会致使内核变复杂

    方案二:借助一个外部设备来生成驱动根文件系统的驱动程序,ramdisk就是这样一个文件,它把内存当作一个磁盘来使用,将硬盘设备装载至内核,伪根文件系统仅仅存有驱动根文件系统所在硬件设备的文件,它随着内核被装载至内存也装载进内存,它和内核在同一个目录之下,因此内核完成启动初始化后,就来加载这个文件中的各类驱动程序,这个文件不是提早制做后的,而是内核被加载以后动态生成的,以相对应的生成对应硬件设备的驱动程序文件。它仅仅是辅助装载驱动,装载完成以后进行根切换,把临时的这个为根文件系统切换为真正的根文件系统              

  三、功能模块文件

    /lib/modules/VERSION-release

 
#查看内核核心文件
[root@Centos5 ~]# ls /boot
config-2.6.18-398.el5  grub  initrd-2.6.18-398.el5.img  lost+found  message  symvers-2.6.18-398.el5.gz  System.map-2.6.18-398.el5  vmlinuz-2.6.18-398.el5
vmlinuz-2.6.18-398.el5  内核核心文件
 
 
 
#查看内核模块文件
[root@Centos5 ~]# ls /lib/modules/2.6.18-398.el5/
build           modules.dep          modules.pcimap    updates
extra           modules.ieee1394map  modules.seriomap  weak-updates
kernel          modules.inputmap     modules.symbols
modules.alias   modules.isapnpmap    modules.usbmap
modules.ccwmap  modules.ofmap        source
相关文章
相关标签/搜索