# HG changeset patch # User anatofuz # Date 1588220219 -32400 # Node ID 92988591be652dcb2086249d4b517692f25985b1 # Parent 8f1d03a81516a8e727115d01cac278ce4972d244 ... diff -r 8f1d03a81516 -r 92988591be65 paper/Makefile --- a/paper/Makefile Thu Apr 30 13:10:39 2020 +0900 +++ b/paper/Makefile Thu Apr 30 13:16:59 2020 +0900 @@ -14,7 +14,7 @@ .SUFFIXES: .md .tex .dvi .pdf .md.tex: - perl md2tex.pl $(TARGET).md > $(TARGET).tex + perl md2tex.pl $< > $@ .tex.dvi: $(LATEX) $< @@ -34,7 +34,7 @@ pdf: $(TARGET).pdf vi: - vim $(TARGET).tex + vim $(TARGET).md clean: diff -r 8f1d03a81516 -r 92988591be65 paper/anatofuz-sigos.md --- a/paper/anatofuz-sigos.md Thu Apr 30 13:10:39 2020 +0900 +++ b/paper/anatofuz-sigos.md Thu Apr 30 13:16:59 2020 +0900 @@ -12,10 +12,11 @@ これに適した形として、 状態遷移モデルが挙げられる。 OSの内部処理の状態を明確にし、 状態遷移モデルに落とし込むことでモデル検査などを通して信頼性を向上させたい。 既存のOSはそのままに処理を状態遷移モデルに落とし込む為には、 まず既存のOSの処理中の状態遷移を分析する必要がある。 -分析の結果を定理証明支援系などによって証明を行うか、 仕様記述言語で再実装することで仕様の整合性を検証する事が可能である。 +分析の結果を定理証明支援系などによって証明を行うか、 仕様記述言語を用いて再実装することで仕様の整合性を検証する事が可能である。 しかしこれらの方法では、 実際に動くOSと検証用の実装が別の物となってしまうために、 C言語などの実装の段階で発生するバグを取り除くことができない。 実装のソースコードと検証用のソースコードは近いセマンティクスでプログラミングする必要がある。 実装用の言語と証明用の言語の両方に適した言語としてContinuation Based C(CbC)がある。 現在小さなunixであるxv6 kernelを状態遷移を基本とした単位でのプログラミングに適した言語、 Continuation Based Cを用いて再実装している。 再実装の為には、 既存のxv6 kernelの処理の状態遷移を、継続を用いたプログラムに変換していく必要がある。 + diff -r 8f1d03a81516 -r 92988591be65 paper/anatofuz-sigos.pdf Binary file paper/anatofuz-sigos.pdf has changed