亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 81898 | 回復: 156
打印 上一主題 下一主題

從 0 開始,打造自己的 Linux 。 [復制鏈接]

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-04-11 02:22 |只看該作者 |倒序瀏覽
剛看到一個問題,如何把 Linux 系統(tǒng)安裝在 U 盤里。

說實在話,這個話題在新手園地來談,確實有些大了,不過為了解答新手園區(qū)的問題,還是放這里了。

一、問題:如何打造一個 Linux 系統(tǒng),并將之安裝到 U 盤里。(這里的打造是指自己編譯內核,自己編譯命令。)

說實在話,這個問題,新手能提出來,俺還是很佩服這個勇氣的。

在開始講這個話題之前,首先得說一下什么是操作系統(tǒng),操作系統(tǒng)是干什么的?操作系統(tǒng)又是如何驅動硬件,并為我們提供一個人機交互環(huán)境的?操作系統(tǒng)與開發(fā)語言的關系是什么?

簡單說,操作系統(tǒng)是一個中間層,它位于應用軟件和計算機硬件之間,用于將應用軟件的指令翻譯成機器指令并提交給機器執(zhí)行。這個機器指令其實就是二進制代碼,對應于機器硬件的指令就是電路中的通、斷。

操作系統(tǒng)通過與固化到 flash 中的硬件指令來驅動硬件,并提供一個人機交互的環(huán)境。(這里說簡單點,說太多咱就漏了,畢竟只有半桶水啊^_^.)。做過嵌入式開發(fā)的朋友可能知道,所謂的“燒板”其實就是把硬件指令寫入到硬件的 flash 中。更形象一點,就是我們的 x86 指令集、mips指令集等等 。

開發(fā)語言實際上是通過一定的編譯程序,將我們用中、高級語言寫成的代碼首先翻譯成匯編代碼,再由匯編器翻譯成機器碼,然后由鏈接器將一個一個的代碼片段鏈接成能執(zhí)行完整程序功能的執(zhí)行代碼,并保存在非易失存儲器上。

計算機系統(tǒng)的啟動過程。

(本部分以 x86 系列為例,MBR模式,非 EFI 模式,其實說太多了,俺也說不清楚了。)

系統(tǒng)加電以后,首先會有一個自己檢測的過程,這一個過程主要是通過接口來測試各個硬件能否正常工作,如果可以,那么系統(tǒng)首先會以實模式啟動,此時系統(tǒng)僅能訪問 1 MB 內存的內容,實際上由于還有留部分內存給硬件中斷,我們實際能訪問到的是 640KB。然后系統(tǒng)會根據 cmos 中設置的啟動順序,從外部的硬件中查找能啟動系統(tǒng)的信息,此時如果找到,則系統(tǒng)將轉入到這個外部的介質上,讀取最初的啟動信息,這個最初的啟動信息很小,它只是指明了真正的操作系統(tǒng)內核加載的地址位,并將繼承器的第20位置為1,開啟虛模式,此時系統(tǒng)能使用較大的內存了(一般是 4GB , 特殊的方式【PAE】能映射到 16GB)。然后系統(tǒng)移到這個偏移地址,將真正的操作系統(tǒng)內核裝入,完成系統(tǒng)的進一步自檢,如果沒有錯誤,開始初始化系統(tǒng)的軟件環(huán)境。

最后進入到一個提供人機交互的環(huán)境,這個環(huán)境下供用戶選擇自己使用的 shell 。(DOS 年代,沒有選擇 ,就是 command.com )

我們執(zhí)行的可執(zhí)行文件,有一定的格式,在 linux 下一般是 ELF 格式,這個格式下,系統(tǒng)的指令是動態(tài)裝入的,需要的時候才裝入,不需要的時候,系統(tǒng)并不裝入執(zhí)行的動態(tài)鏈接庫信息。需要指出的是,不同的可執(zhí)行文件格式,其實真正的執(zhí)行碼,在同一種硬件架構上是一樣的,不同的是這個可執(zhí)行文件的文件頭。操作系統(tǒng)根據這個文件頭決定在什么時候,什么地址裝入可執(zhí)行指令和數據。


好了,前面說這么多,只是一個引子,目的是拋磚引玉。

評分

參與人數 2可用積分 +14 收起 理由
send_linux + 6 很辛苦,值得鼓勵!
chenyx + 8 贊一個!

查看全部評分

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
2 [報告]
發(fā)表于 2012-04-11 02:39 |只看該作者
本帖最后由 snow888 于 2012-04-11 14:12 編輯

前面已經說了操作系統(tǒng)一般的基礎知識,下面開始談談如何自己打造自己的操作系統(tǒng),并將其安裝到 U 盤上。

我們先來談談需要的軟、硬件環(huán)境。

硬件部分:首先,你需要一臺電腦(廢話,沒電腦下面的都是空談)、一個 U 盤(建議是 8 ~ 16 GB 的)、一套 Linux 系統(tǒng)光盤(俺喜歡 CentOS )。
軟件部分:gcc 源碼、binutils 源碼、glibc 源碼、linux-libc-headers 源碼、其它的工具軟件源碼若干(根據你自己的需要)。

