Tomitomi's blog

勉強したこと、やってみたことなどを書き連ねていく場

ユーザーランドでコンテキストスイッチ的なものを作ってみた

xv6のソースコードを読むと、実行プロセスを切り替える過程は以下のように行われていることがわかります。

  1. タイマー割り込みによってプロセスのプログラムを中断して割り込みハンドラが実行される。
  2. 割り込みハンドラの最後で、割り込みハンドラからカーネルのスケジューラーに向けてコンテキストスイッチ
  3. スケジューラーは次に実行されるプロセスを選択したら、ページテーブルをそのプロセスのものに変える
  4. スケジューラーからプロセスにコンテキストスイッチ
続きを読む

Lispインタプリタ自作してみた。

先々週ぐらいにふと思い立って小規模なlispインタプリタを書き始めて、その後その上に関数実装するのにハマっていたのですが最近落ち着いてきたのでブログ記事にしました。

なぜ作った

clispLispやろうとするとすでにリストの操作関数などがたくさん用意してあって便利だと思うのですが、そういったものを自分で作ってみたいと 思ったのがきっかけです。 そこで、作るなら更地の状態から自分で関数を定義していって環境構築するのが楽しそうだと思ったのでインタプリタから自作しました。

続きを読む

X Window Systemプログラミングを勉強してみた〜ウィンドウを表示する〜

X Window Systemプログラミングを勉強したので備忘録も兼ねて勉強したことをまとめておこうと思います。

ウィンドウを表示するには

大まかに以下の4ステップでウィンドウを表示できる。

  • Xサーバーに接続する
  • ウィンドウを生成する
  • ウィンドウをマップする
  • 出力バッファをフラッシュする
続きを読む

セキュリティキャンプ全国大会2017に参加してきました

  初めての記事ですが、そもそもこのブログを立てるきっかけになったのはセキュリティキャンプなので感謝を込めてセキュリティキャンプの感想を最初の記事にしようと思います。

 さて、8/14から5日間東京都府中市で開催されたセキュリティキャンプ全国大会2017ですが、ここでは自分の活動報告とキャンプで得たもののまとめを書こうと思います。

続きを読む