Linux运维基础(硬件和操作系统)
生活随笔
收集整理的這篇文章主要介紹了
Linux运维基础(硬件和操作系统)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
VMware Workstation的使用:
虛擬機
虛擬計算機
在一個主機上,軟件+硬件模擬出的硬件設備,然后在虛擬出來的設備上安裝系統,等同于在物理機上的操作!現代計算機設備的組成部分:
運算器,控制器,存儲器,輸入設備,輸出設備運算器
用來計算,二進制算數運算和邏輯運算(加減乘除,移位,取模計算),也就是加法器控制器
控制整個計算各部件之間的協調(運算器和控制器合起來為中央處理器CPU)運算器和控制器bus總線連接存儲器
Memeory:編址存儲設備,一個單位為一個字節,一個字節為8位,內存中的每一個存儲單位都是有編址的,運算器會從內存中地址中取出來運算!易失性數據!read ahead:預取過程
I/O
完成與外部部件進行交互的部件,是性能最差的東西! 磁盤、網卡、鍵鼠、鼠標主板
將這些部件拼湊在一塊兒!顯示設備
最便宜的顯示設備###為什么32的操作系統,只能使用4G內存:
32位的操作系統,地址總線只有32位,那么他可以使用的地址存儲單元也就是2^32個,也就是4G內存! 從而可以得知64位可以使用的內存的內存為2^64個,也就是4G個4G的空間!CPU:
運算器,控制器(CPU內部有眾多的電路,晶體管組成) 主要用來做算數運算和移位運算。CPU有很多個針腳,每一個針腳都有特定的功能,比如說某一個針腳用來做加法,某一個做移位計算,某一個或運算等等。 為了讓CPU完成我們期望的運算,任何一個所謂的計算芯片,必定有一個最基本的載入(boot)的過程!CPU指令
多個指令聯合起來叫做指令集,不同的廠商生產的CPU的指令集功能不同,一般CPU能運行的都是二進制指令! 當然指令分為特權指令和普通指令,操作系統才有權限調用特權指令,程序只能調用普通指令。編程語言
語言越接近硬件越低級,越讓人看得懂的越高級,程序員使用的高級語言!沒個開發出來的程序必須能夠讓機器看得懂:機器語言—>匯編語言->高級語言,那么高級語言首先要轉化成芯片能夠支持的匯編語言,然后轉化成調用CPU指令的過程!比如說C語言,開發好之后首先就是需要編譯,然后將進行匯編過程。 所謂程序:就是讓我們想辦法調用CPU指令集完成指定工作的過程!機器結構
不同的機器結構(x86,arm)等,但是對于我們用戶提供的都是通用結構軟件,這個軟件就是操作系統。無論底層多么復雜,我們只需要面向操作系統的接口寫程序就可以了!所以操作系統是一個通用軟件,是一個將底層所提供的各種計算能力抽象成為一個計算器,將內存抽象成為一個整體(或者簡單的劃分,如32位操作系統和64位操作系統)!OS:operation System
軟件程序
他是一個軟件程序,是處于通用的目的,把底層不同功能的硬件抽象成一個統一的接口(如硬件驅動,進程管理,內存管理,網絡管理,安全管理等等) 程序員不會面向硬件寫程序,我們是面向操作系統的抽象接口寫程序(OS也是一個虛擬機)System call
操作系統運行起來之后:如果程序要調用特權只能,只能請內核(操作系統)發送請求調用特權指令,這個過程叫系統調用,System?call。操作系統的目的
將底層硬件的功能封裝為系統調用實現。這樣程序員就不用面向硬件編程,直接面向系統編程,對硬件的使用過程直接使用系統調用sys?call實現。編程層次:
硬件規格:hardware?specifiacation 系統調用: 庫調用:library?call我們操作系統也是一個很底層的東西,它抽象出來的硬件功能也很多個,程序開發的時候,我們太多個不同的系統調用也會增加了開發的難度,為了解決這個問題,操作系統會再次對這些操作系統級別的這些再次抽象,這個時候稱之為庫,調用稱之為library?call,簡而言之:將底層的功能整合出來離程序員使用最近的就稱之為庫,程序員寫程序也就簡化多了系統層次:
應用程序↓庫↓操作系統(內核)↓硬件程序運行的兩種方式
1、開機自動啟動運行2、用戶通過交互式接口登陸或者連接系統上去,來手動運行程序 用戶可以通過交互式接口對系統及其程序進行操作、配置管理 系統的運行獨立于用戶的交互式接口,接口有無,都不影響系統及其程序的運行,所以交互式接口不是必須的,但是有些程序建立在交互式接口之上的。用戶接口
UI: GUI:?Graphic?User?Interface????圖形用戶接口CLI:?Command?Line?Interface????命令行接口#ABI:Application?Binary?Interface??應用二進制接口那么Linux和Windows的程序為什么都不能互通呢?因為我們使用的二進制調用接口不同!也就是使用的ABI(Application?Binary?Interface)不一樣。因為我們的程序必須編譯,然后匯編成二進制才能執行,這個時候的ABI使用的接口不一樣,那就沒法執行,如果接口相同,那么就可以互相通用![我們操作系統的庫面對的對象不一樣]#API:Application?Programming?Interface應用編程接口API:Application?Programming?Interface應用編程接口(WIN和Linux運行程序格式不一樣,編程接口可以一樣兼容,在Windows寫的程序以兼容格式可以在Linux到可以運行,一旦編譯成了二進制,就只能在對應的操作系統上能運行,在什么對象上編譯,就只能在那些系統上運行。)CPU架構類型
##IntelX86 X86_64 安騰CPU##ARMARM(非常奇葩,只設計,不生產,有所謂的三星,高通這樣的公司生產)##摩托羅拉M6800(M68K)?摩托羅拉的CPU Power(IBM,世界上第一個多核心CPU,第一個8核,單核心能最強的,功耗大) powerpc(摩托羅拉,蘋果,IBM聯合設計的CPU),簡裝的Power#SUNultrasparc(SUN公司的)#HPalpha(HP公司)常見操作系統
##Windows##Linux##UnixSystem(Bell?lab)AIX(IBM)Solaris(SUN)HP-UX(HP)BSD(Berkeley?System?Distribution)(BSRG)FreeBSD(能夠在PC上運行的貴族操作系統)NetBSDOpenBSD#MIT:Richard?StallmanGNU:?GNU?is?Not?Unix;GPL:General?Public?LicenseLinux發行版
Linux完整的名字叫GNU/Linux,只是我們簡稱Linux。無論是GNU還是Linux,內核都是源代碼,是C語言開發的,如果軟件要運行,就必須編譯成二進制才能運行,跨平臺運行是個嚴重的問題,那么久流行將軟件編譯好之后的二進制可以兼容所有的平臺,也就是打包,包括RedHat,Debian,SLS,SUSE這些公司,他們本身都不是Linux的擁有著,他們只是將源代碼在通用平臺上編譯好成二進制可以兼容大部分的平臺,這些公司簡稱發行商(release)Linux的發行版:
slackware:suseopensusedebian:ubuntumint redhat: rhel:?redhat?enterprise?linux每18個月發行一個新版本CentOS:兼容rhel的格式fedora:每6個月發行一個新版本 ArchLinux GentooLFS:?Linux?From?scratch開源協議
GNU:?GPLv2,?GPLv3,?LGPL(lesser) Apache:?apache BSD:?bsd A:?1000,?GPL, B:?20000,?20問題1:CentOS和Linux是什么關系?CentOS和RHEL是什么關系?
CentOS是Linux的發行版,CentOS是在RHEL基礎上改變了logo的發行版問題2:各種開源協議的具體細節?
GPL,?LGPL,?Apache,?BSD GPL:GPL協議的主要內容是只要在一個軟件中使用(”使用”指類庫引用,修改后的代碼或者衍生代碼)GPL協議的產品,則該軟件產品必須也采用GPL協議,既必須也是開源和免費。這就是所謂的”傳染性”。LGPL:LGPL是GPL的一個為主要為類庫使用設計的開源協議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟件必須采用GPL協議不同。LGPL?允許商業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼。這使得采用LGPL協議的開源代碼可以被商業軟件作為類庫引用并發布和銷售。Apache:ApacheLicence是著名的非盈利開源組織Apache采用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作為開源或商業軟件) 需要滿足的條件也和BSD類似: ????需要給代碼的用戶一份Apache?Licence如果你修改了代碼,需要再被修改的文件中說明。在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache?Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache?Licence構成更改。 BSD:BSD開源協議是一個給于使用者很大自由的協議。基本上使用者可以”為所欲為”,可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發布。 但”為所欲為”的前提當你發布使用了BSD協議的代碼,或則以BSD協議代碼為基礎做二次開發自己的產品時,需要滿足三個條件: ????如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。 ????如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議。 ????不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。MIT:MIT是和BSD一樣寬范的許可協議,作者只想保留版權,而無任何其他了限制.也就是說,你必須在你的發行版里包含原許可協議的聲明,無論你是以二進制發布的還是以源代碼發布的.轉載于:https://blog.51cto.com/dominicto/1961078
總結
以上是生活随笔為你收集整理的Linux运维基础(硬件和操作系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Entity Framework Cor
- 下一篇: 翻译 | 摆脱浏览器限制的JavaScr