文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Ubuntu OS系统虚拟机编译安装

Ubuntu OS系统虚拟机编译安装

时间:2010-10-05  来源:mydear

对大家推荐很好使用的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级的引导代码


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载