advcal20161209
の編集
https://khfdpl.osask.jp:443/wiki/?advcal20161209
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
2016_10
2016_11
2016_12
BracketName
Essen
Essen0
Essen1
Essen2
Essen3
Essen4
EssenMemo0001
EssenMemo0002
EssenMemo0003
EssenMemo0004
EssenMemo0005
EssenMemo0006
EssenMemo0007
EssenMemo0008
EssenMemo0009
EssenMemo0010
EssenMemo0011
EssenR2
EssenR2_ess03f
EssenR2_ess03h
EssenR2_ess03i
EssenR2_ideas
EssenR2_jit00
EssenR2_jit01
FormattingRules
FrontPage
Help
IP
InterWiki
InterWikiName
InterWikiSandBox
K
KHPC
KHPC_v000doc01
KHPC_v001doc01
KHPC_v002doc01
KHPC_v003doc01
MenuBar
OSC
OSC20181027
OSC20190222
OSC20191123
OSC20230401
OSC20230528
OSC20231021
OSC20240310
OSC20241026
PHP
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
RecentDeleted
SandBox
SltVA
VariableArray
WikiEngines
WikiName
YukiWiki
advcal20161205
advcal20161206
advcal20161209
advcal20161210
advcal20161215
eoml0001
eoml0002
essen_ex01_0001
impressions
kcl_malloc
khfdpl_result1
members
memo0001
memo0002
note0001
note0002
note0003
note0004
note0005
note0006
oldworks
oldworks00
oldworks06
oldworks12
oldworks13
osaskjp_index
persistent_C
populars
pr20161105
pr20161105b
scsc
seccamp2017
spam_test
uxf
uxf_01
uxf_02
uxp
* 手段としての自作OSのススメ -(by [[K]], 2016.12.09) ** (0) -この記事は、「自作OS Advent Calendar 2016」の12/09が空欄だったので急きょ書くことにした記事です。 --http://www.adventar.org/calendars/1666 -余談ですが、「自作OS」と「OS自作」というのは同じ意味なのか違うのか、違うとしたらどう違うのか、いつも悩みます・・・。 ** (1) -このアドベントカレンダの読者は、おそらく純粋にOSの自作を楽しめるすてきな人たちだと思っています。 -だから目的とかなくても十分に楽しいでしょう。それはとてもいいことです。 -でも、目的を持ってOSを作ることはまた別の楽しさがあるので、それを紹介させてください。 -たとえば既存のOSよりも自分のOSはここはすごいんだ(予定)、という何かがあるとかです。もしくは、このアルゴリズムでうまくできるかどうか実験してみよう、とかでもいいです。 -とにかく、なにか目的があって、そのためにOSを作る、そういう開発を経験してほしいのです。 ** (2) -目的を定めると、ときには、それってわざわざOSを作る必要なんてないんじゃないか?となってしまうことがあります。 -その場合は、いさぎよくOSを作るをやめてみましょう。OSを作る理由を無理に探す必要なんてないです。そうなってしまったら、もはや作ることが目的で、目的を探すことが手段になってしまっていますから。 -OSを作らずにもっと楽な方法で目的を達成できるのなら、ぜひそうしてください。それで目的が達成できておめでとうございます! -でもそうやっていろいろと目的を解決しているうちに、どうしても「これはOSを作るしかないんじゃないか」「もはやOSから作るのが一番簡単なんじゃないか」というテーマにぶつかることがあります。 -自作OSに慣れている皆さんは、OSを作るのがそれほど大変ではないということも知っているので、この直感は信じていいと思います。 -そういう場面に遭遇したら、そのときこそ、目的を持った自作OSをやりましょう! -目的があり、そのためにOSの開発が不可欠という状況になると、あなたの開発にはすさまじい説得力を持ちます。 -他のOS開発とは違うんだという空気が出てきます(笑)。 -ブログに書けば応援したり賛同したりする人がすぐに出てくるでしょう。 -是非その感覚を一度味わってみてほしいです。 ** (3) -「30日でできる!OS自作入門」の「はりぼてOS」のセキュリティを考えたことがあります。 -「はりぼてOS」はファイルを書くことができず、ファイルを消すこともできません。ネットワーク通信もできません。 -これはすごく安心な感じがしてきました。 -世間では「任意のプログラムを実行できる脆弱性」などということを言うのですが、任意のプログラムが実行できることの何が問題なのだろうと私は時に思うのです。 -もし「はりぼてOS」だったら、任意のプログラムを実行できたところで、悪さは何もできないわけです。せいぜい例外を起こして強制終了させられるくらいでしょう。 -一般論として、普通のOSで悪意あるプログラムが重要なファイルを消せてしまうのは、ファイルシステムの権限管理がうまくいっていないだけだと思うんです。OSの設計がよくないのです。 -根本的な問題はそこにあるような気がするのですが、なぜか対策はいつも「アプリに脆弱性があるからアップデートしろ!」・・・と。そうじゃなくてOSのアクセス権制御を見直すほうが根本解決に近いような・・・。 -そもそも脆弱性のないアプリなんてかけるんですか? -それはバグのないアプリを書けと言っているようなものでは?そんなの人間が簡単にできることなのかな。 -getsをやめてfgetsを使えばいいという意見を見たことがあって、まあそれは99.9%は正しいと思いますが、でも引数のnを間違えたらやっぱり脆弱性になりますよね。 -それに自前でバッファに書き込んでいたらやっぱりオーバーランはいつだって起こりうるわけです。 -人間はミスするのを前提にするべきでは? -だから、仮に悪意あるプログラムが実行できてしまっても、悪さができないためにはどうしたらいいかを考えるほうがいいと思うのです。 ** (4) -ということで、そういうOSを作ってみようかと考えるわけです、たとえば。 -たとえばもし、どんなにファイルを消しても、上書きしても、必ずundoできることを保障できたら、攻撃なんて怖くないでしょうか? -そんな気がしてきます。・・・あとは漏洩対策をどうしたものかなあ。 -パスワードで守るのはどこまで有効なのか。 -ダウンロードしたプログラムは、どんな権限を持って実行されるべきなのか。 -そういうことはもっと試行錯誤されるべきだと思うのですが、まだ十分ではないような気がします。 -そもそも任意のアプリが好きなだけパスをたどって任意のパスのファイルに到達できてしまうだけでも、私はおかしいと思っています。 -一般のアプリに対しては、もっと制限されるべきじゃないかと思っているのです。 ** (5) -セキュリティに限らなくてもいいです。とにかく「目的を達成するためにOSを作る」をいつか体験してみてください。 -とてもいい経験になりますよ! ** (6) おまけの余談 -http://www.adventar.org/calendars/1666 はご覧のとおり空きがいっぱいあります。だから全部埋めようという気持ちになりきれないのですが、でも埋まってきてあと少しになったら、頑張りたい気持ちになると思うんです。もし残り5マスとかになって、でも書き手が見つからなくて困ったら、私もまた何か書こうと思っています。 -ということで、協力者募集! * こめんと欄 -(所感です)「はりぼてOS」について存じ上げないのですが、ファイルやネットワークはサポートされていないだけであって、はりぼて内でプログラムを実行(できるのか?)する中で例えばring 0が取れてしまうバグがあれば何でもできるわけですよね。バグのないアプリが書けないのと同様にバグのないOSも書けないので、設計として大丈夫ですというのでは完全ではないと思います。Formally Verified OSなども実用には至っていないようでなかなか難しいのかなと思います。 -- ''ほげ'' SIZE(10){2017-02-13 (月) 10:21:58} -ご意見ありがとうございます。私はバグのないアプリをずっと書き続ける自信はないですが、バグのないOSなら十分な時間をかければ書けると思っています。世間のOSはたいてい大きすぎるので(私の作るOSは20KB~50KBくらい)、みんなで穴探しをすればかなりの程度まで根絶できると思っています。 -- [[K]] SIZE(10){2017-04-25 (火) 12:23:06} #comment
タイムスタンプを変更しない
* 手段としての自作OSのススメ -(by [[K]], 2016.12.09) ** (0) -この記事は、「自作OS Advent Calendar 2016」の12/09が空欄だったので急きょ書くことにした記事です。 --http://www.adventar.org/calendars/1666 -余談ですが、「自作OS」と「OS自作」というのは同じ意味なのか違うのか、違うとしたらどう違うのか、いつも悩みます・・・。 ** (1) -このアドベントカレンダの読者は、おそらく純粋にOSの自作を楽しめるすてきな人たちだと思っています。 -だから目的とかなくても十分に楽しいでしょう。それはとてもいいことです。 -でも、目的を持ってOSを作ることはまた別の楽しさがあるので、それを紹介させてください。 -たとえば既存のOSよりも自分のOSはここはすごいんだ(予定)、という何かがあるとかです。もしくは、このアルゴリズムでうまくできるかどうか実験してみよう、とかでもいいです。 -とにかく、なにか目的があって、そのためにOSを作る、そういう開発を経験してほしいのです。 ** (2) -目的を定めると、ときには、それってわざわざOSを作る必要なんてないんじゃないか?となってしまうことがあります。 -その場合は、いさぎよくOSを作るをやめてみましょう。OSを作る理由を無理に探す必要なんてないです。そうなってしまったら、もはや作ることが目的で、目的を探すことが手段になってしまっていますから。 -OSを作らずにもっと楽な方法で目的を達成できるのなら、ぜひそうしてください。それで目的が達成できておめでとうございます! -でもそうやっていろいろと目的を解決しているうちに、どうしても「これはOSを作るしかないんじゃないか」「もはやOSから作るのが一番簡単なんじゃないか」というテーマにぶつかることがあります。 -自作OSに慣れている皆さんは、OSを作るのがそれほど大変ではないということも知っているので、この直感は信じていいと思います。 -そういう場面に遭遇したら、そのときこそ、目的を持った自作OSをやりましょう! -目的があり、そのためにOSの開発が不可欠という状況になると、あなたの開発にはすさまじい説得力を持ちます。 -他のOS開発とは違うんだという空気が出てきます(笑)。 -ブログに書けば応援したり賛同したりする人がすぐに出てくるでしょう。 -是非その感覚を一度味わってみてほしいです。 ** (3) -「30日でできる!OS自作入門」の「はりぼてOS」のセキュリティを考えたことがあります。 -「はりぼてOS」はファイルを書くことができず、ファイルを消すこともできません。ネットワーク通信もできません。 -これはすごく安心な感じがしてきました。 -世間では「任意のプログラムを実行できる脆弱性」などということを言うのですが、任意のプログラムが実行できることの何が問題なのだろうと私は時に思うのです。 -もし「はりぼてOS」だったら、任意のプログラムを実行できたところで、悪さは何もできないわけです。せいぜい例外を起こして強制終了させられるくらいでしょう。 -一般論として、普通のOSで悪意あるプログラムが重要なファイルを消せてしまうのは、ファイルシステムの権限管理がうまくいっていないだけだと思うんです。OSの設計がよくないのです。 -根本的な問題はそこにあるような気がするのですが、なぜか対策はいつも「アプリに脆弱性があるからアップデートしろ!」・・・と。そうじゃなくてOSのアクセス権制御を見直すほうが根本解決に近いような・・・。 -そもそも脆弱性のないアプリなんてかけるんですか? -それはバグのないアプリを書けと言っているようなものでは?そんなの人間が簡単にできることなのかな。 -getsをやめてfgetsを使えばいいという意見を見たことがあって、まあそれは99.9%は正しいと思いますが、でも引数のnを間違えたらやっぱり脆弱性になりますよね。 -それに自前でバッファに書き込んでいたらやっぱりオーバーランはいつだって起こりうるわけです。 -人間はミスするのを前提にするべきでは? -だから、仮に悪意あるプログラムが実行できてしまっても、悪さができないためにはどうしたらいいかを考えるほうがいいと思うのです。 ** (4) -ということで、そういうOSを作ってみようかと考えるわけです、たとえば。 -たとえばもし、どんなにファイルを消しても、上書きしても、必ずundoできることを保障できたら、攻撃なんて怖くないでしょうか? -そんな気がしてきます。・・・あとは漏洩対策をどうしたものかなあ。 -パスワードで守るのはどこまで有効なのか。 -ダウンロードしたプログラムは、どんな権限を持って実行されるべきなのか。 -そういうことはもっと試行錯誤されるべきだと思うのですが、まだ十分ではないような気がします。 -そもそも任意のアプリが好きなだけパスをたどって任意のパスのファイルに到達できてしまうだけでも、私はおかしいと思っています。 -一般のアプリに対しては、もっと制限されるべきじゃないかと思っているのです。 ** (5) -セキュリティに限らなくてもいいです。とにかく「目的を達成するためにOSを作る」をいつか体験してみてください。 -とてもいい経験になりますよ! ** (6) おまけの余談 -http://www.adventar.org/calendars/1666 はご覧のとおり空きがいっぱいあります。だから全部埋めようという気持ちになりきれないのですが、でも埋まってきてあと少しになったら、頑張りたい気持ちになると思うんです。もし残り5マスとかになって、でも書き手が見つからなくて困ったら、私もまた何か書こうと思っています。 -ということで、協力者募集! * こめんと欄 -(所感です)「はりぼてOS」について存じ上げないのですが、ファイルやネットワークはサポートされていないだけであって、はりぼて内でプログラムを実行(できるのか?)する中で例えばring 0が取れてしまうバグがあれば何でもできるわけですよね。バグのないアプリが書けないのと同様にバグのないOSも書けないので、設計として大丈夫ですというのでは完全ではないと思います。Formally Verified OSなども実用には至っていないようでなかなか難しいのかなと思います。 -- ''ほげ'' SIZE(10){2017-02-13 (月) 10:21:58} -ご意見ありがとうございます。私はバグのないアプリをずっと書き続ける自信はないですが、バグのないOSなら十分な時間をかければ書けると思っています。世間のOSはたいてい大きすぎるので(私の作るOSは20KB~50KBくらい)、みんなで穴探しをすればかなりの程度まで根絶できると思っています。 -- [[K]] SIZE(10){2017-04-25 (火) 12:23:06} #comment
テキスト整形のルールを表示する