行號 | 說明 |
05 | smp_setup_processor_id,設置 CPU ID,x86 中這是一個空函式。 |
06 | lockdep_init,初始化核心鎖雜湊表,建立鎖串列的資料結構。 |
07 | debug_objects_early_init,偵錯物件群早期初始化函式,這是一個空函式。 |
08 | boot_init_stack_canary,初始化時期堆疊初始化函式,這是一個空函式。 |
09 | cgroup_init_early,控制群模組初始化,這是一個性能管理的模組,用來統計佔用 CPU 資源的程度。 |
10 | local_irq_disable,關閉 CPU 外部中斷,即執行 cli。 |
11 | 設定中斷關閉旗號為真,表示 IRQ 已經暫時關閉。 |
12 | tick_init,時間滴答控制器初始化函式,將時間滴答控制器的通知器安裝到核心時鐘事件通知器串列。 |
13 | boot_cpu_init,啟動時期 CPU 初始化函式,設定 CPU 位元旗號,包括 online、active、present、possible。 |
14 | page_address_init,頁位址初始化函式,這是一個空函式。 |
15 | 顯示核心資訊在檔案 linux/init/version.c,顯示內容是 Linux version 3.0.0 (root@localhost.localdomain)(gcc version 4.4.4 20100503) (Red Hat 4.4.4-2) (GCC)#1 SMP Mon Aug 1 14:25:54 CST 2011 。 |
16 | setup_arch,架構設置函式,回應命令列字串。 |
17 | mm_init_owner,此函式為空函式。 |
18 | mm_init_cpumask,此函式為空函式。 |
19 | setup_command_line,設置命令列函式,取得啟動命令列和之前架構設置函式回應的命令列的字串內容。 |
20 | setup_nr_cpu_ids,設定 nr_cpu_ids,cpu_possible_mask 的最後一個值為一的位元數,即 CPU 可能的最大數目。 |
21 | setup_per_cpu_areas,配置每個 CPU 專屬的記憶體體積。 |
22 | smp_prepare_boot_cpu,為對稱多處理器系統預備好啟動 CPU,即設定目前工作的 CPU。 |
23 | build_all_zonelists,為所有的 node 建立 zonelist,用來管理記憶體。 |
24 | page_alloc_init,設定頁配置時的 CPU 通知器。 |
25 | 顯示啟動命令列的命令字串內容。 |
26 | parse_early_param,執行啟動命令,這是早期的啟動參數。 |
27~29 | parse_args,執行架構設置函式的命令列字串。 |
30 | setup_log_buf,設置紀錄緩衝區記憶體,。 |
31 | pidhash_init,PID 雜湊串列表初始化。 |
32 | vfs_caches_init_early,VFS 早期快取初始化,linux/fs/dcache。 |
33 | sort_main_extable,將例外程式表依照位址排列,位址值大的排在前面,這樣的做法是為了用 binary search 尋找例外程式。 |
34 | trap_init,感覺是 trap 例外的初始化,但筆者沒有找到程式實體。 |
35 | mm_init,設置核心記憶體配置器,會處理取得 cgroup 所需記憶體,記憶體管理器初始化,核心記憶體快取初始化,CPU 晚期變數初始化,分頁表快取記憶體初始化,虛擬記憶體初始化。 |
36 | sched_init,初始化排程器,這要執行在所有中斷致能之前。完整的排程器會在 smp_init 時設置。 |
37 | preempt_disable,除能先佔式多工,這是個空函式。除能先佔式多工,因為初期的排程器比較脆弱,還不能支援此功能。事實上也還不需要支援此功能,因為只是讓幾個初始化工作跑起來而已。 |
38~42 | 當外部中斷已經致能,表示出錯,顯示錯誤訊息,並將外部中斷關掉。 |
43 | idr_init_cache,初始化 IDR 管理器,IDR 感覺像是 ID REGISTER 的簡寫,用來管理系統中所有 ID 對映位址的結構。這裡只是從快取配置一小塊記憶體給 IDR 管理器的 IDR_LAYER 佇列頭 idr_layer_cache。 |
44 | perf_event_init,效能事件管理器初始化函式,用來統計每個 CPU 的效能。 |
45 | rcu_init,RCU 機制初始化,RCU 是 READ-COPY UPDATE 的簡寫。 |
46 | radix_tree_init,樹根節點初始化,使用快取記憶體。 |
47 | early_irq_init,早期外部中斷描述器初始化,只是將資料結構初始化。 |
48 | init_IRQ,這個函式應該是在 ARCH。 |
49 | prio_tree_init,初始化優先權樹,用於優先權尋找樹演算法。 |
50 | init_timers,計時器初始化,安裝計時器軟體中斷。雖然名稱是 OPEN ,但程式碼看起來是安裝。 |
51 | hrtimers_init,安裝高解析度計時器中斷,高解析度應該是以時脈計數,而非以豪秒幾時。 |
52 | softirq_init,軟體中斷初始化函式,初始化每個 CPU 的中斷串列,安裝軟體中斷函式 TASKLET 和 HI_SOFTIRQ。TASKLET 是延緩的任務中斷處理,HI_SOFTIRQ 是高優先權軟體中斷。 |
53 | timekeeping_init,時間保持函式,初始化時脈源和時間保持的相關參數值。 |
54 | time_init,時間初始化函式,這個函式可能在 /arch。 |
55 | profile_init,初始化 KERNEL TEXT PROFILE,感覺是保留 KERNEL 程式碼的空間,給一個側寫。為什麼要使用到 kzalloc、alloc_pages_exact、vzalloc?? |
56 | call_function_init,CPU 功能初始化函式,將各 CPU 的 lock list 初始化。並且將熱插拔 CPU 初始化。 |
57~58 | 再次檢查中斷功能,當外部中斷已經致能,表示出錯,顯示錯誤訊息,並將外部中斷關掉。 |
59 | 取消啟動初期 IRQ 除能旗號為否,表示要允許 IRQ 致能。 |
60 | local_irq_enable,致能 IRQ,local 可能表示只是用於現在的 IRQ 設定,不是給後來的作業系統使用的 IRQ。 |
61 | GFP 許可遮罩,表示有哪些 GFP 功能被允許。GFP 是 global function plane 的簡寫,用來表示全系統的功能規劃。 |
62 | kmem_cache_init_late,核心快取記憶體晚期初始化函式,因為使用 slub 所以是空函式。 |
63 | console_init,操控台初始化,這是為了看輸出的訊息,不是為了下命令。當然也可以下命令,但以此時來說是個危險動作。 |
64 | 系統錯誤旗號為真,顯示錯誤訊息並停止系統運作。 |
65 | lockdep_info,顯示鎖依賴資訊,包括依賴子類別、依賴深度、依賴鑰匙、依賴單元、依賴鏈、鏈雜湊表體積等。 |
66 | locking_selftest,上鎖自我測試,用來測試硬體中斷與軟體中斷的上鎖解鎖操作的程式蟲。 |
67~76 | 當組態常數 CONFIG_BLK_DEV_INITRD 為已定義。檢查 INITRD,有錯誤時顯示錯誤訊息,並設定 initrd_start 為否表示沒有啟用 INITRD。 |
77 | page_cgroup_init,初始化頁控制群。 |
78 | enable_debug_pagealloc,致能頁配置的偵錯功能,空函式。 |
79 | debug_objects_mem_init,致能物件記憶初始化的偵錯功能,。 |
80 | kmemleak_init,初始化記憶體遺漏控制器,。 |
81 | setup_per_cpu_pageset,設置每個 CPU 的頁集合器,並初始化頁集合器。在此之前只有啟動時期頁集合器。 |
82 | numa_policy_init,numa 策略初始化。 |
82 | late_time_init,當初始程序晚期時間初始化函式指標不是空指標,執行晚期時間初始化函式。 |
84 | sched_clock_init,排程器時脈初始化函式,。 |
85 | calibrate_delay,校正時間延遲參數值。 |
86 | pidmap_init,初始化 PID 控制器對映圖,。 |
87 | anon_vma_init,匿名頁虛擬記憶體控制器初始化,anon 是 anonymous 的簡寫。 |
89 | efi_enter_virtual_mode,當 EFI 致能旗號為真,進入 EFI 虛擬模式。EFI 是 EXTENSIBLE FIRMWARE INTERFACE。 |
91 | thread_info_cache_init,行程資訊快取控制器初始化,這是一個空函式。 |
92 | cred_init,信用管理器初始化,取得一塊可以用來做信用管理的記憶體。 |
93 | fork_init,任務管理器初始化,。 |
94 | proc_caches_init,行程控制器快取初始化,包含信號快取、檔案快取、檔案系統快取。 |
95 | buffer_init,緩衝區管理器初始化,有一個緩衝串列頭在快取記憶體。 |
96 | key_init,鑰匙管理器初始化,這是一個空函式。 |
97 | security_init,安全管理器初始化,這是一個空函式。 |
98 | dbg_late_init,初始化程序晚期偵錯函式,這是一個空函式。 |
99 | vfs_caches_init,虛擬檔案系統快取初始化,。 |
100 | signals_init,信號管理器初始化,。 |
101 | page_writeback_init,頁寫回機制初始化,。 |
103 | proc_root_init,根目錄初始化函式,。 |
105 | cgroup_init控制群控制器初始化函式,。 |
106 | cpuset_init,CPU集合初始化,初始化頂成 CPU 集合和內部檔案系統的 CPU 集合。CPU 集合應該是可用的 CPU 的集合。 |
107 | taskstats_init_early,任務狀態早期初始化函½½式,取得任務狀態管理器快取記憶體,建立CPU 的聽取者串列和讀寫互斥機制。 |
108 | delayacct_init,任務延遲管理器,應該是用於任務閒置時間的計數。 |
109 | check_bugs,檢查 CPU 蟲函式,確定 CPU 可以正確工作。 |
110 | acpi_early_init,ACPI 匯流排早期初始化函式。 |
111 | sfi_init_late,SFI 初始程序晚期設定函式,SFI 是 SIMPLE FIRMWARE INTERFACE。 |
112 | ftrace_init,功能追蹤器初始化函式,ftrace 是 function trace 的簡寫。 |
113 | rest_init,剩餘初始化函式,執行剩下未初始化的工作。 |