OS開発

BSD Socket誕生の経緯

概要 本記事はBerkley Socket の歴史や開発当初の設計に興味を持ち調べた際のメモです。 調べたこと Berkley SocketはBSD4.2のタイミングでBill Joyにより設計・実装されたようです。Bill Joyが開発に至るまでの経緯は『Unix考古学』で詳しく解説されていま…

30日でできるOS自作入門_DAY7

harib04a: キーコードの取得 DAY6で作った、キーボード入力時の割り込み処理を改善していく。 int.c - 修正前 void inthandler21(int *esp) /* PS/2キーボードからの割り込み */ { struct BOOTINFO *binfo = (struct BOOTINFO *) ADR_BOOTINFO; boxfill8(bin…

30日でできるOS自作入門_DAY6

harib03a:ソースコード分割 ソースコードの分割をしているだけなので省略 harib03b: Makefileのルールの一般規則化 Makefile の一般規則について。これも、なるほどな話だけど読めば大体理解できるので読むだけで。 要するに、Makefileのルールにワイルドカ…

30日でできるOS自作入門_DAY5

harib02a bootpack.cのここの処理が void HariMain(void) { char *vram; int xsize, ysize; init_palette(); vram = (char *) 0xa0000; xsize = 320; ysize = 200; 以下のように書き換わった。 void HariMain(void) { char *vram; int xsize, ysize; short *…

30日でできるOS自作入門_DAY3

harib00a ; ディスクを読む MOV AX,0x0820 MOV ES,AX MOV CH,0 ; シリンダ0 MOV DH,0 ; ヘッド0 MOV CL,2 ; セクタ2 MOV AH,0x02 ; AH=0x02 : ディスク読み込み MOV AL,1 ; 1セクタ MOV BX,0 MOV DL,0x00 ; ドライブ番号0x00 = Aドライブ INT 0x13 ; ディス…

30日でできるOS自作入門_DAY4

harib01a 画面に出力を行うために、 naskfunc.nasに以下の関数が追加された メモリ番地を指定して書き込むのが目的とのこと _write_mem8: ; void write_mem8(int addr, int data); MOV ECX,[ESP+4] ; [ESP+4]にaddrが入っているのでそれをECXに読み込む MOV …

30日でできるOS自作入門_環境構築編

掲題の本に従ってチュートリアルを進めようとしたログになります。 2018年の正月で終わらなかったので、次はGWにチャレンジか。。 Ref: 各種データがダウンロード可能な公式ページ 先人の方のBlog 環境構築 Refのページを参考に進めていく Windows10です。 C…

30日でできるOS自作入門_DAY1 & DAY2

DAY1 バイナリファイル自体は2進数だが、それでは冗長になるので、 以下のように2進数⇒16進数に変換することで情報量を減らしている DB命令 : data byte命令、ファイルの内容を1byteだけ直接書く。文字列も書けるよ! PRESS命令 : reserve byte 、引数 x byt…

/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */