Ubuntu OS系统虚拟机编译安装
创始人
2024-06-23 01:51:10
0

对大家推荐很好使用的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硬盘安装很怪异地方不需要指定路径

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...