学习Linux源码及实践

2014-11-23 23:31:44 · 作者: · 浏览: 13

接下来要看的是一段Linux代码:这个代码将是一个操作系统的开始。


BOOTSEG =0x07c0


entry start
start:
jmpi go,BOOTSEG
go: mov ax ,cs
mov ds,ax
mov es ,ax
mov [msg1+17],ah
mov cx,#20
mov dx,#0x1004
mov bx,#0x00c
mov bp,#msg1
mov ax,#0x1301
int 0x10
loop0: jmp loop0
msg1: .ascii "Loading system..."
.byte 13,10
org 510
.word 0xAA55


尽管有点短小,不过先做点有成就的事情出来,那么学起来的时候才更加感兴趣。


下面进行编译:


as86 -0 -a -o boot.o boot.s
ld86 -0 -a -o boot boot.o
dd bs=32 if=boot of=bootseg skip=1
dd if=bootseg of=boot.img bs=512 count=2880


可以看到文件下面有一个boot.img文件了,下面再在系统上装上virtualbox,然后用管理员


sudo virtualbox


运行起来,建立一个系统后,把软驱加载一下,然后启动OS。