딱딱하지 않는 소6이 VirtualBox에서 「30일로 할 수 있다! OS 자작 입문」을 이루는 이야기. 첫날

추기 12/7 공개하고 나서 일년의 월일이 지났습니다. 빠르네요. 저도 이 해에 다양한 경험을 하고 있었습니다.
기사를 든 2일째에는 멈춰 버린 이 시리즈. 하지만 나는 포기하지 않습니다. 절대로 돌아옵니다. 절대로 다음 기사를 써서 30일째까지 노력하겠습니다. 조금 기다려주세요. (12월 중 리뉴얼하고 싶다)
그리고 실은 9일째 정도 지금은 완성하고 있었습니다만 별로 구조를 알고 있지 않습니다()

자기소개



만나서 반갑습니다. 여러 가지에 도전해 에러로 포기해 버리는 소6의 tatsu입니다. 문장의 곳마다 잘못되어 있다고 생각합니다만 감사합니다.

환경 구축



VirtualBox htps //w w. 오 c. 이 m/테 ch네와ぉrk/jp/세르ゔぇr-s토레게/ゔぃr ㅇㅎㅎㅎㅎㅎㅜㅜㅜㅜㅜㅜ/ HTML
바이너리 편집기 Hex Fiend htps://リぢくぉうsふぃsh. 코 m / 헤 x 후엔 d /
VirtualBox에서 시작할 때의 방법은 여기에서 자세히 쓰고 있으므로 여기를 참조하십시오.
mac 용 nask htps : // m / 18 / ms / 1b9b77f154 4d5239 5

해보자



먼저 helloos.img라는 디스크 이미지를 만듭니다. 기동하면 화면에 「hello, world」라고 나오는 것 같습니다. 바이너리 에디터를 사용하는 것은 처음으로 앱에 관해서도 사용하기 어렵다고 생각했습니다. 필자는 mac로 작업하고 있습니다만, 찾아도 좋은 에디터를 찾을 수 없고, 이사를 전전에 계속하고 있습니다.

htps // sh mp. 마로군. 네 t/오사키에/우우키/? 그리고 1 세와 SX

여기에서 VirtualBox를 시작했는데 문제가 발생했습니다. 이유는 <가 계속 표시됩니다. 그만해줘....



그것도 그럴 것이다. 한번 읽어 실수해 버려, 60~70등으로 두 번이나 치고 계속 버렸습니다. 이것을 밝히기 한 시간 후에 마? 그리고 대답을 알게 된 곳에서 코드를 다시 쓰고 무사히 시작할 수 있었다든가.



어셈블러에서 hello work를 내보내기



helloos.nas
; hello-os
; TAB=4

; 以下は標準的なFAT12フォーマットフロッピーディスクのための記述

        DB      0xeb, 0x4e, 0x90
        DB      "HELLOIPL"      ; ブートセクタの名前を自由に書いてよい(8バイト)
        DW      512             ; 1セクタの大きさ(512にしなければいけない)
        DB      1               ; クラスタの大きさ(1セクタにしなければいけない)
        DW      1               ; FATがどこから始まるか(普通は1セクタ目からにする)
        DB      2               ; FATの個数(2にしなければいけない)
        DW      224             ; ルートディレクトリ領域の大きさ(普通は224エントリにする)
        DW      2880            ; このドライブの大きさ(2880セクタにしなければいけない)
        DB      0xf0            ; メディアのタイプ(0xf0にしなければいけない)
        DW      9               ; FAT領域の長さ(9セクタにしなければいけない)
        DW      18              ; 1トラックにいくつのセクタがあるか(18にしなければいけない)
        DW      2               ; ヘッドの数(2にしなければいけない)
        DD      0               ; パーティションを使ってないのでここは必ず0
        DD      2880            ; このドライブ大きさをもう一度書く
        DB      0,0,0x29        ; よくわからないけどこの値にしておくといいらしい
        DD      0xffffffff      ; たぶんボリュームシリアル番号
        DB      "HELLO-OS   "   ; ディスクの名前(11バイト)
        DB      "FAT12   "      ; フォーマットの名前(8バイト)
        RESB    18              ; とりあえず18バイトあけておく

; プログラム本体

        DB      0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
        DB      0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
        DB      0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
        DB      0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
        DB      0xee, 0xf4, 0xeb, 0xfd

; メッセージ部分

        DB      0x0a, 0x0a      ; 改行を2つ
        DB      "hello, world"
        DB      0x0a            ; 改行
        DB      0

        RESB    0x1fe-$         ; 0x001feまでを0x00で埋める命令

        DB      0x55, 0xaa

; 以下はブートセクタ以外の部分の記述

        DB      0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
        RESB    4600
        DB      0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
        RESB    1469432


왜 확장자가 nas인가라고 하면, 책의 집필자씨가 「nask」라고 하는 어셈블러를 만들었다고 한다. 죄송합니다 ... 아, 덧붙여서 mac에서 Catalina의 경우는이 nask 사용할 수 없습니다. 이 nask는 32bit 버전 밖에 없고, Catalina는 32bit에 대응하고 있지 않기 때문에 사적으로는 막고 있을까 ... 유감입니다만 ...
그럼 조속히 시작하자! ! !


제대로 시작할 수있었습니다! 솔직히 어려워서 잘 모르는 것은 비밀입니다.

 /|_____________
< To BE CONTINUED…////|
 \| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄~ ~  ̄

다음 번에

추가



11/24일 추가
모처럼이므로 Twitter 계정을 개설하려고합니다. 이번 아버지에게, 유명한 엔지니어가 소개했다고 해서, 그렇게, 엔지니어씨와도 연결하고 싶다고 생각했기 때문입니다. 계정 이름은 여기입니다.
htps : // 코 m / 고리 라_타츠 / ms / c1 굳이 1d15c2946 90 042

좋은 웹페이지 즐겨찾기