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
相關文章
相關標籤/搜索