国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
根文件系統(tǒng)的制作

前言

  文件系統(tǒng)的制作其實并沒有想像中那么難。一個基本的文件系統(tǒng)應該包括:busybox (提供 shell命令集)、配置文件(用來初始化和布局你的文件系統(tǒng))、設備文件(如果是用 devfs的話這個就免了)、必要的庫文件系統(tǒng)(如果 busybox是靜態(tài)編譯的話,那根本不用為 busybox用到的庫文件而煩。在我制作的文件系統(tǒng)里,只是為了用戶程序和 qt的運行才放置了一些庫文件)。

正文

一、首先說一下 busybox 的配置和編譯問題

其實搞好busybox 后,可以說你的文件系統(tǒng)已經(jīng)完成了一半了。 Busybox之所以比較難編譯,主要是 busybox和交叉編譯工具的版本搭配問題。在文壇上不乏因為 busybox某些命令不能編譯通過而煩的人,在這里我推薦一個搭配: busybox-1.1.3+arm-linux-gcc-3.3.2(在文壇上看到過有人說 busybox-1.0.1+arm-linux-gcc-3.4.1也可以正常編譯通過,你自己看著辦吧)。

Busybox的配置很簡單,詳細過程可以參考《基于 S3C2410 Linux全線移植文檔》的文件系統(tǒng)部分,我剛開始的時候就是按照這個來做出一個很簡單的文件系統(tǒng)的。

不過有一點要特別注意的(shell 的配置問題 )

1、要這樣配置:
   |
  |               Shells--->     
   | |          Choose your default shell (ash)--->

2、如果是這樣配置的話,雖然可以生成ash,但不能生成sh
│ │Choose your default shell (none) ---> │ │
│ │ [*] ash

另外,按照他的這種方法做出來的文件系統(tǒng),運行的時候shell 并不好有,沒有歷史記錄、自動補全、刪除字符的功能,下面介紹如何為它添加這些功能:

              Shells --->

---   BourneShell Options                                       

  [ ]   Hide message on interactive shellstartup                  

  [ ]   Standaloneshell                                           

  [*]   command lineediting                                       

  [*]     vi-style line editingcommands                           

     (15)    historysize                                             

  [*]     historysaving                                           

  [*]     tabcompletion                                           

  [*]       usernamecompletion                                    

  [ ]     Fancy shell prompts

這是我自己試驗出來的,網(wǎng)上沒有看到過這方面的介紹,在此奉獻給大家。

二、再來說一下配置文件的問題

在文件系統(tǒng)中,配置文件主要存放在/etc 目錄里面。《基于 S3C2410 Linux全線移植文檔》里面介紹的文件系統(tǒng)由于需要加載文件系統(tǒng)的時候把 /mnt/etc目錄拷貝到 /etc ,所以不得不使用 /linuxrc腳本,不過如果是這樣的話需要在內(nèi)核傳遞參數(shù)里設置 init=/linuxrc,因為默認是啟動 /sbin/init 初始化腳本的(busybox 編譯安裝以后生成的 linuxrc文件是指向 /bin/busybox的符號文件,應該把它刪掉,自己重寫腳本)。在我做的文件系統(tǒng)里不采用這種方法,所以不用設置init=/linuxrc 。

Busyboxinit 的流程在《構建嵌入式 linux系統(tǒng)》這本書里面有介紹,我在這簡單的說一下:如果不采用 linuxrc的話就會執(zhí)行 /sbin/init 腳本( busyboxinit ),它會去分析 /etc/inittab腳本(如果沒有的話就使用它默認的來代替,一般沒必要自己為它編寫這個腳本,用它默認的就行),然后會執(zhí)行/etc/init.d/rcS 命令(在我制作的文件系統(tǒng)里就把配置都寫入了這個文件)。

至于 rcS這個目錄的編寫主要是安排哪些目錄掛載哪些次級文件系統(tǒng),比如 /proc 要掛載proc 文件系統(tǒng)、 /sys 要掛載sysfs 、 /dev/shm 要掛載tmpfs /tmp 要掛載ramfs 等等。此外,還可以讓內(nèi)核重新掛載根文件系統(tǒng)也行,具體可以參考 rcS這個腳本里面的內(nèi)容,我的是參考友善的那個來寫的。另外,可以在這個腳本里執(zhí)行一些命令,比如設置 ip地址、建立符號鏈接(我為 usb 設備的掛載特意建立了/dev/sda1 的符號鏈接)、設置主機名等等。 Busybox init還會調(diào)用 /etc/profile 來設置 PATH,具體請看文件。

在《構建嵌入式linux 系統(tǒng)》提到了怎樣建立和建立哪些設備文件,但因為 devfs這個東西的存在,我們可以不再為這些設備文件而費心了。因為內(nèi)核在申請設備的同時會向 devfs申請相應的設備文件,然后 devfs 會幫我們在/dev目錄建立相應的設備文件,做到內(nèi)核使用多少設備就建立多少設備文件,不像以前那樣要預先建立一大堆可以你不會用到的設備文件(不過從2.6.12 內(nèi)核開始,這個devfs 選項從內(nèi)核配置中刪除,好像是用 udevfs之類來代替了,不過很多人還是喜歡用回 devfs,而且按現(xiàn)在看來起碼它用得還挺不錯的)。

好像沒什么好講了,至于/lib 目錄應該放哪些庫文件,我也沒有底。如果不運行應用程序,只是運行busybox 的話根本不用放任何的庫,因為我們的 busybox是靜態(tài)鏈接的還記得吧?我在自己的文件系統(tǒng)中存放了 helloworld應用程序和模塊,另外還有一個 led 模塊,是用ioctl 來控制 led燈的亮和滅的,所以我才加載了一些庫,而且是從原來友善的文件系統(tǒng)里面拷過來的。以后如果要運行 qt的話,還要把 qt 用到的庫文件也放進去,這樣文件系統(tǒng)就變得挺大的了。

總結

好了,一個簡單的文件系統(tǒng)就是如此簡單的就可以做出來。不過要做出一個合理的文件系統(tǒng)的話相信還有很多東西要注意,比如根文件系統(tǒng)各目錄應該使用什么次級文件系統(tǒng)、配置文件的設計、選用哪些庫文件、如何增加用戶管理和網(wǎng)絡功能(boa)等等。網(wǎng)上關于文件系統(tǒng)制作的介紹很少,不過有個不錯的方法就是參考人家文件系統(tǒng)的做法來做,我就是參考友善文件系統(tǒng)的做法來做的。在這里提供一個下載文件系統(tǒng)的好地方,里面有很多的文件系統(tǒng)可以給你參考:
http://husaberg.toby-churchill.com/balloon/releases/v0.7/roots/。

好了,總結如此,希望對你有幫助。

 原文地址http://hi.baidu.com/boshenshen/blog/item/29af38b13f09c050092302f4.html

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
mkcramfs制作cramfs文件系統(tǒng)
從init到shell
linux-2.6中的udev問題
詳解linux內(nèi)存磁盤初始化技術
mini2440 root_qtopia 文件系統(tǒng)啟動過程分析
系統(tǒng)啟動掛載根文件系統(tǒng)時Kernel panic
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服