glibc mallocの講演で、mallocの最小サイズを32と話しているのだが、正確には size_t*2 + ptr*2 なので、64bit CPUの時は32でいいけど、
32bit CPUの時は16と言わなければいけない。
かつ、講演の最初のほうでx86前提で説明しますね〜
と話しているのであきらかに間違い。
うがががが・・・
# 最近、オイラはIA64しか触ってないので・・・

新入社員は推薦枠よりも自由応募が多いみたいです。
ビラがまず、電柱などに貼られます。
腕っ節をもてあましてそうな不良にお国の未来をかたって、入隊してもらう。なんてことも過去にはしていたみたい。
最近は冷戦の崩壊で、そういうのも厳しくなったそうですが

しかし、何年か後には後悔するケースも多いみたいです。
みなさん、就職は良く考えて決めましょう

一方そのころライダーは・・・・ランキング!
放送順と時系列順が違っていると混乱する・・・って何の話だだだ?
ストーリーとは関係ないのかも。
なんかのパロディ?
すばらしい!
やはり、インターネットによって世間は確実に狭くなっていってるんだなぁ。と実感した次第。
あと、後で怒られたのだけど、マイク使うときは質問を講演者が復唱してあげないと、質問が聞こえないのに、回答だけ聞こえる異次元ワールドっぽくなるみたいよ。
今度から気をつけよう
なんか、ごとむさんが、あれは共有メモリの仕組みで云々とか言っていた気がするが・・
#ちなみにテキストセグメントやデータセグメントは、あっさりmunmapできるので、main関数をmunmapするとエラいことに・・
その後もアクセスできるし、/proc/pid/mapsファイルでも当該アドレスが消えない。
いやー、argv0 ネタでいっそのことアンマップしてやったら、なんと表示しやがりますか。こんちくしょー
というネタ記事が書きたかっただけなのだが。
ところで、カーネルのコードを軽く読んでみたのだけれど、なぜこのような動作になるのか理解できなかった。
誰か知っている人がいたら、教えていただきたい。
「確かにほとんどの人はハンマーファクトリーをまるまる必要とはしていません。たとえば、決して丸頭ハンマーを必要としない人もいます。(たぶん元ガールフレンドがいないんでしょう。あるいは代りにアイスピックを使ったのかも。) そうであればどんなハンマーでも作れるハンマーファクトリーを買うというのはあまり意味がありません」
やはり、フレームワークの次はアイスピックが来るのだよなぁ〜
ネタ元: http://local.joelonsoftware.com/mediawiki/index.php/%28Forum%29_%E7%A7%81%E3%81%AF%E3%81%AA%E3%81%9C%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%8C%E5%AB%8C%E3%81%84%E3%81%8B
1.
Q. MALLOC_CHECK_ を使っていて、かつ、chunkサイズが128K以上の場合2重freeはどうやって検出しているのか
A. 検出できない。検出しようとして、mapされていないアドレスにアクセスしてSIGSEGVする。(すくなくとも手元のCentOS4.2ではそうなった)
2.
Q. anonymous mmapは/dev/zeroをopenしているか、MAP_ANONYMOUSフラグを使っているか
A. MAP_ANONYMOUSを使っていました。つまり私のカンチガイ。申し訳ない
コンセントを抜くとすぐに、充電はされてるけども、もうへたってるからバッテリを買い換えろと警告メッセージが表示される。
おーーーい、デルーーーー
いくらなんでも早すぎ。
一度サポートセンターに電話してみようかな
これが結構、おもしろい。
元々のゲーム機と比べてどうかは知らないけども。
本人の知らない間にビデオ撮影をして、YouTubeにアップするとかいう話になっていたので、「ちょ・・業務用です・・・か??」とでも言わんばかり、かなり本格的ビデオカメラが会場に設置されていた。
もうダメである。
緊張しまくり、用意しておいた小ネタギャグは一切言えなかった。
熱いトークを期待したいた皆さん(いるのか?)ごめんなさい。
てゆーか、ネクタイに指す、アナウンサー向けっぽげなマイクが用意されているあたりがYLUGスゴス。と思った。
まあ、それはさて置き、当日の感想としてはhyoshiokさんのBlogあたりの感想がよくまとまっていていい感じなのではないかと思う。
結論: みんなRubyが好きなんだよ。
kernel hackerもLL hackerも交流しようよ
とかとか、そんな雰囲気だったと思う。
やっぱり時代はエンタープライズRubyっすね < なにが?
結局ピザとビールだけでは会場の熱気さめやらず、みんなで二次会になだれ込む。
韓国の地酒、モッコリ(マッコリだったかも)がうまい。
やっぱり発表のあとは酒に限る。
P.S 資料をYLUGにアップしようとしてたんだけど、管理者権限がないとアップできない事が発覚。
だれかやって〜〜
P.S.2 当日の講演の模様はそのうちどこかに動画うpされるらしいので、詳細決まったら告知しますね〜
P.S.3 当日の参加者でBlogつけてる人はトラックバックくださいなー
追記:
資料を以下のURLにアップしました。
glibc malloc 資料
masakaさん、手取り足取りのご支援本当にありがとうございました!!
追記2:
当日の模様は結局google videoで公開されたっぽい。
なんかはじめてのにきさんに褒めてもらっちゃった。てへ
以下のURLで見れるのでよかったら、見てね
http://video.google.com/videoplay?docid=2914803742593360351
121 :おさかなくわえた名無しさん:04/11/12 14:05:14 ID:NDPYs8hu
父親が発売日にFCのDQ4を買ってきた。
私と弟とで順番にクリアしたあと、父親はなぜかずっと
4章のトルネコの序盤(店でひたすら武器とか売りまくる)を続け、
それだけで5万も6万もゴールドを貯めていた。
思えば父親は2でも全員のLVをMAXまで上げたり
単純作業が好きなのかなと思っていたが
もう、一度クリアしてしまったそれらのゲームで
また私や弟が遊ぶときにキャラが強かったりお金が多いと喜ぶだろうと
それだけのためにちょっとズレた愛情表現をしてくれていたってことがわかった。
私も弟も成人し、実家を離れて生活をしていた頃、父が入院した。
お土産に、なぜか私はGBAとGB版のDQ1&2、そして3を買って持って行った。
父は骨と皮だけになっていた。
私がお土産を渡すととても喜んで、ヒマな入院生活をそれと共に過ごしたらしい。
もう、子供のために単純作業続けなくてもいいんだよ、お父さん。
いっぱい冒険してね、お父さん。
父は普通の食事が喉を通らなくなり、DQ3のパーティにこんな名前を付けた。
勇者コロッケ 武闘家つくね 僧侶とんかつ 商人おでん
「はよ元気になってこれ食べたるねん」と笑う父。
ガリガリに痩せた父の姿を見たのはこれがさいごだった。
今では食べられなかったあのころのカタキをとるかのように
体重も激増!ムチムチ状態で「8まだ出えへんか!」と
電話してくる父です。退院おめでとう。
AUのポイントがずいぶんと溜まっていたので0円交換。W42Kです。
しかし京セラは安いなー。と思っていたら使ってみて大納得。
十字キー、めちゃくちゃ押しづらい。こりゃ、ほとんど欠陥品だよ。
ところで、なぜか充電器だけが別売りで、かつAUポイントも使えずにお金を払う羽目になったんだけど、これって何の意味があるのかね?
1.すくなくとも、お店のおねーちゃんは、計算トチって何回も再計算してたから、店の人には不評そうだ。
2.しょせん1000円以下の備品だと「付属品を別売りにして、本体を安く見せる戦略」としては極めて限定的な効果しか望めそうにない。
3.充電器を買わない人間がいるとは考えづらく、かつ1000円以下ではユーザーが大喜び、ということもなさそうだ
4.別売りという事は流通が複雑化するということで、コストアップ要因になるのではないか
とマイナス面ばかりが思いつくのだが。
ところで、お店のおねーちゃんがパソコンもってないというので、妹が買うときに半分だしてやったんだけど、最近安いで〜、という話をしていたら、真顔で「私にも買ってください」と言われた。
どういう接客マニュアルなのだ??
なぜ??
よくわからんかった。

