歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux文件系統的移植-根文件系統制作

根文件系統一直以來都是所有類Unix操作系統的一個重要組成部分,也可以認為是嵌入式Linux系統區別於其他一些傳統嵌入式操作系統的重要特征,它給Linux帶來了許多強大和靈活的功能,同時也帶來了一些復雜性。我們需要清楚的了解根文件系統的基本結構,以及細心的選擇所需要的系統庫、內核模塊和應用程序等,並配置好各種初始化腳本文件,以及選擇合適的文件系統類型並把它放到實際的存儲設備的合適位置。

  Linux的根文件系統以樹型結構組織,包含內核和系統管理所需要的各種文件和程序,一般說來根目錄”/”下的頂層目錄都有一些比較固定命名和用途。

下面列出了一個Linux根文件系統中的比較常見的目錄結構:

/bin 存放二進制可執行命令的目錄

  該目錄下存放所有用戶都可以使用的、基本的命令,這些命令在掛接其它文件系統之前就可以使用,所以/bin目錄必須和根文件系統在同一個分區中。

  /bin目錄下常用的命令有:cat,chgrp,chmod,cp,ls,sh,kill,mount,umount,mkdir,m knod,[,test等“[”命令其實就是test命令,我們在利用Busybox制作根文件系統時,在生成的bin目錄下,可以看到一些可執行的文件,也就是可用的一些命令。

/dev 存放設備文件的目錄

  該目錄下存放的是設備文件,設備文件是Linux中特有的文件類型,在Linux系統下,以文件的方式訪問各種設備,即通過讀寫某個設備文件操作某個具體硬件。比如通過"dev/ttySAC0"文件可以操作串口0,通過"/dev/mtdblock1"可以訪問MTD設備的第2個分區。

/etc 存放系統管理和配置文件的目錄

  該目錄下存放著各種配置文件,對於PC上的Linux系統,/etc目錄下的文件和目錄非常多,這些目錄文件是可選的,它們依賴於系統中所擁有的應用程序,依賴於這些程序是否需要配置文件。在嵌入式系統中,這些內容可以大為精減。

/home 用戶主目錄,比如用戶user的主目錄就是/home/user,可以用~user表示

  用戶目錄,它是可選的,對於每個普通用戶,在/home目錄下都有一個以用戶名命名的子目錄,裡面存放用戶相關的配置文件。

/lib 存放動態鏈接共享庫的目錄

  該目錄下存放共享庫和可加載(驅動程序),共享庫用於啟動系統。運行根文件系統中的可執行程序,比如:/bin /sbin 目錄下的程序。

/sbin存放系統管理員使用的管理程序的目錄

  該目錄下存放系統命令,即只有管理員能夠使用的命令,系統命令還可以存放在/usr/sbin,/usr/local/sbin目錄下,/sbin目錄中存放的是基 本的系統命令,它們用於啟動系統,修復系統等,與/bin目錄相似,在掛接其他文件系統之前就可以使用/sbin,所以/sbin目錄必須和根文件系統在同一個分區中。

  /sbin目錄下常用的命令有:shutdown reboot fdisk fsck等,本地用戶自己安裝的系統命令放在/usr/local/sbin目錄下。

/tmp 公用的臨時文件存儲點

  用於存放臨時文件,通常是空目錄,一些需要生成臨時文件的程序用到的/tmp目錄下,所以/tmp目錄必須存在並可以訪問。

/root 系統管理員的主目錄

  根用戶的目錄,與此對應,普通用戶的目錄是/home下的某個子目錄。

/mnt 系統提供這個目錄是讓用戶臨時掛載其他的文件系統。

  用於臨時掛載某個文件系統的掛接點,通常是空目錄,也可以在裡面創建一引起空的子目錄,比如/mnt/cdram /mnt/hda1 。用來臨時掛載光盤、硬盤。

/proc 虛擬文件系統,可直接訪問這個目錄來獲取系統信息。

  這是一個空目錄,常作為proc文件系統的掛接點,proc文件系統是個虛擬的文件系統,它沒有實際的存儲設備,裡面的目錄,文件都是由內核臨時生成的,用來表示系統的運行狀態,也可以操作其中的文件控制系統。 

/usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。

  /usr目錄的內容可以存在另一個分區中,在系統啟動後再掛接到根文件系統中的/usr目錄下。裡面存放的是共享、只讀的程序和數據,這表明/usr目錄下的內容可以在多個主機間共享,這些主要也符合FHS標准的。/usr中的文件應該是只讀的,其他主機相關的,可變的文件應該保存在其他目錄下,比如/var。/usr目錄在嵌入式中可以精減。

/var 某些大文件的溢出區

  與/usr目錄相反,/var目錄中存放可變的數據,比如spool目錄(mail,news),log文件,臨時文件。

一、移植環境:

1、  Ubuntu 10.10發行版

2、  u-boot.bin  (下載見 http://www.linuxidc.com/Linux/2012-07/64775.htm )

3、  目標機:FS_S5PC100平台

4、  交叉編譯器 arm-cortex_a8-linux-gnueabi-gcc

Copyright © Linux教程網 All Rights Reserved