Category: UNIX

歴史から理解すると視界がクリアになる

こちらのなぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか?は、LinuxやUNIXのディレクトリ階層の由来がわかって、視界がすっきりしました。/varが変数のvariableからの由来で、どうして変数が必要だったかも興味深く読ませていただきました。

新しく学習する対象というものは、それについての周辺事情が把握できていないことが多いので、どうしても丸暗記になりがちです。そのためなかなか自分の頭の中に定着させることが難しくなります。

そんなときにはちょっと回り道のようでも、その対象の歴史や経緯から入るといいのかなあと感じました。本来学校の学習でもこのようなアプローチがいいのでしょうが、特に日本の学校の勉強は受験勉強であって学習ではないので、致し方ありませんね。私がコンピュータ系の書籍で洋書の翻訳版が好きなのは、こんな一見回り道に思えることから解説しているケースがよくあるからです。

私も映像業界を20年以上やっていると、過去からのVTRの変遷などは肌で感じてきたので理解しやすいのですが、最近出てきたHD系のVTRは肌で触れていないのでなんとなく、縁遠く感じてしまいます。

SGIからOctane3が出る?!(追記あり)


勝手な解釈で恐縮ですが、SGIはすでに整理段階に入っているとばかり思い込んでいました。かつてグラフィックススーパーコンピュータといわれたOnyxをはじめ、主に画像処理に長けたワークステーションと言えばSGIという一時代を築きました。2006年にチャプター11連邦破産法11条を申請してから、収束するものとばかり思っていました。

それから3年が経って、Octane3という製品名で個人向けスーパーコンピュータを発表しています。以前の製品名をそのまま生かしたネーミングは、SGIはまだ死んでいないという声のように私には聞こえました。

こちらの記事によると、Octane3はXeon5500プロセッサベースで、最大80coreの構成まで拡張できるそうで、NVIDIAもしくはGPGPU(general-purpose computing on graphics processing units)をサポートするそうです。

この画像から見るとプロセッサボードらしきものは10枚実装されているので、8core/ボードなら80coreということになるのでしょう。また、以前のOnyx/Originシリーズのような200V電源ではなく、オフィスで使える電源と書かれているので、100Vもサポートしているのかもしれません。ただ、十分注意して電源を用意しないと、すぐにブレーカーが落ちるでしょう。

気になるのは価格設定だけですが、SGIがもう一度一時代を築くつもりなら、思い切ったプライスが必要だと思います。改めてUSのサイトを見ると、SGIにはいろいろな製品ラインナップが揃っているのですね。不勉強でスミマセンでした。

(2009.9.23 20:45 追記)
いつも新鮮な情報をいただいているyebo blogさんで、価格などの情報が公開されています。それによると、

  • 価格は、約8,000ドル(〜?)
  • OSはMS HPC Server2008、SUSE Linux Enterprise Server、Red Hat Enterprise Linux
  • メモリは最大12スロットで、1TB可能

価格はおそらくエントリーモデルが8,000ドルからだと思います。Max構成でいくらになるかが興味津々で、夜も眠れません(笑)

UNIXシェルスクリプト逆引き大全


年末年始にかけてシェルスクリプトにどっぷりと浸かっていましたが、その中でとても役に立ったので紹介しておきます。UNIXシェルスクリプト逆引き大全は、333の極意というサブタイトルのように、具体的な使い方が豊富です。

この手の逆引き本のいいところは、時間があるときにパラパラめくっていると、「この機能を使えばこんなことができそうだ」という発想がひらめきやすい点だと思います。また、最初のページから順番に読み進めていくことが不要なので、好みの部分から読み始められます。うれしいのは一応OS Xもサポートしているところです(笑)bashを使っている分にはそれほどOS Xを意識することはないのですが、やはり対応しているというだけでも好感が持てますね。

この中で刺激的だったのは、以前も書きましたがコマンドラインツールからバイナリファイルの中身を編集できることでした。ddコマンドを使うというのがその答えなのですが、これまでにはそんな使い方をしたことがありませんでした。ほんとシェルというのは奥が深くて、おそらく一生お付き合いしていくことになると思います。

食事でメニューを眺めるようにこれを見ていると、面白い発想が浮かぶかもしれませんよ。

