一、前言
大家好,我是蒼何。最近面試了不少公司,發現自己在核心底層的知識上是有所欠缺的,可能項目上手容易,但是不了解底層原理,職業瓶頸很大,當被問到源碼知識,被問到底層核心以及深挖,會發現有很大的不足,惡補欠缺的知識,也是這個系列文章建立的初衷,鞏固知識的同時也希望能幫助和我有相似經曆的夥伴,一起沖沖沖。
二、知識圖譜

三、計算機硬體
計算機包括硬體和軟體,硬體是看得見的實體部分,而軟體提供看不見的指令
個人計算機上,總線搭建在主機闆上,主機闆是一個連接配接計算機各個部分的電路闆
1、中央處理器【CPU】
指中央處理器,它是一塊超大規模的內建電路,是一台計算機的運算核心和控制核心。它的功能主要是解釋計算機指令以及處理計算機軟體中的資料。CPU核:一個CPU代表一個核,多核CPU
CPU由運算器、控制器和寄存器及實作它們之間聯系的資料、控制及狀态的總線構成。CPU的能力高低直接影響了整個電腦的運作速度。
CPU的選擇方法:
1、看編号。Intel和AMD的每一顆正品盒裝處理器都有一個唯一的編号,在産品的包裝盒上的條形碼和處理器表面都會标明這個編号,這個編号相當于手機的IMEI碼,兩個編号必須一緻才是正品。
2、看包裝。Intel盒裝處理器與散包處理器的差別就在于三年質保,價格方面相差幾十到上百元不等。以AMD的包裝盒為例,沒有拆封過的包裝盒貼有一張标貼,如果沒有這張标貼,那肯定是假貨。
3、看風扇。這個方法針對Intel處理器,打開CPU的包裝後,可以檢視原裝的風扇正中的防僞标簽,真的Intel盒包CPU防僞标簽為立體式防僞,除了底層圖案會有變化外,還會出現立體的“Intel”标志。
2、赫茲Hz
每台計算機都有一個内部時鐘,該時鐘以固定速度發射電子脈沖,時脈速度越快,在給定的時間内執行的指令就越多,嘟嘟的伎倆機關為赫茲,1Hz 相當于每秒1個脈沖,随着COU速度不斷提高,目前以千兆赫GHz來表述。1khz = 1024hz ,1mhz = 1024khz 1ghz = 1024mhz
四、記憶體
記憶體(Memory)是計算機的重要部件之一,也稱記憶體儲器和主存儲器,它用于暫時存放CPU中的運算資料,與硬碟等外部存儲器交換的資料。它是外存與CPU進行溝通的橋梁,計算機中所有程式的運作都在記憶體中進行,記憶體性能的強弱影響計算機整體發揮的水準。隻要計算機開始運作,作業系統就會把需要運算的資料從記憶體調到CPU中進行運算,當運算完成,CPU将結果傳送出來。
1、比特bit
一個0或1存儲為1個比特,是計算機中最小的存儲機關
2、byte
計算機中是最基本的存儲單元byte,每個位元組由8個比特構成
1kb = 1024b
1MB = 1024kb
1GB = 1024MB
1Tb = 1024GB
五、作業系統
作業系統(operating system,簡稱OS)是管理計算機硬體與軟體資源的計算機程式。作業系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入裝置與輸出裝置、操作網絡與管理檔案系統等基本事務。作業系統也提供一個讓使用者與系統互動的操作界面。常見的作業系統有windows、IOS等。
1、安全加強技術
随着計算機網絡與應用技術的不斷發展,資訊系統安全問題越來越引起人們的關注,資訊系統一旦遭受破壞,使用者及機關将受到重大的損失,對資訊系統進行有效的保護,是必須面對和解決的迫切課題,而作業系統安全在計算機系統整體安全中至關重要,加強作業系統安全加強和優化服務是實作資訊系統安全的關鍵環節。目前,作業系統安全構成威脅的問題主要有系統漏洞、脆弱的登入認證方式、通路控制形同虛設、計算機病毒、特洛伊木馬、隐蔽通道、系統後門惡意程式和代碼感染等,加強作業系統安全加強工作是整個資訊系統安全的基礎。
安全加強原理:
安全加強是指按照系統安全配置标準,結合使用者資訊系統實際情況,對資訊系統涉及的終端主機、伺服器、網絡裝置、資料庫及應用中間件等軟體系統進行安全配置加強、漏洞修複和安全裝置調優。通過安全加強,可以合理加強資訊系統安全性,提高其健壯性,增加攻擊入侵的難度,可以使資訊系統安全防範水準得到大幅提升。
安全加強方法
安全加強主要通過人工對系統進行漏洞掃描,針對掃描結果使用打更新檔、強化賬号安全、修改安全配置、優化通路控制政策、增加安全機制等方法加強系統以及堵塞系統漏洞、“後門”,完成加強工作。
2、作業系統虛拟化
作業系統虛拟化作為容器的核心技術支撐,得到了研究者的廣泛關注。最近幾年,無論是在以SOSP/OSDI為代表的計算機系統領域頂級學術會議上,還是以Google為代表的重要網際網路企業中,都陸續出現了一批作業系統虛拟化的最新研究成果,并且成果數量呈現出逐年增加的總體趨勢。
作業系統虛拟化技術允許多個應用在共享同一主機作業系統 (Host OS) 核心的環境下隔離運作, 主機作業系統為應用提供一個個隔離的運作環境, 即容器執行個體:作業系統虛拟化技術架構可以分為容器執行個體層、容器管理層和核心資源層。
作業系統虛拟化與傳統虛拟化最本質的不同是傳統虛拟化需要安裝客戶機作業系統 (Guest OS) 才能執行應用程式,而作業系統虛拟化通過共享的主控端作業系統來取代 Guest OS。
3、Windows下的記憶體是如何管理的
3種:
1.虛拟記憶體:
最适合用來管理大型對象或者結構數組
2.記憶體映射檔案:
最适合用來管理大型資料流(通常來自檔案)以及在單個計算機上運作多個程序之間共享資料
3.記憶體堆棧:
最适合用來管理大量的小對象
4、程序間通信有哪些方式以及差別
參考:
https://blog.csdn.net/yang_teng_/article/details/53325280https://blog.csdn.net/wh_sjc/article/details/70283843
IPC方式:7種
1.管道(pipe):管道是一種半雙工的通信方式,資料隻能單向流動,而且隻能在有血緣關系的程序間使用,程序的血緣關系通常是指父子程序關系。
2.命名管道(named pipe):也是半雙工的通信方式,但是它允許無親緣關系關系程序間通信。
3.信号(signal):是一種比較複雜的通信方式,用于通知接收程序某一事件已經發生。
4.信号量(semophere):信号量是一個計數器,可用來控制多個程序對共享資源的通路。它通常作為一種鎖機制,防止某程序正在通路共享資源時,其他程序也通路該資源。是以,主要作為程序間以及同一程序内不同線程之間的同步手段。
5.消息隊列(message queue):消息隊列是由消息組成的連結清單,存放在核心中,并由消息隊列辨別符辨別。消息隊列克服了信号傳遞消息少,管道隻能承載無格式位元組流以及緩沖區大小受限等缺點。
6.共享記憶體(shared memory):就是映射一段能被其他程序所通路的記憶體,這段共享記憶體由一個程序建立,但多個程序都可以通路,共享記憶體是最快的IPC方式,它是針對其他程序間的通信方式運作效率低而專門設計的。它往往與其他通信機制,如信号量等配合使用,來實作程序間的同步和通信。
7.套接字(socket):套接口也是程序間的通信機制,與其他通信機制不同的是它可用于不同及其間的程序通信。
幾種方式的比較:
管道:速度慢、容量有限
消息隊列:容量收到系統限制,且要注意第一次讀的時候,要考慮上一次沒有讀完資料的問題。
信号量:不能傳遞複雜資訊,隻能用來同步。
共享記憶體:能夠很容易控制容量,速度快,但要保持同步,比如一個程序在寫的時候,另一個程序要注意讀寫的問題,相當于線程中的線程安全。
5、程序的排程算法
參考原文:
https://blog.csdn.net/xiongluo0628/article/details/814610531.先來先服務(FCFS):此算法的原則是按照作業到達後備作業隊列(或程序進入就緒隊列)的先後次序選擇作業(或程序)
2.短作業優先(SJF:Shortest Process First):這種算法主要用于作業排程,它從作業後備序列中挑選所需運作時間最短的作業進入主存運作。
3.時間片輪轉排程算法:當某個程序執行的時間片用完時,排程程式便終止該程序的執行,并将它送到就緒隊列的末尾,等待配置設定下一時間片再執行。然後把處理機配置設定給就緒隊列中新的隊首程序,同時也讓它執行一個時間片。這樣就可以保證隊列中的所有程序,在已給定的時間内,均能獲得一時間片處理機執行時間。
4.高響應比優先:按照高響應比(已等待時間+要求運作時間)/要求運作時間 優先的原則,在每次選擇作業投入運作時,先計算此時後備作業隊列中每個作業的響應比RP。選擇最大的作業投入運作。
5.優先權排程算法:按照程序的優先權大小來排程。使高優先權程序得到優先處理的排程政策稱為優先權排程算法。注意:優先數越多,優先權越小。
6.多級隊列排程算法:多隊列排程是根據作業的性質和類型的不同,将就緒隊列再分為若幹個隊列,所有的作業(程序)按其性質排入相應的隊列中,而不同的就緒隊列采用不同的排程算法。
本文來自我的CSDN部落格:
https://blog.csdn.net/qq_43270074/article/details/118398424