原创 ECC內存簡介

什麼是ECC內存 ECC的全稱是Error Correction Code,當我們討論ECC內存時,指的是具有糾錯功能的內存。 這裏的糾錯並不是無限的,比如ECC內存通常能夠糾正單比特的錯誤,但是對於多比特錯誤通常無法糾正。   E

原创 UEFI基礎——UEFI Shell

說明 關於Shell,懂的人都懂,不懂的人就不是很好說明。 總之,在Windows下,它是這樣的: 在Linux(Ubuntu系統)下是這樣的: 在UEFI下是這樣的: 在日本動畫裏面是這樣的: 當然這個梗不是很好笑,劃掉。 總之,

原创 《深入Linux內核架構》讀書筆記005——管理進程相關ID

說明 爲了管理進程相關的ID,內核提供瞭如下的支持: 1. PID分配器,用於加速ID的分配; 2. 用於實現通過ID及其類型查找進程的task_struct的函數; 3. 用於將ID的內核表示形式和用戶空間可見的數值進行轉換的函數; 4

原创 《深入Linux內核架構》讀書筆記002——簡介和概述2

簡介和概述 本章最後還涉及到一些相關的代碼,將在這介紹。 《深入Linux內核架構》使用的源代碼是kernel 2.6.24(後續稱參考代碼),這裏以它爲依據作說明。   計時 Linux提供了全局變量jiffies(和jiffies_6

原创 《深入Linux內核架構》讀書筆記004——進程表示

總體說明 本文介紹Linux下處理進程所使用的結構體task_struct。 它位於include\linux\sched.h。 對應的結構體如下: struct task_struct { volatile long state;

原创 函數ioctl

原型 原型函數如下: #include <sys/ioctl.h> int ioctl (int fd, int request, ...); fd:用戶程序打開設備時使用open函數返回的文件標示符; request:用戶程序對設備

原创 UEFI實戰——Secure Boot

說明 Secure Boot,顧名思義就是用來保證啓動安全的一套措施。 Secure Boot是一個比較普通的說法,使用的場景也很多,所以這裏要特別說明一下,這裏指的是UEFI BIOS下的,用來啓動諸如Windows、Mac OS之類系

原创 Python應用——SHA256

說明 SHA256的全程是Secure Hash Algorithm 256,這裏有幾個關鍵字說明: 1. Secure的意思是指算法的輸入輸出一一對應,且是不可逆的(即只有編碼而沒有解碼); 2. Hash Algorithm指的是散列

原创 I2C總線:軟件開發需要了解的知識

綜述 I2C總線是一種非常基本和常用的總線接口。 不僅如此,還有非常多基於I2C的總線接口,比如SMBus,IPMI,PMBus等。 I2C總線在物理上由兩根線構成,一根數據線,一根時鐘線。 I2C總線連接的設備有微處理器,LCD

原创 Python應用——MD5

說明 MD5的全稱是Message-Digest Algorithm 5,它也是一種摘要算法。 MD5主要用來保證信息傳輸的完整性。 MD5獲取到的摘要的長度是128位。   使用 Python中同樣通過hashlib模塊來使用MD5。

原创 UEFI實戰——網絡啓動

簡述 UEFI下實現了若干中網絡啓動的方式,比如HTTP啓動,PXE啓動等。 對應的默認如下: !if $(PXE_ENABLE) == TRUE NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.in

原创 批處理腳本應用——attrib

說明 attrib是Windows系統自帶的命令,其說明如下:   示例 比如如下示例(對應的文件名F:\Codes\WinCmd\attrib\attrib_test.cmd): attrib attrib_test.cmd 得到的

原创 IPMI組件簡介

IPMI組件簡介 一圖流:  

原创 《Linux內核設計與實現》讀書筆記——定時器和時間管理

節拍 系統定時器以某種頻率自行觸發,這個頻率是靜態預處理定義的的,稱爲節拍率,也稱爲HZ(赫茲)。 HZ值在不同的體系結構不同。 x86體系結構中HZ默認值是100(include\asm-generic\param.h),因此x86上時

原创 《Linux內核設計與實現》讀書筆記——頁高速緩存和頁回寫

頁高速緩存 頁高速緩存是Linux內核實現磁盤緩存,它的主要作用是減少對磁盤的IO操作。 頁高速緩存是由內存中的物理頁組成的,其內容對應磁盤上的物理塊。 當內核開始一個讀操作時,會先檢查需要的數據是否在頁高速緩存中。 寫緩存有幾種策略: