顯示具有 OS 標籤的文章。 顯示所有文章
顯示具有 OS 標籤的文章。 顯示所有文章

2010年1月29日 星期五

[OS] Taste of House

今天早上google了一下發現已經有人拿haskell來寫OS了,叫做House。其細節還沒細看,不過倒是抓下來試了一下。測試的環境基本上和這篇是一樣的。

首先在House的網站上載 hOp-x.y.flp 然後暴力把.flp給改成.img,接著就直接用VirtualBox去掛載這個映像檔到flppy device上面去,然後開機就可以了。

開機以後會進入GRUB的選單,接著就看想要進text mode還是graphics mode就好。

graphics mode大概長這樣,非常明顯這只是一個展示用的範例。這裡只提供了一些固定的功能可以稍微玩玩看。我甚至連怎麼關機或是離開都不知道。XD



這裡還發現一篇paper: A Principled Approach to Operating System Construction in Haskell (ICFP 2005)。最近如果沒有其他壓力的話,蠻想來研究看看這怎麼做的。

2009年12月9日 星期三

[OS] DIY of Operating System

昨天晚上睡覺前一時興起翻了翻之前買的OS DIY的書
前兩章非常簡單, 都是在做介紹和環境配置
不過它書上是在Windows上跑
而我是用Mac OS X, 其間工具等等差異也就不用我贅述。

基本上我最後用到的工具目前只有作為Virtual Machine的VirtualBox, 和十六進位編輯器Hex Fiend還有assemblerNASM

第一個測試很簡單,只是去寫一個Boot Sector。

首先把單純的程式碼打一打。


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 World"
times 510-($-$$) db 0

dw 0xaa55


然後assemble一下:> nasm boot.asm -o boot.bin
接者打開Hex Fiend把boot.bin打開,另存新檔成xxx.img

然後打開VirtualBox去新開一個Virtual Machine,接著再把剛剛的xxx.img給mount到Storage > Floppy Controller > Floppy Device 0上面去。最後再打開這台virtual machine就可以看到如下成果: