コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2008年5月19日 >>> 2008年5月10日
link もっと後

2008年5月19日

窃盗は犯罪です

グリーンピースがまた犯罪行為してます。目立とうとしすぎて犯罪団体になっています。さすがに拉致、放火、殺人はやらないと信じたいですけど…。とにかく捕鯨船乗組員の安全を祈るばかりです。

そういえばグリーンピース・ジャパンのページを見ると、
Q. 鹿やカンガルーのように鯨も間引くという考えはないのか。
A. 鹿やカンガルーは「捕食される側」の動物だから、間引かれるべき。鯨は「捕食する側」だから間引くのはおかしい。
という問答があります。つまり鹿やカンガルーは多すぎだから逝って良しってことでFAらしい。これが環境保護か。

捕鯨相手はおいしい

窃盗までして捕鯨を責める暇と金と時間があるなら、
環境を蘇らせる技術の研究所を世界各地の大学に作って、全面バックアップしました!!
とか、
ど田舎の土地を日本の国土面積の数倍規模でがっつり買い取って、全部環境保護区にしました!!
こんなことをやって欲しいです。一面にこんな見出しが躍ってたら痺れます。

グリーンピースには世界各地の企業、財団からの大量の寄付(うちは環境に配慮してますよ、という姿勢のため)で潤ってるはずなので、資金はあると思います。が、残念ながら、どんなに資金があってもやらないでしょう。グリーンピースがスポンサーを取り続けるには、とにかく目立つしかありませんから、結局は環境なんか二の次で「目立つ(つまり儲かる)こと」を選ぶのです。

また、スポンサー企業を敵に回すような活動はできません。グリーンピース以外にも環境団体はいくらでもありますから、そちらに流れられたら一巻の終わりです。
例えば石油を消費するとCO2が増えて環境に悪いです。しかし石油製品の不買運動なんて運動はさっぱり見かけません。だってそんなことしたら金づ…じゃなかった、石油関連企業からそっぽ向かれますから。

その点、捕鯨反対なら心配ありません。鯨を食べる国は圧倒的に少なく反感を買いませんし、大きな生き物を殺す抵抗感にも訴えられます。さらに日本船が相手なら超ラッキー!機関砲かロケットランチャーぶちこまれるまで反撃しない国ですからね。

カモがネギ背負って鍋担いでガスコンロとボンベにマッチまで持ってるんですから、おいしくいただかない理由はありません。というわけで捕鯨反対はやめられない止まらないのです。

編集者:すずき(2008/05/20 01:59)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年5月18日

過去を改竄

ご指摘のあった 5月7日の日記を大幅改訂しました。hdk氏、ありがとう。

詳しくない分野に踏み込んだので間違ってるかも知れませんが、そんときゃそんときだ。うん。

編集者:すずき(2008/05/18 11:26)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年5月16日

使い切るぞ

今週一週間で、月の残業時間の半分を使ってしまった。またか、またなのか!

付け方を控えめにしてるつもりなのにねえ…。

編集者:すずき(2008/05/18 11:24)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年5月15日

正方形だって?

所属していた研究室のSkepeチャットで、変なキーボードの話をしていました。聞けばほぼ正方形のスペースキーを搭載した変なキーボードがあると言うではないですか。写真も見せてもらいましたが、本当に正方形です。変なの!

確かに正方形だ

…やややや、まてよ?このキーボードどこかで見たことないか?と思い、会社のメインキーボード(DELL SK-8135日本語配列)を見たら、スペースキーが正方形じゃないですか…。そりゃ見たことあるわけだよ、既に使ってたんだもん。

見た目はかなり変テコですが、使い心地は普通です。スペースキーが小さい分、微妙にデカい無変換キー(普通はAltより細い)を誤打するくらいで、すぐに慣れてしまいます。

このキーボードのおかげなのか、家のキーボードでスペースキーを叩くときもキー一つ分(幅としてはSK-8135の無変換キー分くらい)を無意識に避けて押しています。

今回の日記を書いているときに初めて気づいたので、いつからこうなってたのかはわかりませんけども。

実際

ぜひ皆様にどんなキーボードか見ていただきたくて、型番でGoogle検索したらこんな写真をブログに貼っている人がいました。

うは、まさにこれだ。スペースキーが正方形なのさ。

編集者:すずき(2008/05/18 11:23)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年5月13日

Linuxのstruct pageって何

目次: 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のイメージ

上の絵で注目して欲しいのは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が等価だと思われます。たぶん…。

編集者:すずき(2023/04/29 21:56)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年5月12日

念のため

有給をとって休みました。お休みを病欠で消費するとすごくもったいない気がするのです…。

上の一文をどこかで見た気がすると思ったら、去年の6月11日(2007年6月11日の日記参照)にも風邪で有給を取って休んでいて、同じようなこと書いていました。ああ、進化してない。

昔からこの時期(4月末〜5月末)はほぼ確実に風邪を引いている。時期に何か秘密があるのかなあ?季節の変わり目にしては遅いような気がするんだけど。

編集者:すずき(2008/05/13 01:19)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年5月11日

風邪

熱は下がったけど、喉がヤバいことに変わりなし。起きている間に良化 -> 寝ている間に悪化を繰り返しているみたい。部屋の空気が乾燥しているとかかなあ?

昨日はご飯食べるの忘れてたので、今日はきちんと食べました。

編集者:すずき(2008/05/13 01:07)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年5月10日

今日は

おとなしく寝てました。熱もあるんだろうけど、鼻〜喉がヤバい。焼け付くような感じがする。

編集者:すずき(2008/05/13 01:05)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2008年5月19日 >>> 2008年5月10日
link もっと後

管理用メニュー

link 記事を新規作成

<2008>
<<<05>>>
----123
45678910
11121314151617
18192021222324
25262728293031

最近のコメント5件

  • link 20年6月19日
    すずきさん (04/06 22:54)
    「ディレクトリを予め作成しておけば良いです...」
  • link 20年6月19日
    斎藤さん (04/06 16:25)
    「「Preferencesというメニューか...」
  • link 21年3月13日
    すずきさん (03/05 15:13)
    「あー、このプログラムがまずいんですね。ご...」
  • link 21年3月13日
    emkさん (03/05 12:44)
    「キャストでvolatileを外してアクセ...」
  • link 24年1月24日
    すずきさん (02/19 18:37)
    「簡単にできる方法はPowerShellの...」

最近の記事3件

  • link 20年2月22日
    すずき (04/17 02:22)
    「[Zephyr - まとめリンク] 目次: Zephyr導入、ブート周りHello! Zephyr OS!!Hello! Ze...」
  • link 24年4月16日
    すずき (04/17 02:05)
    「[Zephyr SDKのhosttoolsは移動してはいけない、その2 - インストール時のバイナリ書き換え] 目次: Zep...」
  • link 24年4月15日
    すずき (04/17 01:47)
    「[Zephyr SDKのhosttoolsは移動してはいけない、その1 - 移動させると動かなくなる] 目次: ZephyrZ...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 04/17 02:22