タグ

ブックマーク / oraccha.hatenadiary.org (10)

  • 「Virtualを仮想と誤訳した責任は我々にあります」 - Plan9日記

    書籍「ソフトを他人に作らせる日、自分で作る米国」を読んでいたところ、元日IBMの方によるタイトルの発言が飛び出した。この業界に長くいると、仮想記憶に仮想計算機と「仮想」という訳語にはまったく違和感を感じなくなってしまったが。。。曰く、IBMがVirtual memoryを発表したとき(MVSのことかな*1)、日IBMが仮想記憶と訳したのだそうな。『virtualは「事実上の」「実質的」という意味であり、virtual memoryは「来のメモリーではないが事実上メモリーとして使える技術」を意味する。』 大学時代の恩師も次のように言っていた。 「仮想」という概念が、コンピュータの世界に入ったのは、19751965年のことである。MITがMULTICSという汎用大型TSSの構想を発表した。これが現在の、パソコンネットワーク時代の幕開けの狼煙であった。この中の技術に「仮想記憶」の概念が含

    「Virtualを仮想と誤訳した責任は我々にあります」 - Plan9日記
    tyru
    tyru 2014/09/26
    『virtualは「事実上の」「実質的」という意味であり、virtual memoryは「本来のメモリーではないが事実上メモリーとして使える技術」を意味する。』
  • UTF-8小話 - Plan9日記

    UTF-8Wikipediaに書かれている通り、 当初は、Plan 9で用いるエンコードとしてベル研究所で考案された。 ものだけど、最近古屋で見つけた「インターネットヒストリー」の村井純先生のあとがきに気になる記述があった。 ちょっと長くなるけど引用する。 かなり昔の話だが、ベル研のUNIXを作ったオペレーティングシステムを担当していたグループにオペレーティングシステムについての講演を頼まれたときに「日語」の話をしたことがある。正直にいうと、ケン・トンプソンやデニスリッチなど、コンピュータ界のノーベル賞といわれるチューリング賞をとった錚々たるメンバーを前にして、当時「ただの研究者」であった自分がオペレーティングシステムについて何を話したらよいのだろうと悩んでしまった。結局開き直って話すことにしたのが漢字の問題だったわけだ。しかし、このときの講演の内容が、彼らにとっては1バイト1文字と

    UTF-8小話 - Plan9日記
  • grepの話 - Plan9日記

    正規表現によるパターンマッチングは、UNIX/Plan9プログラミング環境に浸透している。正規表現ツールとしてもっとも有名なのはgrepだが、UNIXにはegrep、fgrep、zgrepなどの派生コマンドがある。*1一方、Plan9に存在するのは、grep(1)だけで、拡張正規表現、UTF-8をサポートしている。古典的な拡張正規表現しかサポートしていないので、Perl互換正規表現(PCRE)にあるような、\d\D\s\S\w\Wなどはサポートしてない。実装したのはKen Thompsonだが、彼は今まで何回grepを書いているんでしょうねぇ。 ソースコード 正規表現はお好き? 正規表現エンジンの実装は、DFA(決定性有限オートマトン)とNFA(非決定性有限オートマトン)を用いた方法に分けることができる。egrepやPlan9のgrepはDFAベースである。GNU grepは、前方参照がな

    grepの話 - Plan9日記
    tyru
    tyru 2012/02/07
  • ls(1)の由来とか - Plan9日記

    TwitterのTLでもMulticsの話がぽちぽち出るようになったので、今日は関連する小ネタを。 UNIXで無意識で使っているls(1)コマンド。manページには"list directory contents"とか書かれているので、listの短縮形だとばかり思っていたら、Wikipediaによるとlist segmentsの略なんだそうな*1。どうもその名前の由来はMulticsにありそうだ。 セグメントとはMultics用語でファイルのこと。ただしファイルとセグメントは等価ではなく、ファイルが二次記憶を抽象化した概念であるのに対して、セグメントは二次記憶であることを隠蔽する概念である。UNIXのメモリマップドファイルに近いけど、歴史的にワンレベルストアとか呼ばれる。Multicsの世界では、UNIXのopen/closeに対する操作がなくて、セグメント名が動的リンカによって解決される

    ls(1)の由来とか - Plan9日記
  • LXC (Linux Containers) - Plan9日記

    最近、LinuxLXCで遊んでいる。Linux上にはVServerやOpenVZというコンテナ技術がすでに存在するのに、なぜLXCなのか。カーネル2.6.29でメインラインへのマージが完了しているので(残っているホットな話題の一つはチェックポイント・リスタートか)、カーネルパッチが不要になのと同時に、将来性がありそうだから。現時点で実戦投入するには、機能的に物足りないし、安定性も未知数だけど、時間誰かが解決してくれそうな気がする。と思っている割にはドキュメントが少ないのは、なぜだろう? コンテナ技術の肝は、コンテナ間の隔離、資源管理をどう実現するかにあるが、この点は名前空間の導入と、cgroup(control group)の利用で実現している。LXCの実装の経緯はよく知らないが(フランスのIBMの人たちが開発していたMetaClusterプロジェクトが基になったらしい)、名前空間の実装

    LXC (Linux Containers) - Plan9日記
  • findとgrepの合わせ技 - Plan9日記

    カーネルなど大規模なソースコードを検索したい場合、findとgrepを使ったり、タグジャンプを使うだろう。Eclipse使う場合とか異論はあると思うけど、今日はfindとgrepの合わせ技について調べてみた。 普段はxargsを噛ませて、 $ find . -name \*.c | xargs grep hogehogeとかやるんだけど、findの-execオプションを使った場合とどれくらい性能差があるのだろうか? 評価環境はVMWare Fusion上のUbuntu 11.04。Linux kernel 2.6.28.10のfs以下で、まずは次の3パターンを比較してみた。3回測定してtimeの最良値を示す。おそらく対象ファイルはファイルキャッシュに載っている思う。 $ time find . -name \*.c -exec grep wait_event_interruptible {

    findとgrepの合わせ技 - Plan9日記
    tyru
    tyru 2011/05/08
    つい-exec使っちゃうな。意味が変わらん場合はxargs使おう
  • マウス対キーボード - Plan9日記

    (2011-03-24:しばらく編集できなそうなので、とっかかりの段階で公開) UNIXユーザがPlan 9を使おうと思ったときに、おそらくもっともフラストレーションを感じるのはマウス操作を多用しなければならないことだろう。マウス操作に対するもっとも多い不満は、カーソル移動、それが矢印キーであろうが(viなどのように)hjklキーであろうが、と比べて遅いということだ。これは当ではない。マウス操作は遅いようにみえて、実は早いのである。 http://www.asktog.com/TOI/toi06KeyboardVMouse1.html http://www.asktog.com/TOI/toi22KeyboardVMouse2.html http://www.asktog.com/SunWorldColumns/S02KeyboardVMouse3.html 簡単にまとめると、カーソル操

    マウス対キーボード - Plan9日記
  • シグナルの誕生 - Plan9日記

    今日はシグナルの歴史を調べてみたいと思う。シグナルというのはUNIXにおけるプロセス間通信の一手段であるが、CPUにおける例外のように、プロセスにとって非同期に発生するものなので、その実装はいろいろ面倒くさい。したがっていろいろ問題もあり、長年の改良の歴史を経て、今のシグナルの仕様に落ち着いた*1。BSDやSVR、そしてPOSIX標準になるまでのシグナルの拡張については文献が多いが、V6/V7以前は知られていないのでは。ということで、私の出番w まぁ、わかったところで喜ぶのは相当な好事家だろうが*2。 いきなりV7以前の話を始めるのも何なので、前提知識として、FreeBSD版悪魔「4.7.1 シグナルの歴史」からちょっと長いけど引用する。 シグナルは、ユーザが暴走したプログラムを強制終了する場合など、例外的なイベントをモデルとして当初設計された。それは、汎用のプロセス間通信として使われる

    シグナルの誕生 - Plan9日記
  • さくらVPSでPlan 9 - Plan9日記

    いろいろ動かないなぁと探っていたんだけど、何のことはないパーティションIDをMINIXからPlan 9に変えるのを忘れていて、9loadがパーティションを見つけられなかったというオチで、結局MINIX3と同じアプローチでPlan 9をさくらVPSで動かすことができた。GrubからちゃんとチェインロードでPlan 9をブートできることを確認できたのは収穫だった。回り道したけど、今まで気にすることがなかったブート周りの仕組みがわかったので、合わせてメモを残しておく。 方法は「さくらVPSでMINIX3」とまったく同じで、スワップパーティションにddでPlan 9のディスクイメージを書き込む。fdiskでスワップパーティションのパーティションIDを0x39 (Plan 9)に変更することを忘れないように。 次のスクリーンショットがさくらVPSでPlan 9を起動したところの図。 ただしネットワー

    さくらVPSでPlan 9 - Plan9日記
  • ls(1)の実装からみるUNIXとPlan 9の思想の違い - Plan9日記

    lsはもっとも使用頻度の高いUNIXのコマンドだろう。あたりまえに使っているlsだが、よく考えると不思議な挙動がある。具体例を示すと、lsとls | catの出力が異なるのはなぜだろうか? lsの出力はターミナルの幅に合わせて多段に表示されるが、パイプを介す、またはリダイレクトすると1ファイル=1行になる。これは出力をwcやgrepなどにわせるような連携を考えると当たり前の挙動だ。でも、このような挙動の違いはどこから来るのだろうか。答えは簡単で、ls内部で標準出力がターミナルかどうかをチェックして動作を変えているのである。NetBSDのls.cを見てみると、ls_main関数の先頭でisatty(3)を使って標準出力がターミナルなのかチェックしている。 一方、Plan 9では、lsとls | catの出力は同じである。そして、lsが出力を多段組みする機能を持たない代わりに、lcという別コ

    ls(1)の実装からみるUNIXとPlan 9の思想の違い - Plan9日記
  • 1