導航:首頁 > 源碼編譯 > minix3能編譯內核嗎

minix3能編譯內核嗎

發布時間:2022-11-26 21:03:20

1. 誰能介紹一下minix謝謝了

在正式進入Minix的安裝介紹之前,先談一談Minix與UNIX和linux的關系以及他的設計思想。Minix是一個類UNIX操作系統,其2.0版符合POSIX 1003.1和ISO9945-1工業標准。過去,UNIX操作系統的起源與發展與其源代碼的公開是分不開的,而UNIX操作系統設計思想的先進性與前瞻性也是無與倫比的。時至今日,大學中"操作系統原理"課一直使用UNIX作為應用實例,而AT&T公司注意到了UNIX的商業價值後,不再允許用UNIX的源代碼進行教學。學習"操作系統原理"課就成了只談理論而不談設計與實現。作為計算機科學教育家的Tanenbaum開發出了Minix用於操作系統教學。與UNIX相比,UNIX注重代碼的高效率,而Minix則強調代碼的可讀性與簡潔性。很快,Minix在網路中流行起來。有很多人,希望為Minix添加新的特性。而Tanenbaum認為Minix應該作為教學使用,眾多新特性只會干擾對操作系統本質的認識。於是,人們把注意力轉向設計一個類Minix的操作系統,這最終導致了Linux的誕生。下面正式進入Minix安裝過程的學習。

第一步:製作安裝介質

首先,需要9張空白的優質3寸盤,最好是名牌產品。由於fdvol命令在執行時遇到磁碟問題很容易跳出,而且在安裝時會帶來麻煩!(Dimitery:學校發的protel99的那張盤很好用)在DOS或Windows下進入Minix光碟的\Minix\I386目錄,鍵入如下的命令:

fdvol 1440 A: i386\ROOT i386\USR
fdvol 1440 A: i386\USR.TAZ
fdvol 1440 A: SYS.TAZ
fdvol 1440 A: CMD.TAZ

命令的第一行表示用fdvol軟體將Minix的啟動映像和安裝映像(ROOT+USR)逐位元組拷貝到一張1.44M的軟盤上。這一點也正說明了為什麼前面說需要使用優質磁碟。系統數據會寫滿整張磁碟的每一個扇區、每一條磁軌。磁碟上任何的壞道都會讓以後的系統安裝推倒重來。命令的其他各行分別表示將Minix的系統軟體(USR.TAZ 三張軟盤)、Minix操作系統源代碼(SYS.TAZ 兩張軟盤)、系統軟體源代碼(CMD.TAZ 三張軟盤)拷貝到軟盤上。

第二步:劃分Minix分區

雖然Minix操作系統在安裝的過程中會啟動一個名為"part"分區程序來劃分Minix分區,但是它實在是太難用了。建議使用spfdisk來建立Minix主分區,可以把下載的spfdisk放到一張啟動盤啟動計算機,運行spfdisk.exe。其中分區ID為81。Minix分區最低只需30兆的空間就足夠了。其中整個系統10兆,系統源代碼和聯機幫助10兆,整個系統的編譯時的臨時空間10兆。(註:spfdisk分區時不詢問分區大小而詢問柱頭數目。)然後再將該Minix主分區標記為活動分區。最後用剛才製作的第一張(ROOT+USR)軟盤重啟動計算機即可。

第三步:安裝Minix操作系統

在下面的安裝說明中,為了正確區分屏幕+信息與用戶的輸入,用藍色字元標識用戶的輸入,綠色的/*…*/表示我對該行的注釋。
Finish the name of device to mount as /usr: /dev/fd0c
/*將軟盤掛裝在/usr目錄上。*/
/*再次重啟後…*/
noname login: root
# setup
What type of keyboard do you have? You can choose one of:french italian latin-am scandinavn uk us-swap
german japanese olivetti spanish us-stdKeyboard type? [us-std]
/*詢問鍵盤的類型,默認為美國標准,這里回車即可。*/

Select device ----first---- --geom/last-- ------sectors-----
Device Cyl Head Sec Cyl Head Sec Base Size Kb
/dev/hd0 ? ? ?
? ? ? ? ? ? ? ? ?
Num Sort Type
? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ?

Type '+' or '-' to change, 'r' to read, '?' for more help, '!' for advice
/*part分區程序,鍵入 'r' 讀取硬碟分區信息,'?' 的位置改變為具體的硬碟分區信息。*/
/*鑒於我們在第二步中已經事先為Minix分好區,在這里只需記下Minix的分區號(假設是hd2),鍵入 'q' 退出。*/

作者: xiaolong85 2004-11-29 18:56 回復此發言

--------------------------------------------------------------------------------

2 minix的安裝

You have created a partition named: /dev/hd2
The following subpartitions are about to be created on /dev/hd2: Root subpartition: /dev/hd2a 1440 kb
/usr subpartition: /dev/hd2c rest of hd2 Hit return if everything looks fine, or hit DEL to l out if you want to think it over. The next step will destroy /dev/hd2.
/*在hd2分區上建立hd2a、hd2c兩個子分區(hd2a 1.44M、hd2c 剩餘空間)。注意:hd2a與hd2c是Minix操作系統對硬碟的內部劃分,並不修改硬碟分區表,用分區軟體當然也看不見。hd2a存放Minix操作系統內核,這正體現了Minix的微內核結構。同時,Tanenbaum倡導Minix的內核不應超過1.44M,用一張軟盤就可以裝下。這樣當系統出現重大故障時,僅需一張備份系統盤就可以恢復了。接下來則是准備格式化hd2分區,由系統自動完成。*/

What is the memory size of this system in kilobytes? [4096 or more]
Second level file system block cache set to 1024 kb.
/*詢問計算機系統的內存容量,回車即可。*/
# halt /*當機*/
System Halted
fd0>boot hd2 /*啟動Minix*/

noname login: root
# setup /usr /*安裝Minix系統軟體*/
What is the size of the images on the diskettes? [all]
What floppy drive to use? [0]
Please insert input volume 1 and hit return
/*根據提示插入'USR.TAZ'三張軟盤*/
/*用完全相同的方法(setup /usr)將Minix操作系統源代碼'SYS.TAZ' 兩張軟盤、系統軟體源代碼'CMD.TAZ' 三張軟盤裝入系統。這里八張軟盤中有任何一張出錯,又得回DOS下重新製作安裝介質。用正品磁碟的好處這下顯示出來了吧 ^o^ 。*/

至此,Minix操作系統的安裝就告一段落了。這里還需要補充說明一點的是Minix的啟動環境。與Linux操作系統的系統引導器Lilo相比,Lilo是啟動程序,而Minix為啟動環境。Lilo通過lilo.conf配置文件的設置,將啟動方式直接寫入MBR或Linux主分區。而Minix的啟動環境則是與用戶進行互動式操作,其功能強大得多,源代碼的編寫自然也復雜得多。通過在Minix啟動之前按ESC鍵或以root身份輸入halt指令可進入Minix啟動環境。Minix啟動環境最為常用的是boot命令:boot hdx /*啟動hdx分區上的操作系統,x指1、2、…、N。*/。其他還有ls、menu、echo、name等多種環境操作命令,非常值得研究研究。

Minix操作系統的設計精巧,代碼清晰,實現也並不過於復雜,非常適合計算機科學系的大學生或研究生學習。同時也可作為計算機科技工作者研究的實例。

2. minix3裡面,kernel/system/do_fork.c和pm裡面forkexit里的do_fork什麼關系

kernel中的被sys_task調用完成創建進程等工作

3. 如何編譯一個內核

每一個Linux發行版都有自己專門的工具去構建自定義的內核. 本文主要介紹在Ubuntu平台上編譯內核, 如何從(也叫vanilla kernel)獲得最新且未改動的內核源代碼來構建一個自定義的內核, 這樣你可以使用自己的內核而不是發行版的內核, 另外也介紹了如何給內核打補丁, 從而方便增加新的功能.
下面的工作我都在Ubuntu 6.10 Server ("Edgy Eft")和Ubuntu 6.06 Desktop ("Dapper Drake")上經過了測試.
我想首先要說的是文章中構建自定義內核的方式不是唯一的, 還有許多其它的方式, 這不過是我習慣的方式. 我不能保證使用後不會出現任何問題.
1. 預備工作
我推薦使用root用戶執行下面所有的步驟. 如果你還沒有創建root登陸口令, 請運行下面的命令:
sudo passwd root
然後, 以root身份登陸:
su
如果你想使用一般用戶來替代root用戶, 記住在本文所有命令前輸入sudo, 比如當我運行
apt-get update
你需要運行下面的命令來替代, 等.
sudo apt-get update
1.1 Ubuntu 6.10上的/bin/sh ("Edgy Eft")
在Ubuntu 6.10, /bin/sh預設是一個鏈接到/bin/dash的字元鏈接. 當你編譯軟體源代碼的時候, /bin/dash似乎還存在問題. 至少我已經遇到了一些問題. 所以我把/bin/sh鏈接到了/bin/bash.
如果你使用Ubuntu 6.10, 現在你可以運行:
rm -f /bin/sh
ln -s /bin/bash /bin/sh
2 安裝必需的軟體包 (為內核編譯做准備)
首先我們升級軟體(包)庫:
apt-get update
然後我們安裝所有需要的軟體包:
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
3 下載內核源代碼
接下來我們下載需要的內核到/usr/src目錄(去

網站下載你需要的內核版本, 比如. linux-2.6.18.1tar.bz2( ). 然後下載到/usr/src目錄:
cd /usr/src
wget http:// /pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2
然後解壓內核源代碼, 創建一個指向內核源代碼目錄的linux字元鏈接:
tar xjf linux-2.6.18.1.tar.bz2
ln -s linux-2.6.18.1 linux
cd /usr/src/linux
4 給內核源代碼打補丁(可選)
有時你的預設內核不支持新買的設備, 你需要安裝新的驅動. 或者你需要使用虛擬技術或其它高級的技術, 而這些現有的內核都不支持. 這樣情況下你需要給給內核源代碼打補丁(當然補丁已經發布..)
現在我們假設你已經下載需要的補丁(以下例子我叫它patch.bz2)到/usr/src. 運行下面的命令給內核源代碼直接打上補丁(你的用戶必須位於/usr/src/linux目錄):
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1
第一個命令用於測試, 對內核沒有任何影響. 如果沒有顯示錯誤, 你可以運行第二個命令給內核打補丁. 如果第一個命令有誤, 請務繼續的操作!
你也能夠通過內核的prepatches方式打補丁. 比如, 如果你需要一個功能, 而這個功能僅存在於2.6.19-rc4中,
正式完整的內核版本仍沒有發布, 而patch-2.6.19-rc4.biz2已經發布. 你可以把這個補丁打到2.6.18的內核源代碼中,
但請不要達到2.6.18.1或2.6.18.2, 等. 這個規則在接下來的網頁中註明:
http://kernel.org/patchtypes/pre.html
prepatches等同於linux中的測試發行; 他們位於存檔的測試目錄中,
我們可以使用patch(1)工具對上一個完整發行版(版本號分三部分)打補丁(例如, 2.6.12-rc4
prepatch只可以給2.6.11內核源代碼打補丁, 而不是2.6.11.10.)
所以如果你想編譯2.6.19-rc4內核, 你必須在步驟3.1下載2.6.18(
http:// /pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
)替代2.6.18.1內核源代碼!
下面是如何給2.6.18打上2.6.19-rc4補丁:
cd /usr/src
wget http:// /pub/linux/kernel/v2.6/testing/patch-2.6.19-rc4.bz2
cd /usr/src/linux
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1
5. 配置內核
使用當前工作內核的配置文件做為新內核配置文件的基礎是一個很好的主意. 因此我們拷貝已存的配置文件到/usr/src/linux:
cp /boot/config-`uname -r` ./.config
然後運行
make menuconfig
然後我們看到內核的配置菜單. 移動綠色游標到 Load an Alternate Configuration File 行後選擇.config文件(包含了當前工作內核的配置)做為配置文件:

然後瀏覽內核配置菜單, 選擇你需要的功能. 完成配置後, 選擇Exit, 回答下面的問題(Do you wish to save your new kernel configuration? 你希望保存新的內核配置嗎?), 選擇Yes:
6 構建內核
執行下面命令來構建內核:
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image
kernel_headers
在--append-to-version= 後面你可以寫上任何字元串來區別內核版本, 但是必須以" - "符號開始而且後面不包括任何空格.
保持耐心, 內核編譯需要一定時間, 主要看你的內核配置和處理器速度.
7 安裝新內核
在成功構建內核後, 你在/usr/src目錄能發現兩個.deb軟體包.
cd /usr/src
ls -l
在我的測試系統上, 他們分別名為
linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
(包含了實際的內核) 和
linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
(包含了需要的文件, 用於以後需要編譯額外的內核模塊). 我是這樣安裝的:
dpkg -i linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
(現在你甚至能夠拷貝這兩個.deb文件到其它的Ubuntu系統, 通過上面的方式安裝. 你將不再需要編譯內核.)
然後檢查 /boot/grub/menu.lst文件, 現在你將能發現新內核使用的兩個引導配置塊:
vi /boot/grub/menu.lst
在我測試系統上已經添加好的引導配置塊是這樣的:
title Ubuntu, kernel 2.6.18.1-custom
root (hd0,0)
kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.18.1-custom
savedefault
boot
title Ubuntu, kernel 2.6.18.1-custom (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.18.1-custom
boot
現在重啟系統:
shutdown -r now
如果一切進展順利, 你的新內核正常工作. 你還可以通過運行下面命令來檢查新內核是否運行:
uname -r
這將會顯示如:
2.6.18.1-custom
如果系統沒有起來, 重啟一下, 你會看到:

按ESC進入GRUB菜單:

選擇你以前的內核啟動系統, 現在你能再次嘗試編譯新的工作內核. 不要忘記從/boot/grub/menu.1st文件中移去不需要的引導內核信息.

4. 如何編譯minix3並且做成可啟動的iso鏡像

1.先生成一個空白軟盤鏡像:
dd if=/dev/zero of=data.img bs=512 count=2880

2.使用losetup命令,把data.img作為loop device使用:
sudo losetup /dev/loop0 data.img

3.格式化這個loop device
sudo mkfs.msdos /dev/loop0 //如果沒有mkfs.msdos 命令,請檢查系統是否安裝了dosfstools包

4.檢查文件系統:
sudo fsck.msdos /dev/loop0

5.刪除 loop device:
sudo losetup -d /dev/loop0

6.這時候,data.img已經格式化完成,以可讀寫選項掛載空白軟盤鏡像
sudo mount -o loop,rw data.img /mnt/floop

7.往軟盤所掛載的節點上寫入文件,容量不超過 1.44M 就好了!
sudo cp file.c /mnt/floppy

8.卸載軟盤
sudo umount /mnt/floop

9.但是這樣還不可以引導,需要寫一個簡單的引導程序, 編譯後生成 boot , 大小不能超過512Byte,然後
dd bs=512 if=boot of=/dev/loop/0 count=1
把這個引導程序寫入軟盤鏡像的0扇區。

5. centos6.4系統在mount -t minix 的時候,提示錯誤,不支持minix系統。

Miniux 應該是比Linux更早的一個操作系統, mount是掛載用的,要想支持Minux,估計你要重新編譯Linux內核,在文件系統分支下面讓其支持Minix的文件系統。

6. minix3源代碼如何導出

我只知道 怎麼把源碼 傳到minix3中, 用的是ftp, 畢竟minix3有網路的. 大概就是minix3 請求到某個ftp伺服器上下載改好的源碼, 然後下到minix3 文件系統後,可以編譯和替換內核. 傳出來我就不清楚了, 傳出來估計得minix3請求向某個ftp伺服器 上傳源碼就行了

7. 如何編譯一個內核

一、 下載新內核的源代碼

目前,在Internet上提供Linux源代碼的站點有很多,讀者可以選擇一個速度較快的站點下載。筆者是從站點www.kernelnotes.org上下載了Linux的最新開發版內核2.3.14的源代碼,全部代碼被壓縮到一個名叫Linux-2.3.14.tar.gz的文件中。

二、 釋放內核源代碼

由於源代碼放在一個壓縮文件中,因此在配置內核之前,要先將源代碼釋放到指定的目錄下。首先以root帳號登錄,然後進入/usr/src子目錄。如果用戶在安裝Linux時,安裝了內核的源代碼,則會發現一個linux-2.2.5的子目錄。該目錄下存放著內核2.2.5的源代碼。此外,還會發現一個指向該目錄的鏈接linux。刪除該連接,然後將新內核的源文件拷貝到/usr/src目錄中。

(一)、用tar命令釋放內核源代碼

# cd /usr/src

# tar zxvf Linux-2.3.14.tar.gz

文件釋放成功後,在/usr/src目錄下會生成一個linux子目錄。其中包含了內核2.3.14的全部源代碼。

(二)、將/usr/include/asm、/usr/inlude/linux、/usr/include/scsi鏈接到/usr/src/linux/include目錄下的對應目錄中。

# cd /usr/include

# rm -Rf asm linux

# ln -s /usr/src/linux/include/asm-i386 asm

# ln -s /usr/src/linux/include/linux linux

# ln -s /usr/src/linux/include/scsi scsi

(三)、刪除源代碼目錄中殘留的.o文件和其它從屬文件。

# cd /usr/src/linux

# make mrproper

三、 配置內核

(一)、啟動內核配置程序。

# cd /usr/src/linux

# make config

除了上面的命令,用戶還可以使用make menuconfig命令啟動一個菜單模式的配置界面。如果用戶安裝了X window系統,還可以執行make xconfig命令啟動X window下的內核配置程序。

(二)、配置內核

Linux的
內核配置程序提供了一系列配置選項。對於每一個配置選項,用戶可以回答"y"、"m"或"n"。其中"y"表示將相應特性的支持或設備驅動程序編譯進內
核;"m"表示將相應特性的支持或設備驅動程序編譯成可載入 模塊,在需要時,可由系統或用戶自行加入到內核中去;"n"表示內核不提供相應特性或驅動程序
的支持。由於內核的配置選項非常多,本文只介紹一些比較重要的選項。

1、Code maturity level options(代碼成熟度選項)

Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL) [N/y/?]
如果用戶想要使用還處於測試階段的代碼或驅動,可以選擇「y」。如果想編譯出一個穩定的內核,則要選擇「n」。

1、 Processor type and features(處理器類型和特色)

(1)、Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro/6x86MX) [PPro/6x86MX] 選擇處理器類型,預設為Ppro/6x86MX。

(2)、Maximum Physical Memory (1GB, 2GB) [1GB] 內核支持的最大內存數,預設為1G。

(3)、Math emulation (CONFIG_MATH_EMULATION) [N/y/?] 協處理器模擬,預設為不模擬。

(4)、MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?]

選擇該選項,系統將生成/proc/mtrr文件對MTRR進行管理,供X server使用。

(5)、Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] 選擇「y」,內核將支持對稱多處理器。

2、 Loadable mole support(可載入模塊支持)

(1)、Enable loadable mole support (CONFIG_MODULES) [Y/n/?] 選擇「y」,內核將支持載入模塊。

(2)、Kernel mole loader (CONFIG_KMOD) [N/y/?] 選擇「y」,內核將自動載入那些可載入模塊,否則需要用戶手工載入。

3、 General setup(一般設置)

(1)、Networking support (CONFIG_NET) [Y/n/?] 該選項設置是否在內核中提供網路支持。

(2)、PCI support (CONFIG_PCI) [Y/n/?] 該選項設置是否在內核中提供PCI支持。

(3)、PCI access mode (BIOS, Direct, Any) [Any] 該選項設置Linux探測PCI設備的方式。選擇「BIOS」,Linux將使用BIOS;選擇「Direct」,Linux將不通過BIOS;選擇「Any」,Linux將直接探測PCI設備,如果失敗,再使用BIOS。

