計算機系統php
計算機硬件java
計算機(Computer):俗稱電腦,是一種能接收和存儲信息,並按照存儲在其內部的程序對海量數據進行自動、高速地處理,而後把處理結果輸出的現代化智能電子設備python
發展歷史:linux
第一代計算機(1946-1957)電子管時代數據庫
第二代計算機(1958-1964)晶體管時代apache
第三代計算機(1965-1970) 集成電路時代編程
第四代計算機(1971之後) 大規模集成電路時代ubuntu
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://www.mindpin.com/d3js-demo/linux/
Linux內核
開源協議
世界上的開源許可證,大概有上百種
GPLv2, GPLv3, LGPL(lesser) :通用公共許可copyleft
Apache: apache
BSD: bsd
Mozilla
Apache
MIT
Linux哲學思想
一切都是一個文件(包括硬件)
小型,單一用途的程序
連接程序,共同完成複雜的任務
避免使人困惑的用戶界面
配置數據存儲在文本中