一个操作系统的实现(一)

在学操作系统,老师教的是清华的moocos操作系统,是根据一些基础代码填空式学习,个人不太习惯,故开始了自己探索的历程,也就有了这一系列博客(不定期更新)
一个操作系统的实现系列是按照Orange’S:一个操作系统的实现及光盘源码(密码 acih)这本书一步步做的,这是案例1(所有案例基于linux系统,下面会有在虚拟机安装ubuntu教程)

对应原书第一章(注意部分代码及代码解释在原书中有所以没有贴出,本系列博客需结合原书食用)

  1. 在清华镜像下载ubuntu的镜像(我用的是最新版20.04)
  2. 在virtualBox安装ubuntu(虽然版本不同,但是操作基本一致)
  3. 然后根据课本,在ubuntu虚拟机上安装NASM sudo apt-get install nasm
  4. 根据课本写好boot.asm汇编代码
  	org  07c00h
  	mov  ax, cs
 	mov  ds, ax
	mov  es, ax
	call DispStr
	jmp  $
DispStr:
	mov ax, BootMessage
	mov bp, ax
	mov cx, 16
	mov ax, 01301h
	mov bx, 000ch
	mov dl, 0
	int 10h
	ret
BootMessage:		db	"hello, os world!"
times	510-($-$$)	db	0
dw	0xaa55
  1. 用命令nasm -o boot.img boot.asm把boot.asm转为boot.img
  2. ubuntu安装增强功能把boot.img拖拽拷贝到宿主机 虚拟机实现拖拽拷贝
  3. 新建一个虚拟机裸机(参考步骤2新建ubuntu),把刚刚拷贝出来的boot.img作为虚拟软盘插入,启动运行即可,最终效果如下图:
    一个操作系统的实现(一)_第1张图片
    一个操作系统的实现(一)_第2张图片

其余参考:
ubuntu20.04中文路径改为英文
ubuntu调整字体大小快捷键:放大ctrl shift + 缩小ctrl -
我用ubuntu虚拟机遇到的问题解决汇总

你可能感兴趣的:(操作系统)