欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種Linux操作系統(tǒng)的定制方法及系統(tǒng)的制作方法

文檔序號:6339159閱讀:257來源:國知局
專利名稱:一種Linux操作系統(tǒng)的定制方法及系統(tǒng)的制作方法
技術領域
本發(fā)明涉及Linux操作系統(tǒng),尤其涉及一種Linux操作系統(tǒng)的定制方法及系統(tǒng)。
背景技術
在進行Linux操作系統(tǒng)定制時,一般采用的是LFS(Linux From kratch,一切從源 碼開始定制Iinux系統(tǒng))方式。它提供了一種系統(tǒng)定制的思想一切從源代碼開始。最終 的系統(tǒng)由源碼編譯而成,管理員可以指定在哪里安裝,什么時候安裝,為什么安裝以及怎樣 安裝每一個程序。管理員也可以控制系統(tǒng)的所有特征目錄布局、腳本設置、安全設置以及 工具管理等等。LFS的好處就是管理員可以掌控整個系統(tǒng)。LFS需要一個宿主系統(tǒng)來掛載LFS分區(qū),在分區(qū)上構建一個臨時的編譯系統(tǒng),然后 才能編譯LFS系統(tǒng)。但是,現(xiàn)有的LFS定制過程比較復雜,定制周期比較長,需要手動輸入各源碼的編 譯命令,對初學者有一定的困難,而且維護起來比較困難,特別是在企業(yè)中需要頻繁地定制 系統(tǒng)或者增加/刪除功能模塊時,對管理成本和維護成本要求都是很高。

