原创 提高代碼顏值的幾個小技巧

每個程序員只要不犯錯,都能寫出機器能看得懂的代碼,程序能正常跑起來,自然就意味着機器正常識別了程序。 但是,真正牛逼的程序員是寫出能讓人看得懂的代碼。 不要小看這個,雖說我們寫的代碼確實是跑給機器的,但是代碼是人寫的,而通常一個項目的開發

原创 圖解 ECDHE 密鑰交換算法

HTTPS 常用的密鑰交換算法有兩種,分別是 RSA 和 ECDHE 算法。 其中,RSA 是比較傳統的密鑰交換算法,它不具備前向安全的性質,因此現在很少服務器使用的。而 ECDHE 算法具有前向安全,所以被廣泛使用。 我在上一篇已經介紹

原创 幾幅圖,拿下 HTTPS

我很早之前寫過一篇關於 HTTP 和 HTTPS 的文章,但對於 HTTPS 介紹還不夠詳細,只講了比較基礎的部分,所以這次我們再來深入一下 HTTPS,用實戰抓包的方式,帶大家再來窺探一次 HTTPS。 對於還不知道對稱加密和非對稱加

原创 點個外賣,我把「軟中斷」搞懂了

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

原创 帶寬、延時、吞吐率、PPS 這些都是啥?

Linux 網絡協議棧是根據 TCP/IP 模型來實現的,TCP/IP 模型由應用層、傳輸層、網絡層和網絡接口層,共四層組成,每一層都有各自的職責。 應用程序要發送數據包時,通常是通過 socket 接口,於是就會發生系統調用,把應用層

原创 你不好奇 Linux 網絡發包過程嗎?

{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"前言","attrs

原创 索引爲什麼能提供查詢性能...

{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"前言","attrs

原创 你不好奇 CPU 是如何執行任務的嗎?

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

原创 10 張圖打開 CPU 緩存一致性的大門

前言 直接上,不多 BB 了。 正文 CPU Cache 的數據寫入 隨着時間的推移,CPU 和內存的訪問性能相差越來越大,於是就在 CPU 內部嵌入了 CPU Cache(高速緩存),CPU Cache 離 CPU 核心相當近,因此它

原创 面試官:如何寫出讓 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 的,比如加鎖的電動車在「廣西 - 竊·格瓦拉」面前,鎖就是形同虛設,只要他願意,他就可以輕輕鬆鬆地把你電動車給「順走」,不