原创 打開vim教程

在Ubuntu環境下,用Ctrl + Alt + t 打開終端,輸入vimtutor zh即可打開vim中文版的自帶教程。 

原创 (轉)UEFI小結-Handle的來龍去脈

本文說明:本人剛學習UEFI不久,寫該文一是爲了將學到的東西做一個規範化的總結,二是爲了給初學UEFI的兄弟起到借鑑作用。同樣地,錯誤的地方肯定很多,還望能得到各位弟兄指正。要理解本文,您至少應該是讀過UEFI Spec,不然請先閱讀UE

原创 cpuid function

先貼上自己糊弄的代碼(32位系統下編譯):用來在32位系統中讀取CPUID指令的各種信息。 cpuid的詳細信息請參考64-ia-32-architectures-software-developer-manual-325462,從689

原创 Memory Map

引言 隨着半導體工藝技術與處理器設計技術的不斷提高,嵌入式處理器的速度愈來愈快;而非易失性存儲器的讀取速度卻遠遠跟不上CPU的發展。傳統的單片機運行模式——機器代碼存儲在非易失性存儲器(如ROM,FLASH),在運行時由CPU直接從其中取

原创 UEFI BIOS ROM 文件格式

1. FD (Firmware Device) 整個BIOS ROM 就是一個FD,即Firmware Device。 2. FV (Firmware Volume) 整個BIOS ROM 又被分成多個小的邏輯區塊,這就是FV,即Firm

原创 ld: i386 architecture of input file `eatsyscall.o' is incompatible with i386:x86-64 output

在Ubuntu下用學習彙編語言編程,在使用ld鏈接時有碰到標題所示的問題。 很明顯,root cause 是我編譯好的文件(eatsyscall.o)是遵循i386 architecture, 而我使用的計算機卻是i386:x86-64架

原创 UEFI中的Protocol

以下內容爲學習《UEFI原理與編程》(戴正華)第四章和第六章的摘要 UEFI是用C語言來實現的,但UEFI中Protocol是作爲一種對象來設計和使用。例如: // 通過這個protocol可以控制塊設備 struct  _EFI_BL

原创 Could not get lock

在安裝好Ubuntu16.04後,執行sudo apt-get install vim, 遇到提示:Could not get lock /var/lib/dpkg/lock - open (11: Resource temporaril

原创 提問的智慧

引言 在黑客的世界裏,你所提技術問題的解答很大程度上取決於你提問的方式與解決此問題的難度,本文將教你如何提問才更有可能得到滿意的答覆。 開源程序的應用已經很廣,你通常可以從其他更有經驗的用戶而不是黑客那裏得到解答。 這是好事,他們一般對

原创 SEC phase

下面是摘自PI Specification . Vol 1_PEI中的描述SEC Phase的話。http://www.uefi.org/ The Security (SEC) phase is the first phase in t

原创 自己動手寫DSDT系列教程1-ASL(ACPI Source Language)基礎篇

寫在前面的話,鄙人不是一個主板BIOS開發工作者,以下對ASL的理解僅僅來源於http://www.acpi.info/上的ACPI Specification文檔。因此難免會出現不少錯誤的理解,以及錯誤的觀點,希望大家諒解以及糾正。  

原创 Intel CPU 地址空間總結

一、地址空間映射        這裏要說的是Intel構架下的CPU地址空間佈局,注意這裏沒有說是內存地址空間佈局。        我們說的內存通常是指DRAM,DRAM相對於CPU也可以算是外部設備,CPU地址空間是CPU訪問外部設備過

原创 typedef

在學習《UEFI原理與編程》時遇到一段不理解的: 每個DXE驅動是一個獨立的模塊,模塊入口函數類型定義爲: typedef  EFI_STATUS (EFIAPI *EFI_IMAGE_ENTRY_POINT) (        IN 

原创 SMBIOS

最近花時間把之前學過的SMBIOS複習了一遍,做點筆記,以後若是記不清了還可以找回來看看。 首先,SMBIOS的基本概念 MBIOS (System Management BIOS)是主板或系統製造者以標準格式顯示產品管理信息所需遵

原创 git 中遇到CRLF/LF warning

在Windows下使用git時遇到如下的提示:   warning: LF will be replaced by CRLF in a.txt. The file will have its original line endings i