原创 【從頭到腳品讀 Linux 0.11 源碼】第一回 最開始的兩行代碼

從這一篇開始,您就將跟着我一起進入這操作系統的夢幻之旅! 別擔心,每一章的內容會非常的少,而且你也不要抱着很大的負擔去學習,只需要像讀小說一樣,跟着我一章一章讀下去就好。 話不多說,直奔主題。當你按下開機鍵的那一刻,在主板上提前寫死的固件程

原创 今天我抓了個 HTTPS 的包

之前寫過一篇講 HTTPS 的思想的文章。 破玩意 | 用 HTTPS 傳紙條 後來又寫了篇用更凝練的語言總體描述了 HTTPS 的主幹。 叮咚 | HTTPS 的分支和主幹 想必通過這兩篇文章,HTTPS 爲什麼要這麼設計,以及它是用來解

原创 用傳紙條講 HTTPS

我和小宇早戀了,上課的時候老說話。 老師把我們的座位分得很遠,我在第一排,她在最後一排,我們中間隔了很多人。   但我們還是想通過傳紙條的方式交流。 我們中間的那些同學,雖然壞心思比較多,但好在可以保證將紙條傳遞到位,於是我們用傳紙條的

原创 最多能創建多少個 TCP 連接?

我是一個 Linux 服務器上的進程,名叫小進。 老是有人說我最多隻能創建 65535 個 TCP 連接。 我不信這個邪,今天我要親自去實踐一下。 我走到操作系統老大的跟前,說: "老操,我要建立一個 TCP 連接!" 老操不慌不忙,拿出一

原创 圖解 | 你管這破玩意叫哨兵?

我是一個苦逼的運維,有一次老闆過來找我。 老闆:現在有四個 redis 節點擺在你面前,一主三從,你負責盯着點,主節點掛了你趕緊想辦法拿從節點頂上來,交給你了! 這還不簡單! 首先我先分別連上這四臺 redis 節點。 redis-cl

原创 圖解 | 原來這就是 IO 多路複用

爲了講多路複用,當然還是要跟風,採用鞭屍的思路,先講講傳統的網絡 IO 的弊端,用拉踩的方式捧起多路複用 IO 的優勢。 爲了方便理解,以下所有代碼都是僞代碼,知道其表達的意思即可。 Let's go   阻塞 IO 服務端爲了處理客戶端

原创 圖解 | 原來這就是 class

我是一個 .java 文件,名叫 FlashObject.java,叫我小渣就行。   public class FlashObject { private String name; private int age;

原创 圖解 | 原來這就是文件系統

你手裏有一塊硬盤,大小爲 1T   你還有一堆文件   這些文件在硬盤看來,就是一堆二進制數據而已   你準備把這些文件存儲在硬盤上,並在需要的時候讀取出來。 要設計怎樣的軟件,才能更方便地在硬盤中讀寫這些文件呢? 1 首先我不

原创 圖解 | 原來這就是動態規劃

1 小宇:閃客,我最近在研究動態規劃,但感覺就是想不明白,你能不能給我講講呀? 閃客:沒問題,這個我擅長,你先說說提到動態規劃,你最先想到的是什麼? 小宇:就什麼子問題呀、狀態轉移方程呀亂七八糟的,哎呀不行不行,我一想到這些腦子又嗡嗡響了

原创 圖解 | 你管這破玩意叫計算機?

我和小宇早戀了,我們家住隔壁。   一、編碼與電路——信號的轉換 晚上父母會把手機沒收,但我們還想繼續聊天,又不敢發出聲音,於是我們想到了這個辦法...   我們把所有的中文都用燈泡的亮滅組合來表示,同時約定好每隔一秒讀取一次燈泡的

原创 圖解 | 原來這就是線程池

小宇:閃客,我最近看到線程池,被裏邊亂七八槽的參數給搞暈了,你能不能給我講講呀? 閃客:沒問題,這個我擅長,咱們從一個最簡單的情況開始,假設有一段代碼,你希望異步執行它,是不是要寫出這樣的代碼? new Thread(r).star

原创 圖解 | 原來這就是TCP

你是一臺電腦,你的名字叫 A 經過《圖解 | 原來這就是網絡》這篇文章中的一番折騰,只要你知道另一位夥伴 B 的 IP 地址,且你們之間的網絡是通的,無論多遠,你都可以將一個數據包發送給你的夥伴 B 這就是物理層、數據鏈路層、網絡層這三

原创 老闆讓只懂Java基本語法的我,基於AQS實現一個鎖

10 點整,我到了公司,又成爲全組最後一個到的員工。 正準備刷刷手機摸摸魚,看見老闆神祕兮兮地走了過來。 老闆:閃客呀,你寫個工具,基於 AQS 實現一個鎖,給咱們組其他開發用 我:哦好的 老闆:你多久能搞好? 我:就是一個工具類是吧,嗯

原创 Redis 數據結構之字符串的那些騷操作 -- 像讀小說一樣讀源碼

Redis 字符串底層用的是 sds 結構,該結構同 c 語言的字符串相比,其優點是可以節省內存分配的次數,還可以... 這樣寫是不是讀起來很無聊?這些都是別人咀嚼過後,經過一輪兩輪三輪的再次咀嚼,吐出來的精華,這就是爲什麼好多文章你覺得乾

原创 徹底擺脫亂碼的困惑

這世上爲什麼要有亂碼這個東西... 先給大家出個思考題吧,一個漢字佔多少字節?是不是網上搜出的答案五花八門,那麼讀完本篇文章,我希望你至少可以準確知道這個問題的答案,我覺得就算是收穫 計算機是用 0 和 1 這種二進制形式,來表示一切信息的