本当に買って欲しいとは思えない! ランキング!!
taskset 0x00000001 ls
taskset -p 0x00000003 12345
のように使う。
第一引数の0x00... というのがCPUマスク。
0x00000001 ならCPU#0のみ、
0x00000003 ならCPU#0とCPU#1.
-p オプションでpidが指定できる。
古人曰く「結婚は人生の墓場である。」
新人曰く「夜は墓場で運動会。」
おいおい、鬼太郎の歌ってそういう意味かよ!!
ネタ元: http://www.infosnow.ne.jp/~sevas/adu-index.html
コマンドプロンプトで以下の操作をするだけ
regsvr32 /u zipfldr.dll
regsvr32 /u cabview.dll
ネタ元: http://hail2u.net/blog/software/turn-off-zip-folder.html
Linux on IA64 だと山ほどでるので、あとで試したい。
実験マシンはRHEL4U2 on IA64.
ソースファイル:
main(int argc, char** argv){
argv[0] = "hoge";
while(1)
;
}はずかしいバグを入れてしまった(コメント参照のこと)
↓こっちを見てね
#include
main(int argc, char** argv){
strcpy(argv[0], "hoge");
while(1)
;
}
psコマンド出力結果:
$ ps
PID TTY TIME CMD
19260 pts/2 00:00:00 bash
19283 pts/2 00:00:01 a.out
19284 pts/2 00:00:00 ps
とゆーわけで、Linuxではargv0書き換えは意味がない。に一票。
おぼろげな記憶で書くと、もともとargv0書き換えってBSD系とSYSV系で
動作が違ってるから互換性ないよー
とか言われてなかったっけ?昔。
BSD系はPSコマンドがユーザプロセスの領域みてる(ような気がする)
から、BSD向けのコードなんじゃね?
Linuxではexec時にコマンドライン文字列をcurrent->commにstrcpyしちゃってるからargv[0]書き換えは意味無いと思うな。
Linuxでは、psの出力を誤魔化すような書き換えは出来ないんじゃねーかーとか思っておりまする。
だれか反論プリーズ
追記: よく見たら、すっげー古い記事だったので、いまさらコメントしても何の意味もなかったorz
ここはあろはさんが悪いということにしておこう。
Binary Hackの初心者向けの、ほぼ唯一といってもよい、すごくいい本なので、OSとかlibcとかの低レベル層に興味があるひとは、ぜひ買っていただきたい1冊と思います。
で、ここで読者さまの物欲刺激用と自分向け備忘録をかねて
この本を読んで初めて知ったTipsを1つ。
cpp に -dM オプションを付けると predefined macro 一覧が得られる。
アーキ依存処理を入れたい時に限ってCPU毎のdefine名(__ia64__ とか)が思い出せないのはよくあることなので、これは便利だ。
つーか、man嫁。自分。とか思った。
$ cpp -dM /dev/null
#define __DBL_MIN_EXP__ (-1021)
#define __FLT_MIN__ 1.17549435e-38F
#define __CHAR_BIT__ 8
#define __WCHAR_MAX__ 2147483647
#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
#define __FLT_EVAL_METHOD__ 0
#define __ia64 1
#define __DBL_MIN_10_EXP__ (-307)
#define __FINITE_MATH_ONLY__ 0
#define __GNUC_PATCHLEVEL__ 3
#define __SHRT_MAX__ 32767
#define __LDBL_MAX__ 1.18973149535723176502e+4932L
#define __linux 1
#define __unix 1
#define __LDBL_MAX_EXP__ 16384
#define __linux__ 1
#define __SCHAR_MAX__ 127
#define __USER_LABEL_PREFIX__
#define __STDC_HOSTED__ 1
#define __LDBL_HAS_INFINITY__ 1
#define __DBL_DIG__ 15
#define __FLT_EPSILON__ 1.19209290e-7F
#define __LDBL_MIN__ 3.36210314311209350626e-4932L
#define __unix__ 1
#define __DECIMAL_DIG__ 21
#define __ia64__ 1
#define __gnu_linux__ 1
#define __LDBL_HAS_QUIET_NAN__ 1
#define __GNUC__ 3
#define __DBL_MAX__ 1.7976931348623157e+308
#define __DBL_HAS_INFINITY__ 1
#define __DBL_MAX_EXP__ 1024
#define __LONG_LONG_MAX__ 9223372036854775807LL
#define __GXX_ABI_VERSION 1002
#define __FLT_MIN_EXP__ (-125)
#define __DBL_MIN__ 2.2250738585072014e-308
#define __LP64__ 1
#define __DBL_HAS_QUIET_NAN__ 1
#define __REGISTER_PREFIX__
#define __NO_INLINE__ 1
#define __FLT_MANT_DIG__ 24
#define __VERSION__ "3.4.3 20041212 (Red Hat 3.4.3-9.EL4)"
#define unix 1
#define __SIZE_TYPE__ long unsigned int
#define __ELF__ 1
#define __FLT_RADIX__ 2
#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
#define __GNUC_RH_RELEASE__ 9
#define __FLT_HAS_QUIET_NAN__ 1
#define __FLT_MAX_10_EXP__ 38
#define __LONG_MAX__ 9223372036854775807L
#define __FLT_HAS_INFINITY__ 1
#define linux 1
#define __LDBL_MANT_DIG__ 64
#define __itanium__ 1
#define _LONGLONG 1
#define __WCHAR_TYPE__ int
#define __FLT_DIG__ 6
#define __INT_MAX__ 2147483647
#define __FLT_MAX_EXP__ 128
#define __DBL_MANT_DIG__ 53
#define __WINT_TYPE__ unsigned int
#define __LDBL_MIN_EXP__ (-16381)
#define __LDBL_MAX_10_EXP__ 4932
#define __DBL_EPSILON__ 2.2204460492503131e-16
#define _LP64 1
#define __FLT_DENORM_MIN__ 1.40129846e-45F
#define __FLT_MAX__ 3.40282347e+38F
#define __FLT_MIN_10_EXP__ (-37)
#define __GNUC_MINOR__ 4
#define __DBL_MAX_10_EXP__ 308
#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
#define __PTRDIFF_TYPE__ long int
#define __LDBL_MIN_10_EXP__ (-4931)
#define __LDBL_DIG__ 18

システムの中身を覗きます! ランキング!
絶対儲かると思えるだけに悔しい。
しかし、kabu.comは抽選率、悪すぎだよ。
