* Kの開発メモ #0007 -(by [[K]], 2013.09.21) -ここは川合の開発の進捗などをレポートするところです。 ** 2013.09.02 Mon -rev2([[page0068]], [[page0067]])に向けて少しずつ作業中(キャンプが終わったので開発ペースはかなり下がっています、すみません)。 ** 2013.09.06 Fri -OSECPUの何がすごいって、以下の3つを僕が一人でそろえたことだと思う。別に僕じゃなくてもいいんだけど、とにかく一人でやったので、方針が一貫している。 --VM(osecpu.c):シンプルだけど必要な機能が一通りそろっている、しかもセキュア --専用アセンブラ:アセンブラだけどC言語風に書けるので、普通のアセンブラよりは大規模な開発に向いている --フロントエンドコード体系:世界最高の機能密度を達成 -これを半年でやったのも僕としてはすごい。しかしこれは半年でできたことがすごいというよりは、半年という枠が最初にあって、その中でできることをやっただけという感じだけど。 -ASKAの存在を軽く見ることはできるけれど、もしこれが無かったらオセロやテキストエディタをアセンブラで(=レジスタや命令長を意識して)作る気になれただろうか。だからASKAは機能密度の向上に大きく貢献していると思う。 ** 2013.09.14 Sat -今日の成果: --http://osecpu.osask.jp/download/osecpu076d.zip --このアーカイブにはext_tols/がないので、osecpu064a.zipからコピーしてください。 --アプリの機能密度向上 --syslib.oseの型推論に関するバグを修正しました(thanks: yaoさん) -kemecoさんからの指摘: #include "osecpu_ask.h" junkApi_malloc(P01, T_SINT32, 4096); LIMM(R01, 128); PADD(P02, T_SINT32, P01, R01); PADD(P02, T_SINT32, P01, R01); --こう書くとうまく行かないそうなんだけど、とりあえずver.0.76で試したら問題なさそうでした。ということでこの件は保留。 ** 2013.09.18 Wed -今日の成果: --http://osecpu.osask.jp/download/osecpu077d.zip --このアーカイブにはext_tols/がないので、osecpu064a.zipからコピーしてください。 --osecpu.exeのPLMEMに関するバグを修正しました(thanks: yaoさん)。 --osectols.exeの関数ラベルに関するバグを修正しました(thanks: yaoさん)。 -近況: --osecpu-basicはBASICな文法からC言語風の文法に徐々に変わって、ついに300コミットを超えました。すごい! --kemecoさんもテトリスを作り始めているようです。 ---https://gist.github.com/takeutch-kemeco/6607046 ---kemecoさんも、というのは、実は僕もIrisさんも作っていたからです。Irisさんのものはそのうちまたアーカイブに同梱しようと思います。 ---僕の分は実はosecpu076dに既に入っていて、app0089.tk5です。 ---みんなで作って遊ぶのは面白い! ** 2013.09.19 Thu -kemecoさんのテトリスでは、関数呼び出しの際のリターンアドレスがP30以外になっていて、「さすがはコンパイラ作者だなあ」と思いました。おもしろい。 ** 2013.09.20 Fri -Brainfuckのインタプリタは、107バイトまでしか行かない!98バイトはDOSの.COMファイルっぽいのですが、これは手ごわい! --と思ったら98バイト版はソースをファイルから読まないのかー。僕のはもちろん指定したファイルを読み込みます。 --ファイルから読むバージョンを探したら138バイトでした。余裕の勝利! --でもこのDOS版のプログラム、ファイルのクローズを省略すれば134バイトにはできそうだな・・・。それでもOSECPU版の勝ちだけど。 ** 2013.09.30 Mon -10月になったら、リリース版を更新したいです。 -yaoさんがLispのドキュメントを書いてくれたので感想も書きたいです。 ** 2013.10.11 Fri -会社の仕事が忙しくてなかなかこっちに取り組めないでいます。っていうか、これが普通の社会人ですよね。 -さて、yaoさんのドキュメントを読んだ感想を書きたいと思います。せっかく書いてくれたのに、遅くなってごめんなさい。 --https://github.com/yuta-aoyagi/osecpu-lisp/blob/master/tutorial.md --LISPにS式とかアトムとかいうものがあって、それをいろいろ操作できそうだなということは僕でも理解できたのですが、そこから先が分かりません。 --なんというか、例えばchars(app0036)みたいなアプリを作るにはどうしたらいいのか。もしくはapp0006みたいなものはどうやったら作れるのか。 --たぶん今のバージョンは数値演算をサポートしてはいないのですよね。だから仮にputchar()やdrawPoint()がサポートされたとしても、何をどうしたらいいのかまだわかりません。 --なんか文句ばかり書いてしまいましたが、本音は、文句というよりも今後に超期待という感じです。よろしくお願いします!>yaoさん ** 2013.10.18 Wed -今日の成果: --http://osecpu.osask.jp/download/osecpu078d.zip --このアーカイブにはext_tols/がないので、osecpu064a.zipからコピーしてください。 --Irisさんのかっこいいテトリスをアーカイブに追加しました(thanks: Irisさん)。 ** 2013.10.19 Sat -OSC一日目: --OSASKやっぱすごいといってもらえた。 ---http://movapic.com/pic/2013101915594552622de1c934a --yaoさんがtwitterで遊びに来てくれそうな感じだったけど、結局会えませんでした。 ---私の長すぎる休憩のせいかなと心配したら、寝過ごしたそうです。それならしょうがない! --mandel59さんがOSECPUの資料をていねいに読んでくれていました。 --2014春のときは、もっとブースを広くしよう。隣接希望でセキュリティキャンプブースを作ろうと思う。そうすれば2ブースになる。 ** 2013.12.24 Tue -まだ1024バイトコンテストの集計をやってない・・・すみません! -今日は、kemecoさんのtwitterの書き込みがおもしろかったので、そこから話をあれこれ書こうと思います。 -kemecoさんはLinux用のOSECPU-VMでキー入力まわりをどうするか悩んでいて、/dev/input/を使う方法だと詳細な情報がとれるが、副作用として他のアプリへのキー入力も取得できてしまって、それはつまりキーロガーを作れてしまうことなので、これはOSECPU-VMの目指すセキュアとは相容れないのではないかと書かれています。 -詳細が分かってないので的はずれかもしれませんが、この件に関してあれこれ考察したいと思います。 -まず、OSECPU-VMがシステムのいろいろな情報にアクセスできてしまう、他のアプリの情報が見えてしまう、このことそのものは問題ではありません。でもOSECPUアプリには見せてはいけません。つまりVMはそれらの情報がユーザの知らないうちにアプリに渡されてしまうことがないようにブロックしなければいけません。 --ユーザがシステム上の重要な情報をファイルに書き込んでおいて、それをあえてOSECPUアプリに渡すのなら、それはユーザがそうしたくてやっているので、OSECPU-VMの落ち度ではないです。 -次に、OSECPU-VMを使うと、簡単にハッキングツールが作れてしまうという状況について考えてみます。これは今回の件とは無関係ですが、ふと思いついた物です。 -これはちっともまずくありません。むしろOSECPU-VMは優秀です。セキュリティホールがあるから攻撃されるのです。OSECPU-VM以外の物にセキュリティホールがあるのは、OSECPU-VMのせいではないのです。攻撃しやすくなってしまうのは、OSECPUが便利だからです。僕はそう考えます。 -一方で、OSECPU-VMを動かすためにOSのセキュリティ設定を緩める必要がある、みたいな状況はどうでしょうか?これも今回の件とは無関係の思いつきです。 -これはよろしくないですね。それならAltの左右が区別できず、どちらで入力しても左Altと認識されてしまう、みたいな制限事項のほうがマシです。OSがアプリに対してこれらをうまく扱えないのがいけないのです。OSECPU-VMのせいじゃないです。僕はそう思います。 -僕が実現したい「セキュリティ」は、OSECPUアプリを使っている限り、システムは絶対に破壊されないし、システムが落ちたりすることもないし、情報は盗まれない、というものです。この理想を実現するのはVMの役目なので、VMは悪意あるアプリからシステムを守らないといけません。だからVMがシステムを破壊するかもしれない能力を持ち、情報を盗むかもしれない能力を持つことは問題ではないです。でもアプリにやらせてはいけません。 ** 2014.03.14 Fri -今年の予定。 -基本的にセキュリティキャンプがないと、時間がほとんど確保できないので、本格始動は5月くらいからです。 * こめんと欄 #comment