正月はシェルスクリプト

元旦早々から今年は時間があったので、シェルスクリプトにどっぷりです。当初はコマンドラインではできなさそうなことをやることからCocoaのお世話になるのかと思い、年末に定番の書籍は入手していました。しかし、調べていくとシェルスクリプトでも大抵のことはまかなえるのがわかりました。

一番意外だったのは、バイナリファイルの中を調べたり、書き換えたりすることもできるのですね。これはddコマンドを使うとできるのですが、こうやってみるとUNIXコマンドの底力を再認識できました。歴史がある分だけ、いろんな要求への解決策も網羅されているので、ネット検索すると大抵は解決できますね。先駆者の方々に感謝します。

ddコマンドでファイルの中を調べる前に便利だったのが、hexdumpコマンドでした。これはMac OS Xにも含まれていて、GUI版のツールがなくてもとりあえずHEX番地とデータの一覧が見られます。hexdumpを「-C」オプションで起動するとこれが実現できます。

ddコマンドでファイルの中の一部分だけ取り出すにはこうやればできました。

dd if=./sample.bin of=./outfile bs=1 skip=378 count=11

ifとofで入出力のファイルを指定して、bsを1にすれば、skipで指定したバイト数だけファイルの先頭から移動してcountで指定したバイト数だけ取り出せます。

私の場合シェルスクリプトを作成するには、コンピュータを使うためのいろんな知識を総動員しないと完成できません。本来はコマンドの自動実行のための仕組みだったと聞きますので、どのように自動化するかの手順を考えていくのが基本です。頭の体操に加えて、成果物も出来上がるのでシェルスクリプトは正月には最適です(笑)

久しぶりにIRIX

久しぶりにSGIのIRIXに触れてきました。そして、ハマってきました。ネットワークの設定は、

IPアドレス・・・/etc/hosts
サブネットマスク・・・/etc/config/ifconfig-1.options
DNSサーバ・・・/etc/resolv.conf
デフォルトゲートウエイ・・・/etc/config/static-route.options($ROUTE $QUIET add net default 192.168.XXX.1)

とりあえずこれを再設定して、

/etc/init.d/network stop ; /etc/init.d/network start

これで変更できているはずだったのに、pingでNetwork is downと出る。久々だったので忘れている箇所があったかと念入りに確認したけれど、結局時間切れになってしまいました。IRIXはもういいやなんて頭の中からすっかりdeleteしていたツケがここにきてやってきたわけです。週明けに頭をrebootしなくては。

UNIXコマンドラインのTIPS満載

IDEA*IDEAさんとこで紹介されていたUNIXのTIPSサイトネタです。フーンなんて軽い気持ちで読み始めたのですが、進んでいくうちに体の芯が熱くなってくるのがわかります。自分にとっての大発見なTIPSが盛りだくさんでした。

その一例を揚げると、

!/etcと:pオプション
/etcからはじまるコマンドを再度打ちたい場合は、!/etcでOKですね。でもわかっていればいいですが、いきなりこうやって大変なことになることもあるかもしれません。そこで!/etc:pとしておけば、まずはどのコマンドを実行されるかを表示してくれます。これで確認しておいて実行させればよいですね。

^A^B
前回のコマンド中、AをBに置き換えてくれるというコマンドですね(1回だけ)。ちなみに^Aだけだと、Aだけを消去して前回のコマンドを実行してくれます。これも覚えておくとよいかも。

このふたつはかなりズズーンときました。さらにこちらのUnix Command-Line Kung Fuに行くと、もっと盛りだくさんのようです。英語のドキュメントですが、コマンドの部分を見れば理解できるでしょう。

昔々Macの雑誌を毎月楽しみに読みあさっていた頃、一番好きなネタはTIPS集でした。今となっては雑誌を滅多に買うことがなくなったので懐かしい昔話ですが、それに代わって今ではネットでコマンドラインのTIPSを見るとついつい見入ってしまいます。

Cygwin使えばWindowsへsshできる

名前だけは聞いたことがありましたが、昨日Cygwinの恩恵にあずかりました。Windowsは独自路線を行っているので、外部からsshなんかではアクセスを許してくれません。そんなときに便利なのがこのCygwinなんですね。

