操作系統基礎

RHCE:(基礎)
RH033
RH133
RH253
RHCA:
RH401
RH423(LDAP)
RH442
RH436
RHS333
MySQL
RH436:
NoSQL:非關係型數據庫。
崗位:
運維工程師:
系統工程師:
系統架構師:
DBA:數據庫管理員。
VMware Workstation(模擬器)
計算機本身就是一個虛擬機,操作系統就是一個虛擬機,跟人一樣,我們計算機只有一顆CPU在某一時候像人一樣只能想一件事情,它也只能運行一個程序,爲什麼我們現在可以運行多個程序,運行起來的程序叫進程,爲什麼可以同時運行多個進程,這種同時只是我們看起來的同時,在背後事實是操作系統將我們的硬件虛擬化之後分配給多個不同進程來實現的,所以操作系統本身就是虛擬機,那也就意味着將我們有限的硬件資源給它分成多份,能夠運行模擬出來多個獨立運行的系統的。
VMware(模擬器)完全通過軟件方式在原有計算機上模擬出來虛擬假的計算機環境,它裏面什麼都有,CPU、內存等等,但是有些是軟件實現的,有些是用硬件資源。
rhci-5.8-1:鏡像引導文件
虛擬機重啓:Ctrl+Alt+Insert
電腦啓動過程:
POST:加電自檢。
程序:由指令和數據組成,指令和數據必須要載入內存以後才能實現的。
CPU只有加載指令以後才能執行。
指令在什麼地方存儲:
外存:光盤、U盤、軟盤、硬盤。
自舉:藉助額外設備BIOS。
計算機體系結構:
運算器:數學運算器,只能加減和邏輯運算,運算器負責運算。
控制器:控制器負責運算器到哪去取數據。
存儲器:存儲器負責存儲數據,存儲器指的是內存,內存是個編址存儲設備,每一個存儲單元是8位,一個字節,每一個字節都是有地址的,內存裏面有很多的存儲單元,怎麼去讓每一個存儲單元獨立引用它的標識,這個標識就叫做地址,這種標識是平面編址的,內存上的每個存儲單元在全局上有唯一的地址,這個地址如何去編,它們都使用數據的方式進行引用。
輸入設備:
輸出設備:
運算器和控制器合起來稱爲CPU。
BIOS:

