欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
LInux 問(wèn)題集1

1.資源問(wèn)題
1.1 請推薦一些好的Linux內核參考書(shū)?
1.2 請推薦一些好的學(xué)習網(wǎng)站
1.3 本版ftp

2. 源代碼問(wèn)題
2.1 如何得到某一版本的Linux內核源代碼?
2.2 請問(wèn)xx命令、xx庫的源碼是哪個(gè)文件?
2.3 linux-2.x.x.tar.gz.sign 文件有什么用途?
2.4 請推薦一些源代碼查看工具?
2.5 內核patch如patch-2.6.3怎么用?
2.6 如何統計linux內核有多少行代碼?
2.7 xx結構的定義在哪個(gè)內核源文件中?
2.8 volatile和__volatile__是什么意思?
2.9 do{ ... } while(0)是什么意思?
2.10 list_entry的定義是怎么回事?

3. 模塊編程問(wèn)題
3.1 模塊編程需要注意什么?
3.2 為什么insmod一個(gè)模塊時(shí)顯示版本不匹配?
3.3 為什么出現Unresolved Symbol錯誤?
3.4 為什么出現no license錯誤?
3.5 為什么看不到用printk打印的信息?

4. 內核開(kāi)發(fā)問(wèn)題
4.1 怎么制作、使用patch文件?
4.2 在內核中可以使用系統調用嗎?
4.3 在內核中怎么打開(kāi)并操作一個(gè)文件?
4.4 在內核中讀寫(xiě)文件時(shí)為什么會(huì )出現EFAULT(-14)錯誤?
4.5 怎么在系統中增加一個(gè)自己的系統調用?
4.6 怎么在內核中加入我自己的驅動(dòng)程序?
4.7 怎么通過(guò)程序得到cpu和mem使用率?
4.8 如何獲得高精度的系統時(shí)間?
4.9 怎么進(jìn)行系統性能調諧?
4.10 內核中怎么進(jìn)行互斥?

5. 其它問(wèn)題
5.1 如何學(xué)習Linux內核?
5.2 如何下載精華區?
5.3 init進(jìn)程是核心進(jìn)程嗎?init與初始進(jìn)程是不是一回事?
5.4 initrd(.img)有什么用?

6. 關(guān)于本FAQ
7. Changelog


1.資源問(wèn)題
1.1 請推薦一些好的Linux內核參考書(shū)?
  a.《Linux Device Drivers, 2nd Edition》,有中文譯本
  b.《Understanding the Linux Kernel, 3nd Edition》
  c.《Linux內核源代碼情景分析》,分上下兩冊
  d.《邊干邊學(xué)-Linux內核指導》
  e.《Linux內核2.4版源代碼分析大全》
  f.《Linux Kernel Development》
  g.《IA-64 Linux Kernel: Design and Implementation》
  注:a電子版可在http://www.oreilly.com/catalog/linuxdrive2/下載;
      f和g比較新,在國內比較難買(mǎi)到。
  h./Documentation/DocBook & /Documentation/kernel-docs.txt

