学习Linux源码及实践


接下来要看的是一段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

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

下面进行编译:

(我所使用的操作系统是Ubuntu:突然发现Linux真的是为程序员设计的一个操作系统,用起来真的方便。)

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。

相关内容