多少知識が無いとわからないよなあって感じになっているのでその点は反省しております。見て行きたいと思います。前回はタイマ割り込みによってコンテキストスイッチが起きる、というところで終わったと思います。そこの流れが大事ですので再掲します。はい、こんな感じです。ぷりんOSのコンテキストスイッチ実装を見て行きましょう。この部分は主にLinuxの実装を真似ています。言っても、x86上で同じことをやろうとしたら大体こうなると思います。上記の流れに沿ってコードを掲載していきます。はじめに呼ばれる割り込みコードを見てみましょう。以下のこれは、割り込みエントリ関数で、タイマー割り込み以外のキーボード割り込みや一般保護例外などでも呼ばれる部分です。Gistに貼った方は見やすさのためにマクロなど全て展開済みです。5日目の記事でもあります。Aizuの方に登録してたのですが、ネタ的に自作OSだし、自作OSカレンダーの方は空きが激しいので、まとめて登録してしまいました。続きみたいなものです。話した内容をもっとわかりやすく書いたものです。おける観点から話を進めていきますので、LinuxなどのOSとは異なることもあると思いますので注意してください。ぷりんOSは権限周りなどがまだまだですし、私もよくわかって無いことが多いです。それに、趣味で楽しいからやっていることです。(だからといってセキュリティを軽視しているわけではないです。細かいことは言わず、こんな風に書いてれば動くんだふーん程度の気持ちでお願いしたいです。何より自作OSを作ってる人、少し興味を持ってる人が見て、こんなの俺でもできるじゃねーかと感じて、自作OS作成してくれればなあと思いつつ書いていきます。本題に入るその前に、通常話しているプロセスについていくつか事前知識として、さらっと話そうと思います。ぷりんOSは一応?UNIX系のOSなので、ここでいうプロセスはUNIX系のプロセスを指しています。UNIX系プロセスは親子関係を持ちます。この親子関係というのはデータ構造で言うところの木構造で、大体こんな感じです。数字はプロセスID(pid)を表します。この時、プロセス1から見れば親はプロセス0になります。3日目の記事として書かれました。はじめに、上記リンクを見ていただければ直ぐにわかりますが、自分が主催にもかかわらず1,2日が空きで書いてないです。これについて申し訳ありません。(言い訳ですが多忙につき書いていられませんでした)。何でもいいから書かないと始まらないということで、3日目として、現在開発中の自作OSの紹介的な話をしたいと思います。通称"もぷりんOS"です。イメージカラーはメタリックレッドです。この時点で、名前の由来がわかる人にはわかるかもしれませんね。きっかけとしては、元々Linuxとかの中身が気になっていたということと、自作OS入門を読んで作って見たいなーと思っていたからです。あと、セキュキャンに応募して2回落とされているので、それも開発モチベーションとして一つあります。具体的な話に移ります。この記事を書いている時点のOSスペックは以下です。実装されている機能は以下です。9/14に会津で行われたミニキャンプに参加しました。その感想を書いていきたいと思います。事前課題はオレオレSNSの脆弱性探しでした。1日目ですが、各講師の講義を受けました。中でも園田講師の「情報セキュリティの今そこにある危機」が印象に残っています。サービス提供者の求める情報とユーザの持つ情報のどこまでが個人情報でどこからが個人情報ではないのか、また、単体では意味をなさない(個人情報足り得ない)ものでも、データマイニング的に複合化すれば様々なことを知ることが出来る。最近のスマートフォンに始まり、ウェアラブルデバイス(なんとかウォッチですね※妖怪ではない)が持つ情報などを駆使して、抽象的な人格コピーが可能になる日も近いのでは?事前に集積したデータから、その人が何かを感じて、思考となる前に機会側で推測することが出来るのでは?といった意見が大変興味深かったです。続いて宮本講師による「情報セキュリティ人材は本当に不足しているのか?」でした。この講義によると、2004年に登場したウィルスが未だに大量に報告されている、というものがあり、少々意外に思いました。ウィルス意外にも古い脆弱性はまだまだ残っているそうです。いったものはアップデートや最新版を使えば何も問題無いケースが多いとのこと。情報セキュリティ人材は数万人規模で足りないらしいです。情報セキュリティに携わっている人でも力不足な人も結構いるとか。その後、少しの休憩を挟み、西村講師(イケメンだった)による「スマートフォンのセキュリティ概論」と「HTML5のセキュリティ」でした。前者は「マルウェア」「リスクウェア」「脆弱性のあるアプリ」の3つについて詳しくお話しいただきました。後者はHTML5に段々と移行していく中で、脆弱性を作りこまないようにするにはどうするかなど具体例も多くあってわかりやすかったと思います。