Ubuntu OS系统虚拟机编译安装

系统 Linux
要写Ubuntu OS必须要有相应的工具,下面就搭建OS开发环境。首先要有个linux系统,我用的是Ubuntu OS。然后再加个虚拟机bochs,这样我们就不必折腾自己的爱机了。

对大家推荐很好使用的Ubuntu OS系统,像让大家对Ubuntu OS系统有所了解,然后对Ubuntu OS系统全面讲解介绍,希望对大家有用Ubuntu + bochs 搭建Ubuntu OS开发环境.

声明:请看到此文章的朋友不要转载,因为写作才刚刚开始,有很多不成熟甚至错误的地方。等所有文章完成之后,我会细心整理。

相信很多人曾经都有过一种冲动,那就是像linus一样自己写个操作系统。这个系列的文章就是关于这个话题的,但是我并不奢望能开发出一个像当代linux一样的Ubuntu OS,实际上几乎不可能,即使是linus也做不到。linux能发展到现在靠的是互联网上的无数黑客,及各大公司的支持。我的目标只是个multitasking,带有文件系统的简单OS kernel。

要写Ubuntu OS必须要有相应的工具,下面就搭建OS开发环境。首先要有个linux系统,我用的是Ubuntu OS。然后再加个虚拟机bochs,这样我们就不必折腾自己的爱机了。先去 http://sourceforge.net/projects/bochs/files/bochs/2.4.1/ 下载 bochs-2.4.1.tar.gz

bochs虚拟机编译安装:

1. 安装相应的gnu工具,执行下面命令sudo apt-get install build-essential bison

2.  安装一些图形库 sudo apt-get install libgtk2.0-dev xorg-dev

3. 解压bochs-2.4.1 tar -zxvf bochs-2.4.1.tar.gz

4. 将文件/bochs-2.4.1/cpu/proc_ctrl.cc 的650行到680行换成以下内容:650行开始Code

  1. 1 #if BX_SUPPORT_VMX  
  2.  2 VMexit_CR3_Write(i, val_32);  
  3.  3 if (BX_CPU_THIS_PTR cr0.get_PG() && BX_CPU_THIS_PTR cr4.get_PAE() &&  
  4.  4 !long_mode()) {  
  5.  5 if (! CheckPDPTR(val_32)) {  
  6.  6 BX_ERROR(("SetCR3(): PDPTR check failed !"));  
  7.  7 exception(BX_GP_EXCEPTION, 0, 0);  
  8.  8 }  
  9.  9 }  
  10. 10 SetCR3(val_32);  
  11. 11 BX_INSTR_TLB_CNTRL(BX_CPU_ID, BX_INSTR_MOV_CR3, val_32);  
  12. 12 break;  
  13. 13 #endif  
  14. 14 #if BX_CPU_LEVEL > 3  
  15. 15 case 4: // CR4  
  16. 16 #if BX_SUPPORT_VMX  
  17. 17 val_32 = VMexit_CR4_Write(i, val_32);  
  18. 18 if (BX_CPU_THIS_PTR cr0.get_PG() && (val_32 & (1<<5)) != 0 /* PAE */  
  19. 19 && !long_mode()) {  
  20. 20 if (! CheckPDPTR(BX_CPU_THIS_PTR cr3)) {  
  21. 21 BX_ERROR(("SetCR4(): PDPTR check failed !"));  
  22. 22 exception(BX_GP_EXCEPTION, 0, 0);  
  23. 23 }  
  24. 24 }  
  25. 25 // Protected mode: #GP(0) if attempt to write a 1 to  
  26. 26 // any reserved bit of CR4  
  27. 27 if (! SetCR4(val_32))  
  28. 28 exception(BX_GP_EXCEPTION, 0, 0);  
  29. 29 break;  
  30. 30 #endif  
  31. 31 #endif  
  32. 32 default:  
  33. 33 BX_ERROR(("MOV_CdRd: #UD - control register %d index out of range",  
  34. 34 i->nnn()));  
  35. 35 exception(BX_UD_EXCEPTION, 0, 0);  
  36. 36 }  
  37. 37 }  680行结束 

5. ./configure --enable-debug --enable-disasm

6. make all

7. sudo make install

Ubuntu OS至此bochs安装完毕,下一节我们写个hello world级的引导代码

【编辑推荐】

  1. Ubuntu Server虚拟机改成"桥接"模式.
  2. Ubuntu SVN安装配置十分简单
  3. Ubuntu软件包采用Debian的软件包管理器
  4. Ubuntu Linux鱼和熊掌兼得着实快哉
  5. Ubuntu硬盘安装很怪异地方不需要指定路径
责任编辑:佚名 来源: csdn
相关推荐

2016-12-19 13:49:33

2010-01-06 16:06:11

2010-01-05 18:00:16

2010-02-24 16:37:27

Ubuntu VMwa

2011-03-02 09:31:13

2011-03-02 09:31:13

2009-09-07 22:01:52

虚拟机安装Linux系

2009-08-07 11:06:07

虚拟机安装Vista系统

2011-09-02 18:45:28

2009-02-18 19:13:25

2011-09-15 10:52:09

2021-09-02 15:23:33

鸿蒙HarmonyOS应用

2023-07-03 19:29:55

VMware虚拟机

2009-02-27 09:51:00

LinuxUbuntu 7.10Virtual PC

2013-07-22 17:49:52

Ubuntu虚拟机

2013-04-07 09:52:40

Ubuntu虚拟机虚拟化软件

2010-01-14 14:21:05

CentOS系统

2019-08-05 14:23:32

虚拟机操作系统软件

2010-09-26 13:13:01

Mac OS X虚拟机Windows 7VirtualBox

2010-01-18 10:15:50

虚拟机ubuntu
点赞
收藏

51CTO技术栈公众号