計算機基礎知識

                  計算機基礎知識php

                                           做者:尹正傑html

版權聲明:原創做品,謝絕轉載!不然將追究法律責任。java

 

 

一.計算機系統python

  計算機系統由硬件(Hardware)系統和軟件系統兩大部分組成。

 

二.計算機硬件組成linux

1>.計算機硬件web

計算機(Computer):
      俗稱電腦,是一種能接受和存儲信息,並按照存儲在其內部的程序對海量數據進行自動,高速地處理,而後把處理結果輸出的現代化智能電子設備。


計算機發展歷史:
    第一代計算機(1946-1957):電子管時代
    第二代計算機(1958-1964):晶體管時代
    第三代計算機(1965-1970):集成電路時代
    第四代計算機(1871之後):大規模繼承電路時代

2>.世界上第一臺計算機shell

  1946年,世界上第一臺計算機ENIAC(electronic numerical integrator and calculator)在美國賓州大學誕生,是美國奧伯丁武器試驗場爲了知足計算彈道須要而研製成的。使用17468只電子管,佔地面積170平方米,重達30噸,耗電174千瓦,耗資40多萬美圓。每秒可進行5000次加法或減法運算。

3>.現代計算機重要貢獻人物數據庫

  艾倫·麥席森·圖靈(Alan Mathison Turing,1912年6月23日-1954年6月7日),出生於英國倫敦,畢業於普林斯頓大學,英國數學家、邏輯學家,被稱爲計算機科學之父,人工智能之父。圖靈提出的著名的圖靈機模型爲現代計算機的邏輯工做方式奠基了基礎。

  馮·諾依曼(John von Neumann,1903~1957),出生於匈牙利,畢業於蘇黎世聯邦工業大學,數學家,被後人稱爲「計算機之父」和「博弈論之父」

4>.馮·諾依曼體系架構apache

馮·諾依曼體系結構:
    1946年數學家馮·諾依曼提出計算機由運算器,控制器,存儲器,輸入設備和輸出設備五大部分組成。
    CPU由運算器和控制器組成。
    運算器,完成各類算術運算,邏輯運算,數據傳輸等數據加工處理。
    控制器,控制程序的執行。
    存儲器,用於記憶程序和數據,例如內存。
    輸入設備,將數據或者程序輸入到計算機中,例如鍵盤,鼠標。
    輸出設備,將數據或程序的處理結果展現給用戶,例如顯示器,打印機等。
  
  移民到美國後,馮·諾依曼將他的名字改成了英國化的John。他也被叫做Janos,匈牙利語Johann的意思。術語「馮·諾依曼計算機」如今被認爲是有必定爭議的,由於一些計算機歷史學家以爲不該將命名現代計算機結構的榮譽給予馮·諾依曼一我的。

 

5>.早期計算機系統的輸入設備:穿孔紙帶編程

6>.摩爾定律

  由英特爾(Intel)創始人之一戈登.摩爾於1965年提出:當價格不變時,集成電路上可容納的元器件的數目,約每隔18-24個月便會增長一倍,性能也將提高一倍。

7>.計算機按規模劃分

超級計算機:
  supercomputer,又稱巨型計算機,應用於國防尖端技術和現代科學計算中。巨型機的運算速度可達每秒百萬億次以上, 「天河一號」爲我國首臺千萬億次超級計算機

大型計算機:
  具備較高的運算速度,每秒能夠執行幾千萬條指令,並且有較大 的存儲空間。每每用於科學計算、數據處理或做爲網絡服務器使用,如:IBM z13 mainframe

小型計算機:
  規模較小、結構簡單、運行環境要求較低,通常應用於工業自動 控制、測量儀器、醫療設備中的數據採集等方面

微型計算機:
  中央處理器(CPU)採用微處理器芯片,體積小巧輕便,普遍用 於商業、服務業、工廠的自動控制、辦公自動化以及大衆化的信息處理

 

三.服務器

1>.服務器分類

什麼是服務器
  服務器(Server)是計算機的一種,是網絡中爲客戶端計算機提供各類服務的高性能的計算機,服務器在網絡操做系統的控制下,將與其相連的硬盤、磁帶、打印機及昂貴的專用通信設備提供給網絡上的客戶站點共享,也能爲網絡用戶提供集中計算、信息發佈及數據管理等服務。

服務器按應用功能可分爲:
  Web服務器,數據庫服務器,文件服務器,中間件應用服務器,日誌服務器,監控服務器、程序版本控制服務器,虛擬機服務器,郵件服務器,打印服務器,域控制服務器,多媒體服務器,通信服務器,ERP服務器等。

服務器按外形分類:
  塔式(Tower)服務器、刀片式(Blade)服務器、機架式(Rack)服務器

2>.塔式(Tower)服務器 

  早期的服務器形式,目前較少使用 

  外形以及結構和平時使用的立式PC差很少

  機箱空間大,主板擴展性較強,插槽較多

  預留了足夠的內部空間,以便往後進行硬盤和電源的冗餘擴展,設計通常都考慮降噪

3>.刀片式(Blade)服務器

  在標準高度的機架式機箱內可插裝多個卡式的服務器單元,實現高可用和高密度。 

  更高的密度,集中管理,高性能,靈活擴展,按需配置。

  可使用系統軟件將這些母板集合成一個服務器集羣。在集羣模式下,全部的母板能夠鏈接起來提供高速的網絡環境,並同時共享資源,爲相同的用戶羣服務。

4>.機架式(Rack)服務器 

  按照統一標準設計,配合機櫃統一使用 

  便於統計管理,高密度,節省空間

  機架服務器的寬度爲19英寸(48.26cm), 高度以U爲單位,如42U

  1U=1.75英寸=44.45毫米,一般有1U, 2U,3U,4U,5U,7U幾種標準的服務 器。機櫃的尺寸也是採用通用的工業標準

  現階段銷售數量最多的服務器 機箱尺寸比較小巧

  在機櫃中能夠同時放置多臺服務器

5>.服務器硬件組成

6>.服務器配置示例

7>.服務器硬件-CPU 

CPU是Central Processing Unit的縮寫,即中央處理器。由控制器和運算器構成,是整個計算機系統中最重要的部分 

服務器CPU公司 
  Intel:       
    Xeon      至強       
    Itanium   安騰 
  AMD       
    Althlon MP  
  IBM   
    Power

CPU相關術語:
  主頻:
    主頻是CPU的時鐘頻率(CPU Clock Speed),是CPU運算時的工做的頻率(1秒內發生的同步脈衝數)的簡稱。單位是Hz。通常說來,主頻越高,CPU的速度越快,因爲內部結構不一樣,並不是全部的時鐘頻率相同的CPU的性能都同樣。 
  外頻:
    系統總線的工做頻率,CPU與外部(主板芯片組)交換數據、指令的工做時鐘頻率。
  倍頻:
    倍頻則是指CPU外頻與主頻相差的倍數。 三者關係是:主頻=外頻x倍頻。 
  高速緩存(cache):
    高速交換的存儲器。CPU緩存分爲一級,二級,三級緩存, 即L1,L2,L3 
  內存總線速度(Memory-Bus Speed):
    通常等同於CPU的外頻,指CPU與二級(L2)高速緩存和內存之間的通訊速度 
  地址總線寬度:
    決定了CPU能夠訪問的物理地址空間  

CPU類型:
  x86 
  X64(CISC) 
  ARM(Acorn RISC Machine) 
  m68000, m68k(moto) 
  Power(IBM) 
  Powerpc(apple,ibm,moto) 
  Ultrasparc (Sun) 
  Alpha(HP) 
  安騰(compaq) 

服務器分類:
  按照CPU體系架構來區分,服務器主要分爲兩類:
    非x86服務器:使用RISC(精簡指令集)或EPIC(並行指令代碼) 處理器,而且主要採用UNIX和其它專用操做系統的服務器,指令系統相對簡單,它只要求硬件執行頗有限且最經常使用的那部分執令,CPU主要有Compaq的Alpha、HP的 PA-RISC、IBM的Power PC、MIPS的MIPS和SUN的Sparc、Intel研發的EPIC 安騰處理器等。這種服務器價格昂貴,體系封閉,可是穩定性好,性能強,主 要用在金融、電信等大型企業的核心繫統
    x86服務器:又稱CISC(複雜指令集)架構服務器,即一般所講的PC服務器, 它是基於PC機體系結構,使用Intel或其它兼容x86指令集的處理器芯片的服務器。目前主要爲intel的Xeon E3,E5,E7系列,價格相對便宜、兼容性好、穩定性較差、安全性不算過高。 

