1. 程式人生 > >Linux 計算機基礎

Linux 計算機基礎

公開 監控 ron program 彈道 eric int 代碼 集成

計算機系統

技術分享圖片

計算機硬件

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

發展歷史:

第一代計算機(1946-1957)電子管時代

第二代計算機(1958-1964)晶體管時代

第三代計算機(1965-1970) 集成電路時代

第四代計算機(1971以後) 大規模集成電路時代

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


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可以訪問的物理地址空間


陣列卡

Raid卡:

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

陣列卡(RAID卡)的作用

陣列卡把若幹硬盤驅動器按照一定要求組成一個整體、由陣列控制器管理的系統。

陣列卡用來提高磁盤子系統的性能及可靠性

陣列卡參數

支持的RAID級別

陣列卡緩存

電池保護


計算機硬件組成部分

技術分享圖片


服務器

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

服務器按應用功能可分為:

Web服務器、數據庫服務器、文件服務器、中間件應用服務器、日誌服務器、監控服務器,程序版本控制服務器、虛擬機服務器、郵件服務器、打印服務器、域控制服務器、多媒體服務器、通訊服務器、ERP服務器等

服務器按外形分類:

塔式服務器、機架式服務器、刀片式服務器


服務器分類

按照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系列,價格相對便宜、兼容性好、穩定性較差、安全性不算太高

存儲基礎知識---存儲網絡

技術分享圖片


存儲網絡:

DAS-----直接連接存儲(Direct Attached Storage)

NAS-----網絡連接存儲(Network Attached Storage)

SAN-----存儲區域網絡(Storage Area Networks)

直接存儲(Direct Attached Storage)。

存儲設備與主機的緊密相連

技術分享圖片

?管理成本較低,實施簡單

?儲時直接依附在服務器上,因此存儲共享受到限制

?CPU必須同時完成磁盤存取和應用運行的雙重任務,所以不利於CPU的指令周期的優化,增加系統負擔


網絡連接存儲(Network Attached Storage):

通過局域網在多個文件服務器之間實現了互聯,基於文件的協議(NFS、SMB/CIFS ),實現文件共享

技術分享圖片

?集中管理數據,從而釋放帶寬、提高性能

?可提供跨平臺文件共享功能

?可靠性較差,適用於局域網或較小的網絡


存儲區域網絡(Storage Area Networks,SAN)

利用高速的光纖網絡鏈接服務器與存儲設備,基於SCSI,IP,ATM等多種高級協議,實現存儲共享

技術分享圖片

?服務器跟儲存裝置兩者各司其職

?利用光纖信道來傳輸數據﹐以達到一個服務器與儲存裝置之間多對多的高效能、高穩定度的存儲環境

?實施復雜,管理成本高


操作系統

OS: Operating System,通用目的的軟件程序

硬件驅動

進程管理

內存管理

網絡管理

安全管理

文件管理

OS分類:

服務器OS:RHEL, CentOS,WindowsServer,AIX

桌面OS:Windows 10,Windows 7,Mac OS,Fedora

移動設備OS:Andriod,IOS,YunOS


開發接口標準

ABI: Application Binary Interface

ABI描述了應用程序與OS之間的底層接口,允許編譯好的目標代碼在使用兼容ABI的系統中無需改動就能運行

API:Application Programming Interface

API定義了源代碼和庫之間的接口,因此同樣的源代碼可以在支持這個API的任何系統中編譯

POSIX: Portable Operating System Interface

IEEE在操作系統上定義的一系列API標準

POSIX兼容的程序可在其它POSIX操作系統編譯執行

運行程序格式:

Windows: EXE, .dll(dynamic link library),.lib

Linux: ELF, .so(shared object), .a

Library function和system call

技術分享圖片

用戶空間:User space

用戶程序的運行空間。為了安全,它們是隔離的,即使用戶的程序崩潰,內核也不受影響

只能執行簡單的運算,不能直接調用系統資源,必須通過系統接口(system call),才能向內核發出指令


內核空間:Kernel space

是Linux 內核的運行空間

可以執行任意命令,調用系統的一切資源

示例:

str= “www.baidu.com" // 用戶空間

x = x + 100 // 用戶空間

file.write(str) // 切換到內核空間

y = x + 200 // 切換回用戶空間

第一行和第二行都是簡單的賦值運算,在User space 執行。第三行需要寫入文件,就要切換到Kernel space,因為用戶不能直接寫文件,必須通過內核安排。第四行又是賦值運算,就切換回User space


用戶和內核空間

技術分享圖片

編程語言

低級語言

機器語言:0和1

匯編語言:和機器語言一一對應,與硬件相關的特有代碼、驅動程序開發

中級語言:C

系統級應用、驅動程序

高級語言:java,Objective-C,C#,python,php,go

應用級程序開發


兼容分時系統

技術分享圖片

兼容分時系統Multics

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


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操作系統:HurdHirdof Unix-Replacing Daemons


Linux發行版

slackware:SUSE Linux Enterprise Server (SLES)

OpenSuse桌面

debian:ubuntu,mint

redhat:RHEL: RedHatEnterprise Linux

每18個月發行一個新版本

CentOS:兼容RHEL的格式

中標麒麟:中標軟件

Fedora:每6個月發行一個新版本

ArchLinux:輕量簡潔

Gentoo:極致性能,不提供傳統意義的安裝程序

LFS: Linux From scratch 自制Linux

Android: kernel+busybox(工具集)+java虛擬機

Linux分支參考網站:

http://futurist.se/gldt/

http://www.mindpin.com/d3js-demo/linux/


Linux內核

技術分享圖片


開源協議

世界上的開源許可證,大概有上百種

GPLv2, GPLv3, LGPL(lesser) :通用公共許可copyleft

Apache: apache

BSD: bsd

Mozilla

Apache

MIT

技術分享圖片

Linux哲學思想

一切都是一個文件(包括硬件)

小型,單一用途的程序

鏈接程序,共同完成復雜的任務

避免令人困惑的用戶界面

配置數據存儲在文本中

Linux 計算機基礎