當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]陳渝大俠翻譯的 uClinux2.6入門(mén)


原文出自:http://adam.kaist.ac.kr/~hschoe/Get...inuxARM2_6.html
作者:Hyok S.Choi < hyok.choi@samsung.com  > 
翻譯:renbagshoes < renbagshes12@yahoo.com.cn  > 
轉(zhuǎn)載請(qǐng)注明www.linuxsir.org ,謝謝! 

一、使用uClinux/ARM 2.6的原因?
為什么你要使用uClinux?有很多的理由使uClinux做為你的嵌入式操作系統(tǒng)。其中大部分認(rèn)為uClinux有以下好處: 

輕便 

你可以編譯linux2.6的內(nèi)核得到一個(gè)300k以下的內(nèi)核鏡像,它包括終端和一些基本的設(shè)備驅(qū)動(dòng)以及只讀文件系統(tǒng)。并且flat格式的二進(jìn)制zImage和應(yīng)用程序要比linux傳統(tǒng)使用的ELF二進(jìn)制小30%--50%,由于使用了較少的標(biāo)準(zhǔn)的C和C++庫(kù)。 
XIP(execution in place) 

你能通過(guò)XIP來(lái)在一個(gè)較小的RAM時(shí)執(zhí)行你的內(nèi)核鏡像,甚至是應(yīng)用程序。它能幫助你快速的啟動(dòng),盡管flash的存取時(shí)間或是rom啟動(dòng)鏡像足夠快以及有足夠的緩存大小。(如果我們想找到它們最優(yōu)化的平衡點(diǎn),可以交換兩者之間這些變量。) 

便宜 

MMU(內(nèi)存管理單元)核心大小大約占典型的ARM SoC(System-on-Chip單片機(jī))wafer(晶體)的30%。在典型的網(wǎng)絡(luò)和嵌入式系統(tǒng)里有一半以上的應(yīng)用程序不需要MMU。甚至如果只有一個(gè)CPU的許多RTOS(實(shí)時(shí)操作系統(tǒng))在默認(rèn)情況下也不使用MMU。 
完全的Linux應(yīng)用程序接口 

除少數(shù)情況外,你可以在uClinux平臺(tái)上完全使用Linux應(yīng)用程序接口。你能在uClibc里使用多線程以及使用標(biāo)準(zhǔn)的系統(tǒng)調(diào)用。在用戶盤(pán)里的uClinux發(fā)布包里有大量的應(yīng)用程序被移植到了uClinux系統(tǒng)上。


Easiar to adapt 

在uClinux性能里有一個(gè)有趣的特性,是應(yīng)用程序可以訪問(wèn)整個(gè)系統(tǒng),包括設(shè)備里的寄存器,with a bit of wrapper ,我們能制作固件代碼做為無(wú)格式的應(yīng)用程序運(yùn)行在 uClinux上!當(dāng)然,你能加一些設(shè)備驅(qū)動(dòng)和系統(tǒng)調(diào)用來(lái)調(diào)用以及使用許多打開(kāi)的Ips在混和的舊的固件代碼里。如果你計(jì)劃移動(dòng)你的固件代碼到linux,但你沒(méi)有熟悉的linux系統(tǒng)程序,uClinux是一個(gè)很好的出發(fā)點(diǎn) 

完全的linux2.6內(nèi)核的特性 

盡管uClinux很小,但它支持linux2.6內(nèi)核約定的全部的特性,包括內(nèi)核優(yōu)先級(jí)特性以及許多的文件系統(tǒng),設(shè)備驅(qū)動(dòng)。為linux約定設(shè)備驅(qū)動(dòng)端口是容易實(shí)現(xiàn)的。幾乎所有的代碼不需要改變就可以編譯,除了從虛擬地址到物理的內(nèi)存鏡像外。 
注:上面的部分由于涉及的概念太多,翻譯的不大好,請(qǐng)大家指正,謝謝。 