準備工作:
            1、首先安裝 Linux 系統(tǒng)到你的電腦中(沒有母親,生不出兒子)。
            2、掛載并分區(qū)你的 U 盤。

系統(tǒng)安裝: 論壇 搜吧,說多了就是口水話了。
掛載并分區(qū)你的 U 盤:
            插入你的 U 盤,系統(tǒng)應該能認到,此時是 fat32 的格式的,我們得刪除,并在這個 U 盤上構建一個自己的小型的分區(qū)環(huán)境。
            建議的分區(qū)為   /boot                   200MB
                                  /swap                 2GB
                                  /                          剩余部分。
            建立分區(qū)使用到的命令是 fdisk 和 mke2fs ,有關這兩個命令的使用方法,可以 man 或者是 google 。
            分區(qū)完成以后,修改 /etc/fstab , 將你的新建立的分區(qū)掛載上去(注意: /boot 和 / 都需要掛載,這兩個分區(qū)是我們后面工作的關鍵,)。為了避免與你的系統(tǒng)發(fā)生沖突,建議在你的系統(tǒng)根目錄下面建立一個 My_Operation 的子目錄,在這個目錄下創(chuàng)建兩個子,目錄,一個是 boot , 另一個是 myuser ,將你的 /boot 和 / 掛載到這個下面去)


時間關系,今天就先說到這里。


接著說:

如果是建立 swap 分區(qū),你需要用到 mkswap 命令,這個命令的使用你可以通過 man 或者是 google 的方式獲得。

如果以上這些基本的命令不會,那下面就別看了,先把基礎打一下再來。

swap 分區(qū)干嘛的?

其實就是 windows 系統(tǒng)下的 profiles.sys ,是一個在硬盤上的數據交換區(qū),如果你的系統(tǒng)內存使用完了,系統(tǒng)會將當前內存中需要長時間運行得程序進程(不是完整的程序,只是程序的部分執(zhí)行片段)保存到這個交換區(qū) swap 里面,等待系統(tǒng)進行一個輪詢后,再次裝入并執(zhí)行。

論壇徽章:
381
CU十二周年紀念徽章
日期:2014-01-04 22:46:58CU大;照
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大;照
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大;照
日期:2013-04-17 11:17:32CU大;照
日期:2013-04-17 11:17:37CU大;照
日期:2013-04-17 11:17:42CU大;照
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大;照
日期:2013-04-17 11:17:56
3 [報告]
發(fā)表于 2012-04-11 13:53 |只看該作者
寫的不錯,贊一個.

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
4 [報告]
發(fā)表于 2012-04-11 14:01 |只看該作者
回復 3# chenyx


    才開個頭呢,你給個精華吧。

俺花點時間寫完。

論壇徽章:
381
CU十二周年紀念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大;照
日期:2013-03-13 15:38:15CU大;照
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大;照
日期:2013-04-17 11:17:19CU大;照
日期:2013-04-17 11:17:32CU大;照
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大;照
日期:2013-04-17 11:17:52CU大;照
日期:2013-04-17 11:17:56
5 [報告]
發(fā)表于 2012-04-11 14:02 |只看該作者
回復 4# snow888


    等你完全寫完全的.

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
6 [報告]
發(fā)表于 2012-04-11 14:51 |只看該作者
本帖最后由 snow888 于 2012-04-11 14:51 編輯

經過上面的過程,咱們的這個基本的空間就建好了。這個空間就是我們以后需要獨立運行的 linux 的系統(tǒng)空間。
好了,我們在這個空間上構建自己的工作目錄。

mkdir /My_Operation/myuser/usr                       ;  你的新系統(tǒng)的 /usr 目錄,以后脫離母體的時候,這咚咚就是你的基本用戶的命令目錄了。
mkdir /My_Operation/myuser/bin                       ;  你的新系統(tǒng)的 /bin 目錄,以后脫離母體的時候,這咚咚就是你的系統(tǒng)用戶的命令目錄了。
mkdir /My_Operation/myuser/tools_src             ;   你的編譯工作目錄。

下面我們來開始第一個過程。

下載 Autoconf (2.59) - 904KB:
下載主頁:  http://www.gnu.org/software/autoconf
干嘛用的:  用來生成和解析 configure 的。

configure 是啥子?
我們一般通過源碼發(fā)行的程序包都帶有這個咚咚,通過運行這個咚咚來建立一個適合于你的系統(tǒng)環(huán)境的編譯參數,為下面的 make & make install 做準備。

下載 Automake (1.9.6) - 748KB:
下載主頁:  http://www.gnu.org/software/automake
其它解釋部分同 autoconf

下載 Bash (3.1) - 2,475KB:
下載主頁: http://www.gnu.org/software/bash
干嘛用的? 見第一樓,操作系統(tǒng)基礎部分。

