計算機基礎知識 計算機基礎知識彙總

2021-10-12 08:22:54 字數 1828 閱讀 6479

計算機專業的那六大件:組成原理,作業系統,資料庫,編譯原理,計算機網路,資料結構, 其次還得加上分布式的基礎知識, 因為現在的系統都變成分布式的了。如果你是做應用層開發的,那幾門課程中的有些內容和日常工作關聯度不大,我挑那些最重要的來說一說,也算是乙個最小集合吧!

1,計算機組成原理

如果你不是做作業系統/驅動程式的,直接和硬體打交道的機會很少,因為作業系統已經把他們遮蔽掉了,提供了抽象的api給我們使用。

但是還必須理解馮諾依曼體系的結構,cpu和記憶體,硬碟,各種外設之間的關係,暫存器、快取等知識。cpu有哪些指令,如何執行這些指令,如果實現陣列,結構體,函式呼叫,這就涉及到彙編的知識。像原碼,反碼,補碼,定點數、浮點數的表示和運算也是程式設計中必備的知識,幾乎每種語言都要涉及。

現在很多語言都是在虛擬機器上執行的,你只要是了解了計算機的組成原理,再去看哪些虛擬機器,就會發現概念都是相通的。另外cpu中的快取,快取一致性協議,dma的非同步思想都會在應用層中有所體現。《編碼》是乙個更加科普性,但是也更加有趣的講組成原理的書。

2,作業系統

作業系統是比較枯燥的, 站在應用層的角度,我認為重點是掌握作業系統對外提供的抽象,包括程序、執行緒,檔案,虛擬記憶體,以及程序間的通訊問題。幾乎所有的程式語言都會涉及到對多程序或者多執行緒程式設計的支援, 特別是多執行緒的併發程式設計,所以必須得搞明白他們的本質是什麼,執行緒都有哪些實現方式。得真正地體會到「程序是資源分配的最小單位,執行緒是排程的最小單位。」 這句話的含義。

幾乎所有的程式語言都會涉及到鎖和死鎖,最好在最底層理解鎖是怎麼實現的。需要理解虛擬記憶體和物理記憶體直接的關係,分段和分頁,檔案系統的基本原理。對於程序的排程,頁面分配/置換演算法,磁碟的排程演算法,i/o系統,我認為優先順序比較低。

3,計算機網路

必須要理解的是這些:

以上這些知識,在你學習redis ,ngnix, tomcat, lvs等軟體時將有極大的幫助

4,資料庫

這個和日常工作結合極其緊密,不用我再多說,包括最基本的sql,各種正規化,事務及其隔離級別,事務的實現方式,索引及其實現方式,b+樹等等。

5,編譯原理

你一輩子也許都不會去寫乙個編譯器,但是很有可能會利用現成的工具去生成/操作乙個抽象語法樹(ast),甚至可以會寫乙個dsl(領域特定語言)。所以你得理解詞法分析、語法分析、語義分析,中間**生成,**優化這個基本編譯的過程。

6,分布式的理論知識

6.1,資料複製與一致性:

cap理論, base原則,冪等性, 2pc, tcc,paxos , raft , gossip

6.2,資料分片和路由:

hash分片:hash取模(實際中非常常見的演算法), 虛擬桶(redis使用),一致性hash(memcached使用)

7,最後想說的是,不能帶著特別功利的目的去學習這些基礎,不能想著立刻、馬上就應用到實戰中,從中獲益。更重要的理解掌握它們背後的思想!

計算機基礎知識 關於計算機的基礎知識

一 計算機發展 世界計算機 1 第一台計算機 eniac,1946年,美國研製的世界上第一台計算機,開闢了計算機技術的新紀元。2 計算機之父 馮 諾依曼參與eniac研究,提出計算機的二進位制 五大組成部分 程式控制。3 計算機發展階段 第一代電子管計算機 1946 1958年。第二代電晶體計算機 ...

計算機基礎知識

計算機5大組成單元 輸入單元 輸出單元 cpu內部的控制單元 算術邏輯單元 記憶體。單有cpu是無法運作計算機的,所以計算機還需要其他的介面裝置才能夠實際執行。很顯然,主機板是必不可少的,因為主機板負責把所有的裝置連線起來,讓所有的裝置能夠進行協調通訊。而主機板上面最重要的元件就是主板晶元組了!這個...

計算機基礎知識

大寫 小寫英文名稱 alpha nu beta xi gamma omicron delta pi epsilon rho zeta sigma eta tau theta upsilon iota phi chi lambda psi mu omega 攻擊過程如下 1.攻擊者通過mim 比如ar...