二、初次編譯uClinux/ARM2.6指南 

如果你決定使用uClinux做為開(kāi)發(fā)環(huán)境,那么下面的部分將會(huì)讓uClinux運(yùn)行在你的linux PC機(jī)上: 

1、獲得uClinux發(fā)布包 

一個(gè)最容易得到uClinux的發(fā)布包的方法是直接訪問(wèn)uClinux.org站點(diǎn): 
http://www.uclinux.org/pub/uClinux/dist/ 
注意這里發(fā)布的內(nèi)核版本可能不是最新的,但你能找到一個(gè)最新的補(bǔ)丁以及從kernel.org站點(diǎn)上找一個(gè)對(duì)應(yīng)的linux內(nèi)核版本來(lái)制作一個(gè)最新的uClinux內(nèi)核。此時(shí)(2004年05月25日)可從“http://www.uclinux.org/pub/uClinux/dist”獲得最新的發(fā)布包的版本是uClinux-dist.20040408.tar.gz。如果你對(duì)編譯軟件不是很熟悉,那么根據(jù)這個(gè)指南你將會(huì)很容易的使用這個(gè)分布包來(lái)制作你的uClinux內(nèi)核或是升級(jí)它到最新的版本。 

2、獲得最新的內(nèi)核及補(bǔ)丁 

你能到這里找到最新的uClinux/ARM內(nèi)核補(bǔ)?。?nbsp;
http://adam.kaist.ac.kr/~hschoe/  
在下載的部分,你將會(huì)找到“l(fā)inux-2.6.x-hscx.patch.gz”最新的鏈接,以及原始的內(nèi)核包: 
   http://adam.kaist.ac.kr/~hschoe/dow...5-hsc2.patch.gz 
和 http://www.kernel.org/pub/linux/ker...x-2.6.5.tar.bz2 

3、ARM-ELF工具鏈 

從linux2.6內(nèi)核代碼使用了一些更新的binutils新特性以來(lái),你需要一個(gè)比uclinux.org站點(diǎn)上更新的ARM-ELF工具鏈來(lái)編譯內(nèi)核。你能夠從上面的與下載內(nèi)核和補(bǔ)丁相同的download部分找到最新的工具鏈,就在當(dāng)前的鏈接下: 
http://adam.kaist.ac.kr/~hschoe/dow...ols-20040427.sh 

4、硬件平臺(tái)或是一個(gè)ARMulator(ARM仿真) 

當(dāng)然你需要一個(gè)平臺(tái)來(lái)運(yùn)行uClinux內(nèi)核,請(qǐng)首先看一下注意事項(xiàng)里有那些平臺(tái)被支持。即使你不能找到適用于你的平臺(tái),或是你沒(méi)有任何的硬件平臺(tái),那你也能在你的linux PC機(jī)上運(yùn)行這個(gè)內(nèi)核:使用ARMulator(ARM仿真)。ARMulator是一個(gè)以GDB調(diào)試器為基礎(chǔ)的仿 真,這個(gè)仿真完全支持Atmel AT91x和arm7tdmi EB01。ARMulator的主頁(yè)在這: 

http://www.uclinux.org/pub/uClinux/utilities/armulator/  

你也能直接從這里下載: 

http://www.uclinux.org/pub/uClinux/...gdb-5.0.tar.bz2(原始gdb-5.0包) 
http://www.uclinux.org/pub/uClinux/...021127.patch.gz(gdb-5.0所依賴的補(bǔ)丁) 

如果你想在ARMulator上運(yùn)行內(nèi)核的ramdisk(虛擬磁盤(pán)),那么你就需要從這下載另外一個(gè)軟件包: 

http://adam.kaist.ac.kr/~hschoe/dow...040412.patch.gz 

5、如果你是初次編譯這些發(fā)布包的話,OK!從這我們將會(huì)一步一步的進(jìn)行 
(現(xiàn)在把上面所下載的軟件包都發(fā)在/root/incoming目錄里) 

