Write Your Own Operating System Tutorial(中文版) - 簡介

操作系統實作入門

首先說說我們用到的工具。
     既然要寫操作系統,必不可少的就是需要彙編語言的編譯器。如果你一時找不到tasm,masm等年頭已久的東西,你可以試試nasm(netwide assembler),這是一個開源軟件,你可以在http://sourceforge.net/projects/nasm下載到它。
    另外,如果你不想一次又一次的重啓來調試你的程序的話,你可能需要一個模擬器,來模擬x86的環境,在http://bochs.sourceforge.net/getcurrent.html,你可以下載到bochs。它能夠模擬出一臺計算機,包括cpu,內存,基本I/O設備等等。
    下載並解壓縮bochs後,你可以在它的目錄中找到一個名爲bximage.exe的程序,這個程序可以爲我們創建磁盤鏡像文件,我們可以在這些磁盤鏡像文件上嘗試我們的操作系統,而不必實際改動我們的硬盤或是軟盤上的數據,畢竟,在沒有實際把握之前,我們不願意給我們的計算機帶來什麼不可恢復的傷害。
    下面的表格顯示了一次bximage.exe的運行(程序在紅色顯示的部分會等待用戶輸入)。它爲我們創建了一個名爲boot.img的文件,這個文件是一張容量爲1.44M的軟盤的鏡像。
========================================================================
                                bximage
                  Disk Image Creation Tool for Bochs
        $Id: bximage.c,v 1.17 2002/11/26 11:21:31 cbothamy Exp $
========================================================================
Do you want to create a floppy disk image or a hard disk image?

Please type hd or fd. [hd] fd

Choose the size of floppy disk image to create, in megabytes.

Please type 0.36, 0.72, 1.2, 1.44, or 2.88. [1.44]

I will create a floppy image with
  cyl=80
  heads=2
  sectors per track=18
  total sectors=2880
  total bytes=1474560

What should I name the image?

[a.img] boot.img

Writing: [] Done.

I wrote 1474560 bytes to (null).

The following line should appear in your bochsrc:

  floppya: 1_44="boot.img", status=inserted

Press any key to continue

    你也許急着想看看bochs到底是什麼樣,那麼你可以在http://bochs.sourceforge.net/diskimages.html找到一些操作系統的鏡像文件,下載、解壓縮到bochs的目錄中,然後運行bochs,你就能夠看到各種操作系統運行在你的Windows之上了。
    然後,你可以在這裏下載一個名爲lesson5.asm的文件,並且用nasm編譯它,如下:

nasm lesson5.asm -o boot.bin

     這之後,你將得到一個名爲boot.bin的純二進制文件,大小正好爲512字節。用一個能夠編輯16進制文件的編輯器打開這個文件,你可以看到這個文件中有一半以上的字節爲0,最後兩個字節爲55和AA。
    然後,用你的編輯器打開boot.img,把boot.bin中的內容全部複製到其中。值得注意的是,你應該把內容複製到boot.img的開始處。也就是說,複製後的內容佔用了boot.img的0x000到0x1FF字節。
    如果你曾經在bochs的目錄中解壓過鏡像文件,那麼你的bochs目錄中應該有一個名爲.bochsrc的文件,用一般的文件編譯器打開它,你會發現其中有
    file=c.img
 
    這麼一行,把其中的c.img改成boot.img,或是其他剛纔你建成並且往裏面複製過字節的那個文件的文件名,保存。在這個文件中你也許還會看到一些怪字符,忽略它們。
    再啓動bochs,你就會看到由lesson5.asm編譯出的程序可以運行了。稍許賞玩一會兒,然後你就可以真正踏上操作系統之路了。記住這個時刻吧,這樣的開始,一生只有一次。


簡介

 

    這份教程將告訴你如何開始着手寫一個你自己的操作系統。它將向你展示一個應該如何開始做這些事情的方法。這份教程並不試圖解釋操作系統的每個方面,也不一定使用最快,最好的方法或者是技巧。所有的源代碼都以可讀性爲中心,沒有任何的優化。

    我假定這本書的讀者有一個符合標準“PC architecture”,並且帶有Intel x86(或其兼容)處理器的計算機。 後面的課程可能會要求有個IA-32 architecture (i386 to Pentium 4)的處理器。有些課程假定您使用FAT文件系統。有些課程需要使用MS-DOS/Windows的DEBUG工具,類似的工具也能夠正常工作。我不打算深入討論BIOS、彙編語言、以及INTEL或者是PC架構等等,因爲在別的地方你可以找到關於這些的詳細資料。在INTEL的網站上有在INTEL處理器上進行彙編語言編程的手冊。

    我自己,也正在學着擺弄這些東西,所以這些課程會反映出我的一點經驗,或者我學到的新東西。正因如此,課程的數目將不斷增加,所以請不時來這裏看看。如果您有關於未來課程的主意,請告訴我。另外,如果您有任何建議,問題或者是評論,請給我發Email。

聲明:風險自負。我不對任何使用這裏信息所導致的後果負責。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章