微處理器歷史:
  1971年11月15日,Intel公司的工程師特德·霍夫發明了世界上第一個微處理器—4004,這款4位微處理器雖然只有45條指令,並且每秒只能執行5萬條指令。 性能很低,但它的集成度卻要高不少,一塊4004的重量還不到一盅司。 
  Intel從8086開始,就進入了咱們常說的x86時代。而80386的誕生則標誌着Intel正是進入了32位微處理器的時代。從80386到Pentium 4這個年代的CPU, 就是傳說中的IA-32時代。Intel公司的CPU發展歷程以下圖所示。
  x86-64( 又稱x64,即英文詞64-bit extended,64位拓展 的簡寫)是x86架構的64位拓展,向後兼容於16位及32位的x86架構。x64於1999年由AMD設計, AMD首次公開64位集以擴展給x86,稱爲「AMD64」。其後也爲英特爾所採用,現時英特爾稱之爲「Intel 64」,在以前曾使用過「Clackamas Technology」 (CT)、「IA-32e」及「EM64T」   

 

8>.服務器硬件-主板

  主板mainboard、系統板systemboard或母板motherboard,安裝在機箱內,是計算機最基本的也是最重要的部件之一  

  主板通常爲矩形電路板,上面安裝了組成計算機的主要電路系統,通常有BIOS芯片、I/O控制芯片、鍵盤和麪板控制開關接口、指示燈插接件、擴充插槽、主板及插卡的直流電源供電接插件等元件。

9>.服務器硬件---內存 

什麼是內存:
  內存是介於CPU和外部存儲之間,是CPU對外部存儲中程序與數據進行高速運算時存放程序指令、數據和中間結果的臨時場所,它的物理實質就是一組具有數據輸入輸出和數據存儲功能的高速集成電路。

  內存是CPU能直接尋址的存儲空間,由半導體器件製成。內存的特色是存取速度快。

  計算機中全部程序的運行都是在內存中進行的,所以內存的性能對計算機的影響很是大。

內存和外村的區別:
  外存:硬盤,U盤,軟盤,光盤
  內存和外存的區別:
    內存斷電後數據丟失
    外存斷電後數據能夠保存

內存相關術語:
  容量:即該內存的存儲容量,單位通常爲「MB」或「GB」
  內存帶寬:
    內存帶寬是指內存與北橋芯片之間的數據傳輸率
    單通道內存控制器通常都是64-bit的,8個二進制位至關於1個字節,換算成字節是64/8=8,再乘之內存的運行頻率,若是是DDR內存就要再乘以2 •
    計算公式:  內存帶寬=內存總線頻率×數據總線位數/8
    示例:
      單通道DDR內存帶寬計算   
        DDR4-4000:4000MHz*64bit/8=32000MB/S   DDR4-3600:3600MHz*64bit/8=28800MB/S   
      雙通道:   
        DDR4-4000:4000MHz*64bit*2/8=64000MB/S 

在線備用內存技術
  當主內存或者是擴展內存中的內存出現多位錯誤時或者出現物理內存故障時,服務器仍繼續運行
  由備用內存接替出現故障內存的工做
  備用的內存區域必須比其它區域的內存容量要大或相同

內存鏡像
  鏡像爲系統在出現多位錯或內存物理故障時提供數據保護功能,以保證系統仍能正常的運行
  數據同時寫入兩個鏡像的內存區域
  從一個區域進行數據的讀取 

10>.服務器硬件---硬盤 

 
 
硬盤基本參數:   
  容量
    容量是硬盤最主要的參數。單位有MB、GB、TB
  轉速
    轉速是指硬盤盤片每分鐘轉動的圈數,單位爲rpm。如今硬盤的轉速已經達 到10000rpm,15000rpm
  傳輸速率
    傳輸速率(Data Transfer Rate) 。硬盤的數據傳輸率是指硬盤讀寫數據的速 度,單位爲兆字節每秒(MB/s)   緩存     硬盤緩存的目的是爲了解決系統先後級讀寫速度不匹配的問題,以提升硬盤的讀寫速度   硬盤接口類型:     IDE接口:硬盤接口規範,採用ATA技術規範     SCSI接口:應用於小型機上的高速數據傳輸技術     SATA接口: Serial ATA,提升傳輸速率,支持熱插拔     SAS接口: Serial Attached SCSI,兼容SATA     目前主流的硬盤接口爲SATA和SAS接口 

機械硬盤結構:   存儲介質(Media)——盤片     盤片的基板是金屬或玻璃材質製成,爲達到高密度高穩定的質量,基板要求表面光滑平整,不可有任何暇疵   讀寫磁頭(Read Write Head)——磁頭     磁頭是硬盤讀取數據的關鍵部件,它的主要做用就是將存儲在硬盤盤片上的磁信息轉化爲電信號向外傳輸   馬達( Spindle Motor
& Voice Coil Motor )     馬達上裝有一至多片盤片,以7200,10000,15000 RPM等定速旋轉,爲保持其平衡不可抖動,因此其質量要求嚴謹,不產生高溫躁音
SSD硬盤:     SSD(Solid State Disk)泛指使用NAND Flash組成的固態硬盤。其特別之處在於 沒有機械結構,以區塊寫入和抹除的方式做讀寫的功能,所以在讀寫的效率上,非 常依賴讀寫技術上的設計SSD讀寫存取速度快,性能穩定,防震性高,發熱低,耐 低溫,電耗低,無噪音。由於沒有機械部分,因此長時間使用也出現故障概率也較 小。缺點:價格高,容量小,在普通硬盤前毫無性價比優點   
服務器的性能短板:     若是CPU有每秒處理1000個服務請求的能力,各類總線的負載能力能達到500個, 但網卡只能接受200個請求,而硬盤只能負擔150個的話,那這臺服務器得處理能 力只能是150個請求
/秒,有85%的處理器計算能力浪費了 在計算機系統當中,硬盤的讀寫速率已經成爲影響系統性能進一步提升的瓶頸 各類硬件處理速度以下圖所示: 

11>.服務器硬件---陣列卡 

Raid卡: 
  用來實現RAID的創建和重建,檢測和修復多 位錯誤,錯誤磁盤自動檢測等功能。RAID芯 片使CPU的資源得以釋放

陣列卡(RAID卡)的做用
  陣列卡把若干硬盤驅動器按照必定要求組成一個總體、由陣列控制器管理的系統。
  陣列卡用來提升磁盤子系統的性能及可靠性

陣列卡參數
  支持的RAID級別
  陣列卡緩存
  電池保護

12>.服務器硬件---電源 

電源和風扇 
  支持服務器的電力負載
  支持冗餘,防止電源故障
    故障預警和防止
    故障以前的預防性維護
    保證服務器持續運行
  電源子系統包括
    智能電源和風扇
  冗餘電源和風扇

13>.服務器硬件---顯卡 

  服務器都在主板上集成了顯卡,可是顯存容量不高,通常爲16M或32M GPU: Graphic Processing Unit,即「圖形處理器」 

14>.服務器硬件---網卡 

  服務器都在主板上集成了網卡,傳輸速率爲1Gbps,即千兆網卡 特殊應用須要高端網卡,如光纖網卡,Infiniband網卡等,傳輸速率能達到10Gbps、 20Gbps,即萬兆網卡 

15>.服務器硬件---熱插拔技術 

熱插拔技術 
  稱爲熱交換技術(Hot Swap),容許在不關機的狀態下更換故障熱插拔設備
  常見的熱插拔設備:硬盤,電源,PCI設備,風扇等
  熱插拔硬盤技術與RAID技術配合起來,可使服務器在不關機的狀態下恢復故障硬盤上的數據,同時並不影響網絡用戶對數據的使用

16>.服務器硬件---機櫃 

 

機架式服務器-服務器放置在機櫃中 一般使用的機櫃是42U(約2米高)機櫃( 1U=44.45mm) 外觀尺寸通常爲:寬600*深1000*高2000(mm) 

機架式服務器-機架及其配件以下圖所示。

 

 

四.操做系統

1>.操做系統的分類

OS: 
  全稱爲Operating System,它是特殊的計算機軟件程序,它管理計算機硬件,並提供一我的機交互界面,供用戶更方便使用計算機資源。一個操做系統應該包含如下功能:
    硬件驅動
    進程管理
    內存管理
    網絡管理
    安全管理
    文件管理

OS分類:
    服務器OS:
      RHEL,CentOS,Suse,Ubantu,Windows Server,AIX
    桌面OS:
      Windows 10,Mac OS,Fedora
    移動設備OS:
      Andriod,IOS,AliOS

2>.interface

接口:
  即interface,來源於電氣工程學科,指的是插座與插頭的鏈接口,起到將電與電器鏈接起爲的功能。後來延伸到軟件工程裏指軟件包向外提供的功能模塊的函數接口。因此接口是用來鏈接兩個東西、信號轉換和屏蔽細節 
  操做系統經過接口的方式,創建了用戶與計算機硬件的溝通方式。用戶經過調用操做系統的接口來使用計算機的各類計算服務。 
  爲操做系統通常會提供兩個重要的接口來知足用戶的一些通常性的使用需求: 
    命令行:實際是一個叫shell的終端程序提供的功能,該程序底層的實質仍是調用一些操做系統提供的函數 
    窗口界面:窗口界面經過編寫的窗口程序接收來自操做系統消息隊列的一些 鼠標、鍵盤動做,進而作出一些響應 
 
開發接口標準   ABI: Application Binary Interface     ABI描述了應用程序與OS之間的底層接口,容許編譯好的目標代碼在使用兼容ABI 的系統中無需改動就能運行   運行程序格式:     Windows: PE(portable executable)格式, .dll(dynamic link library),.lib     Linux: ELF(Executable
and Linking Format)格式, .so(shared object), .a   API:Application Programming Interface     API定義了源代碼和庫之間的接口,所以一樣的源代碼能夠在支持這個API的任何系統中編譯   POSIX:     Portable Operating System Interface 可移植的操做系統接口     IEEE在操做系統上定義的一系列API標準     POSIX兼容的程序可在其它POSIX操做系統編譯執行

3>.用戶態和內核態

  計算機硬件資源都是操做系統內核進行管理的,目前操做系統都是基於多任務、多用戶的。若是每一個用戶進程均可以隨便訪 問操做系統內核的模塊,改變狀態,那整個操做系統的穩定性、安全性都大大下降 

  爲了將內核程序與用戶程序隔離開,在硬件層面上提供了一次機制,將程序執行的狀態分爲了避免同的級別,從0到3,數字越小,訪問級別越高。0表明內核態,在該特權級別下,全部內存上的數據都是可見的,可訪問的。3表明用戶態,在這個特權級下,程序只能訪問一部分的內存區域,只能執行一些限定的指令

4>.系統調用system call 

  對於非通常性使用需求,操做系統提供了一系列的函數調用給軟件開發者,由軟件開發者來實現一些用戶須要的功能。這些函數調用因爲是操做系統內核提供的,爲了有別於通常的函數調用,被稱爲系統調用。好比使用C語言進行軟件開發時,常常用的printf函數,它的內部實際就是經過write這個系統調用,讓操做系統內核把字符打印在屏幕上的 

 

5>.Library function和system call 

6>.用戶和內核空間 

 用戶空間:
  即User space,用戶程序的運行空間。爲了安全,它們是隔離的,即便用戶的程序崩潰,內核也不受影響  
  只能執行簡單的運算,不能直接調用系統資源,必須經過系統接口( system call),才能向內核發出指令 

內核空間:
  即Kernel space,是Linux內核的運行空間能夠執行任意命令,調用系統的一切資源 

示例:  
  str = 「www.yinzhengjie.org.cn"   // 用戶空間  
  x = x + 100               // 用戶空間  
  file.write(str)             // 切換到內核空間  
  y = x + 200               // 切換回用戶空間 
 
  說明:第一行和第二行都是簡單的賦值運算,在User space執行。第三行須要寫入文件,就要切換到Kernel space,由於用戶不能直接寫文件,必須經過內核安排。第四行又是賦值運算,就切換回 User space 

7>.編程語言 

一.語言分類
1>.計算機語言
  人與計算機之間交互的語言。
2>.低級語言  
  面向機器的語言,包括機器語言、彙編語言,不一樣的機器不能通用,不一樣的機器須要不一樣的機器指令或者彙編程序。
    機器語言:必定位數組成二進制的0和1的序列,稱爲機器指令。機器指令的集合就是機器語言。與天然語言差別太大,難學、難懂、難寫、難記、難查錯。
    彙編語言:用一些助記符號替代機器指令,稱爲彙編語言。ADD A,B 指的是將寄存器A的數與寄存器B的數相加獲得的數放到寄存器A中。彙編語言寫好的程序須要彙編程序轉換成機器指令。彙編語言只是稍微好記了些,能夠認爲就是機器指令對應的助記符。只是符號自己接近天然語言。即
和機器語言一一對應,與硬件相關的特有代碼、驅動程序開發。
3>.中級語言:
  C  
  系統級應用、驅動程序 
4>.高級語言: 
  java,python,go,php,Objective-C,C#  
  接近人類的天然語言和數學語言的計算機語言。高級語言首先要書寫源程序,經過編譯程序把源程序轉換成機器指令的程序。1954年正式發佈的Fortran語言是最先的高級語言,本意是公式翻譯。人們只須要關心怎麼書寫源程序,針對不一樣機器的編譯的事交給編譯器關心處理,主要用於應用級程序開發,
5>.低級語言到高級語言的區別:
  (1)語言越高級,越接近人類的天然語言和數學語言。
  (2)語言越低級,越能讓機器理解。
  (3)高級語言和低級語言之間須要一個轉換的工具:編譯器、解釋器。
  (4)C、C++等語言的源代碼須要本地編譯。
  (5)Java、Python、C#的源代碼須要被解釋器編譯成中間代碼(Bytecode),在虛擬機上運行。

二.編譯語言和解釋器語言的區別:
  編譯語言:
    把源代碼轉換成目標機器的CPU指令,便可以直接執行,速度快。
  解釋語言:
    解釋後轉換成字節碼,運行在虛擬機上,解釋器執行中間代碼,即邊解釋邊執行,速度慢。

三.高級語言的發展
1>.非結構化語言
  (1)編號或標籤、GOTO,子程序能夠有多個入口和出口
  (2)有分支、循環
2>.結構化語言
  (1)任何基本結構只容許是惟一入口和惟一出口
  (2)順序、分支、循環,廢棄GOTO
3>.面嚮對象語言
  (1)更加接近人類認知世界的方式,萬事萬物抽象成對象,對象間關係抽象成類和繼承
  (2)封裝、繼承、多態
4>.函數式語言
  (1)古老的編程範式,應用在數學計算、並行處理的場景。引入到了不少現代高級語言中
  (2)函數是「一等公民」,高階函數

8>.服務器三大操做系統 

Windows: 
  Windows Server 2003 NT 5.2
  Windows Server 2008 NT 6.0
  Windows Server 2008 R2 NT 6.1
  Windows Server 2012 NT 6.2
  Windows Server 2012 R2 NT 6.3
  Windows Server 2016
  從Windows Server 2008 R2開始,Windows Server 2008 R2再也不提供32位版本。

Linux:
  GNU/Linux 

Unix:
  1969年Ken Thompson  
  System: Bell Lab   
    AIX (IBM)   
    Solaris (SUN)   
    HP-UX (HP)  
  BSD: (BSRG)Berkeley System Distribution   
    NetBSD   
    OpenBSD   
    FreeBSD

服務器操做系統市場以下圖所示,Linux已成趨勢。 

 

五.UNIX歷史

 

1>.操做系統的演變

單用戶系統 
批處理系統:提升系統運行效率
多道程序系統:程序控制CPU處理順序
分時系統:提升系統利用率,操做系統控制CPU處理順序
我的計算機:每人用戶對應一個系統,廉價,方便,易用
分佈式計算:每一個用戶對應多個系統,雲計算,大數據處理

2>.兼容分時系統Multics

  爲了進一步強化大型主機的功能,讓主機的資源能夠提供更多的使用者來利用, 因此在1964年,由貝爾實驗室(Bell)、麻省理工學院(MIT)及奇異公司(GE美國 通用電氣公司)共同發起了Multics(多路信息計算系統)的計劃,Multics計劃的目的是讓大型主機能夠同時支持300個以上的終端機連線使用。不過,到了1969年先後,因爲計劃進度緩慢,資金也短缺,因此該計劃雖然繼續在研究, 但最終貝爾實驗室仍是選擇了退出 

3>.Ken Thompson:一切爲了遊戲 

  1966年從加州大學伯克利分校畢業的Ken Thompson加入了貝爾實驗室。參與了Multics系統的研發。他基於Multics開發了「star travel」遊戲。不幸的是,1969年因爲貝爾實驗室退出Multics項目,這同時意味着Ken將沒有機器能夠再玩這個遊戲了。面對此情此景,Ken做爲一個創造者的本性當即體現了出來,因而他決定本身寫一個操做系統來知足他玩遊戲的須要,Ken找到了一臺廢棄已久的老式PDP-7,並在這臺機器上重寫了他的遊戲。在這個過程當中,Ken有了一個主意,要開發一個全新的操做系統。利用PDP-7上的彙編語言,Ken只花了一個月就編寫完了操做系統的內核,在這個一個月中,他一週一個內核,一個文件系統,一個編輯器和一個編譯程序的完成 

4>.Linux歷史

  貝爾實驗室與研製MULTICS的Ken Thompson,找來一臺無人問津的廢舊DPD-7,使用匯編語言設計簡化版MUTICS.同事看到了戲稱爲UNICS,意思時刪減的MULTICS,但最終拼寫爲UNIX。後來Dennis Ritchie也加入進來,他們就是Unix之父。隨後,Unix被移植到DPD-11系列。移植過程當中,對每一種機器都須要重寫Unix。Dennis Ritchie就以B語言爲基礎,發明了C語言,兩人重寫了Unix操做系統。1974年他們發表了Unix的論文,並憑此得到了圖靈獎。

  論文發表後,不少大學都想Bell實驗室請求Unix拷貝,貝爾實驗室母公司AT&T公司正在做爲壟斷企業受監管,不能經營計算機業務,但很願意爲大學提供Unix,今後Unix就從各個大學傳播開來。

  加州大學伯克利分校是早期得到了所有源代碼的大學之一,並開始對Unix進行改進發布,稱爲BSD(Berkeley Software Distrbution)。

  1984年,AT&T公司被拆分後,拿到了計算機服務銷售許可,很快發佈了Unix第一個商業版本System III,以後就發佈了System V和後續改進版本。

  到了80年代後期,BSD和System V兩套在必定程度上不兼容Unix版本,和大量的改版Unix,是的操做系統之上軟件不通用。後來,IEEE制定了POSIX標準(Portable Operation System,IX只是個後綴)。該標準指定了Unix系統必須提供的庫函數,例如open,read函數等。