(On this guide, the downloaded files are gathered on ~/incoming 
and the ARMulator is used for platform to run on.) 

6、安裝工具鏈 

以root用戶來(lái)執(zhí)行arm-elf-tools-20040427.sh,像這樣: 

[root@hyoklinux /]#/bin/sh ~/incoming/arm-elf-tools-20040427.sh 

注:~是你的root用戶目錄,當(dāng)然也可以選擇別的目錄,但這取決于你的第5步所設(shè)置的目錄。 

你將看到被安裝文件的列表,這個(gè)工具鏈的可執(zhí)行的二進(jìn)制文件被安裝到了/usr/local/bin目錄里,所以你的環(huán)境變量的搜索路徑應(yīng)包括這個(gè)目錄,通常使用的發(fā)行版像redhat等已經(jīng)將這個(gè)路徑包括在$PATH變量里,可以用下面的命令查看一下: 

[root@hyoklinux /]#echo $PATH 

7、釋放uClinux發(fā)布包 


在一個(gè)有2GB空間的目錄里來(lái)釋放uclinux發(fā)布包 
[root@hyoklinux /]# tar -zxvf ~/incoming/uClinux-dist-20040408.tar.gz 
讓我們看看uClinux-dist目錄里有什么文件 
[root@hyoklinux /]# cd uClinux-dist/ 
[root@hyoklinux uClinux-dist]# ls -al 
total 104 
drwxr-xr-x 15 1000 users 4096 Apr 8 09:27 . 
drwxr-xr-x 28 root root 4096 Apr 27 20:32 .. 
-rw-r--r-- 1 1000 users 18007 Apr 8 09:13 COPYING 
drwxr-xr-x 3 1000 users 4096 Apr 8 09:13 Documentation 
-rw-r--r-- 1 1000 users 9305 Apr 8 09:13 Makefile 
-rw-r--r-- 1 1000 users 4934 Apr 8 09:13 README 
-rw-r--r-- 1 1000 users 1743 Apr 8 09:13 SOURCE 
drwxr-xr-x 2 1000 users 4096 Apr 15 15:19 bin 
drwxr-xr-x 3 1000 users 4096 Apr 8 09:27 config <-- 為本地用戶提供的配置文件以及其它的 
drwxr-xr-x 11 1000 users 4096 Apr 8 09:27 freeswan <-- IPsec的實(shí)現(xiàn) 
drwxr-xr-x 68 1000 users 4096 Apr 8 09:23 glibc <-- GNU C庫(kù) 
drwxr-xr-x 18 1000 users 4096 Apr 8 09:28 lib <-- 許多移植到uClinux的庫(kù),包括uC-libc. 
drwxr-xr-x 15 1000 users 4096 Apr 8 09:27 linux-2.0.x <-- uClinux 2.0.x kernel 
drwxr-xr-x 16 1000 users 4096 Apr 8 09:27 linux-2.4.x <-- uClinux 2.4.x kernel 
drwxr-xr-x 18 1000 users 4096 Apr 8 09:27 linux-2.6.x <-- uClinux 2.6.x kernel 
drwxr-xr-x 3 1000 users 4096 Apr 8 09:26 tools <-- 安裝romfs提供的程序以及其它的 
drwxr-xr-x 17 1000 users 4096 Apr 8 09:27 uClibc <-- uClibc可從uclibc.org找到,與uC-libc不同. 
drwxr-xr-x 174 1000 users 4096 Apr 8 09:27 user <-- the“userland”被移植的應(yīng)用程序 
drwxr-xr-x 44 1000 users 4096 Apr 8 09:27 vendors <-- 每一個(gè)vendor/models的配置文件 
注:vendor(計(jì)算機(jī)銷(xiāo)售商)  models(模型) 

8、用這些文件制作出一個(gè)新的linux-2.6.x內(nèi)核 

