編譯FreeBSD核心

2021-08-30 03:47:43 字數 939 閱讀 1038

過去編譯過linux的核心,發現挺容易的。現在愛上了freebsd,發現編譯freebsd的核心更加簡單,時間更快

第一步是需要看看在現有的系統上是否存在有原始碼

# ls /usr/src/sys
若出現的結果是

第二步執行下面的命令

# cd /usr/src/sys/i386/conf
然後

# cp generic sunrise
下面再編輯sunrise檔案

vi sunrise
裡面包括一些選項,根據自己的需要來定製核心的功能、驅動、模組等,在整個過程中可以參考文件

第三步是開始編譯了

# cd /usr/src/sys/i386/conf

# /usr/sbin/config sunrise

# cd ../compile/sunrise

# make depend

# make

# make install

到現在為止,如果沒有出錯那麼就是編譯安裝核心成功了,只需要重新啟動機器,就載入剛剛編譯的核心了.新的核心存放在目錄/boot/kernel下,舊的核心存在/boot/kernel.old/下

第四步,如果在載入新的核心出問題的話,可以在啟動等待10秒的時候輸入如下命令

選擇escape to a loader prompt,第6項,然後輸入unload kernel,再載入舊的核心

boot /boot/kernel.old

/kernel

最後需要提醒的是,每一次編譯都是將新編譯的核心覆蓋/boot/kernel目錄,過去/boot/kernel覆蓋/boot/kernel.old,但是不能夠保證每一次編譯都沒有問題,所以有必要在/boot下儲存乙份好的核心,如

# cp /boot/kernel /boot/kernel_good

FreeBSD核心簡介

freebsd核心可以被看做是一種伺服器,它向使用者程序提供服務。程序通過系統呼叫訪問這些服務。其中有些服務,比如程序排程和記憶體管理,採用核心態執行的程序,或者核心裡定期執行的例程這樣的形式來實現。核心程序只在核心中發揮作用,執行核心映象的 以核心特權模式執行。核心還為每台裝置啟動乙個核心程序,負...

freeBSD核心模組編寫初級

預備知識 freebsd模組事件型別 typedef enum modeventtype modeventtype t 在系統中註冊乙個載入模組和模組事件處理程式 declare module name,data,sub,order name 模組的名字 data 是乙個moduledata t型別...

核心 核心編譯 proc sys

單核心體系設計 但充分借鑑了微核心設計體系的優點,為核心引入模組化機制。核心組成部分 kernel 核心核心,一般為bzimage,通常在 boot目錄下,名稱為vmlinuz version release kernel object 核心物件,一般放置於 lib modules version ...