AutodeskのInfernoシステムには、Backburnerというレンダリングノードを管理するシステムがインテグレートされています。インストールマニュアルを見ればLinux版もあるようですが、Cleaner絡みのせいなのかWindowsでbbmanagerが動いています。

何かあったときにはコンソールを触りにマシンの前に行けばいいのですが、物理的な事情でそうもいかないこともあります。そんなときにはこのCygwinはそれなりに役に立ちます。せっかくなのでCygwinのことを少しだけ調べてみました。引用元はこちらです

Cygwinとは RedHat (Cygnus Solutions は RedHat に買収された)で行 われているプロジェクトで、GNUのツールをWindows上で動かそうというものです。実際に はWindowsAPIにcygwin1.dllという皮をかぶせてUnixのAPIを使えるようにして います。 Unix系のOSを使ったことのない人には関係のない話でしょう。 Unixを使っていて(使っていた)、Windowsも使うような人にはいいかも。

だそうです。こうやって見てみると、元祖UNIX時代から使われ続けているターミナル接続というのは本当に小さな巨人ですね。

man hier

Linuxではmanコマンドというオンラインヘルプのような仕組みがありますが、man hierはhierというコマンドに対するヘルプではありません。これを実行すると「ファイルシステム階層の説明」というドキュメントが確認できます。例えばこんな感じで簡潔に解説されます。

  • /・・・ルートディレクトリ。ここが階層の起点となる。
  • /bin・・・このディレクトリには、シングルユーザーモードでシステムの起動や修理を行う際に必要な実行形式ファイルが含まれる。

これらをはじめ、root階層だけではなくて第三階層あたりまで丁寧に解説しているので、他のディストリビューションから移ってきたユーザーには便利ではないでしょうか。

ネタ元はこちらのUNIX TOOLBOXというサイトです。Unix/Linux/BSDで使えるシステム管理コマンドを網羅しています。私には知らなかったコマンドも多く、とても参考になりました。

テープアーカイブ

Tape ARchiveコマンドtarは、いつ頃から使われているのでしょうか。google検索してもその起源は見つけられなかったのですが、UNIX初期からリムーバブルメディア書き込みコマンドとして使われてきたのだと思います。フロッピーディスク誕生以前より使われていたのでしょう。

tarコマンドをデフォルトで使うと、テープデバイスが指定されることが多いと思いますが、その反面Linux環境ではテープメディアはほとんど使っていないというのが現状だと思います。歴史があるとはいえリニアなメディアなので、目的の記録場所にテープヘッドがたどり着くまでには、それなりの時間が必要です。ランダムアクセスなHDDなどの媒体へ移行していくのは自然な流れだと思います。

とはいえ、かたくなにTAPEメディアを使いたいと思っているユーザーも少なからずいて、そこには少なからず軋轢が生まれるわけで…。

客観的に冷静に、歴史も踏まえて考えたら、テープメディアがフェードアウトしていく時代の流れは当然だと思うのですが、そんなことはない!!というご意見をお持ちの方がいらっしゃれば、是非コメントいただきたいと思います。

テープ vs ハードディスクという「宗教戦争」にまではしたくないですが、かたくなにテープを使いたいという方々の存在を知って、テープメディアに関する私が見落としている部分があれば知っておきたいという願望があります。

manコマンドの隠し技

OPEN TECHPRESSさんの、「あまり知られていないmanコマンドの隠し機能」という記事がおもしろかったので引用させていただきます。

私の場合、完全にUNIXコマンドが指先に馴染んでいないので、manにはお世話になっています。そんなmanコマンドでマニュアルを表示している最中に、別のコマンドを実行するTIPSが紹介されていました。

こうした機能が利用できるのも、やはりmanページを実際に表示させているのがlessであることに起因している。そしてこれはlessのmanページに記載されていることだが、lessに実装されているコマンド群はmoreユーティリティとviテキストエディタにあるものをベースにしているのである。

言われてみて気がつくのは、確かに画面の移動中のキーコンビネーションはlessやviと似ています。「!」に続けてコマンドを実行することで、ワンショットでman以外のコマンドを実行できるのは、マニュアルを見ながら実際に試してみるという試行錯誤には最適な方法ですね。