はじめてのOSコードリーディング

Lions' Commentary on UNIX 読書会で親交のあった@superhogeさんが「はじめてのOSコードリーディング」を上梓される(「はじめてのOSコードリーディング」という本を出版します)。読書会の活動が書籍として結晶したことに感動するし、自分が生まれた頃のソ…

スパコンとは何か

SC2012に向けての機内で金田先生の「スパコンとは何か」を読んだ。2009年の京、そして2011年のHPCIの事業仕分けに仕分け人として関わった東大情報基盤センタの金田先生によるスパコン解説本である。京はLLNLのSequoia (BG/Q)に抜かれてTOP500の2位になったが…

seek(2)のwhence引数の謎

久々にUNIXネタで、seek(2)の変遷について調べてみた。seekの変遷というと、最大ファイルサイズの拡大にしたがってlseek()、llseek()といった具合にアドホックにシステムコールが追加されている、って話と思われるかもしれないが、違う。今日は第3引数のwhen…

Windows 8でHyper-VならぬVirtualBox環境を構築

盛り上がっているのかどうなのか知らないけど、Windows 8が発売になった。私はボリュームライセンス版を手に入れていて、ここ1週間ぐらい使っている。あまりWindows的な使い方はしてないが、やったことを忘れないようにメモ。毎日持ち運ぶにはrMBP15はちょっ…

Open vSwitchの存在意義はOpenFlowだけじゃない

最近、Open vSwitchについて調べたことを、某所でお話しする機会があったので少し忍ばせた(「I/O仮想化最前線」)。スライドのP37から数枚がそう。Open vSwitchはOpenFlowに対応したソフトウェアスイッチということで大いに注目を集めたし、自分もそのコン…

Open vSwitchでGREを使うには

NiciraがVMWareに買収されたというニュースが入ってきたが、今日はGRE(Generic Routing Encapsulation)について調べてみる。Linuxカーネルの実装とは別に、Open vSwitchはGREのユーザレベル実装を持っているようだ。ソースはdatapath/vport-gre.cかな。使…

最低限押さえておけばよさそうなOpen vSwitchのQoS機能

どこかに書いてありそうで、いまいちまとまってなさそうなので、メモ。基本的にQoS機能としては、ingress policingとegress shapingをサポートしている。ingressとegressはvSwitchから見てなので、 | VM | (tap0) | vSwitch | (eth1) とかいう構成だとすると…

Open vSwitchをKVM環境で使う

ここ以来、なかなかコードを読めていないのだけど、とりあえず環境を作ったので、忘れる前にメモ。まずはOpen vSwitchをLinux標準のブリッジの代わりに使うことを考える。Open vSwitchのバージョンはv1.6.1。OSはDebian GNU/Linux 7.0 (testing)。Debianのパ…

スパコンにまつわる雑談

前回に引き続き、スパコンの話題でお茶を濁す。ISC12が間近に迫り、TOP500でSequoiaが京を抜き1位になるのか注目される今日この頃、スパコン関係の本が二冊出版されたので早速買った。姫野ベンチマークで有名な姫野龍太郎著「絵でわかるスーパーコンピュータ…

計算機と天気予報

気象というのはスパコンの有力なアプリケーションの一つである。地球シミュレータは、名前からして地球規模の環境変動をシミュレーションすることを目的に作られた計算機だし、ICPP報告書の地球温暖化予測にも活用された。また、京(HPCI)でも戦略プログラ…

カーネルモジュールだけをコンパイルする方法(Debian GNU/Linux)

なんかしばらくすると忘れていたのでメモを残しておく。 linux-source-2.6.32パッケージをインストールしておくと、/usr/src/linux-source-2.6.32.tar.bz2がインストールされる。これを展開して、カーネル全体ではなく、例えばKVMだけといった具合に必要なモ…

Citrix Cloud Vision 2012 Spring

4月19日都内でCitrixのイベントがあったので参加した。といってもほとんど内職していたので、記憶に残っている部分についてメモを残しておく。Citrixを意識したのは、XenSourceの買収したときだったか。シンクライアントの会社がなぜにとか思った。そして去…

「エラー忘却型コンピューティング」なんて言い出したのは誰だ!

正確にはFailure-oblivious computingを「エラー」忘却型コンピューティングって訳したのは誰だという話。訳す過程でfailureがerrorに入れ替わっている。情報系の人間は「名前重要!」とか言う割に、障害(fault)、異常(error)、故障(failure)という用…

Cassandraソースコードリーディング その1

Cassandraは言わずとしれたNoSQL型データベース。もともとFacebookで開発されたものが、Apacheに寄贈され、オープンソースプロジェクトとして今も開発が続けられている。Cassandraに関するドキュメントは山のようにあるので*1、ここから新しい情報は得られな…

Open vSwitchソースコードリーティング その1

昨日、@oshothebig主催のOpen vSwitchソースコードリーディングに参加してきたので、メモ書きをつれづれと。Open vSwitchはOpen Flowにも対応した仮想スイッチで、最近Linux 3.3にコードがマージされたというニュース「Open vSwitchがLinux 3.3でメインライ…

インターネットの生み出す力

年末年始にかけてNTT DoCoMoによる3Gネットワークの障害話をよく耳にしたけど、これに関連したblog「レイヤー越えが出来ない人たち」、「レイヤバイオレーション」が面白かった。システムは階層化されており、各人(組織)が得意とする階層もあるが、システ…

「割込み」の名付け親

前回、割込みの起源について触れたけど、もう少し深掘りしてみたいと思ったら、たまたま読んでいた高橋秀俊氏の伝記にPC-2の割込みの話が出てきたので、紹介しようと思う。 同氏は計算機屋からは計算機のパイオニアの一人だが、「物理の散歩道」シリーズで知…

スペースシャトル用プログラミング言語HAL/S

ずいぶん間が空いてしまったけど、Make:Japanの記事に取り上げられていたスペースシャトルの制御に用いられたリアルタイムプログラミング言語HAL/Sに関する電子書籍が面白かったので、これを取り上げよう。HAL/Sは当初、宇宙機汎用言語として設計されたのだ…

ちょっと普通じゃないTremaの動かし方

第2回クラウドネットワーク研究会「OpenFlow祭」でも好評だったOpenFlowコントローラフレームワークTrema。TremaをVMWare FusionのLinux上で動かしてみたときのメモを残しておこう。OpenFlowとPlan 9の関係は?と聞かれたけど、これには触れないことにしてお…

FUSEでUNIX V6ファイルシステムをマウント

Lions本合宿のネタに、ユーザ空間でファイルシステムを作ることが出来るMacFUSEを使って、UNIX V6ファイルシステムをマウントできないかと考えていた。@7shiさんや@superhogeさんとは別アプローチとして。さっそくMacFUSEのソースコードをダウンロードし、ま…

SIMHのreadline対応

懐かしのOSで遊ぶために欠かせない計算機シミュレータSIMH。そのモニタモードをreadline対応してみた。例えば「PDP-11のブートストラップ」で示したように、実行時の解析を行うには、ctrl-eで入れるモニタモード?が非常に有用だ。ただし、このモニタモード…

デバイススイッチの実装

第11回Lions本勉強会にインスパイアされ、UNIX V6、V7そしてV1へさかのぼりつつ、カーネルとデバイスドライバの界面であるデバイススイッチの実装について考えてみた。UNIXではデバイスもファイルとして見せた方が汎用的で便利ではということで、スペシャル…

ls(1)の由来とか

TwitterのTLでもMulticsの話がぽちぽち出るようになったので、今日は関連する小ネタを。 UNIXで無意識で使っているls(1)コマンド。manページには"list directory contents"とか書かれているので、listの短縮形だとばかり思っていたら、Wikipediaによるとlist…

9front

取り上げなきゃと思いつつ時間が経ってしまったが、ようやくちょっと時間が出来たので、9frontをインストールしてみた。9frontはPlan 9からforkしたOSである。主要開発者がベル研から抜けてしまい、フルタイムでPlan 9に関わる人がいなくなってしまった現在…

buildrootでカスタムディストリビューション作成

先日、SH7706LSRにDebianをインストールしてみた。ただ、Debianは公式なサポートがされているわけじゃないので、使い続けるのが不安という一面があった。また、si-linuxのリポジトリからSH3版のetchが消えて、なぜかsargeにダウングレードしたことも大きい(…

渕一博と仮想マシン

渕一博。というと「第五世代コンピュータ」を率いた人という印象しかなかったのだが、彼が若い頃(1969年)にACM SOSPで発表した論文「A Program Simulator By Partial Interpretation」を読んで驚いた。これはまさに仮想マシンである。これはもっと知られてよ…

Multicsを振り返ってみたい

Coders at Workという業界の有名人に対するインタビュー集を読んでいるが、プログラミング寄りの切り口が面白い。さて、本書のインタビューイの1人としてKen Thompsonが登場する。ベル研でProject MACに関わる以前の話から、現在Googleで何をやっているかと…

SH7706LSRにDebian 5.0をインストール

はじめに 8000円弱でSH3で遊べるボード、SH7706LSRにDebian 5.0 (lenny)をインストールしたときのメモ。Linuxのポーティングに関する情報は、三岩さんのページにまとまっている。また、Debian etchを動かすという話はいくつか見つかるのだけど、さすがに古い…

findとgrepの合わせ技

カーネルなど大規模なソースコードを検索したい場合、findとgrepを使ったり、タグジャンプを使うだろう。Eclipse使う場合とか異論はあると思うけど、今日はfindとgrepの合わせ技について調べてみた。普段はxargsを噛ませて、 $ find . -name \*.c | xargs gr…

fork/execモデルの起源

UNIXを勉強すると、forkとexecが分離されていることに疑問を持ち、パイプやリダイレクトを使ってシェルを作り、その合理性に感動するというのが、お決まりのパターンになっているが、なぜこんな実装が生まれてきたのだろう。WindowsのネイティブAPIであるNtC…