新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于嵌入式設備上的Linux 系統開發

        關于嵌入式設備上的Linux 系統開發

        作者: 時間:2012-08-28 來源:網絡 收藏

        創建 JFFS2 文件

        下,用 mkfs.jffs2 命令創建 JFFS2 文件(基本上是使用 JFFS2 的 Ramdisk)。

        清單 7. 創建 JFFS2 文件

        mkdir jffsfile

        cd jffsfile

        /* copy all the /bin, /etc, /usr/bin, /sbin/ binaries and /dev entries

        that are needed for the filesystem here */

        /* Type the following command under jffsfile directory to create the JFFS2 Image */

        ./mkfs.jffs2 -e 0x40000 -p -o ../jffs.image

        上面顯示了 mkfs.jffs2 的典型用法。 -e 選項確定閃存的擦除扇區大小(通常是 64 千字節)。 -p 選項用來在映像的剩余空間用零填充。 -o 選項用于輸出文件,通常是 JFFS2 文件系統映像 D 在本例中是 jffs.image。一旦創建了 JFFS2 文件系統,它就被裝入閃存中適當的位置(引導裝載程序告知內核查找文件系統的地址)以便內核能掛裝它。

        tmpfs

        運行于上時,該就成為功能齊全的單元,許多守護進程會在后臺運行并生成許多日志消息。另外,所有內核日志記錄機制,象 syslogd、dmesg 和 klogd,會在 /var 和 /tmp 目錄下生成許多消息。由于這些進程產生了大量數據,所以允許將所有這些寫操作都發生在閃存是不可取的。由于在重新引導時這些消息不需要持久存儲,所以這個問題的解決方案是使用 tmpfs。

        tmpfs 是基于內存的文件系統,它主要用于減少對系統的不必要的閃存寫操作這一唯一目的。因為 tmpfs 駐留在 RAM 中,所以寫/讀/擦除的操作發生在 RAM 中而不是在閃存中。因此,日志消息寫入 RAM 而不是閃存中,在重新引導時不會保留它們。tmpfs 還使用磁盤交換空間來存儲,并且當為存儲文件而請求頁面時,使用虛擬內存(VM)子系統。

        tmpfs 的 優點包括:

        動態文件系統大小 D 文件系統大小可以根據被復制、創建或刪除的文件或目錄的數量來縮放。使得能夠最理想地使用內存。

        速度 D 因為 tmpfs 駐留在 RAM,所以讀和寫幾乎都是瞬時的。即使以交換的形式存儲文件,I/O 操作的速度仍非??臁?p>tmpfs 的一個 缺點是當系統重新引導時會丟失所有數據。因此,重要的數據不能存儲在 tmpfs 上。

        掛裝 tmpfs

        諸如 Ext2fs 和 JFFS2 等大多數其它文件系統都駐留在底層塊之上,而 tmpfs 與它們不同,它直接位于 VM 上。因而,掛裝 tmpfs 文件系統是很簡單的事:

        清單 8. 掛裝 tmpfs

        /* Entries in /etc/rc.d/rc.sysinit for creating/using tmpfs */

        # mount -t tmpfs tmpfs /var -o size=512k

        # mkdir -p /var/tmp

        # mkdir -p /var/log

        # ln -s /var/tmp /tmp

        上面的命令將在 /var 上創建 tmpfs 并將 tmpfs 的最大大小限制為 512 K。同時,tmp/ 和 log/ 目錄成為 tmpfs 的一部分以便在 RAM 中存儲日志消息。

        如果您想將 tmpfs 的一個項添加到 /etc/fstab,那么它可能看起來象這樣: tmpfs /var tmpfs size=32m 0 0

        這將在 /var 上掛裝一個新的 tmpfs 文件系統。

        圖形用戶界面(GUI)選項

        從用戶的觀點來看,圖形用戶界面(GUI)是系統的一個最至關重要的方面:用戶通過 GUI 與系統進行交互。所以 GUI 應該易于使用并且非??煽俊5€需要是有內存意識的,以便在內存受限的、微型設備上可以無縫執行。所以,它應該是輕量級的,并且能夠快速裝入。

        另一個要考慮的重要方面涉及許可證問題。一些 GUI 分發版具有允許免費使用的許可證,甚至在一些商業產品中也是如此。另一些許可證要求如果想將 GUI 合并入項目中則要支付版稅。

        最后,大多數人員可能會選擇 XFree86,因為 XFree86 為他們提供了一個能使用他們喜歡的工具的熟悉環境。但是市場上較新的 GUI,象 Century Software 的 Microwindows(Nano-X)和 Trolltech 的 QT/Embedded,與 X 在 的競技舞臺中展開了激烈競爭,這主要是因為它們占用很少的資源、執行的速度很快并且具有定制窗口構件的支持。

        讓我們看一看這些選項中的每一個。

        Xfree86 4.X(帶幀緩沖區支持的 X11R6.4)

        XFree86 Project, Inc. 是一家生產 XFree86 的公司,該產品是一個可以免費重復分發、開放源碼的 X Window 系統。X Window 系統(X11)為應用程序以圖形方式進行顯示提供了資源,并且它是 UNIX 和類 UNIX 的機器上最常用的窗口系統。它很小但很有效,它運行在為數眾多的硬件上,它對網絡透明并且有良好的文檔說明。X11 為窗口管理、事件處理、同步和客戶機間通信提供強大的功能 D 并且大多數人員已經熟悉了它的 API。它具有對內核幀緩沖區的內置支持,并占用非常少的資源 D 這非常有助于內存相對較少的設備。X 服務器支持 VGA 和非 VGA 圖形卡,它對顏色深度 1、2、4、8、16 和 32 提供支持,并對渲染提供內置支持。最新的發行版是 XFree86 4.1.0。

        它的 優點包括:

        幀緩沖區體系結構的使用提高了性能。

        占用的資源相對很小 D 大小在 600 K 到 700 K 字節的范圍內,這使它很容易在小型設備上運行。

        非常好的支持:在線有許多文檔可用,還有許多專用于 XFree86 的郵遞列表。

        X API 非常適合擴展。

        它的 缺點包括:

        比最近出現的嵌入式 GUI 工具性能差。

        此外,當與 GUI 中最新的開發 D 象專門為嵌入式環境設計的 Nano-X 或 QT/Embedded D 相比時,XFree86 似乎需要更多的內存。

        Microwindows

        Microwindows 是 Century Software 的開放源代碼項目,設計用于帶小型顯示單元的微型設備。它有許多針對現代圖形視窗環境的功能部件。象 X 一樣,有多種平臺支持 Microwindows。

        Microwindows 體系結構是基于客戶機/服務器的并且具有分層設計。最底層是屏幕和輸入設備驅動程序(鍵盤或鼠標)來與實際硬件交互。在中間層,可移植的圖形引擎提供對線的繪制、區域的填充、多邊形、裁剪以及顏色模型的支持。

        在最上層,Microwindows 支持兩種 API:Win32/WinCE API 實現,稱為 Microwindows;另一種 API 與 GDK 非常相似,它稱為 Nano-X。Nano-X 用在 Linux 上。它是象 X 的 API,用于占用資源少的應用程序。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 天长市| 汾西县| 清丰县| 娱乐| 武汉市| 陵川县| 开封市| 石嘴山市| 鄂托克前旗| 江津市| 阳东县| 华容县| 宜阳县| 咸宁市| 汝南县| 卓资县| 和田市| 平顶山市| 芜湖市| 孟连| 南乐县| 翼城县| 邹城市| 新疆| 苗栗市| 瑞昌市| 兰州市| 万荣县| 万年县| 阜康市| 清徐县| 池州市| 文登市| 五指山市| 汶川县| 田阳县| 当阳市| 大埔县| 肇庆市| 周宁县| 万年县|