計算機最基礎的設備加法器。
一個加法器只能加一位,每個加法器只能對應移位相加。
加法器輸入數據在什麼地方,運算器從哪去找它的加數和被加數,要想實現兩個數相加它是吧電路和邏輯學結合在一起完成的,用電路的閉合開關來完成計算機的邏輯運算,而後把邏輯運算轉換爲所謂的算術運算。
存儲器:可以存儲很多數據。
程序是由指令和數據組成,指令會告訴CPU在存儲器的那個存儲單元當中放的是加數,那個放的是被加數。
控制器:需要接受控制指令。
運算器要想運算數據,需要去讀取指令,這個指令會告訴運算器我們讀取的加數在什麼地方,由控制器協調去到存儲器的某一個存儲單元裏面把數據讀取到運算器上去,這就是控制器,控制器需要接受控制指令,運算器要想運算數據它必須要能取得數據,對於控制器而言獲取控制指令的線路叫控制總線,控制器必須要告訴運算器到存儲器的那個存儲單元去讀取數據,當讀的時候這個線路要傳輸數據,叫數據縱向,控制器還需要讀取指令,指令也在存儲器當中,存儲器放的不僅僅有數據還有指令,控制器讀取指令叫控制縱向,控制器將指令讀取出來,控制器會通知運算器到那個地方讀數據,所有運算器讀的數據,控制器會告訴運算器進行什麼樣的運算,所以運算器再做運算,運算後有了結果,結果放入存儲器,放到存儲器的什麼位置由控制器指示,控制器會知道內存當中那一段空間是空着的,於是找一段空閒的存儲空間,把數據存儲到這個空間當中,這一切都是運算器、控制器、存儲器之間完成。
存儲器初始的時候是空的,什麼都沒有,因爲內存是意失性設備,作爲用戶來講仍然需要將我們執行的程序給它首先放到存儲器裏面,然後控制器和運算器才能讀到數據,這就需要外圍設備,一個外圍設備輔助用戶把指令和數據存到存儲器,從而控制器可以在裏面讀指令了,把結果保存到存儲器一斷電所有數據就丟失了,這時候仍然需要把它保存到外置地方或通過顯示器顯示出來,顯示器就是輸出設備。
對於計算機核心只有三個運算器、控制器、存儲器。
輸入設備和輸出設備是跟用戶進行交互的,用戶輔助計算機運行。
I/O設備:需要計算機跟外圍設備設備打交道的叫輸入輸出設備,I表示INPUT,O表示OUTPUT。
線路複用:用一組線即傳輸加數也傳輸被加數指令等。
寄存器:能夠將第一次輸入的加數暫存下來,再接受被加數計算輸出結果。
CPU當中最核心的組件:運算器、控制器、寄存器;
虛擬機是什麼:虛擬機就是通過軟件方式模擬出來的運算器、控制器、存儲器。
加電自檢如何完成:
CPU要想執行指令,這個指令必須在內存當中,而內存當中必須有一段指令事先放好了,我們才能執行,但計算機剛開機那一刻尚且不知道有不有鍵盤、顯示器;它到底層那讀入數據,由那輸出數據,而內存又不能事先保存一段數據放在那,藉助額外設備,那就是所謂的RAM設備。
RAM:隨機訪問存儲器。
ROM:只讀存儲器,此前適用於這臺計算機的一堆指令,這個指令能夠映射到內存裏面去。
硬盤即使輸入又是輸出設備,硬盤也是I/O設備。
poll:輪詢機制。
interrupt:中斷,硬件通知機制。
中斷次數多CPU的性能下降。
前端總線:FSB,
北橋:離CPU比較近,CPU需要跟內存不停打交道,因此CPU和內存直接需要總線相連,而且中間需要一個控制器,所以北橋是高速總線控制器,需要大量數據傳輸的,需要工作在比較高的頻率下,快速實現數據交換,北橋早起是連接內存的,而現在內存直接連接CPU,這樣速度可能更快,而北橋只負責連接南橋,以及其他總線的控制。
南橋:離CPU比較遠,南橋是低速總線,大量的I/O設備都在南橋上,南橋是連接各種外圍I/O設備,例如硬盤、鍵盤鼠標、顯示器等等;而這些設備通過南橋彙總以後通過同一根線連接到北橋,由北橋再轉給CPU。通過在北橋上接固態硬盤完成快速磁盤I/O的。
頻率:一次頻率能夠完成一次事件,這種事件可能是加數輸入和被加數輸入。
緩存:
CPU緩存:
一級緩存:比較慢,分爲指令緩存和數據緩存。
二級緩存:比一級緩存要慢,但是比內存要快。
寄存器可以跟CPU一樣的頻率工作。
內存的數據先到二級緩存,然後再到一級緩存。
程序局部性原理:包括時間上的局部性和空間上的局部性,所謂時間上的局部性是我剛剛訪問的數據過一會可能還會再訪問,第一次訪問,從內存放到二級再放入一級,第二次訪問一級緩存直接就有了,空間局部性,如果訪問一個數據離這個數據非常近的數據可能馬上就會被訪問到,所以載入一個數據把這個數據周圍那些數據都統統一塊載入進來,訪問第一個數據挨着的數據已經放入到緩存裏面,不用再到內存裏面找。
程序移植:由於底層芯片的不同,而程序必須要依賴芯片才能工作的。
機器語言:二進制語言。
微碼:彙編語言,用人類語言所能表示的單詞。
編譯器:必須要將彙編語言編譯成機器語言。
彙編語言儘管人類容易識別,但跟硬件芯片的結合程度仍然是非常緊密的,所以這種語言也被稱爲低級語言。
高級語言:它本身需要先轉換爲彙編語言,而後再轉換爲對應芯片上的機器語言,要結合額外的機制來彌補多種芯片的不同。
API:應用編程接口,在不同CPU上使用彙編語言而寫出來的具有相同功能的程序,這個程序本身不會自動運行,它只是向上層程序,告訴上層程序CPU你不用關心是什麼,反正接口是這樣子的,虛擬成這種樣子,所以庫是一種虛擬設備,它只不過像程序虛擬了相同類型的執行環境。
硬件架構:CPU芯片不同系列
ARM:移動硬件平臺,英國公司,只生產知識產權,不生產設備,負責生產三星、高通等
X86:intel和AMD的X86系列,32位的平臺。
X64:AMD的X86_64系列。
安騰:intel的CPU,原來屬於惠普。
alpha:惠普。
UltraSparc:san公司的,san被orgianic收購。
Power:IBM,第一個雙核心、八核心、六十四核心的CPU,性能超強,第一個主頻超過4GHZ的CPU。
M68000:M68K,摩托羅拉的CPU。
PowerPC:蘋果、IBM、摩托羅拉三家聯合生成比Power要差一點,但性能仍然很不錯。
32位:並行32位。
64位:並行64位。
Android核心是Linux。
蘋果的系統包括MACOS都是UNIX。
OS(操作系統):
Windows
Linux
Unix
HP-UX:惠普Linux。
Solaris:san公司的Linux。
AIX:IBM的Linux。
SCO UNIX
Unixware
OS/2
批處理:
job(作業):在計算機上運行一次完整的計算過程,多個叫jobs。
多任務:
將一個資源分成多個資源,計算機運行需要兩個核心組件CPU、Memory。
CPU:
把CPU隨着時間流逝而完成的,時間驅動的,因此就把CPU劃分成了計算時間。
slice:CPU計算時間片,假如一個時間片5ms,運行第一個程序5ms,運行第二個程序5ms,這個時間不停進行交替。
內存切割:將內存分割,第一個程序訪問前半段,第二個程序訪問後半段。
內存分段機制:
虛擬地址空間:每一個程序員開發程序,不管有多少物理內存,假設你是32位系統4G內存,如果是64位系統大於4G內存。
每一個程序在它運行的時候它都有自己的虛擬地址空間,只要是32位系統都是4G內存,不管物理內存有多少,它都認爲自己有4G內存。
進程:
多個程序運行方式:
CPU分成多個片,給第一個程序運行一次,給第二個程序運行一次,內存裏面,第一個程序佔據一半,第二個內存佔據一半,操作系統協調程序佔據內存的時間和順序,操作系統也是軟件運行在硬件之上負責管理硬件資源,而且將硬件資源所提供的計算能力CPU給它切割成多個片,分配給多個不同的程序,然後內存分成多個段分配給不同的程序,並且在它們之間完成協調,操作系統還負責完成程序的啓動中止和回收等工作,還要完成程序的切換等工作,而這個時候不把它稱之爲程序,因爲它是運行的實例稱作進程,進程(process)就是一個處理過程,所以進程是有生命週期的,從啓動到結束,而程序放到硬盤上只要不刪一直都在,所以程序和進程是兩碼事,總而言之;操作系統就是一種通用軟件,這種軟件不負責完成具體的工作,它只是負責協調其它具體的程序工作。
問題:如果一個程序能在windows上運行它是不是就能在linux上運行;
庫:是一堆的程序,任何程序都有自己的執行入口,庫這種程序比較獨特它沒有執行入口,運行可以被其他程序調用執行,所以它自己不能獨立執行,只能被其他程序調用執行,但是它在執行的時候可以提供統一的調用機制,它的調用接口是一樣的,庫只實現了調用接口,可以被程序所調用。
call:調用。
system call:操作系統接口,稱爲系統調用。
操作系統本身它是一種通用軟件,這個軟件裝上去以後就將硬件本身所提供的計算能力使用軟件的方式模擬出來,做了二次模擬,所以任何程序看到的不再是硬件本身,而是操作系統所提供的接口,操作系統這種功能接口爲了能儘可能簡化,它做的非常底層,操作系統的接口稱爲system call,稱爲系統調用,有了操作系統以後,任何程序都不能直接跟硬件打交道,要想使用硬件,必須要通過操作系統來進行協調,運行起來的程序的進程,要訪問一個數據,數據在硬盤上,它就意味着要跟硬盤打交道,程序是不能直接跟硬件打交道,要通過內核來完成,內核中有一個功能,通過調用的方式輸出出來叫系統調用,因此程序只需要向內核請求調用一下系統調用,而由內核負責將數據取出來再返回給這個程序進程,所以任何時候程序要跟硬件打交道都必須通過這個中間層,這個中間層叫做操作系統,操作系統的功能是通過system call來向外提供的,system call過於底層,所謂的底層將會由上層的程序員決定它的表現形式,它的應用機制,越底層它的機制變化越少,操作系統爲了儘可能簡化它的調用接口,所以做的都非常底層,有人將底層系統調用一個或者多個它的功能封裝起來做成更高級的接口,這個高級接口就是庫,因此很多程序員在開發程序的時候,是通過庫來寫,因爲有些功能已經通過庫封裝好了,所以程序員負責調用別人所提供的功能然後去開發程序這樣一種過程,因此有了庫以後,程序員是根據庫來編程的,也就意味着,我們在Windows上調用Windows的提供的庫來編程,而在Linux上使用Linux提供的庫來編程,如果兩個庫不一樣的話,結果就是Windows開發的程序在Linux上運行不了,只要兩邊的庫一樣,似乎就可以。
總結:操作系統組成
最底層硬件,硬件上面是操作系統,操作系統通過系統調用將我們的功能輸出出來,再向上一層是庫,在庫上面就是各個獨立的應用,假如現在硬件、操作系統、庫、應用都好了,如何讓應用運行起來,還需要一個特殊的軟件shell,shell就是把我們計算機的功能通過人類易於操作的方式輸出一個接口,通過這個接口才能真正操作計算機,所以shell是人機交互接口,shell有圖形化也有命令行的。

計算機本身就是一堆的硬件,這堆硬件當中最核心的就是CPU和存儲器,爲了能夠實現計算機獲得數據,實現數據的輸入輸出等等,還需要輸入設備和輸出設備兩種,但是對於計算機系統來講核心只是運算器控制器,也就是所謂的CPU,還有存儲設備,在計算機體系內部一般來講我們的輸入輸出設備是通過南橋來接入當前系統上的,彼此之間有各種總線,比如說內存到CPU的,我們可以稱爲內存總線,或者叫系統總線,而各種不同的外圍設備,無論是鍵盤數據等等,它們每一種不同的接口需要實現的物理總線類型也是各不相同的,但無論如何,假如就是一個簡單的PC機而已,在某一時刻只能運行一個程序,但是計算機的計算能力很強,一個程序所需要運行的程序內容佔據CPU的時間可能不是特別的長,因此我們需要爲了能夠儘可能的利用計算機的計算能力,於是需要將計算機同時運行多個程序,因此每個程序在運行起來以後需要一個協調器,這個協調器稱爲Kernel(內核),操作系統的核心,內核本身就負責管理硬件資源,並切將硬件資源虛擬成其他樣子,提供給上層所需要運行的應用程序,某一程序如果直接運行在硬件上,那這個程序本身就可以控制硬件的各種屬性,其他程序要想再運行到硬件的時候,這些程序彼此之間可能會產生干擾,一個惡意的應用程序可能導致其他程序統統退出,所以我們需要一個統一的資源管理者,而且任何應用程序要想能夠使用硬件,必須要通過內核來完成,而且內核也不會讓程序直接訪問硬件,他是通過將硬件所提供的運算能力通過一個一個叫做系統調用來實現的,系統調用是一種非常底層的實現,因此程序員根據系統調用來編程,會非常麻煩,會非常繁瑣,而且許多程序的功能是相同的,相同功能的程序如果不做成公用的話,就意味者由於系統調用非常底層,每個相同功能的程序都需要各自開發響應的功能模塊,在我們計算機上大量的功能是重複的,這種重複勢必會額外佔用空間,所以從資源角度來講它也不合理,因此上我們操作系統除了提供內核之外,通常還需要將內核所提供的系統調用輸出出來,而這種輸出是通過較比高層的調用接口來實現,這種接口叫庫,對於庫本身也是一堆應用程序,只不過這堆應用程序沒有執行的入口,它是不能自我獨立運行的,只能被其他程序調用的時候才能執行,這就是我們把它稱作庫的原因,庫存在的環境就是被調用,因此我們的調用不僅僅調用內核所提供的功能,還有庫所提供的功能,如果一個程序員在編程的時候不使用庫,直接在內核上進行編程,是可以的,只不過比較麻煩而已,所以調用除了系統調用還有庫調用,庫本身對於一個操作系統而言,或對於一個內核而言叫做API(應用編程接口),應用編程接口它也是程序,隨意對windows而言對linux而言設置unix而言,每一個不同的系統它的程序員在開發庫的時候所實現的功能以及內部實現細節可能是各不相同的,這也就意味者,如果某個人利用windows庫調用進行編程,那麼這個程序拿到linux上未必能運行,因爲它們的庫不一樣,當然庫的內部實現細節不一樣,但是它的調用接口是一樣的,這個程序可以運行,在庫的上層就是各個應用程序,這些應用程序很可能直接運行在系統調用上,也有可能是通過庫調用來完成,使用庫調用編程可能會更簡單,但是如何使用內核調用它的執行效率可能會更高,因爲至少不會通過庫來完成了,而且它所獲得的操作權限也比較大,因此一些高級的***們,它們可能會直接使用庫調用來實現編程,甚至直接利用硬件特性編程,無論有多少個應用程序,這些程序在操作系統啓動起來以後,這些程序未必會運行起來,只不過說操作系統已啓動,意味着這些程序已經具備了運行條件,或者說已經有了運行環境,但是它並沒有運行,什麼時候運行,通常我們啓動程序的方式可能有多種,比如說,我們讓操作系統已啓動之後,這個程序就自動能夠啓動起來,這些進程是隨系統的啓動而啓動的,這些進程有些叫做服務,因爲操作系統自身爲了完整的能力,或者爲了完整的操作系統,必須要啓動起來,才能讓系統完整的提供一個基本的功能,這種稱爲後臺服務,而且隨系統自動啓動的,但也有一些是我們按需啓動的額,比如我們希望編輯一個word文檔的時候,我們纔有必要啓動word,如果開機word就自動啓動是沒有任何意義的,所以有時候我們需要手動啓動,而這種程序我們通常叫做交互式程序,因爲它本身就是一個編輯器,需用用戶不停的編輯一些內容,所以交換式程序需要跟用戶進行交互的,而用戶來講我們使用計算機就是輸入設備和輸出設備;輸入設備鍵盤、鼠標,輸出設備顯示器等等,現在問題就是,我們敲下鍵盤之後,信息一定是由CPU先接收的,通過中斷先到達CPU,那CPU發現敲下鍵盤以後它怎麼知道是那個程序,當我們敲下鍵盤之後,這些信息首先到達CPU,CPU並不知道敲鍵盤這個信息意味着什麼,我們必須要把鍵盤上的鍵解析爲對應的應用程序所能理解的功能,能夠跟硬件交換的只有內核,所以CPU在獲得這個信息以後他是首先通知內核來進行處理的,而不是說直接交給word,所以內核必須要在CPU上能夠運行起來,並且接着去處理這麼個信號,內核會知道這個進程是由那個程序所發起來的,因爲整個系統資源的監控包括上層程序所運行應用程序的監控都是由內核來完成的,所以內核知道到底是由那個進程處於當前焦點進程而負責接收這樣一個信號,因此由內核再轉交給應用程序,操作系統本身,它也是一個程序,它也需要運行起來,它要運行就需要指令和數據,而指令和數據是放在存儲器當中,那就意味着載我們存儲器當中即有內核還有其他的應用程序,如果說一個惡意的應用程序能夠直接訪問內核的話,能夠跟內核直接交換,能夠直接修改內核中某些數據,這就意味着,系統的穩定性將無從得到保證,所以我們必有一種機制能夠將應用程序和內核隔離開來,通常情況下,比如像inter這一類的平臺上,他會提供所謂的保護機制,或者叫保護模式,一般我們的CPU有四個級別,是同心園的四個環,最內存叫0級別,或叫第0環,而0環也稱爲特權級別,只有內核才能運行在特權模式下,而其他應用程序只能運行在最外層級別,中間兩層沒用,所以任何時候應用程序是不能訪問內存當中處於0級別的內存區域的,CPU和內存之間是緊密結合的,所以CPU的0級別它會映射到內存的某一段處於保護空間當中,在內存當中,當我們程序運行起來以後,它是分爲兩段的,事實上是三段,最底層一段叫BIOS的映射程序,計算機加電自檢以後,BIOS就自動映射到內存的開端之處,所以系統能夠運行起來,能夠完成加電自檢的,而自檢完成以後,接下來就要載入我們的操作系統,說白了載入操作系統內核,因此在我們的BIOS之後這一段是運行內核空間,而後的空間是被多個應用程序彼此之間共享的,因此這一段可能運行的是程序1、程序2、程序3等等,但是這樣有一個問題,這樣只是爲了方便理解,事實上這樣劃分內存是很容易出現內存碎片的,如果一個程序剛開始啓動的時候需要2M內存,系統給它2M,過一會它又需要2M,因爲它運行過程中需要加載一些其他數據,這就意味着,在程序1、程序2、程序3之後的剩餘內存空間重新再申請2M空間,而且這段空間已經不連續了,過一會程序3退出了,程序2退出了,程序1分別兩次申請的2M內存直接不能連續,所以成爲碎片,所以內存管理顯然不能是這種簡單的機制,這就意味着操作系統是一個非常複雜的東西,它需要管理的任務,需要管理的功能,也是非常複雜的,我們啓動應用程序的方式有兩種,一種是讓它在後臺自動自動,還有一種是按需進行啓動,但是我們要按需啓動的話,怎麼能夠指揮計算機能夠啓動某個程序,怎麼讓操作系統內核接受用戶的命令,我們必須要給我們的操作系統,包括它所提供的各種應用程序提供一個特殊的應用程序叫做shell,shell被稱作殼,它是整個操作系統的外殼,是能夠實現接受用戶指令,理解用戶命令,並且將它傳輸給內核,由內核指揮着某個應用程序啓動的interface(界面),shell本身用來,首先要提供一個用戶能夠跟它交換的界面,其次還要將用戶的指揮行爲翻譯成內核可以理解的命令,shell包含兩種類型,一種叫圖形界面的shell,一種叫命令行的shell,圖形用戶界面GUI和命令行用戶界面CLI也是應用程序,無論是CUI還是CLI在不同的操作系統上可能有不同替換的版本,在GUI和CLI接口下所啓動的任何應用程序,一旦把應用程序關閉,在這個接口下所啓動的應用程序也將會關閉的,我們通過交互式接口啓動的程序它跟這個交互式接口有着緊密的關係,這就是操作系統的組成。

system call:系統調用。
library call:庫調用,簡稱爲lib原因。
API:Application Program interface應用編程接口。
kernel space:內核空間。
碎片:
shell:殼。
shell包含兩種類型:
GUI:一種叫圖形界面的shell,圖形用戶界面。
CLI:command line interface一種叫命令行的shell。
Linux常見三種圖形界面:
1.gnome
2.KDE
3.xface
內核的功能:
1.進程管理
2.內存管理
3.文件系統
4.網絡功能
5.硬件驅動
6.安全機制
批處理系統:是現代操作系統的前身。
jobs1$$$$$$$$jobs2$$$$$$$$
GE(通用電氣),BELL(貝爾實驗室),MIT(麻省理工大學智能實驗室)三大公司研發比批處理系統功能要大的多,多任務、多用戶的系統,功能很複雜技術很先進,當時使用彙編語言研發。
MainFrame:大型機,體積龐大。
彙編語言:
Multics:開發的系統名。
Ken(人名)
Space Travel(遊戲)爲MainFrame研發。
DEC:數字設備公司,生產小型機,中型機小型機。
PDP-11
VAX --> vms
Unics --> Unix彙編語言開發,性能不錯,移植麻煩。
B -->C:B語言,腳本語言,引入靜態變量,指針變爲編譯型語言C語言。
Bill Joy:BSRG研究小組,修復Unix的BUG,開發驅動。
BSD:Berkeley System Distribution
CP/M -->DOS(磁盤操作系統)
Microsoft,Xenix
jobs(喬布森)
Xerox:複印件
PARK
FreeBSD:運行在PC機的Unix
OpenBSD:安全
NetBSD:服務
蘋果系統內核FreeBSD內核。
Sum MicroSystem
Sun OS --> Solaris
CSH:兼容C語言的shell。
Windows NT Server內核是VMS
Andrew(人名):Minix
Linus:Linux
Stallman(人名),Freedom
GNU:GNU is Not Unix
GPL:General Public License通用公共許可證
LGPL:Lesser
GPLv2
GPLv3
BSD
Apache
Open Source開源:開放源代碼
自由:自由獲取,自由修改,自由學習
Emacs:文本編輯器
gcc:GNU C Complier編譯器
bash:命令行界面
Linux:glibc,gcc,
GNU/Linux
源代碼:C開發的程序,編譯成二進制(交叉編譯)
ABI:Application Binary Interface應用二進制接口
Linux的發行商
RedHat,rpm
SLS
Debian,dpt不受商業公司支持,技術最先進,最難用。
SUSE -->Novell (Netware),OpenSUSE
CentOS:Community Enterprise OS社區版紅帽
Fedora:
Mandriva
Ubuntu:Mint
Linux:內核版本0.1, 1.0, 2.0, 2.2, 2.4, 2.6, 3.0
Linux內核網站: www.kernel.org
RHEL 3.0, 4.0, 5.0, 6.0發行版版本
Android:核心也是Linux,只不過Android是JAVA程序,他是運行在Linux上的JAVA虛擬機上的JAVA程序。
安裝Linux:
boot:linux ip=172.16.x.1 networkmask=255.255.0.0 gateway=172.16.0.1 dns=172.16.0.1 ks=http://172.16.0.1/class.cfg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章