原创 實戰!我用 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,直接上「硬菜」。 正文 文件系統的基本組成 文件系統是操作系統中負責管理持久數據的子系統,說簡單點,就是負責把用戶的文件存到磁盤硬件中,因爲即使計算機斷電了,磁盤裏的數據並不會丟失,所以可以持久化的保存文件。 文件系統

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

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

原创 涼了!張三同學沒答好「進程間通信」,被面試官掛了....

前言 開場小故事 炎炎夏日,張三騎着單車去面試花了 1 小時,一路上汗流浹背。 結果面試過程只花了 5 分鐘就結束了,面完的時候,天還是依然是亮的,還得在烈日下奔波 1 小時回去。 面試五分鐘,騎車兩小時。 你看,張三因面試沒準備好

原创 多線程爲了同個資源打起架來了,該如何讓他們安定?

前言 先來看看虛構的小故事 已經晚上 11 點了,程序員小明的雙手還在鍵盤上飛舞着,眼神依然注視着的電腦屏幕。 沒辦法這段時間公司業績增長中,需求自然也多了起來,加班自然也少不了。 天氣變化莫測,這時窗外下起了蓬勃大雨,同時閃電轟鳴。

原创 進程、線程基礎知識全家桶,30 張圖一套帶走

前言 先來看看一則小故事 我們寫好的一行行代碼,爲了讓其工作起來,我們還得把它送進城(進程)裏,那既然進了城裏,那肯定不能胡作非爲了。 城裏人有城裏人的規矩,城中有個專門管轄你們的城管(操作系統),人家讓你休息就休息,讓你工作就工作,

原创 數據結構與算法—數組(插入、刪除和查詢)

數組 提到數組,相信大家的都不陌生,畢竟每個編程語言都會有它的影子。 數組是最基礎的數據結構,儘管數組看起來非常的基礎簡單,但這個基礎的數據結構要掌握其精髓,也不是那麼簡單事。 開門見山 數組(Array)是一種線性表數據結構

原创 快速入門Shell編程(五)輸入輸出重定向

重定向作用 一個進程默認會打開標準輸入、標準輸出、錯誤輸出三個文件描述符。 重定向可以讓我們的程序的標準輸出、錯誤輸出的信息重定向文件裏,那麼這裏還可以將文件的內容代替鍵盤作爲一種標準輸入的方式。 重定向符號 輸入重定向符號