UNIX歷史
1965先後 Multics     
  貝爾實驗室,麻省理工,通用電氣發起 

1969 Unix雛形UNICS     
  Ken Thompson 彙編語言 B語言 

1973 正式命名爲Unix     
  Dennis Ritchie C語言 

1977 BSD      
  Berkeley Software Distribution  伯克利大學(開源軟件,要求使用者能夠隨意修改源代碼,但使用者不容許告伯克利) 

1979 System V架構 版權聲明      
  HP-UNIX IBM AIX 「不對學生提供源碼」 收回版權(開始要和BSD打官司,打官司期間會向法院申請BSD在版權未確認以前不容許發行軟件,所以限制了UNIX的發展) 

1984年 Minix操做系統      
  Andrew S. Tanenbaum荷蘭阿姆斯特丹自由大學計算機科學系(在BSD和System V打官司的時候,它的誕生爲Linux誕生作了良好的鋪墊) 
  Unix大而複雜,與其初衷相悖。荷蘭阿姆斯特丹大學教授Andrew S. Tanenbaum出於教學目的,編寫了一個類Unix的的又小又易懂的系統MINIX。
  該系統採用微內核設計,也就是內核中只提供最基本最少的功能,使系統可靠高效。內核只負責進程間信息傳遞,內存管理,文件系統使用用戶進程實現。爲了讓Minix便於教學,Tanenbaum教授拒絕了在Minix中增長了更多功能,都被拒絕了。
  官方網站:http://www.minix3.org/

  一個芬蘭學生Linus Torvalds決定編寫一個類Unix系統,第一個版本0.01發佈於1991年,它借鑑了Minix不少思想,但捨棄了Minix的微內核設計,將整個操做系統功能都包含在內核中(單內核,宏內核)。
  到1996年2.0版本時,Linux和Unix充分兼容,大量Unix軟件遷移過來,它已經具有了完善的功能。
  官方網站:https://www.kernel.org/

  Linux使用了自由軟件基金會的Richard Stanllman設計的GPL許可。GPL許可規定,用戶能夠自由使用,複製,修改,傳播源代碼和二進制代碼,但以Linux內核爲基礎開發的產品不能只以二進制形式出售和分發,必須將源代碼一併發出,要麼能夠隨意索取源代碼。
  90年代初,AT&T狀告伯克利,致使了伯克利準備使用BSD開源許可發佈FreeBSD系統禁止發行。這給Linux大發展帶來了機遇。

 

六.開源協議

1>.GNU

GNU(GNU is Not Unix) 
1984年由Richard Stallman發起並建立
目標是編寫大量兼容於Unix系統的自由軟件
官方網站:http://www.gnu.org GPL(GNU General Public License)
自由軟件基金會:Free Software Foundation
容許用戶任意複製、傳遞、修改及再發布
基於自由軟件修改再次發佈的軟件,仍需遵照GPL
LGPL(Lesser General Public License)
LGPL相對於GPL較爲寬鬆,容許不公開所有源代碼
GNU操做系統:Hurd Hird of Unix-Replacing Daemons

2>.Linux起源

1991年的10月5日,Torvalds在comp.os.minix新聞組上發佈消息,正式向外宣佈他自行編寫的徹底自由免費的內核誕生 (Freeminix-like kernel sources for 386-AT) —FREAX,含義是怪誕的、怪物、異想天開 

類Unix的內核,在GPL下發布

官網:www.kernel.org

Linux操做系統:
  完整的類UNIX操做系統
  Linux內核+ GNU工具
  如:CentOS,Ubuntu,Android

3>.Linux發行版

slackware:
  SUSE Linux Enterprise Server (SLES) , OpenSuse桌面
debian:
  ubuntu,deepin(深度),mint
redhat:
  RHEL: RedHat Enterprise Linux, 每18個月發行一個新版本
  CentOS:兼容RHEL的格式
  中標麒麟:中標軟件
  Fedora:每6個月發行一個新版本