(4)Parallel port support (CONFIG_PARPORT) [N/y/m/?] 選擇「y」,內核將支持平行口。

4、 Plug and Play configuration(即插即用設備支持)

(1)、Plug and Play support (CONFIG_PNP) [Y/m/n/?] 選擇「y」,內核將自動配置即插即用設備。

(2)、ISA Plug and Play support (CONFIG_ISAPNP) [Y/m/n/?] 選擇「y」,內核將自動配置基於ISA匯流排的即插即用設備。

5、 Block devices(塊設備)

(1)、Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?] 選擇「y」,內核將提供對軟盤的支持。

(2)、Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE) [Y/m/n/?] 選擇「y」,內核將提供對增強IDE硬碟、CDROM和磁帶機的支持。

6、 Networking options(網路選項)

(1)、Packet socket (CONFIG_PACKET) [Y/m/n/?] 選擇「y」,一些應用程序將使用Packet協議直接同網路設備通訊,而不通過內核中的其它中介協議。

(2)、Network firewalls (CONFIG_FIREWALL) [N/y/?] 選擇「y」,內核將支持防火牆。

(3)、TCP/IP networking (CONFIG_INET) [Y/n/?] 選擇「y」,內核將支持TCP/IP協議。

(4)The IPX protocol (CONFIG_IPX) [N/y/m/?] 選擇「y」,內核將支持IPX協議。

(5)、Appletalk DDP (CONFIG_ATALK) [N/y/m/?] 選擇「y」,內核將支持Appletalk DDP協議。

8、SCSI support(SCSI支持)

如果用戶要使用SCSI設備,可配置相應選項。

9、Network device support(網路設備支持)

Network device support (CONFIG_NETDEVICES) [Y/n/?] 選擇「y」,內核將提供對網路驅動程序的支持。

10、Ethernet (10 or 100Mbit)(10M或100M乙太網)

在該項設置中,系統提供了許多網卡驅動程序,用戶只要選擇自己的網卡驅動就可以了。此外,用戶還可以根據需要,在內核中加入對FDDI、PPP、SLIP和無線LAN(Wireless LAN)的支持。

11、Character devices(字元設備)

(1)、Virtual terminal (CONFIG_VT) [Y/n/?] 選擇「y」,內核將支持虛擬終端。

(2)、Support for console on virtual terminal (CONFIG_VT_CONSOLE) [Y/n/?]

選擇「y」,內核可將一個虛擬終端用作系統控制台。

(3)、Standard/generic (mb) serial support (CONFIG_SERIAL) [Y/m/n/?]

選擇「y」,內核將支持串列口。

(4)、Support for console on serial port (CONFIG_SERIAL_CONSOLE) [N/y/?]

選擇「y」,內核可將一個串列口用作系統控制台。

12、Mice(滑鼠)

PS/2 mouse (aka "auxiliary device") support (CONFIG_PSMOUSE) [Y/n/?] 如果用戶使用的是PS/2滑鼠,則該選項應該選擇「y」。

13、Filesystems(文件系統)

(1)、Quota support (CONFIG_QUOTA) [N/y/?] 選擇「y」,內核將支持磁碟限額。

(2)、Kernel automounter support (CONFIG_AUTOFS_FS) [Y/m/n/?] 選擇「y」,內核將提供對automounter的支持,使系統在啟動時自動 mount遠程文件系統。

(3)、DOS FAT fs support (CONFIG_FAT_FS) [N/y/m/?] 選擇「y」,內核將支持DOS FAT文件系統。

(4)、ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/m/n/?]

選擇「y」,內核將支持ISO 9660 CDROM文件系統。

(5)、NTFS filesystem support (read only) (CONFIG_NTFS_FS) [N/y/m/?]

選擇「y」,用戶就可以以只讀方式訪問NTFS文件系統。

(6)、/proc filesystem support (CONFIG_PROC_FS) [Y/n/?] /proc是存放Linux系統運行狀態的虛擬文件系統,該項必須選擇「y」。

(7)、Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] EXT2是Linux的標准文件系統,該項也必須選擇「y」。

14、Network File Systems(網路文件系統)

(1)、NFS filesystem support (CONFIG_NFS_FS) [Y/m/n/?] 選擇「y」,內核將支持NFS文件系統。

(2)、SMB filesystem support (to mount WfW shares etc.) (CONFIG_SMB_FS)

選擇「y」,內核將支持SMB文件系統。

(3)、NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS)

選擇「y」,內核將支持NCP文件系統。

15、Partition Types(分區類型)

該選項支持一些不太常用的分區類型,用戶如果需要,在相應的選項上選擇「y」即可。

16、Console drivers(控制台驅動)

VGA text console (CONFIG_VGA_CONSOLE) [Y/n/?] 選擇「y」,用戶就可以在標準的VGA顯示方式下使用Linux了。

17、Sound(聲音)

Sound card support (CONFIG_SOUND) [N/y/m/?] 選擇「y」,內核就可提供對音效卡的支持。

18、Kernel hacking(內核監視)

Magic SysRq key (CONFIG_MAGIC_SYSRQ) [N/y/?] 選擇「y」,用戶就可以對系統進行部分控制。一般情況下選擇「n」。

四、 編譯內核

(一)、建立編譯時所需的從屬文件

# cd /usr/src/linux

# make dep

(二)、清除內核編譯的目標文件

# make clean

(三)、編譯內核

# make zImage

內核編譯成功後,會在/usr/src/linux/arch/i386/boot目錄中生成一個新內核的映像文件zImage。如果編譯的內核很大的話,系統會提示你使用make bzImage命令來編譯。這時,編譯程序就會生成一個名叫bzImage的內核映像文件。

(四)、編譯可載入模塊

如果用戶在配置內核時設置了可載入模塊,則需要對這些模塊進行編譯,以便將來使用insmod命令進行載入。

# make moles

# make modelus_install

編譯成功後,系統會在/lib/moles目錄下生成一個2.3.14子目錄,裡面存放著新內核的所有可載入模塊。

五、 啟動新內核

(一)、將新內核和System.map文件拷貝到/boot目錄下

# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.3.14

# cp /usr/src/linux/System.map /boot/System.map-2.3.14

# cd /boot

# rm -f System.map

# ln -s System.map-2.3.14 System.map

(二)、配置/etc/lilo.conf文件。在該文件中加入下面幾行:

default=linux-2.3.14

image=/boot/vmlinuz-2.3.14

label=linux-2.3.14

root=/dev/hda1

read-only

(三)、使新配置生效

# /sbin/lilo

(四)、重新啟動系統

# /sbin/reboot

新內核如果不能正常啟動,用戶可以在LILO:提示符下啟動舊內核。然後查出故障原因,重新編譯新內核即可。

8. 關於minix系統如何安裝

MINIX3 - 安裝+使用
作者:邢萬里
前期准備
下載
點擊MINIX - ISO官網可以看到如下兩個選項,一個是3.3.0版本,另一個是3.2.1版本。很明顯的區別就是,3.3.0版本暫時沒有支持x 11(即圖形化界面),而3.2.1包含其中,因此,我個人裝的是3.2.1版本。
(可選)如果讀者需要裝其他版本或者獲得其他相關資源,點擊Index of ISO。
如果讀者在完成安裝MINIX後,需要安裝圖形化界面,請點擊MINIX - x11官網閱讀如何讓圖形化界面運行起來(x 11後的界面如下所示)。

由於安裝需要使用磁碟的第一塊分區,我建議使用vmware完成操作,因此,vmware是需要下載的。注意:vmware中ctrl+G,讓虛擬獲得滑鼠和鍵盤的控制權,ctrl+Alt 釋放滑鼠和鍵盤的控制權,切記切記。
環境搭建
安裝
首先建議讀者閱讀下
MINIX - 通用版安裝教程官網,虛擬機用戶也可以閱讀下MINIX - vmware版安裝教程官網。當然,通用版安裝教程,也有人在網上進行了翻譯,這里就不做解釋了。
如何使用vmware安裝上述提及的ISO文件,這里就不重復闡述別人已有的文字了,只需要注意:
(1)vmware安裝系統時,只要你不是趕時間,就避免easy install(如何避免見我的另外一篇博客vmware使用幫助)。
(2)系統類型,二者均選擇other。
(3)內存大於等於512MB,磁碟空間至少8G(如果想認認真真安裝完所有的程序,並使用和學習MINIX的話,建議至少20G)
(4)網路連接選擇NAT即可(不需要在網上看很多人用橋接,對於新手橋接無法上網將會是一個阻礙)。
安裝後,進入MINIX界面,root用戶登錄(無需密碼):
設置自己的系統,鍵入命令#setup即可,後續只需要一路回車(中間有選項提示輸入yes/no,當然是選擇yes):
切記最後一項(如下圖所示),新手不要看網路上面解釋的,選擇默認第一項即可。
設置完後,注意鍵入命令#reboot重啟,讓設置生效。
使用MINIX
使用
使用命令ifconfig或者ping檢查是否可以上網。
安裝x 11(圖形界面):
(1) #pkgin update:
MINIX使用pkgin進行安裝程序(類似於ubuntu的apt-get)。先update將包從網上抓取(fetch)下來。
(2) #pkgin install x11:
開始安裝x 11。注意,下載過程非常緩慢(3 - 20kb/s),本人親測(位置於重慶),不要白天浪費大量時間去下載折騰,凌晨2-6速度非常快(能夠到達80kb/s),等待晚上睡覺時候下載將是一個非常好的選擇!
(3) #reboot:
重啟生效x 11。
(4)#passwd
更改root用戶密碼,因為x 11不支持無密碼登錄。
(5) #xdm
此步驟即可進入圖形界面!完成!
其他正常方式使用MINIX,當然MINIX只是用於教學,學習內核將是非常好的選擇!

9. minix3下用cc 對c程序進行編譯,出現:non-ascii '/350'read,這樣的提示,是什麼樣的問題呢

好象是說你的源代碼裡麵包含了非標準的ASCII字元,看看你的代碼是不是從網上拷下來的,尤其注意那些空白字元

10. Linux內核源碼如何編譯

首先uname -r看一下你當前的linux內核版本

1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname -r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核 make menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make bzImage、make moles、make moles
4、安裝,make install
5、.創建系統啟動映像,到 /boot 目錄下,執行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於 /boot/grub/grub.cfg 文件的設置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改 set default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。

重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make menuconfig這一步,改好後就萬事ok了。

最後再用uname -r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?
打字不易,如滿意,望採納。

閱讀全文

與minix3能編譯內核嗎相關的資料

熱點內容
cnc手動編程銑圓 瀏覽:720
cad中幾種命令的意思 瀏覽:324
oraclelinux安裝目錄 瀏覽:133
安卓系統可以安裝編譯器嗎 瀏覽:570
javajson實體類 瀏覽:690
板加密鋼筋是否取代原鋼筋 瀏覽:66
學習編程的思路 瀏覽:230
app易語言post怎麼學 瀏覽:965
地梁的箍筋加密區位置 瀏覽:302
二分法排序程序及編譯結果 瀏覽:679
日語命令形和禁止型 瀏覽:285
安裝軟體用管理員解壓 瀏覽:505
編譯原理代碼塊 瀏覽:400
小孩可以用壓縮面膜嗎 瀏覽:14
錐形倒角怎麼計演算法 瀏覽:883
java合並鏈表 瀏覽:508
pic單片機編譯器 瀏覽:807
麗水四軸加工中心編程 瀏覽:692
國產系統怎麼解壓 瀏覽:554
戰雙程序員 瀏覽:485