サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
www.tom-yam.or.jp
アセンブラー UNIX第6版のカーネルのうちアセンブラーで記述されている部分はごくわずかだが、 カーネルのもっとも精妙な点を理解するのに避けて通ることはできない。 ここではPDP-11用アセンブラーの文法の特異な点をさぐる。 奇妙な演算子 このアセンブラーはずいぶん風変わりである。 それはlow.sの先頭、0507行目にはすでに発揮される。 . = 0^. ここで「.」とは現在のアドレスのことである。 「^」は左辺の値、右辺の型をもつ結果を返す。 したがって「0^.」は「アドレス0」なので、 これは「現在のアドレスをアドレス0に設定する」ということになる。 「=」はC言語と同じく、破壊的代入をあらわす。 なお、0は0といっても、数字の列は.で終わらないかぎり8進数なので、 これは8進数の0である。 m40.sの冒頭、0604行目には別の使い方がある。 mfpi = 6500^tst これは
Dennis M. Ritchieのこと Dennisに。 前置き この記事はカーネル VM Advent Calendaの17番目の記事である。 dmrとは何度か接点があったのだが、なかでも2003年のUNIX/32Vの件はとても印象深く、現在に至るまでの私の興味の土台をかたちづくる出来事だったので、ここに記しておく。 当時私は何をしていたか LionsによるUNIX Version 6の解説が正式に出版されたの1996年のことだった。 さっそく入手した私は、断続的にPDP-11とその上で動作するUNIXについて調べて、2002年頃にはだいぶ様子がつかめるようになった。 次のバージョンであるUNIX Version 7では16bitマシンであるPDP-11への依存から脱するべくコードが整理され、UNIXがさまざまなマシンへと移植される契機となった。このへんについて詳しくは各所で語られてい
ソフトウェアエンジニアとして活躍されていた増田佳泰さんが2011年5月29日、急逝されました。 東京でのお別れの会を6月6日月曜日13時45分より東京都荒川区町屋斎場にて行いますので、どうぞご参列ください。 なお、遺族の方々のご意向により、香典・花束等は固く辞退させていただきます。 町屋斎場 〒116-0001 東京都荒川区町屋1-23-4 tel: 03-3892-0311 fax: 03-3892-2029 この件に関するお問い合わせは電子メールnao@tom-yam.or.jp、ツイッター @xylnao11、もしくは電話070-5461-0340で浜田までお願いします。
www.tom-yam.or.jp/~nao
以下はAndroidのJNIをgdbでデバッグする方法である。 要するに、Androidの単なるユーザーや一般のAndroidアプリケーション開発者には関係ない。 したがってそういう人たちは安心して無視してほしい。 例としてAndroid NDKに含まれるサンプルプログラムであるHelloJNIを使用する。 Android SDKやAndroid NDK、Androidソースコードの取得・構築・起動、はたまたgdbの使い方についての情報は省略する。 この文書はすでにそういった情報を必要としない人たちのためにある。 筆者はUbuntuを使用したが、内容はプラットフォームに依存しないため、よそでも同様のはず(無保証)。 HelloJNIの構築後、Androidソースコードのトップディレクトリに移動したところから出発する。HelloJNIのlibsの下にあるlibhello-jni.soがJNI
Lions互換ソースコード オリジナルのソースコードにLions本の行番号を付加。 Lions本に特有のコメント等は反映されていない。 利用に際してはライセンスを尊重のこと。 Initialisation Process Information param.h 0100→ systm.h 0200→ seg.h 0300→ proc.h 0350→ user.h 0400→ low.s 0500→ m40.s 0600→ main.c 1500→ slp.c 1800→ prf.c 2300→ malloc.c 2500→ Traps, Interrupts and System Calls Process Management reg.h 2600→ trap.c 2650→ sysent.c 2900→ sys1.c 3000→ sys4.c 3400→ clock.c 3700→ s
C言語 Version 6のUNIXのソースコードは「pre K&R」とよばれる古いCで記述されている。 現在のCの知識でだいたいはわかるが、理解に苦しむ個所もある。 うるさいことを言えば当時のリファレンスマニュアルを参照して、 当時の文法に親しむのが正攻法であろう。 が、とりあえず「これだけわかっていればソースは読める」というところだけ、 てっとりばやくまとめておこう。 構造体のポインター なかでも衝撃的なのは、 構造体のポインターからメンバーを参照する演算子「->」が自由に使えることである。 たとえば、slp.cから関数setpri()を見てみると setpri(up) { register *pp, p; pp = up; p = (pp->p_cpu & 0377)/16; p =+ PUSER + pp->p_nice; if(p > 127) p = 127; if(p > c
UNIX第6版を動かす PDP-11の使用を望むべくもない今日、UNIX第6版を実際に動かすにはエミュレーターを利用することになる。 もっともてっとりばやいのは各種のUNIX上に、 Supnik氏作のものをインストールすることである。 pdp11というコマンドがPDP-11エミュレーター本体である。 このエミュレーター用の往年のソフトウェアキットも各種用意されており、 PDP-11用のUNIX第6版も含まれている。 具体的な利用法はエミュレーターのソース中のsimh_swre.txtに記述がある。 とにかくやってみる % pdp11↓ PDP-11 simulator V3.7-0 sim> set cpu 11/45↓ Disabling XQ sim> att rk0 unix0_v6_rk.dsk↓ sim> att rk1 unix1_v6_rk.dsk↓ sim> att rk2
W-SIMをさぐる W-ZERO3はPDAである本体と、PHS機能を集約したW-SIMであるRX410INから構成される。 W-ZERO3の電話機能を調べていると、W-SIMが気になってくる。 ここに、わかったことをまとめる。 ATコマンドリファレンスマニュアル W-ZERO3付属のCD-ROMのディレクトリOEMの下にRX410IN_AT command ref.pdfとして入っている。 が、電界強度や位置情報の取得などおもしろいところは書かれていなくて期待はずれ。 W-SIMはモデムか? 24termでCOM1:Serialにアクセスすると、 ATI3 NetIndex Inc. OK ATI4 RX410IN OK ATI5 v1.04.00 OK のごとく、ごく普通のモデムのように振る舞う。 ATD0336042000##0 とすると、電話をかけることができる。 ただし、このままで
資料編 いきなり水戸黄門 名高い「Lions' Commentary on UNIX」を読めばよい。 おしまい。 ↑というわけにはいかない というのも、Lions本だけでは情報がたりないからである。 何はなくともLions本 情報源としてもっとも充実しているのは間違いないのだが、 読みはじめると「何だこりゃ」と思うかもしれない。 なにせ、四半世紀前の大学の計算機科学科の学生向けに書かれた本(というかテキスト)である。 身のまわりにPDP-11と資料、当時のUNIXの中身がわかっている人などがごろごろしている環境が前提なので、 ギャップを感じるのは当然であろう。 こういうすきまはあなどれないが、 ある程度の根気と時間があれば、それなりに埋められる。 オリジナルのほか翻訳(正誤表)もある。 現在のかたちで出版される以前の伝説については各自調べられたし。 オリジナルは横長で読みにくい。 しかも、
W-ZERO3でPDFが見たい Picsel PDF Viewer W-ZERO3にプリインストールされているのはPicsel PDF Viewerである。 PDFファイルによっては「メモリーが不足しています」とダイアログが出る。 無視して使っていると「処理を続けるためのメモリーが不足しています。現在選択されているドキュメントを閉じますか?」と聞かれる。 「はい」と答えるとそのまま終了してしまうので「いいえ」と答えると、動作が不安定になって終了せざるを得なくなる場合もある。 PDFってこの程度? Viewerが途中で終了してしまうのは論外としても、PDFファイルによっては文字の位置のずれがひどく、読むに耐えないものもある。 WindowsのAcrobat Reader 7.0の同解像度での表示と比べてみるとあまりの違いに愕然とする。 Adobe Readerは? 日本語用のAdobe Re
www.tom-yam.or.jp/~kazu
1994年の秋、相棒と一緒にくらしはじめました。 翌春、ままごとのような結婚式はしたものの、婚姻届を出していないので、世間的には事実婚(古い言葉では内縁)ということになります。 2000年1月に事実婚のまま子供を産みました。 というわけで子供は非嫡出子です。 その後、子供の姓を父親と同じになるように変更しました。 日々の暮らしは事実婚だから、あるいは非嫡出子だからといって特に変わったことはありませんが、お役所との関わり方はちょっとだけ違ったかもしれません。 なお、このページの文章は、わたしたちが実際に体験したことと、本やインターネットなどを通じて得た知識をもとに書かれています。 したがいまして、手続きの方法等の事実関係については、その時点の情報に基づいています。 できるだけ法律的にも正確であることを期しましたが、間違いがありましたらご指摘くださればさいわいです。 また、事実婚や非嫡出子の法
PDP-11について Lions本の頃はPDP-11は(すくなくとも大学の計算機科学科にいるような人にとっては)ポピュラーなものだったようである。 しかし、今日、PDP-11を理解するのは単純な話ではない。 当時の現実がどのようなものであったかという予備知識がなければ、 いくら資料があっても実感としてつかむことは困難だからである。 いくら言葉の上で源氏物語を読むことができても、 当時の貴族の生活を知らなければ物語を楽しむのはおぼつかないのと同じことである。 本物のPDP-11を使う機会があれば最高なのだが、これは事実上不可能である。 したがって、資料からあれこれ想像するよりない。 さいわい、あらゆる情報を集積しているPDP-11サイトがあるので、 とくとながめることにしよう。 PDP-11とは何であったか PDP-11誕生の経緯については詳しいサイトが存在するのでそちらを参照されたい。 日
Most pages here are written in Japanese. Some pages are in English. UNIXカーネル(第6版) ソースコードには 「You are not expected to understand this.」 (これがわからなくてもべつにかまわない)という木で鼻をくくったようなコメントがある。 Jargon Dictionaryの見出し語にもあるように、UNIXに関するきわめつけの逸話である。 Lions本とよばれる後述の注釈本では2238行に位置するこのコメントに対応する部分を理解すると「2238クラブに入れる」との記述がある。 ちょっと注意 このページは UNIXをひととおり使える C言語でプログラムが組める アセンブラも多少は何とかなる 必要とあらば英語の文献を読むこともいとわない をすべてみたす人を読者に想定している。 部分
このページを最初にブックマークしてみませんか?
『www.tom-yam.or.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く