1.2請推薦一些好的學(xué)習網(wǎng)站
        1. 開(kāi)源/文檔/社區/信息資源
        1.01 http://www.kernel.org
                Linux內核主頁(yè)

        1.02 http://www.gnu.org or http://www.fsf.org
                GNU/FSF主頁(yè)

        1.03 http://www.opensource.org
                Open Source權威網(wǎng)站

        1.04 http://www.osdl.org
                OSDL(Open Source Development Labs, Linus Torvalds的家)主頁(yè)

        1.05 http://www.sourceforge.net
                大型開(kāi)放源碼軟件網(wǎng)站

        1.06 http://freshmeat.net/
                大型開(kāi)放源碼軟件網(wǎng)站

        1.07 http://osdir.com
             開(kāi)放源碼目錄,提供許多開(kāi)放源碼軟件的索引和鏈接

        1.08 http://www.rpmfind.net
             提供RPM包的搜索和鏈接

        1.09 http://oss.sgi.com/projects/
             SGI的開(kāi)放源碼Linux項目

        1.10 http://oss.software.ibm.com/linux/
             IBM的開(kāi)放源碼Linux項目

        1.11 http://www-124.ibm.com/developerworks/oss/
             IBM developerWorks的開(kāi)放源碼Linux項目

        1.12 http://www.kerneltrap.org
             內核開(kāi)發(fā)相關(guān)信息和論壇

        1.13 http://kernelnewbies.org
             很好的內核學(xué)習網(wǎng)站

        1.14 http://www.kernelhacking.org/
             kernelhacking-HOWTO文檔

        1.15 http://www.tldp.org
             Linux文檔

        1.16 http://www.nongnu.org/lkdp/
             Linux內核文檔

        1.17 http://linux-mm.org/
             Linux內核mm文檔

        1.18 http://www.linuxforum.net
             中國Linux論壇

        1.19 http://www.aka.org.cn
             中國信息技術(shù)論壇-阿卡(AKA)

        1.20 http://www.lisoleg.net
             利索腳(Linux Source Learning Group)

        1.21 http://www.linuxfans.org/
             中國Linux公社

        1.22 http://www-900.ibm.com/developerWorks/cn/linux
             IBM developerWorks Linux專(zhuān)區

        1.23 http://www.linuxaid.com.cn
             LinuxAid技術(shù)支持中心

        1.24 http://lxr.linux.no/source/
             Cross-Referencing Linux,可在線(xiàn)查看Linux內核源代碼

        1.25 http://www.linux.org
             Linux信息資源

        1.26 http://www.linuxdevices.com
             嵌入式Linux信息資源

        1.27 http://www.linuxjournal.com/webindex.php
             Linux Journal雜志在線(xiàn)文章

        1.28 http://www.joyfire.net/
             本站joyfire大俠維護的站點(diǎn)

        1.29 http://lwn.net
             Linux Weekly News

        1.30 http://www.ctyme.com/intr/int.htm
             關(guān)于BIOS系統調用,很全
        2. 項目資源
        2.01 http://perso.wanadoo.es/xose/linux/linux_ports.html
             Linux移植項目鏈接資源

        2.02 http://www.uclinux.org
             uClinux主頁(yè)

        2.03 http://www.fsmlabs.com/ or http://www.rtlinux.org
             RTLinux(Real-Time Linux)主頁(yè)

        2.04 http://mail.aero.polimi.it/~rtai/
             RTAI(Real Time Application Interface for Linux)主頁(yè)

        2.05 http://www.ittc.ku.edu/kurt/
             KURT-Linux(Kansas University Real-Time Linux)主頁(yè)

        2.06 http://www.arm.linux.org.uk/
             ARM Linux主頁(yè)

        2.07 http://www.linux-mips.org/
             Linux/MIPS主頁(yè)

        2.08 http://penguinppc.org/
             Linux/PowerPC主頁(yè)

        2.09 http://www.denx.de
             Denx Software Engineering, PowerPC系列嵌入式Linux資源

        2.10 http://www.netfilter.org/ or http://www.iptables.org/
             netfilter/iptables項目

        2.11 http://www.linuxfromscratch.org
             LFS(Linux From Scratch)項目

        2.12 http://www.uclibc.org
             uClibc(C library for developing embedded Linux systems)主頁(yè)

        2.13 http://www.LinuxVirtualServer.org
             章文嵩主持的Linux Virtual Server項目

        2.14 http://linux-ha.org
             High-Availability Linux項目

        2.15 http://www.lids.org
             本站vertex大俠主持的LIDS(Linux Intrusion Detection System)項目

        2.16 http://www.minigui.org/
             本站Kongming大俠主持的MiniGUI項目

        2.17 http://user-mode-linux.sourceforge.net/
             User-Mode Linux項目

        2.18 http://lse.sourceforge.net/
             Linux Scalability Effort項目

        2.19 http://linuxperf.nl.linux.org/
             Linux Performance Tuning項目

        2.20 http://euclid.nmu.edu/~benchmark/
             Linux Benchmark項目
1.3本版ftp
        ftp://kernel:kernel@kernel.trueice.net:8021/
                /incoming/kerneltech.newsmth

        目前我所能找到的內核方面的經(jīng)典書(shū)籍電子版都有
        特別感謝trueice網(wǎng)友提供本版ftp^_^


2. 源代碼問(wèn)題
2.1 如何得到某一版本的Linux內核源代碼?
   a. http://www.kernel.org或ftp://ftp.kernel.org,這是Linux內核版本的發(fā)布
      網(wǎng)站。
   b. 很多鏡像或本地網(wǎng)站也提供部分Linux內核版本的下載,多用ftp搜索引擎。
      linuxaid.com提供的mirror:
      ftp://ftp.linuxaid.lkams.kernel.org/pub/mirrors/kernel/linux/kernel
      ftp://ftp.tsinghua.edu.cn/OS/Linux/kernel.org/linux/kernel
   c. 一般的Linux發(fā)行版如Redhat之類(lèi)會(huì )隨盤(pán)提供相應的內核源代碼,不過(guò)這個(gè)源代
      碼往往是改動(dòng)過(guò)的,與標準Linux內核有差異。

2.2 請問(wèn)xx命令、xx庫的源碼是哪個(gè)文件?
   a. 一個(gè)系統除了內核以外,還需要有shell、gcc等一系列工具和命令以及C庫等一
      系列庫,這些作為應用程序其源代碼都不在內核中,需要另外下載相應的源代碼。
   b. 對于Redhat系統,可以用rpm -qf命令來(lái)查找某一命令所在的軟件包,然后再找
      相應的源代碼包安裝。
   c. gnu.org有很多軟件源代碼如bash/glibc/binutils/make/gcc的源代碼。
   d. 可在http://www.rpmfind.net或http://www.google.com去搜一搜。

2.3 linux-2.x.x.tar.gz.sign 文件有什么用途?
    這是一個(gè)數字簽名文件,用來(lái)校驗linux-2.x.x.tar.gz這個(gè)文件在簽名后是沒(méi)有
    被第三方修改過(guò),更詳細的信息參考http://www.kernel.org/signature.html。

2.4 請推薦一些源代碼查看工具?
   a. Windows系統可以用Source Insight,Linux系統可以用Source Navigator。
   b. vim或emacs編輯器,配合cscope、ctags、etags等交叉索引工具。
   c. vim或emacs編輯器,配合grep、egrep等文本搜索工具,不過(guò)最好要對源代碼目
      錄結構有所熟悉
   d. LXR,以網(wǎng)頁(yè)的形式通過(guò)瀏覽器瀏覽,安裝復雜,可從http://lxr.linux.no/下
      載該工具也可以直接訪(fǎng)問(wèn)http://lxr.linux.no/source/在線(xiàn)閱讀Linux內核源
      代碼。
   e. GNU global,可以在命令行用,也可以生成hypertext,類(lèi)似lxr,但更省事。

2.5 內核patch如patch-2.6.3怎么用?
   a. 內核patch一般是針對前一個(gè)版本,如patch-2.6.3是針對2.6.2的內核。
   b. 內核patch一般是和ChangeLog對應,如patch-2.6.3對應于ChangeLog-2.6.3。
   c. 在內核patch中查找Makefile關(guān)鍵字可得到相關(guān)信息,如在patch-2.6.0中有:
        diff -Nru a/Makefile b/Makefile
        --- a/Makefile  Wed Dec 17 19:00:07 2003
        +++ b/Makefile  Wed Dec 17 19:00:07 2003
        @@ -1,7 +1,7 @@
        VERSION = 2
        PATCHLEVEL = 6
        SUBLEVEL = 0
        -EXTRAVERSION = -test11
        +EXTRAVERSION =
   d. 找到了針對的內核就可以用patch來(lái)升級內核了。

2.6 如何統計linux內核有多少行代碼?
   嘗試以下shell命令:
   find /usr/src/linux-2.x.x  -name "*.[chS]" | xargs cat | wc -l

2.7 xx結構的定義在哪個(gè)內核源文件中?
   a. 請使用源碼查看工具,見(jiàn)問(wèn)題2.4。
   b. 如果用grep等文本搜索工具,主要在include/linux和include/asm兩個(gè)目錄下
      搜索。

2.8 volatile和__volatile__是什么意思?
   a. volatile是C語(yǔ)言定義的關(guān)鍵字,gcc為了需要又定義了__volatile__,它和
      volatile表達的是同一意思。
   b. volatile的本意是"易變的",由于訪(fǎng)問(wèn)寄存器的速度快于訪(fǎng)存,所以編譯器一般
      都會(huì )作優(yōu)化以減少訪(fǎng)存。如果變量加上volatile修飾,則編譯器就不會(huì )對此變量
      的讀寫(xiě)操作進(jìn)行優(yōu)化,即不通過(guò)寄存器緩沖而直接訪(fǎng)存。
   c. __asm__ __volatile__一起指示編譯器不要改動(dòng)優(yōu)化后面的匯編語(yǔ)句。

2.9 do{ ... } while(0)是什么意思?
   a. 主要是為了避免宏在不同情況展開(kāi)可能會(huì )出現的一些錯誤。
   b. 在http://www.kernelnewbies.org/faq/上有詳細介紹。

2.10 list_entry的定義是怎么回事?
   a. list_entry的定義在內核源文件include/linux/list.h中:
      #define list_entry(ptr, type, member) \
((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))   b. 其功能是根據list_head型指針ptr換算成其宿主結構的起始地址,該宿主結構是
      type型的,而ptr在其宿主結構中定義為member成員。如下圖:

      req-->|type型對象起始地址
            |
            |... ...
      ptr-->|ptr指針所指的member成員地址
            |
            |... ...

     ptr指向圖中所示的位置,通過(guò)(unsigned long)(&((type*)0)->member)得到ptr
     和req之間的差值,ptr減去這個(gè)差值就得到了type型宿主結構的指針req,返回
     類(lèi)型為(type*)。


3. 模塊編程問(wèn)題
3.1 模塊編程需要注意什么?
   a. Documentation/kbuild/目錄下提供內核模塊編程的核心資料
   b. 如果要用inline功能,需要在gcc編譯選項中增加-O2

3.2 為什么insmod一個(gè)模塊時(shí)顯示版本不匹配?
   a. 某些時(shí)候用insmod -f能夠成功加載,但需謹慎使用。

3.3 為什么出現Unresolved Symbol錯誤?
   a. 首先查看文件/proc/ksyms,看內核有沒(méi)有輸出這個(gè)符號,不同的內核版本如
      2.2和2.4輸出的符號會(huì )有些變化。
   b. 如果內核輸出的符號帶有版本控制信息如符號printk_R12345678,則性質(zhì)同
      問(wèn)題3.2。
   c. 注意:現在有很多版本都不輸出sys_call_table了,另想辦法吧!

3.4 為什么出現no license錯誤?
   在源文件加入下面一行(加在文件頭部,尾部均可):
   MODULE_LICENSE("GPL");或者 MODULE_LICENSE("Dual BSD/GPL");
   試模塊license而定。

3.5 為什么看不到用printk打印的信息?
   a. 打印消息受級別的限制,消息級別可以通過(guò)printk設置,如:
        printk("<n>something");  /* 其中0<=n<=7 */
      假設控制臺的消息級別為m, 當n<m時(shí)消息打印到控制臺,否則不打印。
      這樣一方面可以提高要打印消息本身的級別(數字越小級別越高),
      另一方面可以改變控制臺的消息級別(可從1到8),如改為8可用以下命令:
       # echo "8" > /proc/sys/kernel/printk
   b. 用dmesg命令看。
   c. 當系統運行klogd和syslogd時(shí),內核消息就會(huì )由klogd分發(fā)到syslogd,
      syslogd會(huì )根據配置文件/etc/syslog.conf作相應處理,具體可以查看syslogd
      和syslog.conf的man頁(yè)。


4. 內核開(kāi)發(fā)問(wèn)題
4.1 怎么制作、使用patch文件?
   a. patch文件是由diff命令生成的,使用patch文件用patch命令,具體可查看diff
      和patch的man頁(yè)和info。
   b. diff命令的常用選項組合是urN,如:
        diff -urN linux/ my_linux/ >mypatch.diff

4.2 在內核中可以使用系統調用嗎?
   a. 可以。內核源代碼中就有使用系統調用的例子,如open()、execve()等。
   b. 在內核中使用系統調用必須要在源文件中包括以下兩行:
      #define __KERNEL_SYSCALLS__
      #include <linux/unistd.h>
   c. 內核中使用系統調用的相關(guān)定義可查看文件include/asm/unistd.h。
      如果要用的系統調用該文件中沒(méi)有定義,可以按照其格式自行添加。
   d. 如果要在模塊中使用系統調用,必須要自己定義errno如:
      int errno;
      內核在lib/errno.c中定義了errno,但該符號不導出,所以模塊編程時(shí)需要自己
      定義errno,用以存放系統調用出錯號。

4.3 在內核中怎么打開(kāi)并操作一個(gè)文件?
   a. 直接用open()、read()等系統調用,見(jiàn)問(wèn)題4.2。
   b. 用filp_open()函數打開(kāi)文件,得到struct file *的指針fp。
      使用指針fp進(jìn)行相應操作,如讀文件可以用fp->f_ops->read。
      最后用filp_close()函數關(guān)閉文件。
      filp_open()、filp_close()函數在fs/open.c定義,在include/linux/fs.h中
      聲明。
   c. 自己寫(xiě)包裝函數,可參照文件fs/exec.c中的open_exec()和kernel_read()函數。
      在http://www.linuxforum.net/forum/showflat.php?Cat=&Board=linuxK
       &Number=363455&page=&view=&sb=&o=&vc=1上有些代碼可以參照。

4.4 在內核中讀寫(xiě)文件時(shí)為什么會(huì )出現EFAULT(-14)錯誤?
   a. 內核文件系統提供的read()和write()之類(lèi)的函數,期望是對用戶(hù)態(tài)程序服務(wù)的,
      所以它會(huì )驗證讀寫(xiě)緩沖區不超過(guò)用戶(hù)空間的上限即0xC000 0000。但現在內核中
      要讀寫(xiě)文件,緩沖區在內核中即地址會(huì )超過(guò)0xC000 0000。
   b. 在讀寫(xiě)文件前先得到當前fs:mm_segment_t old_fs=get_fs();
      并設置當前fs為內核fs:set_fs(KERNEL_DS);
      在讀寫(xiě)文件后再恢復原先f(wàn)s: set_fs(old_fs);
      set_fs()、get_fs()等相關(guān)宏在文件include/asm/uaccess.h中定義。

4.5 怎么在系統中增加一個(gè)自己的系統調用?
    去http://www.linuxaid.com.cn/engineer/ideal/kernel/new_syscall.htm
    和http://www.xenotime.net/linux/syscall_ex/看看。

4.6 怎么在內核中加入自己的驅動(dòng)程序?
   a. 去http://www-900.ibm.com/developerWorks/cn/linux/kernel/l-kerconf/
      index.shtml看看,了解一下整個(gè)內核的配置編譯系統。
   b. 在相應位置建立自己的源碼目錄、文件、Makefile等。
   c. 修改上層Makefile,把自己的程序加入到內核編譯系統中。
   d. 修改上層Config.in,把自己的程序加入到內核配置系統中。
   e. 確保自己的初始化函數被調用。有兩種方法,一是顯式調用,即在原來(lái)的系統
     初始化函數中直接加入對自己的調用,如字符設備就在drivers/char/mem.c中的
     chr_dev_init()函數中加入,塊設備就在drivers/block/ll_rw_blk.c中的
     blk_dev_init()函數中加入。另一種方法是用initcall,用宏module_init來(lái)申
     明你的初始化函數,操作系統在初始化到一定階段后會(huì )自動(dòng)通過(guò)init/main.c中
     的do_initcalls()函數來(lái)統一調用這些初始化函數。module_init宏在文件
     include/linux/init.h中定義。

4.7 怎么通過(guò)程序得到cpu和mem使用率?
   a. 這些信息的最終來(lái)源都是/proc目錄下的文件,如/proc/stat等。
   b. procps包下的命令如top、vmstat等實(shí)現了這些功能,可以參照其源代碼。
   c. procps包可從Redhat發(fā)行版中得到,也可從http://www.surriel.com/procps/
     處獲得。

4.8 如何獲得高精度的系統時(shí)間?
   a. Linux中jiffy是時(shí)鐘的基本單位,對于一般的系統來(lái)說(shuō)配置成10ms。大多數時(shí)
     鐘相關(guān)的系統調用都是基于jiffy,所以精度不會(huì )太高。
   b. 可以考慮使用TSC(time stamp counter)、rtc(real time clock)等寄存器來(lái)獲得
     高精度時(shí)鐘,具體可查看相關(guān)的硬件手冊。

4.9 怎么進(jìn)行系統性能調諧?
   a. IBM developworks:
        http://www-900.ibm.com/developerWorks/cn/linux/l-kperf/index.shtml
        http://www-900.ibm.com/developerWorks/cn/linux/management/tune/index.sht
ml
   b. Linux Performance Tuning項目:http://linuxperf.nl.linux.org/
   c. http://www.fixdown.com/article/article/724.htm

4.10 內核中怎么進(jìn)行互斥?
    a. Linux內核中有兩種機制實(shí)現互斥:semaphore和spinlock。semaphore是讓進(jìn)
      程睡眠等待資源,這一般假設無(wú)法預測資源什么時(shí)候可以獲得;spin_lock一般
      用在SMP中,它假設所等待的資源馬上就會(huì )被釋放,所以循環(huán)等待資源。
      semaphore只能用于非中斷環(huán)境(典型的中斷環(huán)境過(guò)程包括象timer之類(lèi)的中斷
      服務(wù)程序,softirq等)的進(jìn)程間互斥,spinlock可以用于所有的進(jìn)程間包括不同
      cpu的進(jìn)程間的互斥,spinlock主要用于保護短小的臨界區,使用時(shí)必須要特別注
      意死鎖問(wèn)題。
    b. semaphore是通過(guò)進(jìn)程調度來(lái)實(shí)現互斥的。進(jìn)程請求獲取semaphore時(shí),如果
      semaphore空閑則該進(jìn)程獲得semaphore,設置標志并返回;如果semaphore忙
      (其它用戶(hù)已經(jīng)獲得semaphore)則系統構建等待隊列并通過(guò)進(jìn)程調度機制讓本進(jìn)
      程睡眠。進(jìn)程釋放semaphore時(shí),系統按一定規則通過(guò)等待隊列喚醒一個(gè)睡眠進(jìn)
      程。對semaphore可執行up()和down()操作,詳見(jiàn)include/asm/semaphore.h文件。
    c. spinlock主要是為SMP互斥而引入的。在請求獲取spinlock時(shí),如果空閑則獲得
      spinlock,設置標志并返回。如果spinlock已經(jīng)被其它用戶(hù)獲得而處于忙狀態(tài),
      系統就會(huì )一直占用CPU資源,不停查詢(xún)spinlock的狀態(tài)直到獲得spinlock。


5. 其它問(wèn)題
5.1 如何學(xué)習Linux內核?
    請先閱讀本版精華區內核學(xué)習目錄的相關(guān)文章。

5.2 如何下載精華區?
   a. 下載本站精華區詳見(jiàn)BBShelp版置底文章“用戶(hù)常見(jiàn)問(wèn)題”。
   b. 在本站精華區ftp上找KernelTech.html.tgz(或類(lèi)似文件名)文件。
   c. 2004-4月份的精華區下載
  ftp://youngcow.net/Special/smth%BE%AB%BB%AA%C7%F8/2004-04-09CHM/KernelTech.chm
5.3 init進(jìn)程是核心進(jìn)程嗎?init與初始進(jìn)程是不是一回事?
    Linux操作系統在系統初始化之初就捏造了一個(gè)原始進(jìn)程(原始進(jìn)程在系統初始化
   完畢后就演化成idle進(jìn)程),當系統初始化進(jìn)行到一定階段,原始進(jìn)程會(huì )創(chuàng )建(通
   過(guò)kernel_thread()函數)出來(lái)init進(jìn)程,init進(jìn)程繼續進(jìn)行系統初始化工作并在最
   后執行execve("/sbin/init",...),這樣init就從原來(lái)的核心進(jìn)程搖身一變成用戶(hù)
   進(jìn)程(用戶(hù)程序/sbin/init)了。init進(jìn)程的pid為1,原始進(jìn)程(idle進(jìn)程)的
   pid為0。所有其它的進(jìn)程都由init進(jìn)程派生,用ps或pstree命令可以看到這一點(diǎn)。

5.4 initrd(.img)有什么用?
   a. initrd(.img)是一個(gè)文件系統映像,里面一般包含一些特殊的硬件模塊尤其是存
     儲設備如scsi/raid/ext3模塊,以便在保持內核足夠小的同時(shí)又支持盡可能多的硬
     件設備,常被安裝程序使用。
     initrd(.img)也不是必需的,只要必要的模塊編譯進(jìn)內核就可以不用initrd(.img)。
   b. 在使用了initrd(.img)時(shí),系統引導的大致過(guò)程如下:
    1)Loader程序(如lilo和grub)加載內核和initrd(.img)
    2)內核解壓縮initrd(.img)為正常的RAM盤(pán)文件系統并掛接為根分區
    3)執行linuxrc,在此過(guò)程中會(huì )加載硬件模塊
    4)在linuxrc終止后,真正的根文件系統被掛接
    5)在根文件系統上完成正常的引導過(guò)程。對于正常的系統而言,執行/sbin/init,
      這時(shí)控制就會(huì )轉到正常的大家所熟知的啟動(dòng)過(guò)程。而對于安裝程序,只需將控制
      轉到安裝過(guò)程的第一階段,由它完成后續的安裝環(huán)境的加載,設備的進(jìn)一步初始
      化等操作。
   c. 要使用initrd(.img)首先內核必須配置成支持initrd:
        CONFIG_BLK_DEV_RAM=y
        CONFIG_BLK_DEV_INITRD=y
      其次要在Loader腳本中增加相應指示。如在grub.conf中增加一行:
        initrd /boot/initrd-2.4.20.img
   d. 可用mkinitrd命令創(chuàng )建initrd(.img)文件:
        mkinitrd  imagefilename  kernelversion
      如對于2.4.20的內核可以:
        mkinitrd /boot/initrd-2.4.20.img 2.4.20
   e. 具體可查看Documentation/initrd.txt和man mkiinitrd。mkinitrd命令執行的詳
      細過(guò)程可以直接查看/sbin/mkinitrd(shell腳本)文件。


6. 關(guān)于本FAQ
   本FAQ主要根據本版以前的文章整理而成。
   特別感謝mada、pepp等網(wǎng)友提出寶貴意見(jiàn)!


7. Changelog
   2004/05/10 junky
   --發(fā)布FAQ 1.0
   --調整了目錄結構
   --增加了Q2.5,Q2.6,Q5.1,Q5.2,Q5.4
   --Q1增加了2本新書(shū)
   --Q2.2增加了gnu.org的鏈接
   --Q3.1增加了init_module()返回0
   --Q3.2增加了insmod -f
   --Q4.2增加了errno的說(shuō)明
   --Q4.9改名并增加了IBM developworks的鏈接

   2004/07/07 junky
   --刪除Q2.11

   2005/11/5 jeffshia
   --更改目錄結構
   --增加了學(xué)習的網(wǎng)站

   2007/07/31 ychu
   --增加了內核參考書(shū)并更新部分書(shū)目版本號
   --增加了源碼mirror
   --修改了模塊編程注意事項
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Linux服務(wù)器啟動(dòng)過(guò)程詳解(引載)_江海川行
linuxrc詳解
Linux系統啟動(dòng)的標準流程
linux的initrd機制和initramfs機制之概述
OS linux - uboot 引導 kernel
Linux內核線(xiàn)程之深入淺出
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久