原创 面試官:如何寫出讓 CPU 跑得更快的代碼?

前言 代碼都是由 CPU 跑起來的,我們代碼寫的好與壞就決定了 CPU 的執行效率,特別是在編寫計算密集型的程序,更要注重 CPU 的執行效率,否則將會大大影響系統性能。 CPU 內部嵌入了 CPU Cache(高速緩存),它的存儲容量很

原创 天啦嚕!知道硬盤很慢,但沒想到比 CPU L1 Cache 慢 10000000 倍

前言 大家如果想自己組裝電腦的話,肯定需要購買一個 CPU,但是存儲器方面的設備,分類比較多,那我們肯定不能只買一種存儲器,比如你除了要買內存,還要買硬盤,而針對硬盤我們還可以選擇是固態硬盤還是機械硬盤。 相信大家都知道內存和硬盤都屬於計

原创 CPU 執行程序的祕密,藏在了這 15 張圖裏

前言 代碼寫了那麼多,你知道 a = 1 + 2 這條代碼是怎麼被 CPU 執行的嗎? 軟件用了那麼多,你知道軟件的 32 位和 64 位之間的區別嗎?再來 32 位的操作系統可以運行在 64 位的電腦上嗎?64 位的操作系統可以運行在

原创 大學四年我是怎麼寫操作系統和計算機網絡的?掏心掏肺的分享!

最近收到不少讀者留言,關於怎麼學「操作系統」和「計算機網絡」的留言,小林寫這一塊的內容也有半年多了,啃非常多的書,也看了很多視頻,有好的有差的,今天就掏心掏肺地分享給大家。 操作系統和計算機網絡有多重要呢?如果沒有操作系統,我們的手機和電

原创 原來 8 張圖,就可以搞懂「零拷貝」了

前言 磁盤可以說是計算機系統最慢的硬件之一,讀寫速度相差內存 10 倍以上,所以針對優化磁盤的技術非常的多,比如零拷貝、直接 I/O、異步 I/O 等等,這些優化的目的就是爲了提高系統的吞吐量,另外操作系統內核中的磁盤高速緩存區,可以有效

原创 面試官:你說說互斥鎖、自旋鎖、讀寫鎖、悲觀鎖、樂觀鎖的應用場景

前言 生活中用到的鎖,用途都比較簡單粗暴,上鎖基本是爲了防止外人進來、電動車被偷等等。 但生活中也不是沒有 BUG 的,比如加鎖的電動車在「廣西 - 竊·格瓦拉」面前,鎖就是形同虛設,只要他願意,他就可以輕輕鬆鬆地把你電動車給「順走」,不

原创 實戰!我用 Wireshark 讓你“看見“ TCP

前言 “爲什麼拖了怎麼久才發文?” 爲了讓大家更容易「看得見」 TCP,我搭建不少測試環境,並且數據包抓很多次,花費了不少時間,才抓到比較容易分析的數據包。 接下來丟包、亂序、超時重傳、快速重傳、選擇性確認、流量控制等等 TCP 的特

原创 大廠面試愛問的「調度算法」,20 張圖一舉拿下

前言 最近,我偷偷潛伏在各大技術羣,因爲秋招在即,看到不少小夥伴分享的大廠面經。 然後發現,操作系統的知識點考察還是比較多的,大廠就是大廠就愛問基礎知識。其中,關於操作系統的「調度算法」考察也算比較頻繁。 所以,我這邊總結了操作系統的三大

原创 C++ 模板常見特性(函數模板、類模板) 背景 函數模板 類模板 類模板與派生 類模板與友元 類模板與靜態成員變量

背景 C++ 是很強大,有各種特性來提高代碼的可重用性,有助於減少開發的代碼量和工作量。 C++ 提高代碼的可重用性主要有兩方面: 繼承 模板 繼承的特性我已在前面篇章寫過了,本篇主要是說明「模板」的特性。 使用「模板」的特性設計,實際

原创 C++ 一篇搞懂繼承的常見特性 繼承和派生 繼承關係和複合關係 派生類覆蓋基類成員 類的保護成員 派生類的構造函數 繼承的賦值兼容規則

繼承和派生 01 繼承和派生的概念 繼承: 在定義一個新的類 B 時,如果該類與某個已有的類 A 相似(指的是 B 擁有 A 的全部特點),那麼就可以把 A 作爲一個基類,而把B作爲基類的一個派生類(也稱子類)。 派生類: 派生類是通

原创 鍵盤敲入 A 字母時,期間發生了什麼....

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image"

原创 鍵盤敲入 A 字母時,操作系統期間發生了什麼

前言 鍵盤可以說是我們最常使用的輸入硬件設備了,但身爲程序員的你,你知道「鍵盤敲入A 字母時,操作系統期間發生了什麼嗎」? 那要想知道這個發生的過程,我們得先了解了解「操作系統是如何管理多種多樣的的輸入輸出設備」的,等了解完這個後,我們再

原创 Linux 平均負載高了怎麼辦?

{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"01 uptime命

原创 C++ 借來的資源,如何還的瀟灑?

{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"正文"}]},{"t

原创 一口氣搞懂「文件系統」,就靠這 25 張圖了

前言 不多 BB,直接上「硬菜」。 正文 文件系統的基本組成 文件系統是操作系統中負責管理持久數據的子系統,說簡單點,就是負責把用戶的文件存到磁盤硬件中,因爲即使計算機斷電了,磁盤裏的數據並不會丟失,所以可以持久化的保存文件。 文件系統