社会人2年生になって、基本給がレベルアップしました。しかし前年度より手取りが下がります(来月から住民税を取られる)。
今年の住民税の所得割額は「昨年の総所得」から決まります。つまり今年の所得に対してかかる住民税は、来年納めるわけです。実に1年も時間差をつけて攻撃(納税)されます。
サラリーマンはあまり問題ないかもしれませんが、仕事を変えるなど所得が大きく変化するとき、臨時で大きな収入があった年などは、住民税のことを覚えておかないと、翌年の時間差攻撃でひどい目にあうかも…。
阪急のドア横には「非常時に引くとドアが開きます」と注意書きされた箱があります。緊急時、すぐさま車両の外に避難しなければならない時に使います。
で、少し気になったのは「地下鉄内では使わないでください」という注意書きです。注意書きには残念ながら詳細な理由は書いていません。地下鉄のトンネルに出ると何か問題が起きるのだろうか?
私が思い当たる理由は給電方式の差です。地下鉄は地上の電車のように上から給電するタイプ(架線給電方式)と、レール近くの電線から給電するタイプ(第三軌条給電方式)があります。第三軌条給電の場合、トンネルへ下手に降りて電線(600V〜 くらい)に触れようものなら感電死します。
阪急は架線給電だから阪急が乗り入れる地下鉄も架線給電でないと走れません。架線給電なら、トンネル内に出ても危険はないはずです。しかし大阪市営地下鉄は第三軌条給電が多いらしく、阪急の時と同じノリで地下鉄から降りられると危ないので、全面禁止にしたのでしょう。
お陰で乗客は降りて良いトンネルにも降りられません。阪急もその辺は理解していると思いますが、乗客への説明&周知徹底する面倒くささには勝てないのでしょう。
知り合いに小泉という名字の人が居ます。最近は毎日と言って良いほど、彼の名を思い出します。
といっても意味深なことはなくて、通勤中に電車の窓から「こいずみがわ」と平仮名で書いた看板が見えるというだけです。位置は島本〜長岡京の間、JR京都線の北側(京都方面を向いて左手)にあります。川の脇にある緑色の看板です。
JR京都線はさほど混まないので、気づけば毎日同じような位置に立ち、毎日同じような景色を見るようになっていた、ってなわけです。明日もまた同じように「こいずみがわ」を見るでしょう。
小泉川の写真でも撮って、その小泉君に見せたら面白いかなあ?と思ってたら、なんと既にこのページで上流〜中流〜下流(桂川と合流)まで、写真付きで詳しく紹介されていました。
うむむ…。世の中は広いんだぜ…。
唐突に気づいたのですが、クラーク像は「札幌じゃなくて北広島にある。」って、色んな人に吹聴した気がする。壮絶な嘘です。クラーク像はどちらも(※1)ちゃんと札幌市にあります。嘘を教えてしまった方々には深くお詫び致します。
無知も良いところでした。今度実家に帰ったとき、ちゃんと見てきた方が良いですかねえ…。
(※1)胸像と全身像があります。胸像は北海道大学(札幌キャンパス、札幌市北区北8条〜24条)に、全身像は羊ヶ丘展望台(北海道札幌市豊平区羊ヶ丘1番地)に建っています。
北広島市と勘違いしていた理由も調べました。クラーク博士がアメリカに帰るとき「Boys be ambitious…」と言って去った有名なエピソード、この舞台が現在の北広島市にあるのです。像とBoys be ambitiousの話とがごっちゃになったようです。
ついでに例のフレーズは「Boys, be ambitious like this old man.」(小供等よ、此老人の如く大望にあれ。)と続く(※2)ことも知りました。
クラーク博士ってばまるで映画の主人公のようですが、歴史が美化されるのはお約束ですから怒っても仕方ないのさ。
(※2)英文および訳文は北海道大学付属図書館W.S.クラーク博士関係文献目録の一部である、こちらのページから引用しました。
グリーンピースがまた犯罪行為してます。目立とうとしすぎて犯罪団体になっています。さすがに拉致、放火、殺人はやらないと信じたいですけど…。とにかく捕鯨船乗組員の安全を祈るばかりです。
そういえばグリーンピース・ジャパンのページを見ると、
Q. 鹿やカンガルーのように鯨も間引くという考えはないのか。
A. 鹿やカンガルーは「捕食される側」の動物だから、間引かれるべき。鯨は「捕食する側」だから間引くのはおかしい。
という問答があります。つまり鹿やカンガルーは多すぎだから逝って良しってことでFAらしい。これが環境保護か。
窃盗までして捕鯨を責める暇と金と時間があるなら、
環境を蘇らせる技術の研究所を世界各地の大学に作って、全面バックアップしました!!
とか、
ど田舎の土地を日本の国土面積の数倍規模でがっつり買い取って、全部環境保護区にしました!!
こんなことをやって欲しいです。一面にこんな見出しが躍ってたら痺れます。
グリーンピースには世界各地の企業、財団からの大量の寄付(うちは環境に配慮してますよ、という姿勢のため)で潤ってるはずなので、資金はあると思います。が、残念ながら、どんなに資金があってもやらないでしょう。グリーンピースがスポンサーを取り続けるには、とにかく目立つしかありませんから、結局は環境なんか二の次で「目立つ(つまり儲かる)こと」を選ぶのです。
また、スポンサー企業を敵に回すような活動はできません。グリーンピース以外にも環境団体はいくらでもありますから、そちらに流れられたら一巻の終わりです。
例えば石油を消費するとCO2が増えて環境に悪いです。しかし石油製品の不買運動なんて運動はさっぱり見かけません。だってそんなことしたら金づ…じゃなかった、石油関連企業からそっぽ向かれますから。
その点、捕鯨反対なら心配ありません。鯨を食べる国は圧倒的に少なく反感を買いませんし、大きな生き物を殺す抵抗感にも訴えられます。さらに日本船が相手なら超ラッキー!機関砲かロケットランチャーぶちこまれるまで反撃しない国ですからね。
カモがネギ背負って鍋担いでガスコンロとボンベにマッチまで持ってるんですから、おいしくいただかない理由はありません。というわけで捕鯨反対はやめられない止まらないのです。
今週一週間で、月の残業時間の半分を使ってしまった。またか、またなのか!
付け方を控えめにしてるつもりなのにねえ…。
所属していた研究室のSkepeチャットで、変なキーボードの話をしていました。聞けばほぼ正方形のスペースキーを搭載した変なキーボードがあると言うではないですか。写真も見せてもらいましたが、本当に正方形です。変なの!
…やややや、まてよ?このキーボードどこかで見たことないか?と思い、会社のメインキーボード(DELL SK-8135日本語配列)を見たら、スペースキーが正方形じゃないですか…。そりゃ見たことあるわけだよ、既に使ってたんだもん。
見た目はかなり変テコですが、使い心地は普通です。スペースキーが小さい分、微妙にデカい無変換キー(普通はAltより細い)を誤打するくらいで、すぐに慣れてしまいます。
このキーボードのおかげなのか、家のキーボードでスペースキーを叩くときもキー一つ分(幅としてはSK-8135の無変換キー分くらい)を無意識に避けて押しています。
今回の日記を書いているときに初めて気づいたので、いつからこうなってたのかはわかりませんけども。
ぜひ皆様にどんなキーボードか見ていただきたくて、型番でGoogle検索したらこんな写真をブログに貼っている人がいました。
うは、まさにこれだ。スペースキーが正方形なのさ。
目次: Linux
以前からLinuxのページディスクリプタ(要はstruct page)って何なの?という疑問が晴れないまま居ました。特に実際のページフレームとの対応をどうやって取っているのかが全くわからん。どこかに対応が書いてあるにしては、それらしい場所がない…。
分からんながらも、機会を見つけては調べたり考えたりしていたら、なんとなーく分かった気がする。
分かった気がすることを書き散らしますが、間違っててもご勘弁下さい。自信ないです。
前提知識として簡単に説明します。Linuxではメモリ領域をゾーンという固まりで管理しています。ゾーンはページフレーム(普通は4KBのメモリ領域)をいくつかまとめた固まりです。ページフレームがずらーっと並んでいるようなイメージ。
厳密にはもっと書くべきことがあるのでしょうが、今回はこのくらいの理解で進めるはず。たぶん。
では本題に入ります。
まず私の疑問点は「ページディスクリプタ(以下、struct page)のポインタをもらったとき、どうやって対応するページフレームを得るのか?」です。
ここでstruct pageのメンバに直接書いてあれば話は早いのですが、struct pageにページフレーム番号を示す情報などはありません。残念。
実はstruct pageは中身も大事ですが、ポインタ値が非常に重要な意味を持ちます。というのも実メモリのページフレームとの対応を取るために、ポインタの計算を行うからです。計算についてはまた説明します。
ページフレームを求めるためには、
ページディスクリプタ -> ゾーン -> ページフレーム
の順に求めます。まどろこしいですが、直接求められないのです。
ページディスクリプタが対応するページフレーム、こいつが属するゾーンを求めます。自分でも何言ってるのかわかんないけど、まあいいや。
まずstruct pageにpage_flags_t flagsというメンバを見ます。こいつはその名の通りページの属性や状態を示すフラグを格納する変数なのですが、上位3ビット(または8ビット)だけは意味が違っていて(※1)、このページが所属するゾーンを表す数値が入っています。
なのでflags >> NODEZONE_SHIFTによってページが何番目のゾーンに所属しているのかがわかります。例えば1だとしたら、ゾーンの配列zone_table[1](グローバル変数)を見ればゾーンの情報が見られます(※2)。
(※1)不思議な設計に見えますが、むやみにメンバを増やすとstruct pageだけで相当量のメモリを圧迫(struct pageはページフレームの数だけ存在する)してしまいます。
(※2)最近のLinuxではゾーンの一覧(zone_table)はグローバル配列ではありません。struct pglist_dataという構造体(ゾーンが必要ならnode_dataというグローバル配列(アーキテクチャ依存)、ゾーンが不要ならcontig_page_dataという変数)経由でゾーンを見るようになっています。ゾーンが要らないというアーキテクチャを考慮したのでしょう。
長くなってきましたが、本題のページフレームの求め方に行きます。先ほど苦労して求めたゾーンにはzone_mem_mapというメンバが居て、ゾーンに属するstruct pageの一覧を持っています(※3)。
上の絵で注目して欲しいのはzone_mem_mapと、ページディスクリプタのポインタ(pとします)がわかれば、zone_mem_mapの何番目にpが存在しているかわかるということです。上の絵では5番目に位置しています。
薄い水色の四角内で具体的な数値(数値は適当ですが)を当てはめてpのアドレスからzone_mem_mapのアドレスを引くことで、pがzone_mem_mapの何番目にいるか求められる様子を示しています。
これでstruct pageがゾーンの先頭から何番目のページなのかがわかりました。あとはページフレームを求めるだけです。ゾーンの構造体のメンバzone_start_pfnがゾーンの開始ページフレーム番号を表しているので、そこへ先ほどの数字(5)を足します。
これにてstruct pageと対応するページフレームが求められました。
もし物理アドレスに興味があるのならば、ページフレームの番号にページフレームのサイズ(普通は4KBのはず)を掛けてあげればよいです。
高位メモリや非連続なメモリモデルを持つアーキテクチャだと、単純に掛けるだけではダメかもしれません。
(※3)最近のLinuxにはありません。恐らくzone_pgdat->node_mem_mapが等価だと思われます。たぶん…。
有給をとって休みました。お休みを病欠で消費するとすごくもったいない気がするのです…。
上の一文をどこかで見た気がすると思ったら、去年の6月11日(2007年6月11日の日記参照)にも風邪で有給を取って休んでいて、同じようなこと書いていました。ああ、進化してない。
昔からこの時期(4月末〜5月末)はほぼ確実に風邪を引いている。時期に何か秘密があるのかなあ?季節の変わり目にしては遅いような気がするんだけど。
熱は下がったけど、喉がヤバいことに変わりなし。起きている間に良化 -> 寝ている間に悪化を繰り返しているみたい。部屋の空気が乾燥しているとかかなあ?
昨日はご飯食べるの忘れてたので、今日はきちんと食べました。
おとなしく寝てました。熱もあるんだろうけど、鼻〜喉がヤバい。焼け付くような感じがする。
< | 2008 | > | ||||
<< | < | 05 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
合計:
本日: