www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 這是一個(gè)向用戶介紹如何構(gòu)造Linux的圖形化安裝程序的專欄。介紹的內(nèi)容包括:安裝環(huán)境的定制,圖形化啟動(dòng),本地化支持,分區(qū)功能,如何支持reiserfs、raid、lvm,rpm包的安

 這是一個(gè)向用戶介紹如何構(gòu)造Linux的圖形化安裝程序的專欄。介紹的內(nèi)容包括:安裝環(huán)境的定制,圖形化啟動(dòng),本地化支持,分區(qū)功能,如何支持reiserfs、raid、lvm,rpm包的安裝,定制各種啟動(dòng)配置腳本等等。本文是這個(gè)系列文章的第一篇,主要是向您介紹如何定制系統(tǒng)安裝環(huán)境,包括生成安裝內(nèi)核,初始Ram盤的生成,最小化安裝環(huán)境的定制。

自從Caldera推出了第一個(gè)Linux系統(tǒng)下的圖形化安裝程序以來,現(xiàn)在的主流Linux發(fā)布大多都使用圖形化的安裝程序進(jìn)行系統(tǒng)環(huán)境的安裝,比如RedHat的安裝程序anaconda,Suse的安裝程序yast2,Caldera的安裝程序lizard,以及Mandrake的安裝程序gi。

這些主流廠商的安裝程序都有一個(gè)共同的特點(diǎn),就是它們都是先構(gòu)造一個(gè)完備的最小化的Linux運(yùn)行環(huán)境,定制Linux的啟動(dòng)過程,使得系統(tǒng)內(nèi)核啟動(dòng)后,加載一個(gè)系統(tǒng)裝載程序,這個(gè)程序?qū)⒍ㄖ坪玫腖inux運(yùn)行環(huán)境部分或者全部加載進(jìn)入內(nèi)存,然后將控制轉(zhuǎn)移到圖形化安裝程序。最后再由此程序啟動(dòng)的圖形環(huán)境(XFree86),設(shè)置對(duì)應(yīng)的語言環(huán)境,啟動(dòng)對(duì)應(yīng)的系統(tǒng)安裝過程。

1 主流安裝程序簡(jiǎn)介

Caldera的安裝程序lizard是Linux世界的第一個(gè)圖形化安裝程序,它的全部程序使用c++語言編制,圖形化的風(fēng)格是基于kde和qt的。值得一提的是,caldera在定制圖形化安裝時(shí),修改了內(nèi)核,實(shí)現(xiàn)了內(nèi)核的圖形化啟動(dòng),同時(shí)其安裝程序的硬件檢測(cè)功能很強(qiáng)大,可以檢測(cè)到部分非即插即用的isa設(shè)備,而且還提供了類似html風(fēng)格的幫助系統(tǒng)。因?yàn)榘惭b程序要求精煉的環(huán)境,而此時(shí)通用的XWindows窗口管理器是無法滿足需求的(太大而且占用資源太多),所以caldera中還提供了一個(gè)最小化的窗口管理器lwm。在caldera安裝系統(tǒng)包的過程中,您還可以玩吃豆子游戲,這也是lizard的一大創(chuàng)意。

Redhat的安裝程序anaconda可能是大家最熟悉的安裝程序之一。它的全部程序都是由Python完成。Python是一種面向?qū)ο蟮哪_本語言,您可以在http://www.python.org獲得它的相關(guān)資料。Redhat使用Python Gtk作為圖形界面的開發(fā)工具。在您解開anaconda的源碼包之后,您會(huì)發(fā)現(xiàn)一個(gè)anaconda的文件,這是程序執(zhí)行的主文件。它提供了一個(gè)最小化的slang庫以支持文本方式的安裝。Redhat的安裝程序最大的特點(diǎn)就是很穩(wěn)健,支持的驅(qū)動(dòng)程序較多,對(duì)硬件的支持很強(qiáng)(這說明Redhat安裝內(nèi)核定制得非常好,而且得到了相當(dāng)多的廠商支持)。但是Redhat安裝程序的功能不是特別強(qiáng),比如對(duì)于reiserfs、lvm不提供支持,不支持中文安裝(7.2可能會(huì)推出中文版)。也有很多廠商的安裝程序是稍微修改了RedHat源碼構(gòu)成的,比如VALinux、中科紅旗等。

對(duì)于Mandrake的安裝程序gi,它的全部程序都是使用Perl編制,您可以從Mandrake的CVS服務(wù)器上下載最新的安裝程序。Perl是一種功能強(qiáng)大的腳本語言,可以非常方便的處理Linux上的各種配置腳本,它的圖形界面使用Perl-GTK編制。Mandrake的安裝程序是第一種提供中文安裝的主流發(fā)布。它的安裝程序的特點(diǎn)是新,支持的功能相當(dāng)多,包括配置復(fù)雜的文件系統(tǒng),支持無線通訊設(shè)備,多種打印機(jī)支持等等。

Redhat和Mandrake的安裝程序都是由腳本構(gòu)成的,它們雖然速度稍慢,但是其構(gòu)成的安裝程序一般都比較穩(wěn)定,而且便于移植到其他平臺(tái)上。Redhat的整個(gè)安裝環(huán)境是保存在一個(gè)stage2.img的文件里。您可用命令:

mount -o loop stage2.img /mnt/tmp

將其掛接到指定的目錄下,察看Redhat安裝程序的結(jié)構(gòu)。Mandrake的安裝環(huán)境保存在mdkinst的目錄下。

2 安裝環(huán)境的構(gòu)成

一個(gè)圖形化的安裝環(huán)境實(shí)際上就是一個(gè)最小化的Linux運(yùn)行環(huán)境。一般由如下幾部分構(gòu)成:Linux系統(tǒng)安裝內(nèi)核,Linux系統(tǒng)的初始Ram磁盤,系統(tǒng)運(yùn)行所需的一些shell命令和程序所必需的系統(tǒng)庫,初始化程序,系統(tǒng)運(yùn)行時(shí)必須的外部命令,XFree86子系統(tǒng),字體集和本地化的環(huán)境設(shè)置,系統(tǒng)的桌面風(fēng)格和貼圖,鍵盤映射,設(shè)備配置數(shù)據(jù)庫,系統(tǒng)安裝程序等部分。

系統(tǒng)內(nèi)核vmlinuz存在系統(tǒng)的啟動(dòng)映像之中,在系統(tǒng)啟動(dòng)時(shí)調(diào)入,然后Linux調(diào)入初始Ram磁盤,由此Ram磁盤上的程序加載運(yùn)行安裝程序的第一階段加載程序。這是個(gè)可執(zhí)行程序,它一般執(zhí)行加載硬盤驅(qū)動(dòng)模塊,將磁盤上的整個(gè)安裝環(huán)境調(diào)入內(nèi)存,并作為根分區(qū)掛接。

這時(shí)就有一個(gè)在內(nèi)存中的最小化的Linux系統(tǒng)了,一段映像程序結(jié)束運(yùn)行,釋放自己所占的內(nèi)存,并將控制轉(zhuǎn)移到真正的系統(tǒng)安裝程序。這時(shí)系統(tǒng)安裝程序開始啟動(dòng)XFree86子系統(tǒng),設(shè)置正確的本地化環(huán)境,包括本地化環(huán)境變量,字體集,正確的鍵盤映射等,這時(shí)就允許用戶進(jìn)行交互,從而在用戶的干預(yù)下,完成整個(gè)系統(tǒng)的安裝過程。

整個(gè)安裝過程的一般流程:

2.1 定制安裝內(nèi)核

一個(gè)好的安裝程序內(nèi)核是和安裝程序緊密相關(guān)的,它必須是完備的和精簡(jiǎn)的。完備的內(nèi)核是指:如果安裝程序要對(duì)某方面的功能進(jìn)行支持的話,必須在內(nèi)核中也提供相應(yīng)的支持。精簡(jiǎn)的內(nèi)核是指:對(duì)于安裝程序不需要的功能,內(nèi)核一定不要支持,而且能作為模塊存在的,就一定要把它設(shè)置為模塊。這樣定制出來的內(nèi)核很小,保證了定制的內(nèi)核以及必須的硬盤驅(qū)動(dòng)模塊能放入啟動(dòng)映像中。

例如,對(duì)于2.4.3內(nèi)核一組選項(xiàng)是:(在下面的一組選項(xiàng)中沒有注明的選項(xiàng),可以在定制安裝程序的內(nèi)核時(shí)省略)

Loadable module support         可加載模塊支持

Enable loadable module support   將可加載模塊支持打入內(nèi)核

Kernel module loader        將內(nèi)核模塊加載器打入內(nèi)核

Processor type and features 內(nèi)核支持的處理器類型

(386) Processor family     選擇386兼容方式編譯內(nèi)核

Toshiba Laptop support    東芝筆記本支持作為模塊

(off) High Memory Support    對(duì)大于2GB的內(nèi)存不提供支持

選擇386兼容方式是為了保證安裝程序具有良好的兼容性,在某種程度上來說,速度的快慢并不是衡量安裝程序的指標(biāo)。一個(gè)好的安裝程序,應(yīng)該具有高穩(wěn)定性和高兼容性。

General setup                一般選項(xiàng)

Networking support           內(nèi)核級(jí)網(wǎng)絡(luò)支持

PCI support               內(nèi)核級(jí)PCI總線支持[!--empirenews.page--]

(Any)  PCI access mode           PCI硬件的存取方式

EISA support                內(nèi)核級(jí)EISA總線支持

Support for hot-pluggable devices    支持熱插拔設(shè)備

System V IPC                SystemV的進(jìn)程間通訊機(jī)制

(ELF) Kernel core (/proc/kcore) format 內(nèi)核文件格式為ELF

Kernel support for a.out binaries  內(nèi)核模塊支持a.out文件

<*> Kernel support for ELF binaries   內(nèi)核支持ELF格式

Kernel support for MISC binaries   內(nèi)核模塊支持其他的格式

對(duì)于網(wǎng)絡(luò)支持和IPC機(jī)制的內(nèi)核支持是必須的,因?yàn)長(zhǎng)inux上的很多程序,即便它沒有進(jìn)行網(wǎng)絡(luò)通訊,它也用這些方式進(jìn)行進(jìn)程間通訊。對(duì)于ELF的內(nèi)核支持也是必須的,因?yàn)榘惭b程序需要使用初始內(nèi)存映像(initrd),這種方式需要調(diào)用程序完成一些初始化的工作,這就要求內(nèi)核必須能夠支持ELF可執(zhí)行文件格式。其他對(duì)于PCI、EISA設(shè)備的支持,是提高安裝內(nèi)核硬件兼容性的必要選項(xiàng)。

Parallel port support      并行端口支持,要引入并口設(shè)備支持時(shí)

Parallel port support     模塊化的并行端口支持

PC-style hardware     PC類型的硬件

IEEE 1284 transfer modes IEEE 1284傳送模式支持(支持設(shè)備自檢)

對(duì)于并口而言,為了自動(dòng)檢測(cè)連接到并口的設(shè)備,必須將IEEE 1284傳送模式支持打入內(nèi)核。對(duì)于不支持IEEE 1284傳送模式的并口設(shè)備,系統(tǒng)是無法進(jìn)行自動(dòng)檢測(cè)的。

Plug and Play configuration

Plug and Play support      模塊化的即插即用設(shè)備支持

ISA Plug and Play support  模塊化的ISA即插即用設(shè)備支持

在2.4.x內(nèi)核中,對(duì)ISA Plug and Play設(shè)備的支持存在一些錯(cuò)誤,對(duì)于部分設(shè)備,將此選項(xiàng)置入內(nèi)核,設(shè)備是無法正常工作的。因此,建議在定制內(nèi)核時(shí),對(duì)此類設(shè)備的支持采用內(nèi)核模塊方式。

Block devices              引入對(duì)塊設(shè)備的支持

<*> RAM disk support         核心支持RAM磁盤

(4096) Default RAM disk size

Initial RAM disk (initrd) support

初始RAM磁盤的內(nèi)核支持。因?yàn)榘惭b程序需要設(shè)置初始內(nèi)存鏡像以加載設(shè)備模塊,所以這一選項(xiàng)對(duì)于安裝程序是必須的。

其他的選項(xiàng)都作為設(shè)備模塊存在,在需要時(shí)可以放入初始內(nèi)存鏡像中。

Multi-device support (RAID and LVM)

Multiple devices driver support (RAID and LVM)

<*>  RAID support           將設(shè)備模塊md.o打入內(nèi)核

如果將md.o不置入內(nèi)核,僅為模塊方式,raid分區(qū)將無法作為根分區(qū)啟動(dòng)系統(tǒng)。這主要是因?yàn)閞aid設(shè)備需要在啟動(dòng)之初對(duì)硬盤進(jìn)行讀寫,以決定raid分區(qū)的位置,類型等參數(shù)。

Linear (append) mode

RAID-0 (striping) mode

RAID-1 (mirroring) mode

RAID-4/RAID-5 mode

Multipath I/O support

Logical volu

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

CPU親和度通過限制進(jìn)程或線程可以運(yùn)行的CPU核心集合,使得它們只能在指定的CPU核心上執(zhí)行。這可以減少CPU緩存的失效次數(shù),提高緩存命中率,從而提升系統(tǒng)性能。

關(guān)鍵字: Linux 嵌入式

北京2025年8月13日 /美通社/ -- 近日,北京積算科技有限公司(以下簡(jiǎn)稱"積算科技")推出一站式AlphaFold3在線算力服務(wù),現(xiàn)已開放免費(fèi)使用。其內(nèi)置優(yōu)化后的AlphaFold3模型,支持...

關(guān)鍵字: ALPHA 代碼 圖形化 蛋白質(zhì)

在Linux系統(tǒng)性能優(yōu)化中,內(nèi)存管理與網(wǎng)絡(luò)連接處理是兩大核心領(lǐng)域。vm.swappiness與net.core.somaxconn作為關(guān)鍵內(nèi)核參數(shù),直接影響系統(tǒng)在高負(fù)載場(chǎng)景下的穩(wěn)定性與響應(yīng)速度。本文通過實(shí)戰(zhàn)案例解析這兩個(gè)...

關(guān)鍵字: Linux 內(nèi)存管理

對(duì)于LLM,我使用b谷歌Gemini的免費(fèi)層,所以唯一的成本是n8n托管。在使用了n8n Cloud的免費(fèi)積分后,我決定將其托管在Railway上(5美元/月)。然而,由于n8n是開源的,您可以在自己的服務(wù)器上托管它,而...

關(guān)鍵字: 人工智能 n8n Linux

在Linux系統(tǒng)管理中,權(quán)限控制是安全運(yùn)維的核心。本文通過解析/etc/sudoers文件配置與組策略的深度應(yīng)用,結(jié)合某金融企業(yè)生產(chǎn)環(huán)境案例(成功攔截98.7%的非法提權(quán)嘗試),揭示精細(xì)化權(quán)限管理的關(guān)鍵技術(shù)點(diǎn),包括命令別...

關(guān)鍵字: Linux 用戶權(quán)限 sudoers文件

Linux內(nèi)核中的信號(hào)量(Semaphore)是一種用于資源管理的同步原語,它允許多個(gè)進(jìn)程或線程對(duì)共享資源進(jìn)行訪問控制。信號(hào)量的主要作用是限制對(duì)共享資源的并發(fā)訪問數(shù)量,從而防止系統(tǒng)過載和數(shù)據(jù)不一致的問題。

關(guān)鍵字: Linux 嵌入式

在云計(jì)算與容器化技術(shù)蓬勃發(fā)展的今天,Linux網(wǎng)絡(luò)命名空間(Network Namespace)已成為構(gòu)建輕量級(jí)虛擬網(wǎng)絡(luò)的核心組件。某頭部互聯(lián)網(wǎng)企業(yè)通過命名空間技術(shù)將測(cè)試環(huán)境資源消耗降低75%,故障隔離效率提升90%。本...

關(guān)鍵字: Linux 云計(jì)算

在Linux內(nèi)核4.18+和主流發(fā)行版(RHEL 8/Ubuntu 20.04+)全面轉(zhuǎn)向nftables的背景下,某電商平臺(tái)通過遷移將防火墻規(guī)則處理效率提升40%,延遲降低65%。本文基于真實(shí)生產(chǎn)環(huán)境案例,詳解從ipt...

關(guān)鍵字: nftables Linux

在Linux設(shè)備驅(qū)動(dòng)開發(fā)中,等待隊(duì)列(Wait Queue)是實(shí)現(xiàn)進(jìn)程睡眠與喚醒的核心機(jī)制,它允許進(jìn)程在資源不可用時(shí)主動(dòng)放棄CPU,進(jìn)入可中斷睡眠狀態(tài),待資源就緒后再被喚醒。本文通過C語言模型解析等待隊(duì)列的實(shí)現(xiàn)原理,結(jié)合...

關(guān)鍵字: 驅(qū)動(dòng)開發(fā) C語言 Linux

在Unix/Linux進(jìn)程間通信中,管道(pipe)因其簡(jiǎn)單高效被廣泛使用,但默認(rèn)的半雙工特性和無同步機(jī)制容易導(dǎo)致數(shù)據(jù)競(jìng)爭(zhēng)。本文通過父子進(jìn)程雙向通信案例,深入分析互斥鎖與狀態(tài)機(jī)在管道同步中的應(yīng)用,實(shí)現(xiàn)100%可靠的數(shù)據(jù)傳...

關(guān)鍵字: 管道通信 父子進(jìn)程 Linux
關(guān)閉