1. 程式人生 > >linux-0.11摳程式碼-GDB+VMWARE

linux-0.11摳程式碼-GDB+VMWARE

vmware新建一個虛擬機器,硬碟為0.1G,建立完成後要先啟動一次虛擬機器,此時無任何系統,然後再關閉,應該會多出一個ostest-flat.vmdk這個虛擬磁碟檔案,下面要用到

新建完成後 我的虛擬機器叫OSTest,然後在虛擬機器根目錄下 有個OSTest.vmx配置檔案,在關閉vmware的情況下 用notepad加入以下四句

debugStub.listen.guest32 = "TRUE"
monitor.debugOnStartGuest32 = "TRUE"
debugStub.hideBreakpoints = "TRUE"
bios.bootDelay = "3000"


debugStub.listen.guest32 = "TRUE"
monitor.debugOnStartGuest32 = "TRUE"
debugStub.hideBreakpoints = "TRUE"
bios.bootDelay = "3000"

然後將boot.bin 引導檔案 寫入到OSTest-flat.vmdk中,注意不是OSTest.vmdk,一般有個xxx-flat.vmdk的。。。

然後啟動虛擬機器,此時虛擬機器黑屏等待gdb偵錯程式的連線。

下載gdb for windows

注意上面boot.bin的編譯,gcc -c -g 要有-g 引數,ld 不能有-s引數,具體可以參考我上面一篇文章。

生成的boot.bin有一個伴隨的檔案叫boot.elf,gdb boot.elf ,gdb除錯會進入gdb命令列,然後輸入 target remote localhost:8832 進入 原始碼級除錯


相關推薦

linux-0.11程式碼-GDB+VMWARE

vmware新建一個虛擬機器,硬碟為0.1G,建立完成後要先啟動一次虛擬機器,此時無任何系統,然後再關閉,應該會多出一個ostest-flat.vmdk這個虛擬磁碟檔案,下面要用到 新建完成後 我的虛擬機器叫OSTest,然後在虛擬機器根目錄下 有個OSTest.vmx配

linux-0.11程式碼-bootsect

//bootfun.s .global asm_message .global asm_memmove .global asm_readsector .global asm_checkLBA .code16 //extern void asm_memmove(void*

Linux核心完全註釋 閱讀筆記:3.5、Linux 0.11目標檔案格式

為了生成核心程式碼檔案,Linux 0.11使用了兩種編譯器。第一種是彙編編譯器as86和相應的連結程式(或稱為連結器)ld86。它們專門用於編譯和連結,執行在實地址模式下的16位核心引導扇區程式bootsect.s和設定程式setup.s。第二種是GNU的彙編器as

ubuntu 12.04編譯及除錯linux-0.11

(更新中.....) 最近開始研究linux-0.11,編譯過程就遇到各種奇葩情況......好不容易編譯通過了....可是還是不能載入執行.... 下面是我學習過程記錄: 1.開始我用gcc-3.2.2-5.i386.rpm編譯linux-0.11, 你也知道rpm包在u

linux-0.11核心深度剖析視訊

大家好,歡迎觀看由BitEye工作室推出的《linux核心深度剖析》系列視訊。 本套視訊將以linux初學者的角度來探討linux0.11核心,之所以選擇linux0.11核心是基於以下幾個原因:

建立Linux 0.11完整的系統,讓linux 0.11真正轉起來!方便大家學習。 中文版權所有: OldLinux論壇 

為了配合Linux 0.11核心工作原理的學習,本章介紹了利用PC機模擬軟體和在實際計算機上執行Linux 0.11系統的方法。其中包括核心的編譯過程、PC模擬環境下檔案的訪問和複製、引導盤和根檔案系統的製作方法以及Linux 0.11系統的使用方法。最後還說明了如何對核心程

Linux 0.11 系統呼叫的實現機制

Linux 0.11 系統呼叫的實現機制 一、系統呼叫概述     系統呼叫本質上是一種中斷,中斷號為0x80,即128號中斷。通常我們使用的是庫函式,而不是直接使用系統呼叫,這主要是因為庫函式一般都是規定好的,是可以移植的。而系統呼叫的具體子呼叫號可能會發生改變,不同平臺

Ubuntu 12.10安裝Bochs 2.6, 除錯linux-0.11核心

Linux(ubuntu)安裝bochs ubuntu下安裝bochs Ubuntu 10.04安裝Bochs 2.4.5筆記 bochs的安裝與使用 linux bochs的啟動 本文介紹在SUSE Linux Enterprise Des

利用bochs除錯linux 0.11核心

此時Bochs除錯系統已經準備好開始執行,CPU執行指標已指向ROM BIOS中地址0x000fffff0處的指令處。其中'<bochs:1>'是命令輸入提示符,其中的數字表示當前的命令序列號。在命令提示符'<bochs:1>'後面鍵入'help'命令,可以列出除錯系統的基本命令。

真正能在windows下編譯的linux 0.11,不是在Cygwin,也不是在虛擬機器裡!

一、簡介  這就是能在windows環境下直接編譯的Linux 0.11了,不是在Cygwin,也不是在虛擬機器裡,而是使用MinGW gcc,這是GNU gcc在Windows下的移植版本.在oldlinux上的論壇看見有許多人在問怎樣在Windows下直接編譯,最佳答

linux 0.11 核心學習 -- head.s

# # 這段程式碼被連線到system模組的最前面,這也是它為什麼稱之為head.s的原因。 # 從這裡開始核心完全執行在保護模式下。head.s採用的是at&t格式的 # 彙編。注意的是程式碼中的賦值方向是從左到右。 # # 這段程式實際上是出於記憶體的絕對地址0開始處。首先是載入各個

linux-0.11除錯教程,Bochs-2.1.1配置檔案,精簡版可拷貝,及img檔案製作過程

========================================================================                                 bximage                   Disk Image Creation Tool

Linux-0.11-Lab: 五分鐘實驗環境

http://www.tinylab.org/project/linux-0-11-lab/專案描述該專案致力於快速構建一個 Linux 0.11 實驗環境,可配合《Linux核心完全註釋》 一書使用。基本特性:包含所有可用的映像檔案: ramfs/floppy/hard d

Linux-0.11核心原始碼分析系列:記憶體管理get_free_page()函式分析

Linux-0.11記憶體管理模組是原始碼中比較難以理解的部分,現在把筆者個人的理解發表 先發Linux-0.11核心記憶體管理get_free_page()函式分析有時間再寫其他函式或者檔案的:) /*  *Author  : DavidLin  *Date    :

學習linux-0.11核心——搭建環境(編譯、除錯bootsec)

前言 本博文是本專欄博文的起點,通過本文的學習,通過qemu虛擬機器將linux-0.11核心跑起來,有了這個可以跑的核心,在有疑問的地方,我們就可以通過除錯的方式來學習核心。 編譯核心 獲取核心程式碼 git clone https://github.com/

Linux學習筆記(linux 0.11完全註釋)

第一章:概述 GNU計劃:旨在開發一個類似UNIX並且是自由軟體的完整作業系統。 POSIX標準:是由IEEE和ISO/IEC開發的一簇標準。該標準基於UNIX的實踐和經驗,描述了作業系統的呼叫和服務介面。用來保證編制的應用程式能在原始碼一級上在多個作業系統上移植和執行。

Linux 0.11核心的啟動過程

Linux 0.11核心的啟動過程 一、Image檔案的構成 1.1 Makefile中的相關命令 Linux 0.11的主Makefile檔案中,有如下欄位: tools/build: tools/build.c $(CC) $(CFLAGS) \ -o tools/bu

nasm重寫linux-0.11 head.s (博古以通今)

;檔名:followking/boot/head.s;本檔案改寫linux-0.11/boot/head.s,目的是為了體驗整個系統構建的過程。;我是看著趙炯《Linux核心0.11完全註釋》編寫的。不過,我是編寫程式碼,有疑問再看。;我用的nasm的語法格式。我想寫一個作業

Linux內核0.11 makefile文件說明

鏈接 cpu 臨時文件 std 文件依賴 AD GC 格式 塊設備 # # if you want the ram-disk device, define this to be the # size in blocks. # 如果要使用 RAM 就定義塊的大小(註釋掉了)

Linux內核0.11 bootsect文件說明

現在 RoCE 語句 數據 ant tty click there AR 一、總體功能介紹 這是關於Linux-kernel-0.11中boot文件夾下bootsect.s源文件的說明,其中涉及到了一些基礎知識可以參考這兩篇文章。 操作系統啟動過程 軟盤相關知識和通過BI