之前搜索过,以前在mac上搞过gdk还是啥的对x11阴影很大,这次想着只管搞一下,开虚拟机太费劲了。 mikecoder.cn/?post=116 安装这篇文章搞定了,备份一下。 brew install sdl ./configure --enable-ne2000 --enable-all-optimizations --enable-cpu-level=6 --enable-x86-64 --enable-vmx=2 --enable-pci --enable-usb --enable-usb-ohci --enable-e1000 --enable-debugger --enable-disasm --disable-debugger-gui --with-sdl --prefix=$HOME/opt/bochs make & make install export BXSHARE="$HOME/opt/bochs/share/bochs" export PATH="$PATH:$HOME/opt/bochs/bin" 就好了。
Archive for 编写操作系统
clear主要作用是清屏 ax=0600h初始化屏幕 cx起始位置 dx结束位置 然后调用bios中断 clear下边是设置光标的位置 ah=02h dh行,dl列 DispStr主要打印hello world 详细介绍google搜索得到。 boot/boot.asm代码:
org 07c00h
mov ax,cx
mov ds,ax
mov es,ax
call clear
call DispStr
jmp $
clear:
mov cx,00h
mov dx, 2580h
mov bh, 00h
mov ax, 0600h
int 10h
mov bh, 00h
mov dh, 11h
mov dl, 00h
mov ah, 02h
int 10h
ret
DispStr:
mov ax,BootMessage
mov bp, ax
mov cx, 12
mov ax, 1301h
mov bx, 000ch
mov dl, 0
int 10h
ret
BootMessage: db "hello, world!"
times 510-($-$$) db 0
dw 0xaa55
lisp群里有人写操作系统,我又想起了以前写的。以前写的没做完,当时有很多不明白的,现在决定看书再做一遍。 环境搭建:系统是ubuntu,编译器gcc,make,nasm,虚拟机bochs,然后应该没了。 bochsrc.txt文件配置 floppya: image=./img/a.img, status=inserted,加载软盘镜像 ata0-master: type=disk, path="./img/c.img", mode=flat, cylinders=20, heads=16, spt=63, 硬盘镜像,这个还没用,建了个10M的文件 boot: floppy,,启动顺序 #boot: disk log: ./log/bochsout.txt 日志记录 parport1: enabled=1, file="./log/parport.out"# 并口的数据记录文件 应该在没啥了,有错误可以再改。 Makefile文件配置
build/boot : boot/boot.asm nasm boot/boot.asm -o build/boot a.img : build/boot dd if=build/boot of=img/a.img bs=512 count=1 conv=notrunc run : a.img bochs clean : rm build/boot每次直接make run就可以了
~/code/os$ tree . ├── bochsrc.txt ├── boot │ └── boot.asm ├── build │ └── boot ├── img │ ├── a.img │ └── c.img ├── log │ ├── bochsout.txt │ └── parport.out └── Makefile目录结构,先这样了。慢慢添加
$ sudo apt-get install build-essential xorg-dev libgtk2.0-dev
编译bochs
$ ./configure --enable-debugger --enable-disasm
$ sudo make
$ sudo make install
记录几个目录:
/usr/local/bin/bochs Bochs启动程序
/usr/local/bin/bximage Bochs带的制作磁盘镜像文件的工具
/usr/local/share/doc/bochsrc-sample.txt Bochs的配置文件例子
配置文件官方给的例子有详细的解释,修改一下就好。比如我编译的bochs的版本为 bochs-2.5.1,提示错误:
device: hd
message:ata0-0:could not open hard drive image file '30M.sample'
你可以新建一个hd img 也可以把配置文件里hd注释掉,再修改一下boot就好了.
这样安装的bochs带有调试功能,如果你想直接运行,可以执行c命令。
[caption id="attachment_698" align="alignnone" width="227" caption="ubuntu bochs调试"][/caption]