国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

內核設計篇

2019-11-18 17:24:19
字體:
來源:轉載
供稿:網友
如何定制2.6內核更容易

作者:解放軍信息工程大學馮立功編譯發文時間:2004.12.07
作為一個積極推進軟件業革新的領頭羊,linux操作系統已成為開放系統運動的優秀代表。作為各種Linux發行版的共同核心,Linux內核多年來一直不間斷地引進新技術進行革新,逐步提高自身的各種性能,例如可伸縮性、可用性和技術支持等。眾多的改進都是圍繞增加對其它架構、處理器、總線、端口和外設的支持而進行的。從Linux2.2內核開始,因為每個新內核的誕生都要經過嚴格的檢驗和測試,所以其開發周期大約都保持在兩年左右。

除了增加的新功能外,每個新版穩定的Linux內核都會對大量原有功能進行改進,對內部接口進行定制使其更加標準,提高與其它設備的兼容性,并簡化對新設備和子系統的支持過程。這些改進中的一部分只與內核開發人員和硬件驅動程序編寫者有關,而其它的則影響到系統啟動、系統管理和應用軟件設置等方面。

如果用戶正在把現有的應用軟件移植到一個基于2.6內核的Linux套件上,例如TimeSysLinux系統,那么也許不會花費多少功夫,原因是TimeSysLinux的性能已大大改進。此外還增加了對行業標準的支持,例如對POSIX的支持。然而,如果用戶正在進行硬件驅動、定制系統級的應用軟件或可定制的Linux根文件系統的移植,那么可以參考內核在內部構件、子系統、系統啟動和系統管理上發生的基本變化。這會為用戶節省許多開發時間,并大大減少用戶在移植過程可能遇到的難題。

這里主要介紹如何將現有的硬件驅動、應用軟件和嵌入式Linux組件移植到一個基于2.6內核的Linux套件中(我們以TimeSysLinux為例子)。并結合一些軟件工具為用戶提供所需的信息,幫助用戶加快開發進程,控制軟件轉換和改進成本,甚至可以加快基于Linux系統的設備、系統和應用軟件進入市場的速度。這里所列舉的軟件是TimeStormLinux工具套件之類的工具軟件。它們可以在開發、移植、調試和驗證周期等方面為用戶提供幫助。

基于2.6內核的設置

內核是Linux操作系統的核心。它管理著所有的系統線程、進程、資源和資源分配。與其它操作系統不同的是,Linux操作系統允許用戶對內核進行重新設置。用戶可以對內核進行“瘦身”,增加或消除對某些特定設備或子系統的支持。在開發嵌入式系統時,開發人員經常會減少系統對一些無用設備的支持,將節省下來的內存分配給各種應用軟件。

Linux內核對各種硬件和端口的支持要靠各種硬件驅動程序來實現。這些驅動程序可以被直接寫入內核,也可以針對某些特定硬件在需要時自動加載。通常情況下,可以被自動加載進內核的內核編碼稱為自動加載內核模塊。

Linux內核的設置是通過內核設置編輯器完成的。內核設置編輯器可對每個內核設置變量進行描述,幫助用戶決定哪些變量需要被清除,哪些需要寫入內核,或者編成一個可加載內核模塊在需要時進行加載。

建立新內核的第一步是對內核進行設置。當用戶對內核進行設置時,必須先對內核和其它可加載內核模塊進行編寫和安裝。如果用戶要對原系統的內核進行構建設置,那么這一步是十分簡單的。但如果用戶要將原系統內核編譯應用于其它目標系統,那么這一步就會變得相對困難一些。例如,當用戶修改嵌入式系統的Linux內核時,很可能會先在一個桌面系統上對內核進行設置,然后再通過一套編譯工具將其移植到嵌入式系統中。此類編譯工具被稱為交叉編譯程序。

交叉編譯程序在一類系統運行的同時會生產一系列二進制編碼。這些編碼是專門為另一類系統而設計的。兩種系統有著完全不同的處理器或架構。在對內核或模塊的編譯過程中,用戶必須通過多種多樣的環境變量或Makefile設置來確定具體的交叉編譯程序。用戶還可以直接使用一個諸如TimeSys之類的集成開發環境來實現這一目標。TimeStorm可以幫助用戶很容易地選擇交叉編譯程序。同樣,當用戶對Linux的內核和模塊進行交叉編譯使之應用于嵌入式系統時,如果沒有TimeStorm之類的軟件,那么用戶必須通過額外的設置和Makefile手工修改,才能確定內核和模塊的安裝過程和安裝位置。

基于Linux2.6內核的設置較以往已經簡便多了。Linux2.6內核采用新的圖形設置編輯器使內核的編譯和設置變量的從屬關系確定變得更加簡單。過去基于2.x的內核為用戶提供了四種基本的內核設置編輯器:
◆config服務于內核設置的一個冗長的命令行界面;
◆oldconfig一個文本模式的界面,主要包含一個已有設置文件,對用戶所發現的內核資源中的設置變量進行排序;
◆menuconfig一個基于光標控制庫的終端導向編輯器,可提供文本模式的圖形用戶界面;
◆xconfig一個圖形內核設置編輯器,需要安裝X-Window系統。

前三種編輯器在設置2.6內核時仍可使用,在運行“makexconfig”后,原有的界面被兩個新的圖形設置編輯器所代替。這需要具體的圖形庫和X-Window系統的支持。另外,用戶還可以通過“makedefconfig”命令,利用所有內核設置變量的缺省值自動建立一個內核設置文件。

用新圖形編輯器設置內核

當用戶運行“makexconfig”命令后,會產生一個更加健壯的新的圖形編輯器。新的內核設置編輯器使用Trolltech公司的Qt工具套件。許多Linux系統并沒有集成Qt工具套件,但是用戶可以從
圖2gconfig內核編輯器界面


當用戶執行命令“makegconfig”時,屏幕會顯示第二個圖形設置編輯器。該設置編輯器最初顯示一個由兩個面板組成的圖形界面,如圖2所示。用戶可以通過鼠標點擊工具欄上的“Split”按鈕,將gconfig改變成與xconfig界面類似的圖形界面。該內核設置編輯器需要GTK2(GIMPToolkit,Version2)工具的支持。大多數桌面Linux都自帶有GTK2工具。

通常情況下,由“makegconfig”命令調出的編輯器界面不如“makexconifg”命令調出的界面詳盡和易用。除非用戶擁有一些諸如TimeSys、TimeStormLinux開發套件之類的設置工具,不然建議用戶使用“makexconfig”命令對內核進行設置。

內核設置技巧

內核設置選項內容很多,這里限于篇幅只列舉幾個通用的技巧和建議。對Linux2.6內核的設置要比以前版本簡單得多,但是它卻有著更多的設置選項。這意味著對于一個無法在硬件上啟動并運行,或者無法支持現有應用軟件的內核進行設置將變得更加容易。

作為一個常用技巧,在xconfig或gconfig編輯器Options選單下提供了幾種非常有用的內核設置選項。
◆Showalloptions選項。系統顯示所有可用的內核設置選項,即使是某選項由于各種原因無法被選取(通常情況下是由于與之相關的選項未被選取)。這一選項可以幫助用戶了解所需要的選項是否存在于內核資源中。
◆Showdebuginfo選項。系統顯示與幫助窗口中所選選項相關的內核設置變量。這一選項可以幫助用戶了解激活其它內核設置選項所需的前提選項。
◆ShowName選項。系統顯示與每個內核設置選項相關的內核設置變量的名稱,可以幫助確定內核設置變量間的從屬關系。

如果用戶已經根據需要對內核進行了設置,而且用來對內核進行編譯和安裝的“make”命令與Linux2.6內核不同,那么為了方便起見,用戶可以使用“makehelp”命令來顯示設置2.6內核的所有有效選項。

其它的“make”命令還包括“makedep”。該命令可以提供變量從屬關系信息。此外,“make”命令還可以對內核和其它選擇安裝的驅動程序進行編譯。其中,“makeinstall”和“makemodules_install”是兩個基本、常用的“make”命令。

建立新的內核設置文件

對Linux內核進行設置的有效手段之一是使用“makeoldconfig”命令。該命令可以在現有內核設置文件的基礎上建立一個新的內核設置文件。如果用戶目前沒有內核設置文件,可以通過執行這條命令或啟動任意一個圖形內核設置編輯器建立一個。

在內核升級設置過程中,“makeoldconfig”命令十分有用。“makeoldconfig”命令可以使內核設置進程讀取用戶已有的設置信息,從而提示用戶輸入某一內核設置變量的值。這一變量在已有的內核設置文件中是找不到的。

現在進行一個測試,將現有的內核設置從基于2.4內核的Linux套件移植到基于2.6內核的Linux套件中。首先將名為.config的文件復制到Linux2.6內核源代碼所在的目錄下。例如,這里要把一個定制設置文件從基于2.4內核的TimeSysLinux4.1移植到基于2.6內核的TimeSysLinux中,主要步驟如下:

#cd/opt/timesys/linux/4.1/iq80315/src/2.4.21-timesys-4.1/kernel
#cp.config/opt/timesys/linux/5.0/iq80315/src/2.6-timesys-5.0/kernel
#cd/opt/timesys/linux/5.0/iq80315/src/2.6-timesys-5.0/kernel
#makeoldconfig

這時,系統會提示用戶輸入表示當前所有未定義內核設置變量的值。輸入完畢后,“makeoldconfig”命令會自動生成一個升級的內核設置文件。這時用戶就可以著手建立新內核了。當然用戶也可以繼續使用功能更強大的內核設置編輯器對內核進行設置,例如xconfig。

小結

對于基于2.6內核的Linux發行版而言,簡化系統設置顯得更加重要。新的圖形設置編輯器大大簡化了用戶對2.6內核的設置。目前,TimeSys工具軟件在2.6內核設置中的應用十分廣泛。然而,隨著新技術的不斷涌現,每個新的架構、端口、子系統和其它設備都會增加內核設置變量的數量,這些變量都是用戶需要了解的。

其它軟件工具可為內核設置提供集成支持,例如TargetConfigurator。作為TimeStorm Linux開發套件中的一個組件,TargetConfigurator由OpenSourceEclipse架構提供動力。為了進一步簡化內核設置,TimeSysLinux包括已定制的內核設置文件,這些文件將帶來良好的性能、常規開發方式和較強的糾錯能力。無論用戶使用哪種工具和套件,對Linux2.6內核的設置都改進了很多。


上一篇:兩個很詳細的shell實例

下一篇:shell技巧

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 寿光市| 筠连县| 北海市| 怀仁县| 永善县| 佛学| 松阳县| 大同县| 堆龙德庆县| 高青县| 托克托县| 吴堡县| 呈贡县| 广西| 北票市| 北京市| 平昌县| 黄平县| 山东省| 义乌市| 花莲县| 黔东| 天台县| 荥经县| 吉林省| 洪湖市| 旬阳县| 广西| 泾川县| 鹤岗市| 宁阳县| 蓬溪县| 阿巴嘎旗| 德惠市| 平度市| 尖扎县| 竹山县| 东方市| 盐池县| 大同市| 繁峙县|