10分間カーネルソースリーティング(timeシステムコールその3)

前回の続き。 今回は、CONFIG_FTRACE_SYSCALLSが有効なケースでのSYSCALL_DEFINEを追ってみる。 まずは、SYSCALL_DEFINExを見る。 #define SYSCALL_DEFINEx(x, sname, ...) \ static const char *types_##sname[] = { \ __SC_STR_TDECL##x(__VA_ARGS__) \ };…

10分間カーネルソースリーティング(timeシステムコールその2、というよりシステムコールのマクロ)

今日は帰宅が遅かった。なので、あまりソースを読む時間がとれない。昨日はtimeシステムコールが何をしていたのかを調べた。 ところで、SYSCALL_DEFINE1って何だろ?これを調べるためにinclude/linux/syscalls.hを覗いてみる。 #define SYSCALL_DEFINE1(name…

timeシステムコールその1?

Linux Kernel DevelopmentのP221ページ読んでいたときに、「The kernel also implements the time() system call」という文章を見つけた。ん?time()ってシステムコールだったっけ? しょうがないので、ソースをgrepしてみた。 すると、確かにkern/time.cに…

Linuxのidrの構造

Linux Kernel Development(以後「Linux本」)を読んでみて、いまいちイメージが湧かなかったのがidr。 idrはLinux本によれば「mapping a unique identification number (UID) to a pointer」となっている。 どうやらひとつのポインタに一つのIDを割り振って…

.data.percpuまわりをざっくりと読んでみた。

前回の記事「15分カーネルソースリーディング」の続き。まず、.data.percpuが何か特殊なセクションか調べてみることにする。 私は今Ubuntuを使っているので、手っ取り早く手元にあるLinuxのセクションを見ようとした。 /boot/vmlinuzうんたらにreadelfしたが…

15分カーネルソースリーディング!(percpu編)

現在、Linux Kernel Developmentを読んでいるが、英語力のなさで256ページに書かれている DEFINE_PER_CPU(type,name)とDECLARE_PER_CPU(type,name)の違いが良く分からなかった。 よって、コードを読んでみた。これらの定義はinclude/linux/percpu-defs.hに存…

Linux Kernel Development第四章のスケジューリング問題の記述