ArchLinux:
  輕量簡潔,遵循K.I.S.S.原則( keep it simple and stupid ),Manjaro
Gentoo:
  極致性能,不提供傳統意義的安裝程序,下載源代碼在本機上編譯安裝軟件
LFS:
  Linux From scratch 自制Linux
Android:
  kernel+busybox(工具集)+java虛擬機
Linux 分支參考網站:
  http://futurist.se/gldt/
  http://www.mindpin.com/d3js-demo/linux/
linux發行版排名:
  https://distrowatch.com/dwres.php?resource=popularity

4>. RED HAT紅帽公司

  Marc Ewing早在卡內基梅隆大學讀書的時候就戴着他祖父的紅色曲球帽. Marc 在Marc Ewing大學常把本身的軟件命名爲Red Hat — Red hat 1, Red Hat 2用來區別他人的軟件. 因此當他開始本身的Linux項目, 天然就會命名爲Red Hat Linux。Ewing很是樂於幫助同窗解決計算機問題 「你的朋友可能會說, 去跟個人朋友Marc交流. 誰是Marc? 他是紅帽男孩. 」 因此, 至少在他們最親密的朋友當中 , 紅帽子成爲了技術專家的同義詞。
  1993年,Bob Young 創建ACC公司,營銷Linux和UNIX的支持軟件和書籍雜誌
  1995年,Bob Young 收購了Marc Ewing的業務,合併後的ACC公司成爲新的Red Hat軟件公司,發佈了Red Hat Linux 2.0
  2018年10月29日,IBM宣佈將以約340億美圓收購開源軟件和技術主要供應商紅帽公司

5>.Linux內核

Linux的內核版本由3部分組成 
  主版本號
  次版本號
  末版本號
  打包版本號
  廠商版本

6>.Linux發行版本-紅帽發行版本 

Linux 發行版的名稱和版本號是由發行版的維護者決定的 
RedHat Enterprise Linux 7.5
由Red Hat公司發佈 SUSE Linux Enterprise Server
12 SP2
由Novell公司發佈 Debian Linux
9
由Debian維護社區發佈 Android
8.0
由Google公司發佈

 

 

七.開源協議

1>.開源 Open Source 

開源: 
  Open Source ,軟件和源代碼提供給全部人
  自由分發軟件和源代碼
  可以修改和建立衍生做品

軟件分類:
  商業
  共享
  自由 free

2>.開源許可證

世界上的開源許可證,大概有上百種,好比:
  GPLv2, GPLv3, LGPL(lesser) :通用公共許可 copyleft
  Apache: apache
  BSD: bsd
  Mozilla
  MIT
  ......

3>.開源協議 

 

八.安裝Linux操做系統

1>.Linux哲學思想 

  一切都是一個文件(包括硬件) 
  小型,單一用途的程序
  連接程序,共同完成複雜的任務
  避免使人困惑的用戶界面
  配置數據存儲在文本中

2>.獲取發行版 

CentOS發行版相關下載地址:
  https://wiki.centos.org/Download
  http://mirrors.aliyun.com
  http://mirrors.sohu.com
  http://mirrors.163.com
  https://mirrors.tuna.tsinghua.edu.cn/centos/

Ubuntu
  http://cdimage.ubuntu.com/releases/

3>.獲取虛擬化軟件 

  虛擬機:用軟件(如:vmware,virtualbox等)模擬硬件,選擇種類有不少,根據你的操做系統選擇相應的軟件,如下軟件只作推薦。
    Windows:
      推薦使用virtualbox,下載地址:https://www.virtualbox.org/wiki/Downloads
      推薦使用使用vmware,須要許可證,下載地址:https://my.vmware.com/cn/web/vmware/downloads

    Linux:
      推薦使用virtualbox,下載地址:https://www.virtualbox.org/wiki/Downloads
      推薦使用使用vmware,須要許可證,下載地址:https://my.vmware.com/cn/web/vmware/downloads

    Mac OS:   
      推薦使用virtualbox,下載地址:https://www.virtualbox.org/wiki/Downloads
      推薦使用Parallels Desktop For Mac,須要許可證,下載地址:https://www.parallels.com/cn/products/business/

4>.安裝CentOS操做系統

  詳情請參考:https://www.cnblogs.com/yinzhengjie/p/10366167.html

  查看基本硬件信息:https://www.cnblogs.com/yinzhengjie/p/11080600.html

  Linux基礎入門:https://www.cnblogs.com/yinzhengjie/p/11281822.html
相關文章
相關標籤/搜索