Linux內核學習神器,Bochs安裝及常見問題解決

2021-01-12 itworld123

bochs簡介

可以將bochs理解成為一個虛擬化平臺,它是一個完全虛擬化的軟體。bochs與虛擬化產品VMware和VirtualBox很像,但又有不同,後者更多的是一個產品,用於實現計算虛擬化,而前者則更多的是一個開發工具,用於作業系統的開發調試。下面是來自官網的描述:

Bochs is a highly portable open source IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS. Bochs can be compiled to emulate many different x86 CPUs, from early 386 to the most recent x86-64 Intel and AMD processors which may even not reached the market yet.

在Ubuntu上的安裝

bochs可以跨平臺安裝,可以安裝在Linux或者Windows等作業系統,Ubuntu(本文基於16.04版本)上安裝非常簡單,執行如下命令既可以安裝:

sudo apt-get install bochs

使用bochs

我們以運行Linux0.12版本內核為例簡單介紹一下bochs的使用。關於其更詳細的原理後面在詳細介紹。可以從後面地址下載Linux0.12的鏡像文件。

oldlinux.org/Linux.old/bochs/linux-0.12-080324.zip

在Ubuntu環境下解壓該文件,然後切換到目錄下,執行如下命令即可運行bochs:

bochs -f bochsrc-0.12-hd.bxrc

其中bochsrc-0.12-hd.bxrc為配置文件,運行結果如下,可以看到與普通虛擬機軟體很像,只是比較簡陋。

常見問題解決

由於bochs依賴一些軟體,因此在首次運行的時候可能會有一些錯誤。下面是常見的錯誤及解決方法。

錯誤一:

00000000000p[ ] >>PANIC<< bochsrc:10: vgaromimage directive malformed.

vgaromimage: /usr/share/vgabios/vgabios.bin改成

vgaromimage: file=/usr/share/vgabios/vgabios.bin錯誤二:

Event type: PANIC Device: [ ] Message: dlopen failed for module 'x': file not found

這種情況是缺少軟體包,安裝相應的軟體包即可,命令如下:

sudo apt-get install bochs-x

錯誤三:

bochs-biin: symbol lookup error: /usr/lib/bochs/plugins/libbx_x.so: undefined symbol: XpmCreatePixmapFromData

作者指出,我們換一種顯示的方案就可以了。

首先按照bochs-sdl,用apt-get可以安裝。

sudo apt-get install bochs-sdl在我們的bochsrc文件中,加入一句話:

display_library: sdl錯誤四:

00000000000p[KMAP ] >>PANIC<< line 38: unknown host key name 'XK_0' (wrong keymap ?)

注釋掉下面這行

#keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map

然後那紅色的hello world就出來了

相關焦點

  • 10分鐘完成的作業系統——幫你了解Bochs的使用
    一.工具配置  NASM sourceforge下載地址  Bochs sourceforge下載地址  Cygwin(為了使用linux
  • 華為18級工程師嘔心瀝血撰寫3000頁Linux學習筆記教程
    需要《Linux入門到精通》、《linux系統移植》、《Linux驅動開發入門實戰》、《Linux開源網絡全棧》電子書籍及教程的工程師朋友們勞煩您轉發+評論,關注我私信回復「666」或者「學習」即可免費獲取基礎篇Linux概述Linux
  • 什麼Linux,Linux內核及Linux作業系統
    慢慢的,很多公司在Linux內核的基礎上增加了開發工具和應用軟體,將Linux內核和這些用戶態的軟體打包成為一個作業系統安裝鏡像,這個系統稱為Linux作業系統,或者稱為Linux發行版。這個Linux作業系統就好像Windows系統一樣,普通用戶可以使用它進行日常工作。
  • 學習Linux系統需要明白的一些事情
    直到有一次找工作的時候,看見一個公司招運維人員,抱著試試的態度去跟面試官了解了解,比較幸運的是人家願意試用3個月,然後就正式邁出人生職業的第一步,在實習當中才接觸到linux,然後跟著師父一步一步的深入了解linux,我也以我6年的運維經歷及學習linux的經驗跟大夥分享下我的一些看法,當然,在IT行業,分享是一種精神,也是一種美德。
  • 當運行 Linux 內核的機器死機時……
    作者 | dog250 責編 | 張文頭圖 | CSDN 下載自視覺中國曾經寫過一個模塊,當運行 Linux 內核的機器死機時,SSH肯定無法登錄了,但只要它還響應中斷,就盡力讓它可以通過網絡帶回一些信息。
  • 「正點原子Linux連載」第三十七章Linux內核移植
    第三十七章Linux內核移植前兩章我們簡單了解了一下Linux內核頂層Makefile和Linux內核的啟動流程,本章我們就來學習一下如何將NXP官方提供的Linux內核移植到正點原子的I.MX6U-ALPHA開發板上。通過本章的學習,我們將掌握如何將半導體廠商提供的Linux BSP包移植到我們自己的平臺上。
  • Linux是什麼作業系統?發展歷史介紹
    我剛開始學習linux作業系統的時候內心真的很激動,畢竟感覺自己只要學會了就會獲得各種技能一樣了。當然,對於還不是那麼了解的人,也請不要擔心,希望下面我的話能讓你更深的了解Linux系統。Linux是什麼?Linux是最受歡迎和最常用也是最安全的開源作業系統。
  • Windows 10 變身開發者利器:內置 Linux 內核,人人可用,像安裝驅動...
    微軟的開發者博客剛剛公布 [1] ,下一個 Windows10 版本,不僅自帶 Linux 內核,而且還會通過 Windows Update 安裝方式更新,簡單得就像安裝驅動程序一樣。對於主力開發環境是 Windows ,但時不時需要用到 Linux 的開發者、老師或學生來說,堪稱提高效率的開源神器。
  • 如何學習Linux,需要找培訓機構嗎?我們來聊一聊
    如何學習Linux,需要找培訓機構嗎?學習linux先確認一個問題:自己學Linux要做什麼,達到什麼程度(基礎、中級、高級)?對應的學習方法:計算機愛好者:對linux感興趣,想了解熟悉一下,推薦拍一本Linux的入門書籍或者找對應的電子書學習一下,也可以網上找一些基礎的公開課學習。
  • 為什麼說 Manjaro Linux 是最好用的 Linux
    、ubuntukylin、centos、Fedora、Apricity OS、Antergos、Manjaro Linux、gentoo linux 以及 linux from scratch,可謂是 Linux 老手了。
  • Linux中的DTrace:BPF進入4.9內核
    詳見 bcc 安裝 手冊。它會在 /usr/share/bcc/tools 目錄下添加一系列工具,包括接下來的那些工具。還有一個是 uprobe 的內存計算問題,這導致 uprobe 分配內存失敗,在 4.8 內核版本這個漏洞由 「uprobes: Fix the memcg accounting」 補丁所修復,並且該補丁還將被移植到之前版本的內核中(例如,它現在被移植到了 4.4.27 和 4.4.0-45.66 版本中)。 為什麼 Linux 追蹤用了這麼久才加進來?
  • 完善軟體生態,國產Linux作業系統任道重遠
    一直以來,linux作業系統都想要打敗微軟的windows,雖然在伺服器領域出類拔萃,但在桌面領域一直不是windows的對手,其實並不是linux在操作上難用,也不是界面難看,而最重要的一個問題就是生態。
  • 國產linux發行版本——deepin作業系統安裝方法
    大家好,歡迎回到萬魔寺,前兩期,和大家一起學習了ubuntu系統的安裝,今天我們一起來學習一下國產linux作業系統deepin的安裝方法。deepin系統是由武漢深之度科技有限公司開發,在網絡上口碑比較好的一款linux國產發行版。
  • Linux 內核報TCP SACK漏洞 CVE-2019-11477/78/79,需儘快處理
    概述在Linux內核處理TCP網絡數據包時候存在缺陷導致三個漏洞,CVE編號分別為:CVE-2019-11477,CVE-2019-11478和CVE-2019-11479。最嚴重的漏洞CVE-2019-11477,可以讓遠程攻擊者DDOS系統導致內核崩潰,從而影響系統的可用性。
  • kali linux在它面前頓然失色
    archlinux是輕量、簡潔、代碼更新的linux發行版,它的風格繼承了老牌linux發行版slackware的優點,另外,archlinux一個很大的優勢是它的社區對文檔的重視,幫助文檔豐富,說明詳盡,很多問題都在社區中可以找到靠譜的正確回答,因此,真正想學習linux的人一定會選擇archlinux,在學習過程中也會去嘗試gentoo和lfs,逐漸完善自己的
  • 一張圖看懂Linux內核中Percpu變量的實現
    所謂thread local變量,就是對於同一個變量,每個線程都有自己的一份,對該變量的訪問是線程隔離的,它們之間不會相互影響,所以也就不會有各種多線程問題。正確的使用thread local變量,能極大的簡化多線程開發。所以不管是c/c++/rust,還是java/c#等,都內置了對thread local變量的支持。
  • Linux如何安裝軟體
    相比於windows系統,Linux安裝程序就比較複雜了,很多需要root用戶才能安裝。常見的有以下幾種安裝方法源碼安裝rpm包安裝yum安裝 (RedHat、CentOS)apt-get安裝 (debian,ubuntu)
  • Linux基礎教程:CentOS開機流程詳解
    第三步:啟動Boot Loader Boot Loader 就是在作業系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬體設備、建立內存空間的映射圖,從而將系統的軟硬體環境帶到一個合適的狀態,以便為最終調用作業系統內核做好一切準備。Boot Loader有若干種,其中Grub、Lilo是常見的Loader。
  • Linux Kernel 5.6 開發者已準備好應對 2038 年問題
    新十年伊始,Linux Kernel 5.6 的開發者已經準備好著手解決將在下一個十年到來的 2038 年問題(又稱 「Y2038
  • Arch Linux 安裝指引
    ↩約伊茲的萌狼鄉手札.給 GNU/Linux 萌新的 Arch Linux 安裝指南 rev.B[G/OL]. 約伊茲的萌狼鄉手札, https://blog.yoitsu.moe/arch-linux/installing_arch_linux_for_complete_newbies.html ↩