柴田芳樹さんが主催する勉強会(http://yshibata.blog.so-net.ne.jp/2010-07-23)の準備で「Linux Kernel Development 3rd edition」を読んでいる。第三章までは比較的すらすら読めたが、第四章で読みづらかった部分(P47,48)があった。 後々忘れるといけないの…

魔導書

twitterのとあるつぶやきで、「プログラミングの魔導書」なるものを見つけた。http://longgate.co.jp/products.html第一回はC++。 既に数年のブランクがあって忘れかけている...。もう少し詳しい話を書いているブログがあったので、以下にメモっておく。 htt…

haskellで勉強がてらcalコマンドを書いてみた。

haskellの勉強がてらcalコマンドを書いてみた。 (おそらくHaskellをよく知っている方が見たら、下手の極みだろうけれど。見るに耐えない場合指摘いただけると非常に助かります。)実行結果 import Data.Char import System main = do args <- getArgs let y =…

netbsd currentのmutex lockについて(その2)

[adaptive lockについて] mutex_vector_enter()の後半はadaptive lockである。 apaptive lockの処理を簡単にまとめる。ロックが獲得できるまでループを行う。ループの中の処理はおおまかに分けて以下の処理となる。処理1.mutexにまだ持ち主が居ない場合の処…

netbsd currentのmutex lockについて(その1)

またまたnetbsd currentのソースについて。 今度はmutexを読んでいる最中なので、ここについてもメモを残す。 なおlock debug機能はメモから外します。 ちなみにlock debug機能とは、ロックの状態を保持し、再帰呼び出しロックなど異常な状態などを検知した…

netbsdのソフト割り込み

ちょいと訳あって、netbsdのcurrentのスケジューリング方式を知りたくなった。 その中でも割り込み系の扱いを知りたくなったのでソースを読んだので、メモとして残す。(注)以下の説明は、__HAVE_FAST_SOFTINTSが定義されていない場合を想定しています。 また…

GMailのアドレス帳(Contacts)にPerlでアクセスする

とあるCGIを作っている最中に、メールアドレスをGMailのアドレス帳(Contactsというらしい)に同期したくなった。何かいい方法はないかな、と思い、例によってCPANをあさってみた。すると、WWW::Google::ContactsというCPANモジュールがあった。 http://search…

酒粕が肝臓を保護するだって??

久々に酒の話。http://headlines.yahoo.co.jp/hl?a=20100604-00000262-yom-sci「酒かすに含まれる成分が、肝臓を保護する効果があるという研究結果を、月桂冠総合研究所(京都府伏見区)がマウスを使った実験で明らかにした」らしい。すると、酒粕だらけの甘…

MITのOS講義で、Unix Version6に出会った

先日藤原博文氏の「パソコン初心者の館」掲載の http://www.pro.or.jp/~fuji/pasocomlife/2009-09-12.html という記事を読んだ。 そこでは MIT OpenCourseWare というのがあり、非常にたくさんのコースが用意されている。特別講義がちょろっと公開される日本…

PerlのEncodeについて

とある事情でCGIをひさびさに書くことになった。 置くのがレンタルサーバということもあり、言語はPerlを選んだ。ここで文字コードを変換する必要があり、その際にEncodeの使い方を日本語のWebPageの範囲で調べてみたがピンとこない。 そこで、CPANの小飼氏…

ひさしぶりだね(VirtualBoxの備忘録)

ほぼ11ヶ月ぶりの更新。 今回はUbuntu9.04でVirtualBoxいじったときの記録をつけてみる。元々CGIなどのデバッグ向けにvmware player使っていたけど、OSを再インストールしたときに、VirtualBoxではvmwareのHDDイメージをそのまま使えるという話を聞いてVirtu…

debug hack

どうやら、Debug Hackなる本が出版されるようだ。http://d.hatena.ne.jp/hyoshiok/20090315カーネルデバッグに何年か携わる者なら、必要に駆り立てられて原因を絞り込む仕掛けをカーネルに実装したことがあるだろう。 こうしたことを繰り返していき、やがて…

雨の日は

日記の更新は2ヶ月ぶりというこのダメぶり。 この二ヶ月間色々あった。二人目の子供は生まれたし、仕事は相も変わらず忙し。 しかも、雨(というか雪)の日にひさびさ芋焼酎呑んだら、舌が芋焼酎を受け付けない。 これもホッピー呑みまくっていたせいか?さて…

昨日の訂正・・・・・

昨日の日記に書いたvimgdbの話にはいくつか抜けている箇所がありました。 1.このままでは日本語が使えません。 2.昨日書いた手順では抜けがあり,gdbが使えるようになりません。昨日の日記を訂正します・・・・。

vimgdbを使ってみる

前回紹介したvimgdbを実際に使ってみた。 なお、パッチを当てるvimのバージョンは7.2です。 (※2009/01/07:この日記の記述を一部訂正。)1.vimgdbを http://sourceforge.net/project/showfiles.php?group_id=111038&package_id=120238 からDLしてきます。(vimg…

新年あけましておめでとです。

今年もいろいろよろしくお願いします。さて、訳あってgdbについて調べものをしていたら、http://clewn.sourceforge.net/index.htmlというプロジェクトを見つけた。このプロジェクトでは2つのプログラムを開発している。 vimGdb これはvimへのパッチである。…

ついついtalosのビルドをしてみました。

子供が寝ている間に・・・。昨日の日記に書いた通り、ソースを読むためにsvnでチェックアウトする。読書会のお話だと、Talosのコンセプトがいまひとつぴんとこない部分もあった。だからこそ、余計にソースが読みたいのだ。ここで、カーネルエンジニアの悲し…

遅くなりましたが・・・・カーネル読書会番外編の報告!

12/18、カーネル読書会番外編に参加しました。お題は「セキュアかつ使いやすい趣味OS「talos」の紹介」です。私はお仕事でカーネルをいじっていることもあり、とくに今回のネタには興味がありました。今回のお話の概要は、naruogaさんの http://d.hatena.ne.…

昨日の続き(nacl)

今日は少しばかり早く帰ってきた。よって、ビールと焼酎を思わず呑んでしまう。 そこで、少し酔いをさましてから、昨日の続きのnaclいじりだ。http://nativeclient.googlecode.com/svn/trunk/nacl/googleclient/native_client/documentation/getting_started…

ブラウザ上でx86のネイティブコードが動く!

もうそろそろ寝ようかと、何気なくRSSみていたら,http://www.atmarkit.co.jp/news/200812/09/nacl.htmlというニュースが。ブラウザ上でx86のネイティブコードを実行する技術らしい。早速 http://code.google.com/p/nativeclient/ へ。Native Clientというら…

第92回カーネル読書会に

行ってきました。お題は「GRUB」。言わずと知れたブートローダです。akachochinはブートローダに特別な思い入れがあります。それは前に在籍していたソフト開発会社で客先常駐したときに最初に作ったものだったのです。当時は約8年前。最初の会社入って品質保…

OSC2008には感服いたしました。

いま、楽しみにしているイベント、それはOSC2008である。akachochinは二日続けて行こうと考えている。金曜日は、普段akachochinはBSDな仕事なのと、OpenBSDについては前から興味があるのもあり普段あまり話を聞く機会のないBSD系なお話が特に楽しみである。…

カーネル勉強会でDebianなパッケージの話を聞いてみました.

ただ、火曜日は酒呑んで(すまん、一人でニュー新橋ビルで飲んだくれ)、水曜日は新歓で日本酒呑みまくり、やっと今日日記が書けるわけです.今回は、やまねさんの発表で「Debianパッケージ作成入門の入門」でした。(確か、やまねさんは前回の二次会のときに一…

5年ぶりの、とりとめのない話

今日は5年ぶりにスーツを着た。しかもネクタイも。仕事で事情があり、とある北関東の地方都市に行ってきた。自分の会社の製品に不具合があり、その始末の一貫だ。別に不具合の始末で行く分には問題がない。しかし、我慢ならないのは、ネクタイであり、スーツ…