在20040408發(fā)布包目錄里的linux-2.6.x是由內(nèi)核“l(fā)inux-2.6.2”和補(bǔ)丁“l(fā)inux-2.6.2-uc0”生成的。而uClinux/ARM2.6需要更新的內(nèi)核版本(如linux-2.6.5 + linux-2.6.5-hsc2.patch)。 
[root@hyoklinux uClinux-dist]# tar -jxvf ~/incoming/linux-2.6.5.tar.bz2 
現(xiàn)在我們得到了整個(gè)的linux-2.6.5源代碼,以及所需的內(nèi)核補(bǔ)丁。 
[root@hyoklinux uClinux-dist]# gzip -dc ~/incoming/linux-2.6.5-hsc2.patch.gz | patch -p0 

運(yùn)行上面的命令后,你將會(huì)看到一些補(bǔ)丁目錄里包含有“armnommu”的字符串的代碼。你可以在你的uClinux 2.6內(nèi)核里使用“l(fā)inux-2.6.5”的目錄名,這不是必需的。然而,我覺(jué)得使用“l(fā)inux-2.6.x”這個(gè)名字會(huì)更方便些。 
因此你現(xiàn)在不需要原來(lái)uClinux目錄里的linux-2.6.x(即那個(gè)linux-2.6.2-uc0),執(zhí)行: 
[root@hyoklinux uClinux-dist]# rm -rf linux-2.6.x/ 
然后我們將重命名更新補(bǔ)丁的內(nèi)核目錄名為“l(fā)inux-2.6.x”,執(zhí)行: 
[root@hyoklinux uClinux-dist]# mv linux-2.6.5 linux-2.6.x 

9、確定配置文件 

當(dāng)前的uClinux發(fā)布包不包含有關(guān)于uClinux/ARM2.6完整的配置文件。我們需要簡(jiǎn)單的修改一下,ARMulator默認(rèn)的配置文件在vendors/GDB/ARMulator目錄下面。我們能像下面這樣來(lái)修改它: 
[root@hyoklinux uClinux-dist]# cp linux-2.6.x/arch/armnommu/configs/GDB_ARMulator_defconfig  vendors/GDB/ARMulator/config.linux-2.6.x 

為了rootfs能使用ramdisk,我們需要修改一下配置目錄里的“rc”這個(gè)文件,這樣就可以使用1號(hào)的ramdisk設(shè)備了。 

(原文:Since we’ll use a ramdisk for the rootfs, we need to fix the “rc” in the 
configuration directory to use ramdisk device number 1) 

像下面這樣編輯vendors/GDB/ARMulator/rc這個(gè)文件: 
[root@hyoklinux uClinux-dist]# vim vendors/GDB/ARMulator/rc 

hostname GDB-ARMulator 
/bin/expand /etc/ramfs.img /dev/ram1 
mount -t proc proc /proc 
mount -t ext2 /dev/ram1 /var 
mkdir /var/tmp 
mkdir /var/log 
mkdir /var/run 
mkdir /var/lock 
mkdir /var/empty 
cat /etc/motd 

10、配置內(nèi)核和安裝用戶應(yīng)用程序 

[root@hyoklinux uClinux-dist]# make menuconfig 
首先在“Main Menu”找到“Vendor/Product”所在行,選擇“GDB/ARMulator”,像這樣: 
--- Select the Vendor you wish to target 
(GDB) Vendor 
--- Select the Product you wish to target 
(ARMulator) GDB Products 
你可以按’esc’鍵或是“Exit”按鈕返回主菜單。 

在主菜單選擇“Kernel/Library/Defaults選項(xiàng)”。 
選擇內(nèi)核版本為“l(fā)inux-2.6.x”,以及選擇使用的庫(kù)為“uClibc”。 
切換到下面的菜單: 
(linux-2.6.x) Kernel Version 
(uClibc) Libc Version 
[*] Default all settings (lose changes) (NEW) 
[*] Customize Kernel Settings (NEW) 
[*] Customize Vendor/User Settings (NEW) 
[*] Update Default Vendor Settings (NEW) 
你可以按’esc’鍵或是“Exit”按鈕返回主菜單。 

第一個(gè)“default all settings”選項(xiàng)是vendors目錄里默認(rèn)的配置文件。第二個(gè)“Customize kernel settings”選項(xiàng)能讓我們編輯內(nèi)核配置。第三個(gè)“Customize Vendor/User settings”選項(xiàng)是為了生成romfs.img所需要配置應(yīng)用程序和庫(kù)。最后一“Update Default Vendor settings”項(xiàng),你對(duì)內(nèi)核的改變以及你所配置的應(yīng)用程序?qū)⒈4嬖趘endors/product的目錄里。 
你可以按’esc’鍵或是“Exit”按鈕返回主菜單,然后保存并退出! 

11、配置內(nèi)核 

如果你確認(rèn)了上面的配置過(guò)程,那么你可以得到一個(gè)配置文件。然而我們需要改變初始的ramdis的大小。因?yàn)閞omfs.img文件的大小在默認(rèn)情況下大約是771KB。在“一般設(shè)置(General setup)”菜單里,有“Default kernel command string”這一項(xiàng),這樣改變它: 

root=/dev/ram0 initrd=0x01300000,800K keepinitrd 
你可以按’esc’鍵或是“Exit”按鈕返回主菜單,然后保存并退出! 

程序/庫(kù)的配置 

在這個(gè)菜單上,我們不需要修改任何的設(shè)置,看一下配置按“exit”保存并退出! 

現(xiàn)在我們運(yùn)行下面的這步來(lái)進(jìn)行整個(gè)的編譯過(guò)程: 

[root@hyoklinux uClinux-dist]# make 
注:如果是編譯linux-2.4.x或是以下的版本的內(nèi)核,你在“make”之前還需要“make dep”這一步,但是在編譯linux-2.6.x的內(nèi)核時(shí)就不需要了。 
這一步將編譯整個(gè)內(nèi)核和uclibc(uClinux的系統(tǒng)庫(kù)),用戶程序,以及制作romfs.img文件。 

下面是結(jié)果,你可以像下面這樣查看image目錄里的文件:
 
[root@hyoklinux uClinux-dist]# ls -al images 
total 3036 
drwxr-xr-x 2 root root 4096 Apr 27 22:13 . 
drwxr-xr-x 17 1000 users 4096 Apr 27 22:13 .. 
-rw-r--r-- 1 root root 1540272 Apr 27 22:13 image.bin 
-rwxr-xr-x 1 root root 45912 Apr 27 22:13 linux.data 
-rwxr-xr-x 1 root root 704856 Apr 27 22:13 linux.text 
-rw-r--r-- 1 root root 789504 Apr 27 22:13 romfs.img 

[root@hyoklinux uClinux-dist]# ls -al linux-2.6.x/linux 
-rwxr-xr-x 2 root root 15499433 Apr 27 22:11 linux-2.6.x/linux 

如果你得到了相同的文件,那么你就有了整個(gè)內(nèi)核和rootfs鏡像。 

12、讓我們來(lái)使用ARMulator! 

安裝ARMulator,我們需要另外一個(gè)目錄來(lái)編譯GDB/ARMulator。然而這時(shí)我們將在uClinux-dist的臨時(shí)使用的目錄里安裝它。 
[root@hyoklinux uClinux-dist]# tar -jxvf ~/incoming/gdb-5.0.tar.bz2 
打上補(bǔ)?。?nbsp;
[root@hyoklinux uClinux-dist]# gzip -dc ~/incoming/gdb-5.0-uclinux-armulator-20021127.patch.gz | patch -p0 
執(zhí)行另外的一步: 
[root@hyoklinux uClinux-dist]# gzip -dc ~/incoming/gdb-5.0-uclinux-armulator-ramdisk-20040412.patch.gz | patch -p0 

好,現(xiàn)在所要編譯的代碼已經(jīng)準(zhǔn)備好了,讓我們執(zhí)行它: 

[root@hyoklinux uClinux-dist]# cd gdb-5.0/ 
[root@hyoklinux gdb-5.0]# ./configure --target=arm-elf 
[root@hyoklinux gdb-5.0]# make 
[root@hyoklinux gdb-5.0]# make install 
現(xiàn)在可以運(yùn)行ARMulator了! 

在運(yùn)行ARMulator之前,我們需要一個(gè)能鏈接到鏡像文件“romfs.img”的標(biāo)志。 
[root@hyoklinux gdb-5.0]# cd .. 
[root@hyoklinux uClinux-dist]# ln -s images/romfs.img boot.rom 

以及制作一個(gè)初始化GDB的腳本: 
[root@hyoklinux uClinux-dist]# cat > .gdbinit 
target sim 
load 
^D 

通過(guò)下面的命令,就可以運(yùn)行我們的內(nèi)核了。 
[root@hyoklinux uClinux-dist]# arm-elf-gdb linux-2.6.x/linux 
GNU gdb 5.0 
Copyright 2000 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-elf"... 
Loaded ROM boot.rom to 0x01300000 
Loaded ROM boot.rom to 0x01400000 
Loaded ROM boot.rom to 0x04000000 
Loaded ROM boot.rom to 0x01300000 
Loaded ROM boot.rom to 0x01400000 
Loaded ROM boot.rom to 0x04000000 
Connected to the simulator. 
Loading section .init, size 0xb000 vma 0x1000000 
Loading section .text, size 0xa0b98 vma 0x100b000 
Loading section __ex_table, size 0x5b8 vma 0x10abba0 
Loading section .data, size 0x8ef8 vma 0x10ae000 
Start address 0x1000000 
Transfer rate: 5931584 bits in <1 sec. 

(gdb) run 

Starting program: /uClinux-dist/linux-2.6.x/linux 
Linux version 2.6.5-hsc1 (root@hyoklinux) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) 
#9 Mon May 3 11:00:29 KST 2004 
CPU: Atmel-AT91M40xxx [14000040] revision 0 (ARMvundefined/unknown) 
Machine: ATMEL EB01 
On node 0 totalpages: 1024 
DMA zone: 0 pages, LIFO batch:1 
Normal zone: 1024 pages, LIFO batch:1 
HighMem zone: 0 pages, LIFO batch:1 
Built 1 zonelists 
Kernel command line: root=/dev/ram0 initrd=0x01300000,800K keepinitrd 
PID hash table entries: 32 (order 5: 256 bytes) 
Memory: 4MB = 4MB total 
Memory: 2448KB available (642K code, 92K data, 44K init) 
Calibrating delay loop... 15.87 BogoMIPS 
Dentry cache hash table entries: 1024 (order: 0, 4096 bytes) 
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) 
Mount-cache hash table entries: 512 (order: 0, 4096 bytes) 
checking if image is initramfs...it isn’t (ungzip failed); looks like an initrd 
POSIX conformance testing by UNIFIX 
Linux NoNET1.0 for Linux 2.6 
Atmel USART driver version 0.99 
ttyS0 at 0xfffd0000 (irq = 2) is a builtin Atmel APB USART 
ttyS1 at 0xfffcc000 (irq = 3) is a builtin Atmel APB USART 
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize 
loop: loaded (max 8 devices) 
RAMDISK: romfs filesystem found at block 0 
RAMDISK: Loading 771 blocks [1 disk] into ram disk... done. 
VFS: Mounted root (romfs filesystem) readonly. 
Freeing init memory: 44K 
Shell invoked to run file: /etc/rc 
Command: hostname GDB-ARMulator 
Command: /bin/expand /etc/ramfs.img /dev/ram1 
Command: mount -t proc proc /proc 
Command: mount -t ext2 /dev/ram1 /var 
Command: mkdir /var/tmp 
Command: mkdir /var/log 
Command: mkdir /var/run 
Command: mkdir /var/lock 
Command: mkdir /var/empty 
Command: cat /etc/motd 
Welcome to 
____ _ _ 
/ __| ||_| 
_ _| | | | _ ____ _ _ _ _ 
| | | | | | || | _ | | | | / / 
| |_| | |__| || | | | | |_| |/  
| _______|_||_|_| |_|____|_/_/ 
| | 
|_| 


GDB/ARMulator support by  
For further information check: 
http://www.uclinux.org/   


Execution Finished, Exiting 


Sash command shell (version 1.1.1) 
/> ps 
PID PORT STAT SIZE SHARED %CPU COMMAND 
1 S 163K 0K 48.0 /sbin/init 
2 S 0K 0K 0.0 ksoftirqd/0 
3 S 0K 0K 1.0 events/0 
4 S 0K 0K 0.0 kblockd/0 
5 S 0K 0K 0.0 pdflush 
6 S 0K 0K 0.0 pdflush 
7 S 0K 0K 0.0 kswapd0 
8 S 0K 0K 0.0 aio/0 
11 S0 R 165K 0K 0.0 /bin/sh 
/> cd bin 
/bin> ls -al 
drwxr-xr-x 1 0 0 32 Jan 1 00:00 . 
drwxr-xr-x 1 0 0 32 Jan 1 00:00 .. 
-rwxr-xr-x 1 0 0 105980 Jan 1 00:00 boa 
-rwxr-xr-x 1 0 0 91104 Jan 1 00:00 dhcpcd 
-rwxr-xr-x 1 0 0 29624 Jan 1 00:00 expand 
-rwxr-xr-x 1 0 0 40504 Jan 1 00:00 gdbserver 
-rwxr-xr-x 1 0 0 73748 Jan 1 00:00 ifconfig 
-rwxr-xr-x 1 0 0 41144 Jan 1 00:00 inetd 
-rwxr-xr-x 1 0 0 31176 Jan 1 00:00 init 
-rwxr-xr-x 1 0 0 56380 Jan 1 00:00 login 
-rwxr-xr-x 1 0 0 64656 Jan 1 00:00 ping 
-rwxr-xr-x 1 0 0 34280 Jan 1 00:00 reboot 
-rwxr-xr-x 1 0 0 73860 Jan 1 00:00 route 
-rwxr-xr-x 1 0 0 79852 Jan 1 00:00 sh 
-rwxr-xr-x 1 0 0 51216 Jan 1 00:00 telnetd 
/bin> cat /proc/meminfo 
MemTotal: 2516 kB 
MemFree: 560 kB 
Buffers: 900 kB 
Cached: 188 kB 
SwapCached: 0 kB 
Active: 984 kB 
Inactive: 44 kB 
HighTotal: 0 kB 
HighFree: 0 kB 
LowTotal: 2516 kB 
LowFree: 560 kB 
SwapTotal: 0 kB 
SwapFree: 0 kB 
Dirty: 0 kB 
Writeback: 0 kB 
Mapped: 0 kB 
Slab: 752 kB 
Committed_AS: 0 kB 
PageTables: 0 kB 
VmallocTotal: 4194303 kB 
VmallocUsed: 0 kB 
VmallocChunk: 4194303 kB 
/bin> 

不錯(cuò)的文章,值得讀一下,翻譯時(shí)來(lái)來(lái)回回讀了好幾遍,每次都有不同的收獲,感覺(jué)不錯(cuò) 

由于時(shí)間倉(cāng)促,未能測(cè)試,請(qǐng)大家和我關(guān)注這個(gè)貼子,使它能更準(zhǔn)確、更完善! 

PIII550/384M/60G+40G/TNT2/8139/Fedora1.0 
LFS5.0+BLFS1.0ing…… 

http://timity.nease.net  
學(xué)習(xí)快樂(lè)!  

------

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