Tech

2/3ページ

OS自作入門 -Advent28-

Step8 スレッドを実装する 前半戦 さて、今日からスレッドの実装を行う。これまでは確かに1プロセスで動作しており、複数個の処理を並行して実行することはできないようになっている。これだとちょっと待ちがありすぎて実際には使いもんにならん。ということでスレッドを実装する話。合わせて「システム・コール」 […]

OS自作入門 -Advent27-

Step7 割り込み処理を実装する 最終戦 しばらく空いてしまいましたが、step7の最後のポストになりそうです。これまででブートローダへの割込みハンドラの実装を行なってきました。あとは割込みベクタの修正を行い、 割込みハンドラの設定 vector.cの修正 vector.cのようになる。もともとは […]

OS自作入門 -Advent26-

Step7 割り込み処理を実装する 後半戦 step7の中盤戦の最後の方でソフトウェア割込みベクタの話があり、RAM領域の先頭の方にsoftvec領域を用意し、ここに対して割込みハンドラのポインタを配置できるようになればよい。続きの実装をしていこう。 ブートローダに割込みハンドラを実装する 割込みハ […]

OS自作入門 -Advent25-

Step7 割り込み処理を実装する 中盤戦 step7の前半戦では一般的な割込み処理について学んだ。なんとなく理解したような気がする。割込みを受け付けることができる特別なピンがCPUにあり、そこに対して各種コントローラが割込み用出力ピン経由で電圧をかけてキックすることになる。割込みが発生したことを検 […]

OS自作入門 -Advent23-

第二部開始、Step7 割り込み処理を実装する さて、これまでのstepを通してブートローダが完成したので、プログラムをシリアル経由でロードし実行できるようになった。ようやく折り返しである。全然アドベントカレンダー内に終わらなかった。。。あと一ヶ月くらいかかるということか。大変だ。とはいえめげずにや […]

OS自作入門 -Advent20-

Step6 もう一度、Hello World 前半 帰ってきたHello Worldとのことで、 1step目でやったHello WorldはROMに書き込んで直接実行していたものだった。このstepではブートローダーを使用しRAM上でHello Worldが実行できるようにしていく。 エントリ・ポ […]

OS自作入門 -Advent18-

Step5 ELFフォーマットの展開 後半 前回はreadelfの結果を用いてelfフォーマットの中身を読んでみた。さて、今回はこれを元にしてelfフォーマットのファイルをメモリ内に展開するコードを追加する。 追加・編集するのは以下のファイル。 elf.h, elf.c (追加) ELF形式の解析 […]

OS自作入門 -Advent15-

Step4 シリアル経由でファイルを転送する 延長戦 意外と長くてstep4は4部構成になってしまった。今回はアセンブラについての詳細説明とまとめになりそうだ。 コンパイルしてアセンブラを見てみる サンブルとしてlib.cにテスト用の関数#funcを定義してそれをmain.c追加した状態でコンパイル […]

OS自作入門 -Advent14-

Step4 シリアル経由でファイルを転送する 後半 この記事でstep4は3つめの記事になる。おそらくあと一回で終わるだろう。新しい知識の上に新しい知識を重ねるので振り返ることが多くて理解に時間がかかるな。続きにいくとしよう。Step4を通して、ブートローダーとは何なのか、どのような手順でOSを起動 […]

OS自作入門 -Advent13-

Step4 シリアル経由でファイルを転送する 中盤 このStep時間が思いの外時間がかかるため3編構成で取り組むことにした。今回は中盤戦のmain.cを修正するところから始めよう。 main.cの修正 Step4の前半ではxmodemの実装をしたのでそれを利用する箇所の修正を行う。 xmodem.h […]