下載:  Binutils (2.16.1) - 12,256 KB:
下載主頁: http://www.gnu.org/software/binutils
干嘛用的: 匯編器與鏈接器(也包括其它的打包工具,如 ar , 反匯編工具 objdump ,反匯編碼轉移工具 objcopy 等)。
解釋部分: 見第一樓,操作系統(tǒng)基礎部分。

下載:  Bison (2.2) - 1,052KB:
下載主頁: http://www.gnu.org/software/bison
干嘛用的: C 語言詞法分析工具,我們的 C 語言代碼是否符合規(guī)范,首先得由它來分析檢驗。
解釋部分: 見第一樓,操作系統(tǒng)基礎部分。

下載:  Bzip2 (1.0.3) - 654KB:
下載主頁: http://www.bzip.org/
干嘛用的: Linux 系統(tǒng)下一個非常優(yōu)秀的壓縮解壓軟件,我們在 linux 下的很大部分源碼都是通過它來壓縮的。

下載:  Gzip (1.3.5) - 324KB:
下載主頁: http://www.gzip.org/
干嘛用的: Linux 系統(tǒng)下一個非常優(yōu)秀的壓縮解壓軟件,我們在 linux 下的很大部分源碼都是通過它來壓縮的。

下載: GCC (4.0.3) - 32,208KB:
下載主頁:  http://ftp.gnu.org/gnu/gcc
干嘛用的: C 語言編譯器 ( 我們下面的幾乎所有的工作都需要用到它 )
解釋部分: 見第一樓,操作系統(tǒng)基礎部分。

下載:  Glibc (2.3.6) - 13,687KB
下載頁面:  http://www.gnu.org/software/libc
干嘛用的:  系統(tǒng)的所有核心頭文件和庫文件,我們所有的系統(tǒng)命令,內核命令都與此有關。
解釋部分: 見第一樓,操作系統(tǒng)基礎部分。

下載:  Glibc LibIDN add-on (2.3.6) - 99 KB:
下載頁面:  http://www.gnu.org/software/glibc
干嘛用的:  同上
解釋部分:  同上。

下載:  GRUB (0.97) - 950KB:
下載頁面:  http://www.gnu.org/software/grub
干嘛用的:  操作系統(tǒng)的引導器,一般我們會將其 bootloader 安裝到你的新的空間的 mbr 部分,其基本的引導信息會安裝到 /boot 分區(qū)里面。
解釋部分:  見第一樓, 操作系統(tǒng)基礎部分。

下載:  M4 (1.4.4) - 376KB:
下載頁面:  http://www.gun.org/m4
干嘛用的:  ^_^.
解釋部分:  見  autoconf 和 automake 部分,如果不知道可以 google 一下。

下載:  Make (3.80) - 900KB:
下載頁面:  http://www.gnu.org/software/make
干嘛用的:  ^—^.
解釋部分:  見 GCC 部分,如果不知道可以 google 一下。

下載:  Flex (2.5.33) - 680KB:
下載頁面:  http://www.gnu.org/software/flex
干嘛用的:  GCC 語法分析?蓞⒄ bison 部分。
解釋部分:  見 GCC 部分,如果不知道可以 google 一下。

下載:  Vim (7.0) - 6,152KB:
下載頁面:  http://www.vim.org
干嘛用的:  ^_^.


下載:  Linux (2.6.16.27) - 39,886 KB:
下載頁面:   http://www.kernel.org/
干嘛用的:   ^_^.
解釋部分: 見第一樓,操作系統(tǒng)基礎知識部分。

下載:   Linux-Libc-Headers (2.6.12.0) - 2,481 KB:
下載頁面:  http://www.kernel.org/
干嘛用的: Linux 系統(tǒng)內核所有的頭文件和與 glibc 有關聯(lián)的庫文件源碼。
解釋部分: 見第一樓,操作系統(tǒng)基礎知識部分。


^_^.

累死了。有時間繼續(xù)。

以上下載的代碼,全部放在 /My_Operation/myuser/tools_src 目錄下,這是我們開始工作之前的準備。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
7 [報告]
發(fā)表于 2012-04-11 14:52 |只看該作者
本帖最后由 snow888 于 2012-04-11 14:53 編輯

回復 5# chenyx


    俺不敢保證寫出來的咚咚沒有錯誤,這寫出來得累死,沒精華,俺就不再寫了。

論壇徽章:
381
CU十二周年紀念徽章
日期:2014-01-04 22:46:58CU大;照
日期:2013-03-13 15:32:35CU大;照
日期:2013-03-13 15:38:15CU大;照
日期:2013-03-13 15:38:52CU大;照
日期:2013-03-14 14:08:55CU大;照
日期:2013-04-17 11:17:19CU大;照
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大;照
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
8 [報告]
發(fā)表于 2012-04-11 14:57 |只看該作者
看你這個架勢,貌似要做LFS啊

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
9 [報告]
發(fā)表于 2012-04-11 15:02 |只看該作者
回復 8# chenyx


    人問的不就是做 lfs 么,咱就教他做一把唄。

你說還有必要再寫么?

論壇徽章:
0
10 [報告]
發(fā)表于 2012-04-11 15:09 |只看該作者
不錯  寫的不錯
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP