sdデバイスとsgデバイスの相互確認


sdデバイスがsgのどれに対応するか調べるにはsg_map26コマンドを使う。
sg_mapコマンドではだめ。


使い方
# sg_map26 /dev/sda
# sg_map25 /dev/sg3

で相互に変換可能。sgデバイスとsdデバイスではkernel内部でも処理が違うため注意する。

sgデバイスにioctlを発行したときはエラーになる。
sdデバイスにioctlを発行したときはエラーにならない。









・sdにたいしてioctlをコールしたときのkernel内部の関数コール
sd_ioctl
->scsi_cmd_ioctl
-->sg_io
--->blk_get_request

・sgにたいしてioctlをコールしたときのkernel内部の関数コール
sg_ioctl
->sg_new_write
-->sg_common_write
--->sg_stat_req
---->blk_get_request


100行目から150行目を取り出すためのawkの1ラインコマンド。
syslogで重点的にチェックしたい時間帯があればこのコマンドを
別ファイルにリダイレクトとかして調査する。

awk 'NR>=100 && NR<=150 {print $0}' < syslog

システムコールからlinuxのkernelが動作している部分の辿り方


1.man xxxx
で調べたい関数がシステムコールであることと、引数の数を確認する。

2.「SYSCALL_DEFINE」でlinux kernelのソースを検索する。
はシステムコールの引数の数。


システムコールがkernel内部でどのように処理をしているか調べたい
ときに重宝する。また、sys_xxx ->do_xxxというような流れでコール
されていない関数もあるので注意する。
会社でglibcのarena(malloc)の実装を調査してみた。
malloc実行前にmallopt関数や環境変数を設定して実行することでmallocの内部処理が一部変更になる。
そもそも、glibcのソースをよんでみて思ったことは通常の開発であれば初期化しない変数のすぐ下
でif文でcheckしている部分はコードレビュー時でアウトになります。

・MALLOC_CHECKを有効にして実行
1:エラーメッセージを表示
2:エラーがあったらabortさせる。
# MALLOC_CHECK_=1 /a.out


・mallocのオプションやイメージで参考になったサイト
http://sssslide.com/www.slideshare.net/kosaki55tea/glibc-malloc
http://siddhesh.in/journal/2010/11/26/back-to-the-os-class-memory-allocation/
http://www.novell.com/support/kb/doc.php?id=3113982
http://paparisa.unpatti.ac.id/linux_journal_archive_1994_2007/LJ/087/4681.html

・glibcの本家サイト
http://www.gnu.org/software/libc/
androidでわからないことを調査していたらQiitaという日本の情報共有サービスがあるのを
発見した。itproやスラドが好きな人はここの記述も参考にするといいかも。
登録したが、誤ってユーザ名にメールアドレスを設定してしまって、変更できなかったので
入会してすぐに退会してしまった。いたずらだと思われると困るので日をあけて登録予定。
技術系のメモがわりにブログやホームページを作成している人にとって、giocityみたいに急に
サーバ自体がなくなることもあるので、いろいろ分散させておくと便利。


http://qiita.com/
技術情報共有サービス
githubのユーザでログイン可能

MariaDB
本家サイト:https://mariadb.org/
ライセンス:GPL
MariaDB 10.0.0 Alpha 2012-11-12

mysqlの開発者がベースとなって立ち上げたプロジェクト。oracle傘下にあるプロジェクトは
oracle離れしやすい傾向にあるみたいです。まあoracleのやり方はいままでのテストケースを隠したり
changelogを隠したり、open系ソースでの開発者にとっては信じられないやり方がまかり通っているようです。
linuxに同梱されているものがmysqlからMariaDBになる日がくるかもしれないです。

http://jp.techcrunch.com/archives/20120818oracle-makes-more-moves-to-kill-open-source-mysql/(日本語)
http://techcrunch.com/2012/08/18/oracle-makes-more-moves-to-kill-open-source-mysql/ (英語)
androidであまり使われていないaaptコマンドについて

aaptとやれば使い方もわかるけどとりあえず使いそうなのは
dオプションだけかも。


1.apkファイルの内容表示
# appt list xxxx.apk

2.apkファイルのdump(label user permission表示)
# appt d badging xxx.apk

3.apkファイルのdump(permisson表示)
# appt d permissions xxx.apk

4.apkファイルのdump(resouce表示)
# appt d resrouces xxx.apk

5.apkファイルのdump(ldpi-v4,mdip-v4,hdip-v4としか表示されない
# appt d configurations xxx.apk

6.apkファイル内にあるxml情報表示(label,activity,permission等)
# appt d xmltree xxx.apk AndroidManifest.xml

7.apkファイルにあるxml情報表示(stringとid)
# appt d xmlstrings xx.apk AndroidManifest.xml



About