原创 uboot構建框架3-make menuconfig命令的過程追蹤

menuconfig是幹什麼的? 編譯過uboot或者內核的朋友一定清楚這個命令是幹什麼的,如果不知道,請記住了,這個命令是用來配置的。什麼是配置?就是諸如選擇什麼CPU,選擇什麼soc,選擇什麼特性,是否編譯成模塊等等。uboot和內核

原创 uboot構建框架6-u-boot.bin生成過程追蹤

先看終極目標 在配置完畢的情況下,我們在uboot根目錄敲下"make"命令,就會執行一系列動作,產生一系列結果。這結果之一,便是u-boot.bin。這個u-boot.bin是一個二進制執行代碼文件,理論上可以被CPU直接執行。但是對於

原创 一個開發者對996的一點看法

最近996的話題似乎很火嘛。 各種大佬,包括馬雲、劉強東、周鴻禕等等,都發表了自己的看法。大佬有大佬的考慮,我作爲一線開發者,也有自己的一些看法。 首先,強制996肯定是錯誤的事情,至少明面上是不能說的,這個事情,上不了檯面。 但是,上不

原创 Linux用戶與“最小權限”原則

作者:Vamei 出處:http://www.cnblogs.com/vamei Linux的用戶在登錄(login)之後,就帶有一個用戶身份(user ID, UID)和一個組身份(group ID, GID)。在Linux文件管理背景

原创 linux內核研究筆記6(do_wp_page概述)

do_wp_page函數由頁保護異常過程調用,用來處理頁保護異常。該函數裏面直接調用un_wp_page函數。 void un_wp_page(unsigned long * table_entry) { unsigned long

原创 linux內核研究筆記5(系統調用中斷堆棧視圖)

linux 0.11 system_call.s中系統調用中斷入口函數,代碼如下: _system_call: cmpl $nr_system_calls-1,%eax ja bad_sys_call push %ds push

原创 linux內核研究筆記2(關於asm.s中call函數的說明)

asm.s程序第39行中(以下片段第21行處),有個call函數調用代碼,如下: _divide_error: pushl $_do_divide_error no_error_code: xchgl %eax,(%esp) pu

原创 linux內核研究筆記1(linux0.11 boot部分總結)

最近花了點時間仔細閱讀了linux0.11內核代碼的boot部分。要看懂該部分的代碼,需要事先準備如下知識點: 1.80x86體系結構基礎 包括寄存器、基本指令等 2.80x86實模式 3.80x86保護模式及編程 主要理解分段機制,分頁

原创 [轉]剖析程序的內存佈局

原文標題:Anatomy of a Program in Memory 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些國外高手的精彩文章翻譯一下。一來自己複習,二來與大家分享。]

原创 [轉]內存地址轉換與分段

原文標題:Memory Translation and Segmentation 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些國外高手的精彩文章翻譯一下。一來自己複習,二來與大

原创 IA32體系結構6(加電啓動過程概述)

第一條指令物理地址 加電啓動過程非常精妙,道理很簡單,加電時刻,所有的硬件部件基本都是沒法工作的狀態。至少內存裏什麼有用的東西也沒有,CPU的寄存器還是初始狀態,各種地址轉換表也沒有建立好。 首先我們來看下,CPU從上電到正常工作,在地址

原创 [轉]主板芯片組與內存映射

原文標題:Motherboard Chipsets and the Memory Map 原文地址:http://duartes.org/gustavo/blog/  [注:本人水平有限,只好挑一些國外高手的精彩文章翻譯一下。一來自己複習

原创 [轉]頁面緩存-內存與文件的那些事

原文標題:Page Cache, the Affair Between Memory and Files 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些國外高手的精彩文章翻譯一下

原创 [轉]CPU如何操作內存

原文標題:Getting Physical With Memory 原文地址:http://duartes.org/gustavo/blog/    [注:本人水平有限,只好挑一些國外高手的精彩文章翻譯一下。一來自己複習,二來與大家分享。

原创 IA32體系結構5(程序控制指令)

轉移指令 轉移指令(JMP)允許程序員跳過一段程序,跳轉到存儲器的任何位置執行下一條指令。條件轉移則允許程序員根據對數值的測試做出決定。這些數值測試的結果保存在標誌位中,再由條件轉移指令檢測它們。 1.無條件轉移指令 可以分爲短轉移、近轉