① linux cloop 文件系統的大概意思是什麼
cloop是手稿燃一種設備——壓縮的循環設備(Compressed Loopback Device )
它是linux內核的一個模塊,可以通過它連接一個標準的文件系統,在敬知訪問時透明地壓縮和解壓文件系統(如ISO-9660 cdrom文件系統等)。
cloop是將畢虛一個常規文件系統壓縮到Live CD上的常用方法。
② 操作系統的內核與文件系統是什麼關系
一、什麼是文件系統
文件系統指文件存在的物理空間,linux系統中每個分區都是一個文件系統,都有自己的目錄層次結構。
Linux文件系統中的文件是數據的集合,文件系統不僅包含著文件中的數據而且還有文件系統的結構,所有Linux 用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。這種機制有利於用戶和操作系統的交互。
每個實際文件系統從操作系統和系統服務中分離出來,它們之間通過一個介面層:虛擬文件系統或VFS來通訊。VFS使得Linux可以支持多個不同的文件系統,每個表示一個VFS 的通用介面。由於軟體將Linux 文件系統的所有細節進行了轉換,所以Linux核心的其它部分及系統中運行的程序將看到統一的文件系統。Linux 的虛擬文件系統允許用戶同時能透明地安裝許多不同的文卜虧閉件系統。
在Linux文件系統中,EXT2文件系統、虛擬文件系統、/proc文件系統是三個具有代表性的文件系統。
二、什麼是根文件系統
根文件系統首先是一種文件系統,該文件系統不僅具有普通文件系統的存儲數據文件的功能,但是相對於普通的文件系統,它的特殊之處在於,它是內核啟動時所掛載(mount)的第一個文件系統,內核代碼的映像文件保存在根文件系統中,系統引導啟動程序會在根文件系統掛載之後從中把一些初始化腳本(如rcS,inittab)和服務載入到內存中去運行。我們要明白文件系統和內核是完全獨立的兩個部分。在嵌入式中移植的內核下載到開發板上,是沒有辦法真正的啟動Linux操作系統的,會出現無法載入文件系統的錯誤。
那麼根文件系統在系統啟動中到底是什麼時候空橋掛載的呢?先將型裂/dev/ram0掛載,而後執行/linuxrc.等其執行完後。切換根目錄,再掛載具體的根文件系統.根文件系統執行完之後,也就是到了Start_kernel()函數的最後,執行init的進程,也就第一個用戶進程。對系統進行各種初始化的操作。
根文件系統之所以在前面加一個」根「,說明它是載入其它文件系統的」根「,既然是根的話,那麼如果沒有這個根,其它的文件系統也就沒有辦法進行載入的。它包含系統引導和使其他文件系統得以掛載(mount)所必要的文件。根文件系統包括Linux啟動時所必須的目錄和關鍵性的文件,例如Linux啟動時都需要有init目錄下的相關文件,在 Linux掛載分區時Linux一定會找/etc/fstab這個掛載文件等,根文件系統中還包括了許多的應用程序bin目錄等,任何包括這些Linux 系統啟動所必須的文件都可以成為根文件系統。Linux啟動時,第一個必須掛載的是根文件系統;若系統不能從指定設備上掛載根文件系統,則系統會出錯而退出啟動。成功之後可以自動或手動掛載其他的文件系統。因此,一個系統中可以同時存在不同的文件系統。在 Linux 中將一個文件系統與一個存儲設備關聯起來的過程稱為掛載(mount)。使用 mount 命令將一個文件系統附著到當前文件系統層次結構中(根)。在執行掛裝時,要提供文件系統類型、文件系統和一個掛裝點。根文件系統被掛載到根目錄下「/」上後,在根目錄下就有根文件系統的各個目錄,文件:/bin /sbin /mnt等,再將其他分區掛接到/mnt目錄上,/mnt目錄下就有這個分區的各個目錄,文件。
三、什麼是內核
Linux內核就像人的心臟,靈魂,指揮中心。內核是一個操作系統的核心,它負責管理系統的進程,內存,設備驅動程序,文件和網路系統,決定著系統的性能和穩定性。內核以獨占的方式執行最底層任務,保證系統正常運行。協調多個並發進程,管理進程使用的內存,使它們相互之間不產生沖突,滿足進程訪問磁碟的請求等.
操作系統是一個用來和硬體打交道並為用戶程序提供一個有限服務集的低級支撐軟體。一個計算機系統是一個硬體和軟體的共生體,它們互相依賴,不可分割。計算機的硬體,含有外圍設備、處理器、內存、硬碟和其他的電子設備組成計算機的發動機。但是沒有軟體來操作和控制它,自身是不能工作的。完成這個控制工作的軟體就稱為操作系統,在Linux的術語中被稱為「內核」,也可以稱為「核心」。Linux內核的主要模塊(或組件)分以下幾個部分:存儲管理、CPU和進程管理、文件系統、設備管理和驅動、網路通信,以及系統的初始化(引導)、系統調用等。
四.內核與文件系統的關系
技術上說Linux是一個內核。「內核」指的是一個提供硬體抽象層、磁碟及文件系統控制、多任務等功能的系統軟體。一個內核不是一套完整的操作系統。一套基於Linux內核的完整操作系統叫作Linux操作系統,或是GNU/Linux。
文件系統是kernel的一部分。文件系統實現了系統上存儲介質和其他資源的交互。kernel tree中的fs目錄都是關於文件系統的,可以說它是kernel的一個大子系統。
嵌入式系統在flash中分配了存放內核、根文件系統的區域。bootloader載入了內核,內核啟動,載入文件系統,進入Linux系統。
整個嵌入式系統而言,可以分為三個部分1.uboot 2.kernel 3.文件系統。其中kernel中以VFS去支持各種文件系統,如yaffs,ext3,cramfs等等。yaffs/yaffs2是專為嵌入式系統使用NAND型快閃記憶體而設計的一種日誌型文件系統。在內核中以VFS來屏蔽各種文件系統的介面不同,以VFS向kernel提供一個統一的介面。如打開一個文件時統一使用open,寫時採用write,而不用去考慮是那種文件系統,也不用去考慮文件系統是如何將數據寫入物理介質的。其中 kernel中的配置,只是讓VFS支持這種介面。
③ linux的內核是由bootloader裝載到內存中的
linux的內核的確是由bootloader裝載到內存中的。linux的bootloader有2個部分組成:bootstrap和uboot。所以更准確點的說法是:linux的內核是由uboot裝載到內存中的。內核文件本身是存放在硬碟的文件系統中,這句話就是錯的。內核和文件手旁系統是分開存儲的。uboot讀取kernel到內存是從kernel開始存儲的地址開始讀取的,而讀取開始位置和讀取大小,是由環境變數決定的。所以這個時候不需要文件系統的。
給你張圖片,便於理解吧。這張圖片畢團橡是bootstrap、uboot、環境變數、kernel、文件系統在nandflash裡面的存儲分布。
其中rootfs.jfss2就是文件系統或尺。
④ ramdisk 文件系統的解壓與還原
1.通過file ramdisk.gz命令目信喚標文件是否為ramdisk文件系統查看如下:
或者通過mpimage -l rootfs.uimg
通過 file 命令查看是否還原正確,輸出以下信息,可以看到文件已變成了gzip文件。
可知ramdisk.gz實際為ramdisk.img,且增加了u-boot頭,64Bytes大小
此時已將ramdisk.gz文件解壓為目錄形式,可進行相應修改。
為方便使用製作成簡易執行腳本,保存以滑喊凱下內容為unimage.sh 然滲慧後chmod 755 unimage.sh 添加可執行許可權。
運行方法 unimage.sh rootfs.uimg
⑤ 內核WINDOWS系統
一、引言
內核系統(EmbeddedSystems)是根據應用的要求,將操作系統和功能軟體集成於計算機硬體系統之中,從而實現軟體與硬體一體化的計算機系統。內核系統出現於60年代晚期,它最初被用於控制機電電話交換機,如今已被廣泛的應用於工業製造、過程式控制制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產品等眾多領域。內核系統在數量上遠遠超過了各種通用計算機系統:計算機系統核心CPU,每年在全球范圍內的產量大概在二十億顆左右,其中超過80%應用於各類專用性很強的內核系統。
一般的說,凡是帶有微處理器的專用軟硬體系統都可以稱為內核系統。和通用的計算平台相比,內核系統往往具有功能單一、體積小、功耗低、可靠性高、剪裁性好、軟硬體集成度高、計算能力相對較低等特點。多年來,內核設備中沒有操作系統,其主要原因有二:首先,諸如洗衣機、微波爐、電冰箱這樣的設備僅僅需要一道簡單的控製程序,以管理數量有限的按鈕和指示燈,沒有使用操作系統的必要;其次,它往往只具有有限的硬體資源,不足以支持一個操作系統。
然而,隨著硬體的發展,內核系統變得越來越復雜,最初的控製程序中逐步的加入了許多功能,而這些功能中有很多可以由操作系統提供。於是,在70年代末期出現了內核操作系統(EmbeddedOperatingSystems),它的出現大大簡化了應用程序設計,並可以有效的保障軟體質量和縮短開發周期。簡單的ES一般並不使用操作系統,只包含一些控制流程,但是隨著內核操作系統在復雜性上的增長,簡單的流程式控制制就不能滿足系統的要求,這是就必須考慮使用操作系統做系統軟體。因此,內核操作系統就應運而生。
隨著EOS的廣泛應用,業界已推出一些應用比較成功的EOS產品。歸納起來EOS應該具有以下幾個特點:小巧、實時性、可裝卸、固化代碼、弱交互性、強穩定性和統一的介面。目前使用最多的EOS產品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、HopenOS(國內凱思集團公司自主研製開發)等。其中,Vxwork使用最為廣泛、市場佔有率最高,其突出特點是實時性強(採用優先順序搶占和輪轉調度等機制),除此之外,其可靠性和可剪裁性也相當不錯。QNX是一種伸縮性極佳的系統,其核心加上實時POSIX環境和一個完整的窗口系統還不到一兆。相比之下,MicrosoftWinCE的核心體積龐大,實時性能也差強人意,但由於Windows系列友好的用戶界面和為程序員所熟悉的API,並捆綁IE、Office等應用程序,正逐漸獲得更大的市場份額。而與這些商業化的操作系統相比,WINDOWS已經越來越受到人們的注意。
二、內核WINDOWS概述
WINDOWS是一個成熟而穩定的網路操作系統。將WINDOWS植入內核設備具有眾多的優點。首先,WINDOWS的源代碼是開放的,任何卜盯喚人都可以獲取並修改,用之開發自己的產品。其次,Lirmx是可以定製的,其系統內核最小隻有約134kB。一個帶有中文系統和圖形用戶界面的核心程序也可以做到不足1MB,並且同樣穩定。另外,它和多數Unix系統兼容,應用程序的開發和移植相當容易。同時,由於具有良好的可移植性,人們已成功使WINDOWS運行於數百種硬體平台之上。
然而,WINDOWS並非專門為實時性應用而設計,因此如果想在對實時性要求較高的內核系統中運行WINDOWS,就必須為之添加實時軟體模塊。這些模塊運行的內核空間正是操作系統實現進程調度、中斷處理和程序執行型凱的部分,因此錯誤的代碼可能會破壞操作系統,進而影響整個系統的可靠性和穩定性。WINDOWS的眾多優點還是使它在內核領域獲得了廣泛的應用,並出現了數量可觀的內核WINDOWS系統。其中有代表性的包括:uCWINDOWS、ETWINDOWS、ThinWINDOWS、LOAF等。ETWINDOWS通常用於在小型工業計算機,尤其是PC/104模塊。ThinWINDOWS面向專用的照相機伺服器、X-10控制器、MP3播放器和則耐其它類似的內核應用。LOAF是WINDOWSOnAFloppy的縮略語,它運行在386平台上。
三、WINDOWS作為內核操作系統的優勢
WINDOWS作為內核操作系統的優勢主要有以下幾點:
1、可應用於多種硬體平台。WINDOWS已經被移植到多種硬體平台,這對於經費,時間受限制的研究與開發項目是很有吸引力的。原型可以在標准平台上開發後移植到具體的硬體上,加快了軟體與硬體的開發過程。WINDOWS採用一個統一的框架對硬體進行管理,從一個硬體平台到另一個硬體平台的改動與上層應用無關。WINDOWS可以隨意地配置,不需要任何的許可證或商家的合作關系,源代碼可以免費得到。這使得採用WINDOWS作為操作系統不會遇到任何關於版權的糾紛。毫無疑問,這會節省大量的開發費用。本身內置網路支持,而目前內核系統對網路支持要求越來越高。WINDOWS的高度模塊化使添加部件非常容易。
2、WINDOWS是一個和Unix相似、以內核為基礎的、具有完全的內存訪問控制,支持大量硬體(包括X86,Alpha、ARM和Motorola等現有的大部分晶元)等特性的一種通用操作系統。其程序源碼全部公開,任何人可以修改並在GUN通用公共許可證(GNUGeneralPublicLicense)下發行。這樣,開發人員可以對操作系統進行定製,適應其特殊需要。
3、WINDOWS帶有Unix用戶熟悉的完善的開發工具,幾乎所有的Unix系統的應用軟體都已移植到了WINDOWS上。WINDOWS還提供了強大的網路功能,有多種可選擇窗口管理器(XWindows)。其強大的語言編譯器GCC,C等也可以很容易得到,不但成熟完善,而且使用方便。
四、內核WINDOWS的建立
完整的內核WINDOWS解決方案應包括內核WINDOWS操作系統內核、運行環境、圖形化界面和應用軟體等。由於內核設備的特殊要求,內核WINDOWS解決方案中的內核、環境、GUI等都與標准WINDOWS有很大不同,其主要挑戰是如何在狹小的FLASH、ROM和內存中實現高質量的任務實時調度、圖形化顯示、網路通信等功能。
1、精簡內核
WINDOWS內核有自己的結構體系,其中進程管理、內存管理和文件系統是其最基本的3個子系統。圖1簡單表示了它的框架。用戶進程可直接通過系統調用或者函數庫來訪問內核資源。正因為WINDOWS內核具有這樣的結構,因此修改內核時必須注意各個子系統之間的協調。
內核WINDOWS內核一般由標准WINDOWS內核裁剪而來。用戶可根據需求配置系統,剔除不需的服務功能、文件系統和設備驅動。經過裁剪、壓縮後的系統內核一般只有300k左右,十分適合內核設備。同標准WINDOWS不同的是內核WINDOWS必須要實現從FLASH或ROM的啟動。標准WINDOWS啟動代碼實現了系統初始化和從軟盤、硬碟O盤區引導內核。內核WINDOWS一般保存在FLASH或ROM中,標准LILO無法引導。在支持直接從FLASH設備引導的系統中,如華恆公司的uCWINDOWS,引導程序主要完成對硬體系統的初始化工作和操作系統的解壓、移位工作。在不支持直接從FLASH引導的系統中,FLASH設備只能作為非引導磁碟使用。此時,可採用先從硬碟或軟盤載入一個小操作系統,如內核DOS,然後再執行"Loadlin"載入程序從FLASH引導內核WINDOWS。
對標准WINDOWS的修改主要是虛擬內存和調度程序部分的改動。因為標准WINDOWS系統使用虛擬內存管理的目的是為了能同時運行多個進程,但是這樣每個待運行的進程所能分配的CPU時間片就受限制,資源的使用效率就低。這樣對於實時性要求較高的內核系統來說,實時任務往往要求CPU具有很高的突發處理能力,即在有些時候需要極高的處理效率,因此需要屏蔽內核的虛擬內存管理機制。對於無硬碟設備的內核系統,不必採用虛存管理。強實時需求的內核應用可以通過修改任務調度模塊實現,主要是在內核和設備驅動程序中加入了許多切換點。在該點處,系統檢測是否存在未處理的緊急中斷,有則剝奪內核的運行,及時處理中斷。實現實時性服務的一個較好的方法是在標準的WINDOWS內核上增加一個實時內核,標准WINDOWS內核作為一個任務運行於實時內核上,強實時性任務也直接運行在實時內核上,如RT-WINDOWS等。
文件系統是內核WINDOWS操作系統必不可少的。但標准WINDOWS支持大量的文件系統,因此除了滿足系統的正常運行需要而保留一種外,其它的全部可以刪除,利用原有的設置選項可以移除。一般內核設備文件系統主要使用RamDisk技術和網路文件系統技術。RamDisk可駐留於Flash,運行時載入到內存中。
2、精簡運行環境
WINDOWS通常的運行環境指用戶運行任何應用的基礎設施,主要包括函數庫和基本命令集等。標准WINDOWS系統同時向用戶提供了靜態和動態函數庫。靜態函數庫在生成應用時直接鏈接到用戶應用中。動態庫在應用運行時才鏈接。由於內核系統應用一般都是在開發平台上預先生成的,因此內核系統只需向應用提供動態函數庫。WINDOWS應用運行所需的函數庫主要有C庫、數學庫、線程庫、加密庫、網路通信庫等。其中最基本的是C語言的運行庫glib。這個庫主要完成基本的輸入輸出,內存訪問,文件處理。一個標準的glib庫大約要1200kB存儲空間,考慮到內核WINDOWS內核往往很小,這種運行庫實在太大,我們做了一些精簡的工作,方法有兩種:(1)、使用靜態連接的方法,完全不使用運行庫動態連接;(2)、對這個庫的函數進行精簡。
在一個桌面系統上,使用動態連接可以帶來許多好處。使用動態連接庫,可以讓應用程序跟函數庫的更新、升級分離,便於維護,可以讓同時運行的多個程序共享一段代碼。但是,在內核系統中,很少有多個程序並行的可能,程序的維護,尤其是庫函數的維護更新是不常見的。這時,使用靜態連接的優勢就極為明顯。因為靜態連接可以只將庫中用到的部分連接進程序。在應用程序較少(小於5)的情況下,靜態連接可以達到較好的結果。為了便於將來擴充的需要,我們也採用第二種方法,針對我們的需要,對庫函數的內容進行精簡,只保留一些基本功能,還有一種方法是採用其它的C語言運行庫。但是這些庫對兼容性影響很大。
基本命令集同樣是運行用戶應用的基礎,主要包括初始化進程init,終端獲取getty、Shell和基本命令等。內核系統的啟動過程可能與標准WINDOWS不同,例如跳過登錄過程直接啟動GUI等。這就要求修改init,getty等。標准WINDOWS命令集同樣由於體積問題無法直接應用於內核環境。目前,小命令集的解決方法主要有集成方法和匯編方法兩種。集成方法採用集成公共部分減少命令集整體體積,用C實現,有較好的平台移植性;匯編方法則採用匯編編程減少每個命令的體積.這樣可使體積很小但其平台移植性較差。
3、內核WINDOWS下的GUI
GUI在內核系統或者實時系統中的地位越來越重要,比如PDA、DVD播放機、WAP手機等,都需要一個完整.漂亮的圖形用戶界面。這些系統對GUI的基本要求包括:(1)、輕型、佔用資源少;(2)、高性能;(3)、高可靠性;(4)、可配置。這些也成為評價內核系統的重要指標。目前,內核WINDOWS上的GUI主要有winCE、MicroWindow、緊縮的XWindow、MiniGUI(國內做得較好的自由軟體之一)。標准WINDOWS的Xfree86由於體積龐大,運行環境要求高,無法運行於內核環境。內核GUI主要通過削減功能,降低性能來實現體積小和佔用資源少。目前內核WINDOWS上的GUI環境主要有兩類:X類和win32類。X類GUI分為服務方和客戶方兩方。伺服器方提供滑鼠、鍵盤處理和顯示功能,客戶方是用戶應用,服務方和客戶方通過socket介面和X協議通信。採用該方式十分有利於遠程網路圖形化服務,客戶方和服務方可通過網路實現X協議和圖形顯示。典型的X類GUI有MicroWindow、緊縮的XWindow等。win32類的GUI不存在客戶方和服務方,每個任務都自成一體,任何任務間的切換、事件分發由專門的管理任務負責。如wiCE、MiniGUI就是類似於win32類的GUI。
五、當前流行的幾種內核WINDOWS系統
除了智能數字終端領域以外,WINDOWS在移動計算平台、智能工業控制、金融業終端系統,甚至軍事領域都有著廣泛的應用前景。這些WINDOWS被統稱為"內核WINDOWS"。
1、RT-WINDOWS
這是由美國墨西哥理工學院開發的內核WINDOWS操作系統。到目前為止,RT-WINDOWS已經成功地應用於太空梭的空間數據採集、科學儀器測控和電影特技圖像處理等廣泛領域。RT-WINDOWS開發者並沒有針對實時操作系統的特性而重寫WINDOWS的內核,因為這樣做的工作量非常大,而且要保證兼容性也非常困難。為此,RT-WINDOWS提出了精巧的內核,並把標準的WINDOWS核心作為實時核心的一個進程,同用戶的實時進程一起調度。這樣對WINDOWS內核的改動非常小,並且充分利用了WINDOWS下現有的豐富的軟體資源。
2、uCWINDOWS
uCWINDOWS是Lineo公司的主打產品,同時也是開放源碼的內核WINDOWS的典範之作。uCWINDOWS主要是針對目標處理器沒有存儲管理單元MMU(MemoryManagementUnit)的內核系統而設計的。它已經被成功地移植到了很多平台上。由於沒有MMU,其多任務的實現需要一定技巧。uCWINDOWS是一種優秀的內核WINDOWS版本,是micro-Conrol-WINDOWS的縮寫。它秉承了標准WINDOWS的優良特性,經過各方面的小型化改造,形成了一個高度優化的、代碼緊湊的內核WINDOWS。雖然它的體積很小,卻仍然保留了WINDOWS的大多數的優點:穩定、良好的移植性、優秀的網路功能、對各種文件系統完備的支持和標准豐富的API。它專為內核系統做了許多小型化的工作,目前已支持多款CPU。其編譯後目標文件可控制在幾百KB數量級,並已經被成功地移植到很多平台上。
3、Embedix
Embedix是由內核WINDOWS行業主要廠商之一Luneo推出的,是根據內核應用系統的特點重新設計的WINDOWS發行版本。Embedix提供了超過25種的WINDOWS系統服務,包括Web伺服器等。系統需要最小8MB內存,3MBROM或快速快閃記憶體。Embedix基於WINDOWS2.2內核,並已經成功地移植到了Intelx86和PowerPC處理器系列上。像其它的WINDOWS版本一樣,Embedix可以免費獲得。Luneo還發布了另一個重要的軟體產品,它可以讓在WindowsCE上運行的程序能夠在Embedix上運行。Luneo還將計劃推出Embedix的開發調試工具包、基於圖形界面的瀏覽器等。可以說,Embedix是一種完整的內核WINDOWS解決方案。
4、XWINDOWS
XWINDOWS是由美國網虎公司推出,主要開發者是陳盈豪。他在加盟網虎幾個月後便開發出了基於XWINDOWS的、號稱是世界上最小的內核WINDOWS系統,內核只有143KB,而且還在不斷減小。XWINDOWS核心採用了"超字元集"專利技術,讓WINDOWS核心不僅可能與標准字元集相容,還含蓋了12個國家和地區的字元集。因此,XWINDOWS在推廣WINDOWS的國際應用方面有獨特的優勢。
5、
由Agenda公司採用、作為其新產品"VR3PDA"的內核WINDOWS操作系統。它可以提供跨操作系統構造統一的、標准化的和開放的信息通信基礎結構,在此結構上實現端到端方案的完整平台。資源框架開放,使普通的軟體結構可以為所有用戶提供一致的服務。平台使用戶的視線從設備、平台和網路上移開,由此引發了信息技術新時代的產生。在中,稱之為用戶化信息交換(CIE),也就是提供和訪問為每個用戶需求而定製的"主題"信息的能力,而不管正在使用的設備是什麼。
6、
由Transmeta公司推出的操作系統代碼開放,在GUN普通公共許可(GPL)下發布,可以在http://midori.transmeta上立即獲得。該公司有個名為"計劃"。""這個名字來源於日本的"綠色"---Midori,用來反映其WINDOWS操作系統的環保外觀。
7、紅旗內核WINDOWS
由北京中科院紅旗軟體公司推出的內核WINDOWS是國內做得較好的一款內核操作系統。目前,中科院計算所自行開發的開放源碼的內核操作系統---EasyEmbeddedOS(EEOS)也已經開始進入實用階段了。該款內核操作系統重點支持p-Java。系統目標一方面是小型化,另一方面能重用WINDOWS的驅動和其它模塊。由於有中科院計算所的強大科研力量做後盾,EEOS有望發展成為功能完善、穩定、可靠的國產內核操作系統平台。
六、結束語
由於WINDOWS是一個內核源代碼開放、具備一整套工具鏈、有強大的網路支持及成本低廉的操作系統,因此內核WINDOWS自誕生起就秉承了這眾多獨特優勢,這使它正在並越來越多地受到人們的關注。據EvenData數據顯示,期望使用內核WINDOWS的用戶從2001年的11%增到2002年27%,而同期Vxwork只是從16%到18%,WinCE從9%到14%。另外,在內核WINDOWS的各種應用市場中,通信(語音和數據)名列第一,2000年的銷售額是1300萬美元,而2005年預計將達到1.26億美元,可以預見,內核WINDOWS將在未來的通信用內核操作系統中占據強有力的地位
WINDOWS是目前十分火爆的操作系統。它是由芬蘭赫爾辛基大學的一個大學生LinusB.Torvolds在1991年首次編寫的。標志性圖標是一個可愛的小企鵝。
WINDOWS是一種類Unix系統,Linus當時編寫它的目的是為了替代一種名叫Minix的操作系統。Minix是由一個名叫AndrewTannebaum的計算機教授編寫的,當時由於Unix是一個商業軟體,其源代碼是不能拿來進行教學的,Andrew教授就自己編寫了一個系統用於教學。最
初的Minix用一張軟盤就能裝下,麻雀雖小、五臟俱全,Minix具有一般操作系統的特徵,它同時兼容Unix系統。
WINDOWS是一個免費的操作系統,用戶可以免費獲得其源代碼,並能夠隨意修改。它是在共用許可證GPL(GeneralPublicLicense)保護下的自由軟體,也有好幾種版本,如RedHatWINDOWS、Slackware,以及國內的XteamWINDOWS等。
WINDOWS具有許多Unix系統的功能和特點,能夠兼容Unix,但無需支付Unix高額的費用。比如一個Unix程序員在單位可以在Unix系統上進行工作,回到家裡在WINDOWS系統上也能完成同樣的工作,而不必重新購買Unix。要知道Unix的價格比常見的Windows要高出若干倍,和WINDOWS的低廉更是相距甚遠。
WINDOWS的應用也十分廣泛。Sony最新的PS2游戲機就採用了WINDOWS作為系統軟體,使PS2搖身一變,成為了一台WINDOWS工作站。著名的電影《泰坦尼克號》的數字技術合成工作就是利用100多台WINDOWS伺服器來完成的。
2001年8月17日,WINDOWS發布了最新的WINDOWS2.4.9版,它也已經十歲了。
WINDOWS的優點
WINDOWS的流行是因為它具有許多誘人之處。
1、完全免費
WINDOWS是一款免費的操作系統,用戶可以通過網路或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程序員參與了WINDOWS的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變。這讓WINDOWS吸收了無數程序員的精華,不斷壯大。
2、完全兼容POSIX1.0標准
這使得可以在WINDOWS下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到WINDOWS奠定了基礎。許多用戶在考慮使用WINDOWS時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
3、多用戶、多任務
WINDOWS支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,WINDOWS可以使多個程序同時並獨立地運行。
4、良好的界面
WINDOWS同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Windows系統,用戶可以使用滑鼠對其進行操作。在X-Windows環境中就和在Windows中相似,可以說是一個WINDOWS版的Windows。
5、豐富的網路功能
互聯網是在Unix的基礎上繁榮起來的,WINDOWS的網路功能當然不會遜色。它的網路功能和其內核緊密相連,在這方面WINDOWS要優於其他操作系統。在WINDOWS中,用戶可以輕松實現網頁瀏覽、文件傳輸、遠程登陸等網路工作。並且可以作為伺服器提供WWW、FTP、E-Mail等服務。
6、可靠的安全、穩定性能
WINDOWS採取了許多安全技術措施,其中有對讀、寫進行許可權控制、審計跟蹤、核心授權等技術,這些都為安全提供了保障。WINDOWS由於需要應用到網路伺服器,這對穩定性也有比較高的要求,實際上WINDOWS在這方面也十分出色。
7、支持多種平台
WINDOWS可以運行在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外WINDOWS還是一種內核操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發布的WINDOWS2.4版內核已經能夠完全支持Intel64位晶元架構。同時WINDOWS也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。
WINDOWS的不足
由於在現在的個人電腦操作系統行業中,微軟的Windows系統仍然佔有大部分的份額,絕大多數的軟體公司都支持Windows。這使得Windows上的應用軟體應有盡有,而其他的操作系統就要少一些。許多用戶在換操作系統的時候都會考慮以前的軟體能否繼續使用,換了操作系統後是否會不方便。雖然WINDOWS具有DOS、Windows模擬器,可以運行一些Windows程序,但Windows系統極其復雜,模擬器所模擬的運行環境不可能完全與真實的Windows環境一模一樣,這就使得一些軟體無法正常運行。
許多硬體設備面對WINDOWS的驅動程序也不足,不少硬體廠商是在推出Windows版本的驅動程序後才編寫WINDOWS版的。但一些大硬體廠商在這方面做得還不錯,他們的WINDOWS版驅動程序一般都推出得比較及時。
軟體支持的不足是WINDOWS最大的缺憾,但隨著WINDOWS的發展,越來越多的軟體廠商會支持WINDOWS,它應用的范圍也越來越廣。這只小企鵝的前景是十分光明的。
⑥ linux內核與文件系統是什麼關系
linux內核是linux的真實的操作系統,所有的操作瞎褲系統的相關功能都是由用戶介面程序傳遞到內核由內核來完成的。
linux文件系統是指linux操作系統對整個系統中的所有的數據、文件的管理的一種實現方式。
簡單點說:像windows它的文件系統是NTFS文件系統或者FAT文件系統,通過這種磨知簡方式將windows的各種猛旅文件保存在磁碟上,用於存儲和訪問了。
而linux系統則使用ext這種文件系統來實現。
⑦ 怎樣解壓redhat的initrd.img
image-initrd的處理流程
1. boot loader把內核以及initrd文件載入到內存的特定位置。
2. 內核判斷initrd的文件格式,如果不是cpio格式,將其作為image-initrd處理。
3. 內核將initrd的內容保存在rootfs下的/initrd.image文件中。
4. 內核將/initrd.image的內容讀入/dev/ram0設備中,也就是讀入了一個內存檔中。
5. 接著內核以可讀寫的方式把/dev/ram0設備掛載為原始的根文件系統。
6. .如果/dev/ram0被指定為真正的根文件系統,那麼內核跳至最後一步正常啟動。
7. 執行initrd上的/搭扮渣linuxrc文件,linuxrc通常是一個腳本文件,負責載入內核訪問根文件系統必缺虧須的驅動, 以及載入根文件系統。
8. /linuxrc執行完畢,常規根文件系統被掛載
9. 如果常規根文件系統存在/initrd目錄,那麼/dev/ram0將從/移動到/initrd。否則如果/initrd目錄不存在, /dev/ram0將被卸載。
10. 在常規根文件系統上進行正常啟動過程 ,執行/sbin/init。
通過上面的流程介紹可知,Linux2.6內核對image-initrd的處理流程同linux2.4內核相比並沒有顯著的變化, cpio-initrd的處理流程相比於image-initrd的處理流程卻有很知悄大的區別,流程非常簡單,在後面的源代碼分析中,讀者更能體會到處理的簡捷。
⑧ linux內核 是怎麼運作的還有他的文件系統好復雜啊文件系統怎麼理解一定採納。怎麼運作的
內核怎麼運作我也了解不多,因為我用shell比較多,只知道shell就是用戶與內核的介面,shell將用戶輸入命令扮鎮傳遞給內核去解碰飢析,內核直接操作內存(有些內存空間是受內核保護的,用戶程序訪問不到的),CPU從內存讀指令去執行。大概這么個過程,我也只能說個大概。
ext3/ext4日誌文件系統很好很強大。Linux文件系統都是掛載在根目錄上的,不同分區可以使用不廳吵粗同的文件系統。但用戶層所用的文件讀寫操作都是統一封裝的介面,上層看起來無區別。文件系統,用於管理文件存儲信息和磁碟空間分配。你用df命令查看磁碟使用情況,也都是通過文件系統來獲取的,否則哪有這么快就顯示出來。當然,還有tempfs, yaffs等適合嵌入式linux操作系統的文件系統格式。
⑨ linux內核與文件系統是什麼關系啊
內核與文件系統的關系
技術上說Linux是一個內核。「內核」指的是一個提供硬體抽象層、磁碟及文件系統控制、多任務等功能的系統軟體。一個內核不是一套完整的操作系統。一套基於Linux內核的完整操作系統叫作Linux操作系統,或是GNU/Linux。
文件系統是kernel的一部分。文件系統實現了系統上存儲介質和其他資源的交互。kernel tree中盯卜的fs目錄都是關於文件系統的,可以說它是kernel的一個大子系統。
嵌入式系統在flash中分配了存放內核、根文件系統的區域。bootloader載入了內核,內核啟動,載入文件系統,進入Linux系統。
整個嵌入式系統而言,可以分為三個部分1.uboot 2.kernel 3.文件系統。其中kernel中以VFS去支持各種文件系統,如yaffs,ext3,cramfs等等。yaffs/yaffs2是專為嵌入式系統使用NAND型快閃記憶體而設計的一種日誌型文件系統。在內核中以VFS來屏蔽各種橋猛文件系統的介面不同,以VFS向kernel提供一個統一的介面。如打開一個文件時統一使用open,寫時採用write,而不用去考慮是那種文件系統,也不用去考慮文件系統是如何將數據寫入物凱消穗理介質的。其中 kernel中的配置,只是讓VFS支持這種介面。
⑩ 三、內核&文件系統編譯
一、編譯官方提供的內核源碼
1、解壓官方提供的內核源碼包
2、根據官方提供的配置文件對內核進行配置,方式如下
make ARCH=arm xxxxx_defult_config
cp arch/arm/xxxxx_config .config
3、打開圖形界面對內核進行配置,根據需要增加或者刪除模塊和其他內容
4、對內核進行編譯
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- uImage -j6
或者編輯Makefile文件,對其中的ARCH變數和CROSS_COMPILE變數進行修改,然後執行make uImage
5、在編譯編譯的時候回出現mkimage命令缺失,這個命令是UBootr提供的,在編譯的UBoot路徑下面找到這個命令,即可直接使用
6、編譯的時候各個方面需要一致性,
1、編譯的內核的交叉編譯工具鏈如果支持硬體浮點數運算那麼在配置內核的時候也需要添加硬體浮點數的支持
Kernel Features --->
[*] Use the ARM EABI to compile the kernel
2、在編譯的內核的時候注意保持不要做太多的修改,否則會出問題
7、編譯內核模塊
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- moles -j6
8、安裝內核模塊到指定的目錄中去
make moles_install ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- INSTALL_MOD_PATH=/home/fu/hisi/kernel/build
9、不要採用內核模塊安裝的命令來安裝內核,因為內核不需要安裝,在arch/arm/boot/uImage就是所需要的內核文件
二、編譯官方提供的busybox來構建根文件系統
1、解壓需要編譯的busybox源碼
2、進入源碼中對busybox進行配置,主要是配置交叉編譯工具鏈
Busybox Settings --->Build Options ---> 下面有關於busybox是否配置為採用共享庫的模式,還有添加交叉編譯工具鏈的前綴
3、配置需要的文件和命令進行添加或者刪除
4、然後執行命令make -jn && make install
5、創建根文件系統需要的其他的文件和目錄,在一個空白的目錄中首先拷貝busybox/_install下面的bin、sbin、usr目錄到空白目錄中,在空白目錄中創建其餘的所需要的目錄文件 bin dev etc home lib linuxrc mnt opt proc sbin sys tmp usr var等以上目錄
6、接下來在lib目錄中復制內核模塊,在編譯內核的時候模塊安裝在了指定的地方,直接拷貝過來就行。
6、創建文件系統所需要的其他文件,配置文件(最簡單的辦法就是直接復制busybox文件下面的example文件夾裡面的東西)
1、/etc/inittab 填寫或者 一下是最基本的,還有其他的需要填寫
# /etc/inittab
::sysinit:/etc/init.d/rcS //指定初始化腳本
::askfirst:-/bin/sh //指定第一次輸入回車後打開的shell
::ctrlaltdel:/sbin/reboot //指定這三個按鍵按下後的反應
::shutdown:/bin/umount -a -r //指定關機是進行的操作
2、/etc/init.d/rcS //這個就沒有詳細額硬性規定了,寫入需要初始化的東西即可
#!/bin/sh
mount -a
3、/etc/fstab //寫入mount -a是要自動掛載的文件系統
# device mount-point type options mp fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
7、拷貝需要用到的庫文件,在交叉編譯工具鏈下面存放
arm-linux-xxxxxx-gcc/lib
海思的開發板是在和tahet/lib下面,切記。