計(jì)算機(jī)基礎(chǔ)知識(shí)匯總

2021-02-13    分類: 網(wǎng)站建設(shè)

計(jì)算機(jī)專業(yè)的那六大件:組成原理,操作系統(tǒng),數(shù)據(jù)庫,編譯原理,計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)結(jié)構(gòu), 其次還得加上分布式的基礎(chǔ)知識(shí), 因?yàn)楝F(xiàn)在的系統(tǒng)都變成分布式的了。如果你是做應(yīng)用層開發(fā)的,那幾門課程中的有些內(nèi)容和日常工作關(guān)聯(lián)度不大,我挑那些最重要的來說一說,也算是一個(gè)最小集合吧!

1,計(jì)算機(jī)組成原理

如果你不是做操作系統(tǒng)/驅(qū)動(dòng)程序的,直接和硬件打交道的機(jī)會(huì)很少,因?yàn)椴僮飨到y(tǒng)已經(jīng)把他們屏蔽掉了,提供了抽象的API給我們使用。

但是還必須理解馮諾依曼體系的結(jié)構(gòu),CPU和內(nèi)存,硬盤,各種外設(shè)之間的關(guān)系,寄存器、緩存等知識(shí)。CPU有哪些指令,如何執(zhí)行這些指令,如果實(shí)現(xiàn)數(shù)組,結(jié)構(gòu)體,函數(shù)調(diào)用,這就涉及到匯編的知識(shí)。像原碼,反碼,補(bǔ)碼,定點(diǎn)數(shù)、浮點(diǎn)數(shù)的表示和運(yùn)算也是編程中必備的知識(shí),幾乎每種語言都要涉及。

現(xiàn)在很多語言都是在虛擬機(jī)上運(yùn)行的,你只要是了解了計(jì)算機(jī)的組成原理,再去看哪些虛擬機(jī),就會(huì)發(fā)現(xiàn)概念都是相通的。另外CPU中的緩存,緩存一致性協(xié)議,DMA的異步思想都會(huì)在應(yīng)用層中有所體現(xiàn)?!毒幋a》是一個(gè)更加科普性,但是也更加有趣的講組成原理的書。


2,操作系統(tǒng)

操作系統(tǒng)是比較枯燥的, 站在應(yīng)用層的角度,我認(rèn)為重點(diǎn)是掌握操作系統(tǒng)對(duì)外提供的抽象,包括進(jìn)程、線程,文件,虛擬內(nèi)存,以及進(jìn)程間的通信問題。幾乎所有的編程語言都會(huì)涉及到對(duì)多進(jìn)程或者多線程編程的支持, 特別是多線程的并發(fā)編程,所以必須得搞明白他們的本質(zhì)是什么,線程都有哪些實(shí)現(xiàn)方式。得真正地體會(huì)到“進(jìn)程是資源分配的最小單位,線程是調(diào)度的最小單位?!?這句話的含義。

幾乎所有的編程語言都會(huì)涉及到鎖和死鎖,最好在最底層理解鎖是怎么實(shí)現(xiàn)的。需要理解虛擬內(nèi)存和物理內(nèi)存直接的關(guān)系,分段和分頁,文件系統(tǒng)的基本原理。對(duì)于進(jìn)程的調(diào)度,頁面分配/置換算法,磁盤的調(diào)度算法,I/O系統(tǒng),我認(rèn)為優(yōu)先級(jí)比較低。

3,計(jì)算機(jī)網(wǎng)絡(luò)

必須要理解的是這些:

  • 什么分組交換。
  • TCP可靠性傳輸原理,TCP/IP的協(xié)議細(xì)節(jié), 三次握手,四次揮手,TCP狀態(tài)轉(zhuǎn)換。
  • 幾個(gè)重要的協(xié)議DHCP,UDP, ARP, DNS。
  • 能夠說出一個(gè)客戶端如何在接入網(wǎng)絡(luò)以后,通過這些協(xié)議,跨域網(wǎng)絡(luò)和服務(wù)器通信的。
  • 和應(yīng)用層結(jié)合非常緊密的Socket知識(shí)和網(wǎng)絡(luò)安全(對(duì)稱加密,非對(duì)稱加密,Hash, 數(shù)字簽名,以及集大成者Https)
  • 至于網(wǎng)絡(luò)層的路由選擇算法,鏈路層的各種協(xié)議,我認(rèn)為優(yōu)先級(jí)比較低。

以上這些知識(shí),在你學(xué)習(xí)Redis ,Ngnix, Tomcat, LVS等軟件時(shí)將有極大的幫助。


4,數(shù)據(jù)庫

這個(gè)和日常工作結(jié)合極其緊密,不用我再多說,包括最基本的SQL,各種范式,事務(wù)及其隔離級(jí)別,事務(wù)的實(shí)現(xiàn)方式,索引及其實(shí)現(xiàn)方式,B+樹等等。

5,編譯原理

你一輩子也許都不會(huì)去寫一個(gè)編譯器,但是很有可能會(huì)利用現(xiàn)成的工具去生成/操作一個(gè)抽象語法樹(AST),甚至可以會(huì)寫一個(gè)DSL(領(lǐng)域特定語言)。所以你得理解詞法分析、語法分析、語義分析,中間代碼生成,代碼優(yōu)化這個(gè)基本編譯的過程。


6,分布式的理論知識(shí)

由于現(xiàn)在的系統(tǒng)慢慢地變成了分布式, 所以又?jǐn)U展出了很多相關(guān)基礎(chǔ)知識(shí)需要學(xué)習(xí):

6.1,數(shù)據(jù)復(fù)制與一致性:

CAP理論, BASE原則,冪等性, 2PC, TCC,Paxos , Raft , Gossip

6.2,數(shù)據(jù)分片和路由:

Hash分片:Hash取模(實(shí)際中非常常見的算法), 虛擬桶(Redis使用),一致性Hash(memcached使用)

7,最后想說的是,不能帶著特別功利的目的去學(xué)習(xí)這些基礎(chǔ),不能想著立刻、馬上就應(yīng)用到實(shí)戰(zhàn)中,從中獲益。更重要的理解掌握它們背后的思想!

網(wǎng)站標(biāo)題:計(jì)算機(jī)基礎(chǔ)知識(shí)匯總
本文URL:http://bm7419.com/news/100697.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、響應(yīng)式網(wǎng)站網(wǎng)頁設(shè)計(jì)公司、企業(yè)建站、網(wǎng)站營(yíng)銷外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司