看《自己动手写操作系统》后尝试Linux环境搭建



看《自己动手写操作系统》后尝试Linux环境搭建
 
看了《自己动手写操作系统》后尝试一下。因为不想用windows作为开发平台,
所以,构建了一个Linux的卡发平台。
  www.2cto.com  
需要的工具:nasm、qemu、dd
 
首先,创建软盘镜像文件。
 
下面编辑一个boot.asm文件如下:
汇编代码  
    org 07c00h  ; 告诉编译器程序加载到7c00处  
    mov ax, cs  
    mov ds, ax  
    mov es, ax  
    call DispStr    ; 调用显示字符串例程  
    jmp $       ; 无限循环  
DispStr:  
    mov ax, BootMessage  
    mov bp, ax  ; ES:BP = 串地址  
    mov cx, 16  ; CX = 串长度  
    mov ax, 01301h  ; AH = 13,  AL = 01h  
    mov bx, 000ch   ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)  
    mov dl, 0  
    int 10h     ; 10h 号中断  
    ret  
BootMessage:    db  "Hello, OS world!"  
times  510-($-$$) db 0  ; 填充剩下的空间,使生成的二进制代码恰好为512字节  
dw  0xaa55    ; 结束标志  
  www.2cto.com  
1、用nasm编译:
$ nasm boot.asm -o boot.bin
这样就得到了一个512字节的boot.bin文件了,这个就是软盘启动扇区里面应该放的代码。
 
2、你可以用下面这个命令生成软盘镜像文件:
$ dd conv=sync if=boot.bin of=boot.img bs=1440k count=1
这样我们就得到软盘镜像boot.img了。注意命令中的conv=sync,使用这个选项后可以使得在把每个输入块填充到ibs个字节时,不足部分用空(NULL)字符补齐。在这个例子里由于输入文件只有512个字节,输出文件却需要1.44MB所以我用了这个选项。
 
3、利用qemu启动镜像文件:
qemu -fda boot.img -boot a -m 64 -localtime
 

相关内容

    暂无相关文章