發(fā)明內容
本發(fā)明所要解決的技術問題是需要提供一種Linux操作系統(tǒng)的定制技術,以降低 定制Linux操作系統(tǒng)的難度。為了解決上述技術問題,本發(fā)明首先提供了一種Linux操作系統(tǒng)的定制方法,包 括如下步驟將Linux操作系統(tǒng)劃分為內核部分、初始系統(tǒng)部分、基礎操作系統(tǒng)(OS)部分和附 加OS部分;在宿主系統(tǒng)中存儲待構建的所述Linux操作系統(tǒng)的目標源碼和目標腳本;將上述四個部分的編譯過程寫入到所述目標腳本中;在所述Linux操作系統(tǒng)的定制過程中,根據(jù)用戶需求配置所述附加OS部分以及所 述內核部分的選項,配置動態(tài)配置文件,執(zhí)行所述目標腳本;其中所述內核部分為配置選項確定后就不需要再重新編譯的部分;所述初始系統(tǒng)部分為所述Linux操作系統(tǒng)啟動時在內存中模擬的一個根文件系 統(tǒng),與所述內核部分捆綁在一起;所述基礎OS部分包含工具程序、所述實際根文件系統(tǒng)所包含的目錄布局、已經(jīng)確 定就不會修改的固定配置、庫文件以及模塊文件;所述附加OS部分包含后期可能需要修改的非穩(wěn)配置及工具程序。優(yōu)選地,所述基礎OS部分包含基礎子目錄和新建子目錄,其中所述基礎子目錄用 于保存初始rpm包,所述新建子目錄用于保存新增加的rpm包。優(yōu)選地,所述基礎OS部分進一步包含自定義的可執(zhí)行腳本和/或文件。
優(yōu)選地,將所述四個部分的編譯過程寫入到所述腳本中的步驟,包括對于所述內核部分,保存一份Linux操作系統(tǒng)源碼、一份內核選項配置文件以及 為Linux源碼打補丁的目錄;對于所述初始系統(tǒng)部分,保存一份原始初始系統(tǒng)文件,以及需要在初始系統(tǒng)啟動 時加載的模塊的源碼;對于所述基礎OS部分,保存所述Linux操作系統(tǒng)中常用工具的rpm包文件及其動 態(tài)配置文件、所述Linux操作系統(tǒng)的目錄布局。優(yōu)選地,該方法進一步包括往所述構建系統(tǒng)添加通用模塊時,將所述通用模塊添加到所述基礎OS部分,并將 所述通用模塊的源碼的文件名添加到所述動態(tài)配置;往所述構建系統(tǒng)添加用戶自定義模塊時,將所述自定義模塊添加到所述附加OS 部分,將所述自定義模塊的源碼編譯過程作為自定義函數(shù)或自定義腳本添加到所述目標腳 本中,將所述自定義模塊的源碼的文件名添加到所述動態(tài)配置。為了解決上述技術問題,本發(fā)明還提供了一種Linux操作系統(tǒng)的定制系統(tǒng),包括 劃分模塊、存儲模塊、寫入模塊以及配置模塊,其中所述劃分模塊,用于將Linux操作系統(tǒng)劃分為內核部分、初始系統(tǒng)部分、基礎操作 系統(tǒng)(OS)部分和附加OS部分;所述存儲模塊,用于在宿主系統(tǒng)中存儲待構建的所述Linux操作系統(tǒng)的目標源碼 和目標腳本;所述寫入模塊,用于將上述四個部分的編譯過程寫入到所述目標腳本中;所述配置模塊,用于在所述Linux操作系統(tǒng)的定制過程中,根據(jù)用戶需求配置所 述附加OS部分以及所述內核部分的選項,配置動態(tài)配置文件,執(zhí)行所述目標腳本;其中所述內核部分為配置選項確定后就不需要再重新編譯的部分;所述初始系統(tǒng)部分為所述Linux操作系統(tǒng)啟動時在內存中模擬的一個根文件系 統(tǒng),與所述內核部分捆綁在一起;所述基礎OS部分包含工具程序、所述實際根文件系統(tǒng)所包含的目錄布局、已經(jīng)確 定就不會修改的固定配置、庫文件以及模塊文件;所述附加OS部分包含后期可能需要修改的非穩(wěn)配置及工具程序。優(yōu)選地,所述劃分模塊劃分的所述基礎OS部分包含基礎子目錄和新建子目錄,其 中所述基礎子目錄用于保存初始rpm包,所述新建子目錄用于保存新增加的rpm包。優(yōu)選地,所述劃分模塊劃分的所述基礎OS部分進一步包含自定義的可執(zhí)行腳本 和/或文件。優(yōu)選地,對于所述內核部分,所述寫入模塊用于保存一份Linux操作系統(tǒng)源碼、一 份內核選項配置文件以及為Linux源碼打補丁的目錄;對于所述初始系統(tǒng)部分,所述寫入 模塊用于保存一份原始初始系統(tǒng)文件,以及需要在初始系統(tǒng)啟動時加載的模塊的源碼;對 于所述基礎OS部分,所述寫入模塊用于保存所述Linux操作系統(tǒng)中常用工具的rpm包文件 及其動態(tài)配置文件、所述Linux操作系統(tǒng)的目錄布局。優(yōu)選地,所述配置模塊進一步用于往所述構建系統(tǒng)添加通用模塊時,將所述通用模塊添加到所述基礎OS部分,并將所述通用模塊的源碼的文件名添加到所述動態(tài)配置;所 述配置模塊進一步用于往所述構建系統(tǒng)添加用戶自定義模塊時,將所述自定義模塊添加到 所述附加OS部分,將所述自定義模塊的源碼編譯過程作為自定義函數(shù)或自定義腳本添加 到所述目標腳本中,將所述自定義模塊的源碼的文件名添加到所述動態(tài)配置。與現(xiàn)有技術相比,本發(fā)明提供了一種簡單、高效、智能并且有利于維護的Linux操 作系統(tǒng)的定制技術,不需要管理者在發(fā)布定制的操作系統(tǒng)時花費大量時間和精力,特別適 用于針對Linux操作系統(tǒng)開發(fā)的需要頻繁發(fā)布系統(tǒng)的應用。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權利 要求書以及附圖中所特別指出的結構來實現(xiàn)和獲得。


附圖用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與本發(fā)明的實 施例一起用于解釋本發(fā)明,并不構成對本發(fā)明的限制。在附圖中圖1是本發(fā)明實施例的Linux操作系統(tǒng)的定制方法的流程示意圖;圖2是本實施例定制流程的參考示意圖;圖3是本發(fā)明實施例的Linux操作系統(tǒng)的定制系統(tǒng)的組成示意圖。
具體實施例方式以下將結合附圖及實施例來詳細說明本發(fā)明的實施方式,借此對本發(fā)明如何應用 技術手段來解決技術問題,并達成技術效果的實現(xiàn)過程能充分理解并據(jù)以實施。實施例一、一種Linux操作系統(tǒng)的定制方法圖1是本實施例的流程示意圖,圖2是本實施例定制流程的參考示意圖。如圖1 所示,本實施例主要包括如下步驟步驟S110,將Linux操作系統(tǒng)劃分為四個組成部分,分別為內核(kernel)部分,初 始系統(tǒng)(initrd. gz)部分,基礎操作系統(tǒng)(Operating System, OS)部分和附加OS部分。本步驟中,在將Linux操作系統(tǒng)劃分為上述四個部分時,遵循如下規(guī)則(1)盡可能使得劃分后得到的部分最少;(2)各部分內有很強的關聯(lián)性;(3)盡量減少編譯程序和工具時的步驟;(4)盡量有利于功能的添加和刪除;(5)盡量能很好地完成一鍵式腳本(以下也稱目標腳本)的編寫;(6)盡量能選擇性地構建某些功能。將上述的內核(kernel)作為一個單獨的部分,是因為內核編譯時會占用大量的 時間,而且一旦內核配置選項確定后,就不需要再重新編譯。上述的初始系統(tǒng)(Initrd. gz)可以存儲在一初始RAM磁盤中,做為在構建后的 Linux操作系統(tǒng)啟動時,真正的根文件系統(tǒng)還不可用之前,在內存中模擬的一個根文件系 統(tǒng),與內核捆綁在一起,作為內核引導過程的一部分進行加載。上述基礎OS包含若干工具程序(如vim,gcc, openssh等),實際根文件系統(tǒng)所包含的目錄布局(如/proc,/root, /home等),若干一經(jīng)確定就不會修改的固定配置(如 php. ini, httpd. conf, passwd等一經(jīng)確定就不會修改的配置),以及若干庫(lib)文件,模 塊(module)文件等等,還可以包含若干自定義的可執(zhí)行腳本和/或文件等;其中,工具程序 一般采用rpm包的形式存在,區(qū)別于源碼的最大好處是方便安裝,不需要每個工具寫一個 構建的腳本函數(shù),可以通過動態(tài)配置讀取需安裝的rpm包文件。上述附加OS包含非穩(wěn)配置(即并不穩(wěn)定的,后續(xù)開發(fā)或者維護過程中需要經(jīng)常修 改的配置)以及工具程序等,該非穩(wěn)配置包括在開發(fā)過程和后期維護時可能需要經(jīng)常修改 源碼、更新文件,以及不確定是否在每個系統(tǒng)中都會需要的模塊等。步驟S120,通過上述劃分后,在宿主系統(tǒng)中建立一個目錄來存放構建系統(tǒng)的目標 源碼和一鍵式腳本(也即目標腳本,暫命名為0S_build目錄)一鍵式腳本放在一個子目 錄中,四個組成部分的源碼、配置文件、rpm包文件等都存放在各自的目錄中,這樣方便查看 和維護各子部分。通過上述的系統(tǒng)劃分后,將Linux操作系統(tǒng)劃分為4個內部聯(lián)系極其緊密,外部基 本無太大聯(lián)系的部分。步驟S130,將前述四個組成部分的編譯過程寫入到一鍵式腳本中。本步驟具體的寫入規(guī)則如下kernel部分,kernel子目錄將保存一份Linux操作系統(tǒng)源碼,一份內核選項配置 文件,以及保留為Linux源碼打補丁(patch)的目錄。相應的,一鍵式腳本中實現(xiàn)的功能就是拷貝內核源碼到臨時編譯目錄,將配置好 的內核配置文件拷貝到臨時源碼目錄中,通過讀取內核patch動態(tài)配置文件來給內核打 patch,然后編譯內核和模塊,編譯完成后,將內核拷貝到生成目錄中,將模塊安裝到指定的 臨時目錄,等待基礎OS部分來集成到基礎OS中。initrd. gz部分,initrd. gz子目錄將保存一份原始initrd. gz文件,以及一些需 要在initrd. gz啟動時加載的模塊的源碼,如一些驅動模塊等。編譯功能的實現(xiàn)流程為讀取配置來獲取需要編譯的驅動模塊,解壓掛載 initrd. gz文件,將驅動模塊和一些可執(zhí)行腳本加入到initrd中,然后卸載壓縮為initrd. gz文件,拷貝到生成目錄中。基礎OS部分基礎OS部分將保存待構建的Linux操作系統(tǒng)中常用工具的rpm包文 件及其動態(tài)配置文件、待構建的Linux操作系統(tǒng)的目錄布局以及相關工具的配置文件(一 些不采用默認的配置,而采用經(jīng)過修改后的配置)等。rpm包存放包含兩個子目錄,一個是基礎(base)子目錄,一個是新建(new)子目 錄,base子目錄保存最初的初始rpm包,如果是新增加的rpm包,則保存在new子目錄下 (也即new子目錄保存新增加的rpm包),這樣存放的好處就是若只安裝新增加的rpm包, 則只需要安裝new子目錄下的rpm包,因為rpm包安裝也會花費大量的時間。編譯功能的實現(xiàn)流程為先通過配置來獲取構建系統(tǒng)的目錄布局,創(chuàng)建各目錄,再 判斷編譯的rpm包類型,若是全編譯,則讀取base子目錄下的動態(tài)配置,全安裝該動態(tài)配 置中的rpm包;若不是則只安裝new目錄中的rpm包,base中的rpm包文件采用上一次安 裝的結果來實現(xiàn)安裝,然后刪除rpm包中安裝的一些man文件,以及一些不常用的工具等, 減少系統(tǒng)的大?。划斎?,若系統(tǒng)盤大小不是太拮據(jù),也可以不執(zhí)行這步,然后將相關工具的配置文件安裝到相應的目錄中,然后將kernel部分編譯的系統(tǒng)模塊拷貝到相應的lib和 modules目錄下,建立鏈接等,最后將整個目錄打包存放到生成目錄中。附加OS部分通過以上三個部分的編譯安裝后,系統(tǒng)是可以正常運行起來的;而 這一部分存在的意義是實現(xiàn)構建的系統(tǒng)的差異性。上述三部分保證了一個基礎的系統(tǒng),而這一部分將添加自己所需要定制的功能和 個性化的模塊;該目錄下存放的是自己開發(fā)的程序,或者腳本,或者一些很特殊的工具,以 及這些工具的配置文件目錄等。編譯功能的實現(xiàn)流程為判斷各模塊源碼包更改情況以及新的源碼包添加,然后 獲取到管理員所需要添加功能的配置,與之對比出一個所需要編譯的模塊的動態(tài)配置文 件,依據(jù)該動態(tài)配置文件調用相應的編譯函數(shù)來實現(xiàn)各模塊的編譯,安裝到相應的臨時目 錄中,然后拷貝相應的模塊配置文件到臨時目錄,所有模塊編譯完后,將臨時目錄整過打包 并拷貝到生成目錄中。以上內容就是一鍵式腳本的基礎實現(xiàn)流程,以及四個組成部分各自的目錄里所保 存的文件。步驟S140,完成一鍵式腳本后,在以后的定制操作系統(tǒng)過程中,根據(jù)用戶需求配置 附加OS部分,配置內核選項,配置rpm動態(tài)配置文件,然后執(zhí)行該一鍵式腳本來完成整個系 統(tǒng)定制過程,方便簡潔高效。若是在構建系統(tǒng)搭建之后需要添加某個通用模塊,比如需要添加一個通用rpm包 文件,則只需要將其添加到基礎OS部分的I3ase子目錄或者new子目錄中,然后將rpm包 文件名稱(對應于通用模塊的文件名)添加到動態(tài)配置中即可;若是要在構建系統(tǒng)搭建之 后添加一個用戶自己實現(xiàn)的某個自定義模塊(如快照等),則添加該自定義模塊的源碼到 附加OS部分的子目錄中,然后將該自定義模塊的源碼編譯過程作為一個自定義函數(shù)或自 定義腳本添加到目標腳本中,再將該自定義模塊的源碼的文件名寫入到動態(tài)配置中,下次 編譯時即可單獨編譯該模塊。因此,對于新增加模塊,無論是已有的模塊還是用戶自定義模 塊,均有著很好的擴展性。完成一鍵式腳本后,對各大部分進行編譯。該編譯可以全編譯,也可以只編譯某一 個部分中的某一個模塊,具體如下kernel編譯因為kernel編譯需要耗費大量的時間,所以在確定了內核配置選項 以及編譯了一次內核后,再發(fā)布系統(tǒng)就不需要再次編譯內核了。在本發(fā)明的實例中,kernel編譯的命令為#build kernel。initrd. gz編譯因為initrd. gz是實際根文件系統(tǒng)掛載之前的一個臨時初始根 文件系統(tǒng),因此在確定initrd. gz中需要確定加載的模塊和執(zhí)行的操作后,initrd. gz也只需要編譯一次。在本發(fā)明的實例中,initrd. gz的編譯命令為#build initrd. gz?;AOS編譯因為基礎OS中包含了系統(tǒng)所需的大量工具、腳本、庫以及模塊等,所 以在編譯時也會耗費大量的時間,但是這些也是很穩(wěn)定,不會輕易修改的,故一般也只編譯 一次即可,且主要的工具采用的是rpm包安裝,而不采用源碼(因為源碼包安裝太多的工具時會比較繁瑣)。在本發(fā)明的實例中,基礎OS編譯命令為#build baseos < new | all >。附加OS編譯在一個系統(tǒng)中,需要經(jīng)常更改的程序和工具一般會比較少,因此在 此時會將每個程序的編譯腳本寫為一個函數(shù),在進行編譯時會先在腳本中判斷出哪些程序 做出了改動,然后生成一個動態(tài)的編譯模塊文件,再由編譯腳本根據(jù)這些模塊來調用各自 的編譯函數(shù),這樣就可以在只修改了一個程序的時候,只編譯這一個程序,而不用去編譯其 它的程序;也可以在所有程序都更改后,再去編譯所有的程序。在本發(fā)明的實例中,附加OS編譯命令為#build extra < all | 模塊 11 模塊 2 | 模塊 3 | 模塊......>。通過讀取動態(tài)配置文件,調用命令接口來完成需要的模塊編譯。也可以一鍵式編譯,即執(zhí)行以下腳本#build all來實現(xiàn)全編譯前述四個組成部分中需要編譯的部分。在操作系統(tǒng)安裝與啟動的過程中,編譯后的kernel和initrd. gz都以各自的形式 存在,而基礎OS部分和附加OS部分則以壓縮包的形式存在。通過Iivecd灌裝的形式完成 系統(tǒng)的安裝。在操作系統(tǒng)的啟動流程中,進入grub后加載內核,當操作系統(tǒng)啟動進入到 initrd. gz時,會加載各個需要在主系統(tǒng)啟動前加載的驅動,以及掛載包含各模塊的磁盤分 區(qū),然后將各壓縮包解壓到內存中,再進入實際根文件系統(tǒng),即完成一次操作系統(tǒng)的啟動。實施例二、一種Linux操作系統(tǒng)的定制系統(tǒng)結合前述的實施例一,如圖3所示的本實施例主要包括劃分模塊310、存儲模塊 320、寫入模塊330以及配置模塊;340,其中劃分模塊310,用于將Linux操作系統(tǒng)劃分為內核部分、初始系統(tǒng)部分、基礎操作 系統(tǒng)(OS)部分和附加OS部分;存儲模塊320,用于在宿主系統(tǒng)中存儲構建系統(tǒng)的目標源碼和目標腳本;寫入模塊330,與劃分模塊310及存儲模塊320相連,用于將上述四個部分的編譯 過程寫入到目標腳本中;配置模塊340,與寫入模塊330相連,用于在Linux操作系統(tǒng)的定制過程中,根據(jù)用 戶需求配置附加OS部分以及內核部分的選項,配置動態(tài)配置文件,執(zhí)行目標腳本;其中內核部分為配置選項確定后就不需要再重新編譯的部分;初始系統(tǒng)部分為所述Linux操作系統(tǒng)啟動時在內存中模擬的一個根文件系統(tǒng),與 內核部分捆綁在一起;基礎OS部分包含工具程序、實際根文件系統(tǒng)所包含的目錄布局、已經(jīng)確定就不會 修改的固定配置、庫文件以及模塊文件;附加OS部分包含后期可能需要修改的非穩(wěn)配置以及工具程序等。上述劃分模塊310劃分的基礎OS部分包含基礎子目錄和新建子目錄,其中基礎子 目錄用于保存初始rpm包,新建子目錄用于保存新增加的rpm包。
上述劃分模塊310劃分的基礎OS部分進一步包含自定義的可執(zhí)行腳本和/或文 件。對于內核部分,寫入模塊330用于保存一份Linux操作系統(tǒng)源碼、一份內核選項配 置文件以及為Linux源碼打補丁的目錄;對于初始系統(tǒng)部分,寫入模塊330用于保存一份原始初始系統(tǒng)文件,以及需要在 初始系統(tǒng)啟動時加載的模塊的源碼;對于基礎OS部分,寫入模塊330用于保存所述Linux操作系統(tǒng)中常用工具的rpm 包文件及其動態(tài)配置文件、所述Linux操作系統(tǒng)的目錄布局。上述配置模塊340進一步用于往構建系統(tǒng)添加通用模塊時,將通用模塊添加到基 礎OS部分,并將通用模塊的源碼的文件名添加到動態(tài)配置;上述配置模塊340進一步用于往構建系統(tǒng)添加用戶自定義模塊時,將自定義模塊 添加到附加OS部分,將自定義模塊的源碼編譯過程作為自定義函數(shù)或自定義腳本添加到 目標腳本中,將自定義模塊的源碼的文件名添加到動態(tài)配置。由本發(fā)明的實施例可見,本發(fā)明的技術方案繼承了 LFS對整個操作系統(tǒng)良好掌控 的優(yōu)點,在一個穩(wěn)定的宿主系統(tǒng)中利用一鍵式腳本,通過動態(tài)配置,選擇性地編譯某些模塊 和功能,將不需要每次都重新編譯的功能在系統(tǒng)定制時不進行編譯,只引用上一次的編譯 結果,這樣在每一次定制操作系統(tǒng)的過程中,盡可能少地編譯模塊和程序,充分減少了操作 系統(tǒng)的發(fā)布周期。雖然本發(fā)明所揭露的實施方式如上,但所述的內容只是為了便于理解本發(fā)明而采 用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬技術領域內的技術人員,在不脫離本 發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式上及細節(jié)上作任何的修改與變化, 但本發(fā)明的專利保護范圍,仍須以所附的權利要求書所界定的范圍為準。
權利要求
1.一種Linux操作系統(tǒng)的定制方法,其特征在于,包括如下步驟將Linux操作系統(tǒng)劃分為內核部分、初始系統(tǒng)部分、基礎操作系統(tǒng)(OS)部分和附加OS 部分;在宿主系統(tǒng)中存儲待構建的所述Linux操作系統(tǒng)的目標源碼和目標腳本; 將上述四個部分的編譯過程寫入到所述目標腳本中;在所述Linux操作系統(tǒng)的定制過程中,根據(jù)用戶需求配置所述附加OS部分以及所述內 核部分的選項,配置動態(tài)配置文件,執(zhí)行所述目標腳本; 其中所述內核部分為配置選項確定后就不需要再重新編譯的部分; 所述初始系統(tǒng)部分為所述Linux操作系統(tǒng)啟動時在內存中模擬的一個根文件系統(tǒng),與 所述內核部分捆綁在一起;所述基礎OS部分包含工具程序、所述實際根文件系統(tǒng)所包含的目錄布局、已經(jīng)確定就 不會修改的固定配置、庫文件以及模塊文件;所述附加OS部分包含后期可能需要修改的非穩(wěn)配置及工具程序。
2.根據(jù)權利要求1所述的方法,其特征在于所述基礎OS部分包含基礎子目錄和新建子目錄,其中所述基礎子目錄用于保存初始 rpm包,所述新建子目錄用于保存新增加的rpm包。
3.根據(jù)權利要求1或2所述的方法,其特征在于所述基礎OS部分進一步包含自定義的可執(zhí)行腳本和/或文件。
4.根據(jù)權利要求1所述的方法,其特征在于,將所述四個部分的編譯過程寫入到所述 腳本中的步驟,包括對于所述內核部分,保存一份Linux操作系統(tǒng)源碼、一份內核選項配置文件以及為 Linux源碼打補丁的目錄;對于所述初始系統(tǒng)部分,保存一份原始初始系統(tǒng)文件,以及需要在初始系統(tǒng)啟動時加 載的模塊的源碼;對于所述基礎OS部分,保存所述Linux操作系統(tǒng)中常用工具的rpm包文件及其動態(tài)配 置文件、所述Linux操作系統(tǒng)的目錄布局。
5.根據(jù)權利要求1所述的方法,其特征在于,該方法進一步包括往所述構建系統(tǒng)添加通用模塊時,將所述通用模塊添加到所述基礎OS部分,并將所述 通用模塊的源碼的文件名添加到所述動態(tài)配置;往所述構建系統(tǒng)添加用戶自定義模塊時,將所述自定義模塊添加到所述附加OS部分, 將所述自定義模塊的源碼編譯過程作為自定義函數(shù)或自定義腳本添加到所述目標腳本中, 將所述自定義模塊的源碼的文件名添加到所述動態(tài)配置。
6.一種Linux操作系統(tǒng)的定制系統(tǒng),其特征在于,包括劃分模塊、存儲模塊、寫入模塊 以及配置模塊,其中所述劃分模塊,用于將Linux操作系統(tǒng)劃分為內核部分、初始系統(tǒng)部分、基礎操作系統(tǒng) (OS)部分和附加OS部分;所述存儲模塊,用于在宿主系統(tǒng)中存儲待構建的所述Linux操作系統(tǒng)的目標源碼和目 標腳本;所述寫入模塊,用于將上述四個部分的編譯過程寫入到所述目標腳本中; 所述配置模塊,用于在所述Linux操作系統(tǒng)的定制過程中,根據(jù)用戶需求配置所述附 加OS部分以及所述內核部分的選項,配置動態(tài)配置文件,執(zhí)行所述目標腳本; 其中所述內核部分為配置選項確定后就不需要再重新編譯的部分; 所述初始系統(tǒng)部分為所述Linux操作系統(tǒng)啟動時在內存中模擬的一個根文件系統(tǒng),與 所述內核部分捆綁在一起;所述基礎OS部分包含工具程序、所述實際根文件系統(tǒng)所包含的目錄布局、已經(jīng)確定就 不會修改的固定配置、庫文件以及模塊文件;所述附加OS部分包含后期可能需要修改的非穩(wěn)配置及工具程序。
7.根據(jù)權利要求6所述的系統(tǒng),其特征在于所述劃分模塊劃分的所述基礎OS部分包含基礎子目錄和新建子目錄,其中所述基礎 子目錄用于保存初始rpm包,所述新建子目錄用于保存新增加的rpm包。
8.根據(jù)權利要求6或7所述的系統(tǒng),其特征在于所述劃分模塊劃分的所述基礎OS部分進一步包含自定義的可執(zhí)行腳本和/或文件。
9.根據(jù)權利要求6所述的系統(tǒng),其特征在于對于所述內核部分,所述寫入模塊用于保存一份Linux操作系統(tǒng)源碼、一份內核選項 配置文件以及為Linux源碼打補丁的目錄;對于所述初始系統(tǒng)部分,所述寫入模塊用于保存一份原始初始系統(tǒng)文件,以及需要在 初始系統(tǒng)啟動時加載的模塊的源碼;對于所述基礎OS部分,所述寫入模塊用于保存所述Linux操作系統(tǒng)中常用工具的rpm 包文件及其動態(tài)配置文件、所述Linux操作系統(tǒng)的目錄布局。
10.根據(jù)權利要求6所述的系統(tǒng),其特征在于所述配置模塊進一步用于往所述構建系統(tǒng)添加通用模塊時,將所述通用模塊添加到所 述基礎OS部分,并將所述通用模塊的源碼的文件名添加到所述動態(tài)配置;所述配置模塊進一步用于往所述構建系統(tǒng)添加用戶自定義模塊時,將所述自定義模塊 添加到所述附加OS部分,將所述自定義模塊的源碼編譯過程作為自定義函數(shù)或自定義腳 本添加到所述目標腳本中,將所述自定義模塊的源碼的文件名添加到所述動態(tài)配置。
全文摘要
本發(fā)明公開了一種Linux操作系統(tǒng)的定制方法及系統(tǒng),以降低定制Linux操作系統(tǒng)的難度,其中該方法包括將Linux操作系統(tǒng)劃分為內核部分、初始系統(tǒng)部分、基礎OS部分和附加OS部分;在宿主系統(tǒng)中存儲待構建的Linux操作系統(tǒng)的目標源碼和目標腳本;將上述四個部分的編譯過程寫入到目標腳本中;在Linux操作系統(tǒng)的定制過程中,根據(jù)用戶需求配置附加OS部分以及內核部分的選項,配置動態(tài)配置文件,執(zhí)行目標腳本。本發(fā)明提供了一種簡單、高效、智能并且有利于維護的Linux操作系統(tǒng)的定制技術,不需要管理者在發(fā)布定制的操作系統(tǒng)時花費大量時間和精力,特別適用于針對Linux操作系統(tǒng)開發(fā)的需要頻繁發(fā)布系統(tǒng)的應用。
文檔編號G06F9/44GK102053831SQ20101059584
公開日2011年5月11日 申請日期2010年12月10日 優(yōu)先權日2010年12月10日
發(fā)明者唐金榮, 施培任 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
九龙坡区| 奇台县| 二手房| 雷山县| 怀安县| 宁都县| 顺平县| 泰宁县| 汉中市| 中超| 肥西县| 保德县| 滨州市| 大城县| 中山市| 共和县| 辽宁省| 曲靖市| 莆田市| 高邮市| 竹北市| 梁河县| 永春县| 龙海市| 绵竹市| 苗栗市| 黄大仙区| 四平市| 浮山县| 长阳| 济源市| 三亚市| 余江县| 遵化市| 蓝山县| 宁蒗| 平罗县| 吉木萨尔县| 宜君县| 牡丹江市| 西乌|