NAKAMURA Minoru $B$NF|5-(B (2004$BG/(B3$B7n(B)

$B@h7n$NF|5-(B(2004$BG/(B02$B7n(B) $B:#7n$NF|5-(B(2004$BG/(B03$B7n(B)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2024 | 1 | 2 | 3 | 4
$B%[!<%`%Z!<%8(B | $B:G?7$N%3%a%s%H(B50
$B%$%s%G%C%/%9(B: $B?)$YJb$-(B | Java | $B%W%m%0%i%`(B | UNIX | $B2hA|(B
$B:G?7$NF|5-$X$N%j%s%/(B | $B$3$NF|5-%Z!<%8$r$O$F$J% $B$3$NF|5-%Z!<%8$r$O$F$J%V%C%/%^!<%/$KDI2C(B
$B$O$F$J(B $B%@%$%"%j!<(B $B%"%s%F%J(B $B%V%C%/%^!<%/(B $B%V%m%0(B
Twitter | mixi | Facebook | slideshare | github | Qiita



3/31 ($B?e(B)

$B0I?NF&Ie$O9%$-$@$,$3$l$O%@%a$@(B

$B%U%!%_%j!<%^!<%H$NC*$K$"$C$?(B $B!V0I?NF&Ie%I%j%s%/!W(B $B$r(B $B$h$;$P$$$$$N$KGc$C$F0{$s$G$_$k!#(B
$BK\Ev$K0I?NF&Ie$r1U>u2=$7$?$h$&$J46$8$N0{$_J*!#(B $BSH$($k$J$i(B$B!V0I?NF&IeL#$N%^%_!$B!#(B
$BF};@0{NA$d2L

$B$R$5$7$V$j$K!VK|FZ5-!W$,6u$$$F$$$k;~4V$KB` $B?7$7$$%a%K%e!<$,A}$($F$$$?$N$G(B $B$=$NCf$+$i!VKcme>_7\fB!W$r0lIJDI2C$GMj$`!#(B

$BK|FZ5-(B:$BKcme>_7\fB(B
$BKcme>_7\fB(B
$BK|FZ5-(B:$B9u$4$^%A%c!<%O%s(B
$B5mFy$?$C$W$j9u$4$^%A%c!<%O%s(B

$BDI5-!'(B4/7
$B:#F|(B $B$3$N%I%j%s%/$rGc$C$?%U%!%_%j!<%^!<%H$K9T$C$F$_$k$H!"(B $BC*$+$i!V0I?NF&Ie%I%j%s%/!W$,L5$/$J$C$F$$$?$h!#!#(B


3/30 ($B2P(B)

[Java] IBM Java2 SDK/JRE 1.4.1 SR2 for Linux

IBM $B$N(B x86/Linux $BMQ$N(B Java2 JRE 1.4.1 $B$,(B SR2 $B$K$J$C$?!#(B $B@-G=E*$K$O(B SR1 $B$H$=$l$[$I0c$$$,$J$$$h$&$@!#(B
$B$b$C$HA0$K8x3+$5$l$F$$$?$N$+$b$7$l$J$$$,!"(B IBM Garbage Collection and Storage Allocation Techniques $B$H$$$&;qNA$,8x3+$5$l$F$$$k$N$K5$$E$$$?!#(B
$B$3$N;qNA$NBgItJ,$O$9$G$K(B Web $B>e$G8x3+$5$l$F$$$?$,!"(B Mostly-Concurrent Mark & Sweep $B<~$j$N5!G=$N5-:\$,(B $B$6$C$/$jDI2C$5$l$F$$$k!#(B $B$3$l$r8+$k$H!"(B OOPSLA $B$H$+$G(B IBM $B$N(B Haifa $B8&$,H/I=$7$F$$$?(B Incremental Compaction $B$J$I$N5!9=$,(B $B$A$c$s$HEk:\$5$l$F$$$k$N$,J,$+$k!#(B
$B:#8eM>NO$,$"$l$P(B SUN $B$N(B Hotspot VM $B$H(B IBM $B$N(B VM $B$N0c$$$J$s$+$r(B Java $B$N%Z!<%8$K=q$/$D$b$j!#(B

[Patent] Intergraph $B$H(B Intel $B$,OB2r$7$?%"%k(B

$B0l:rG/$/$i$$$+$i(B Intel $B$H(B Intergraph $BY$O!"(B Intel $B$,(B Intergraph $B$K(B2$B2/(B2,500$BK|%I%k$r;YJ'$&$3$H$GOB2r$7$?(B $B$=$&$J!#(B $B$D$^$j $B:rG/$N(B 3/28$B$NF|5-(B $B$K$b=q$$$?$,!"(B $B%?!<%2%C%H$OB>$K$b$$$^$9$h!#(B $B!d(B Intergraph $B$5$s!#(B

NHK $B!V$_$s$J$N$&$?!W(B DVD-BOX $B$NH/Gd$O(B 4/23

$B%f!<%-%c%s%/%i%V$+$iH/Gd$5$l$k(B NHK $B!V$_$s$J$N$&$?!W$N(B DVD $B%3%l%/%7%g%s$N(B $BH/GdF|$H<}O?6J$N8x3+$5$l!"@h9TM=Ls$,;O$^$C$?(B ($B$3$3(B)$B!#(B 2/25 $B$NF|5-(B $B$K=q$$$?(B $B4IM}?M$N4uK>%j%9%H$NCf$G$O!"(B $B!V85AD%P%J%J$N:2!W!"(B $B!V$o$?$7$N$K$c$s$3!W!"(B $B!V@D6u$H%?%C%W%@%s%9!W0J30$,A4It<}O?$5$l$k$b$h$&!#(B $BCmJ8$9$k$7$+$J$$!#(B

Microsoft Linux (Microsoft Linux)

Active-XWindows$B!)(B Internet Xplorer$B!)(B
$249.99 $B$J$j!#(B


3/29 ($B7n(B)

Netsky

$B$A$^$?$rA{$,$;$F$$$k(B Netsk $B%o!<%`$H$=$N0! $B:#2s$O$+$J$j$N?t$N(B PC $B$,$d$i$l$?$h$&$G!"uBV!#(B $B;E;v$,$G$-$J$$$[$I$G$O$J$$$,(B $B%M%C%H%o!<%/$,=E$$$N$G%9%H%l%9$K$J$k!#(B
$B%a!<%k$r3NG'$7$F$_$k$H!"(B $B4IM}?M08$F$KAw$i$l$F$-$?(B Netsky.Q $B$,(B 10 $BDLA08e!"(B From $B$K<+J,$N%a!<%k%"%I%l%9$r56>N$5$l$?$,!"(B To $B$,B8:_$7$J$$%"%I%l%9$J$N$GLa$C$F$-$?%a!<%k$,(B 4 $BDL!#(B InterScan $B$K0z$C$+$+$C$?(B WORM_NETSKY.D$B!"(BWORM_NETSKY.Q $B$,(B 20$B?tDL!#(B
$B$$$$2C8:(B $B2q

$BDI5-!'(B3/31

WORM_NETSKY.P $B$bMh$?!#(B
$B$D$$$G$K(B $B$3$N(B2$B=54V$0$i$$$G(B WORM_MIMAIL.R $B$H(B WORM_MYDOOM.A $B$H(B WORM_BAGLE.A $B$bMh$F$$$?!#(B

[Trivia] $BF|MK$OM7$S$NF|$K$"$i$:(B

CNN$B%K%e!<%9(B $B$K$h$k$H!"(B $B%m!<%^K!2&(B $B%h%O%M!&%Q%&%m(B2$B@$$,(B27$BF|!"(B $B%P%A%+%s$rK,LdCf$N%*!<%9%H%i%j%";J65CD$KBP$7!"(B $BF|MKF|$O?@$N$?$a$NF|$G$"$C$F!"(B $B%9%]!<%D$d8d3Z$NF|$G$O$J$$$H=R$Y!"(B $B@$B/ $B@$B/!9$H$b$+$/!"(B $B$3$l$O0lIt$N?M$?$A$NF32P@~$K2P$rIU$1$=$&$J$j!#(B

$B0l=54V$r(B7$BF|$H$7$?$N$O(B $B%L%a%N!<%k?M(B $B8EBe%P%S%m%K%"(B$B$@$,!"(B $B%f%@%d65$O$3$N(B7$BF|4V$r!VF|MKF|$+$i;O$^$jEZMKF|$G=*$o$k!W$HDj5A$7D>$7(B $B:G8e$NEZMKF|(B ($B6bMK$NF|KW$+$iEZMK$NF|KW$^$G(B) $B$r0BB)F|$H$7$?!#(B $B$D$^$j%f%@%d65$G$OEZMKF|$,!V?@$N$?$a$NF|!W!#(B
$B0lJ}%f%@%d652~3W1?F0$+$iCB@8$7$?%-%j%9%H65$O!"(B $BEZMKF|$G$O$J$/F|MKF|$r!VNiGR$NF|!W$H$7$F$$$k!#(B $B$3$NJQ99$,9T$o$l$?M}M3$O(B ($B4IM}?M$,CN$k8B$j(B) $B#2@b$"$k!#(B

  1. $B%-%j%9%H$,I|3h$,F|MKF|$@$C$?$+$i!"$3$NF|$r?@@;;k$7$?!#(B
  2. $B%m!<%^Dk9q;~Be$N(B $BF|MK5Y6HNa(B $B$N1F6A!#(B

2. $B$NF|MK5Y6HNa$H$$$&$N$O%3%s%9%?%s%A%L%9(B1$B@$$,(B A.C. 321$BG/$K=P$7$?!VF|MK$r$*5Y$_$NF|$H$9$k!W$H$$$&K!Na!#(B
$B%3%s%9%?%s%A%L%9(B1$B@$$O%_%i%ND $B!t(B $B$3$N$"$?$j$N>\$7$$Nr;K$OD4::$7$?J}$,$$$$$>(B $B!d(B $B%*%l(B
$B!t(B $B%(%I%o!<%I!&%.%\%s$N!V%m!<%^Dk9q?jK4;K!W$K$O:\$C$F$$$k$+$b!)(B
$B!t!t(B $B$A$J$_$K%-%j%9%H65$,9q652=$5$l$k$N$O%F%*%I%7%&%9Dk$N;~$G(B A.C. 392$BG/!#(B

$B:#2s$N%m!<%^K!2&$NH/8@$N2?$,LdBj$+$H$$$&$H!"%"%a%j%+$K$O(B Seventh-Day Adventist (SDA)$B$H$$$&8F$P$l$k%W%m%F%9%?%s%H$N0lGI$,$$$F7k9=$J@*NO$r8X$C$F$$$k!#(B $BH`$i$O%f%@%d65$HF1$8$/EZMK$r0BB)F|$H$7$F$$$F!"$+$J$j6/Nu$K%+%H%j%C%/$N!VF|MK$O?@$NF|!W$r8}7b$7$F$$$k!#(B
$B%+%H%j%C%/$H$7$F$b5lLs@;=q$KM3Mh$9$k!V?@$,@$3&$r:n$C$?8e5Y$^$l$?F|!W$OEZMKF|$G$"$k$H$$$&E@$OG'$a$F$$$F!"!VF|MK!a0BB)F|!W$H$9$k$N$O@;=q$K5r$i$J$$$H$$$&N)>l$rEAE}E*$K$O

$B$=$l0J30$G$b%h%O%M%Q%&%m(B2$B@$$O!V?J2=O@$O2J3X$G$"$k!W$HG'$a$F$7$^$C$F!"%U%!%s%@%a%s%?%j%9%H$+$iL\$NE($K$5$l$F$$$k%J%j$h!#(B

$B4IM}?M$H$7$F$O(B $B$b$&%f%@%d65(B-$B%-%j%9%H65(B-$B%$%9%i%`65$N0l?@65$O?.$8$k$3$H$O$G$-$J$$$,!"(B $BEllen G. White $B$NA4=8(B $B$O;`$L$^$G$K$OFI$s$G$_$h$&!#(B
$B!t(B $BL5O@!"(BWhite $B=w;K$NK\$O(B $B$b$K$g$b$K$g(B $B$b$K$g$b$K$g(B ($B0J2<(B $BN,(B)

$B3P=q(B

Gun Grave $B$N%"%K%a$,=*$o$C$?$J$j!#(B

$B%3%a%s%H$r=q$-9~$`(B
[1] [Hiroko M$(D+d(Bller] 2007-10-10 06:12:56
$B%(%l%s!&#G!%%[%o%$%H=w;K$O:#@$5*$KM?$($i$l$?:G8e$NMB8@.$5$JK\$G$9$N$G@'HsFI$s$G8+$F2<$5$$!#$=$3$K8=%"%a%j%+$K$*$$$F%m!<%^K!2&$NL?$K$h$k!cF|MK5Y6HNa!d$,$@$5$l!"$D$:$$$F@$3&$G!cF|MK5Y6HNa!d$,=P$5$l$?;~$KEZMKF|$rNiGR$9$k@;EL$KBP$9$kCf@$$N$h$&$J%-%j%9%H65.$5$J?7J9$,=P$5$l$F$*$j$^$9!#$3$l$K$O8=:_$N@/<#$H%m!<%^K!2&65$N>uBV$,NI$/@bL@$5$l$F$*$j$^$9!#$*JlMM$N=q$OA4=q!c#S(Bpirit of prophecy$B!d$H$7$F8|$$0l:}$N=q$KE;$a$i$l$F8=:_Gc$&$3$H$,$G$-$^$9$,!"$3$l$O8%6b$K$h$j$d$C$H=PHG$$5$l$?$N$G$O$J$$$+$H4n$S$H46F0$r3P$($^$9!#FI$s$G$/$@$5$C$F$"$j$,$H$&$4$6$$$^$9!#!!%9%$%9$h$j(B

3/28 ($BF|(B)

[Java] Java $B$N(B java.lang.ref.SoftReference

$B;2>H%*%V%8%'%/%H$N(B $B%=%U%H;2>H(B (SoftReference) $B$H(B $BH(B (WeakReference) $B$N0c$$$O!"(B $BH$,%,!<%Y!<%8%3%l%/%?!<$,H$O%=%U%H2DE~C#$HH=CG$5$l$F$b(B $B%a%b%j$KM>M5$"$j$HH=CG$5$l$?>l9g$K$O%/%j%"$7$J$$$3$H$,5v$5$l$k(B (OutOfMemoryError $B$r%9%m!<$9$kA0$K$O%=%U%H;2>H$O$9$Y$F%/%j%"$9$kI,MW$,$"$k(B)$B!#(B
$B$=$3$i$X$s$K

  • IBM VM $B$O!"(B SoftReference.get() $B$r%"%/%;%9$7$F$+$i(B $B0lDj;~4V$?$C$?;~$K%=%U%H2DE~C#$K$J$C$?;~$O%/%j%"$5$l$k!#(B
  • SUN Hotspot VM $B$O(B IBM VM $B$HF1MM$@$,!"(B SoftRefLRUPolicyMSPerMB $B%*%W%7%g%s$GD4@02DG=!#(B
  • BEA JRockit $B$O(B OutOfMemoryError $B$,%9%m!<$5$l$k$^$G%/%j%"$5$l$J$$!#(B

$B$H$J$C$F$$$k!#(B
$B$3$&$$$&Iw$K$$$m$$$m5sF0$KI}$,$"$k$+$i(B $B7k6IC/$K$b;H$o$l$J$$$N$h$M!#!#!#(B

3$B7nJ,$NEE5$NA6b$N@A5a=q(B $BMh$?$k(B

$B0z$C1[$7$F$+$i=i$a$F$N@5L#0l%v7nJ,$NEE5$NA6b$O(B 5,271$B1_(B!?
$B:#7n$O%(%"%3%s$O$[$H$s$I;H$C$F$J$$$7!"(B $B$3$NIt20$K$ONdB"8K$b@vBu5!$J$$$N$K(B 5,000$B1_$r1[$($k$H$O$3$lG!2?$K!#(B
$B;HMQEENONL$O(B 233k Wh$B!#(B $BJ?6Q$7$F(B2$BBf$N%Q%=%3%s$,F0$$$F$$$k$N$,$3$s$J$K$bEENO$r>CHq$9$k$N$+!"!"!"(B
$B0l7n$,(B 30 $BF|$@$H$9$k$H!"=V4VEENO$O(B 300W $B6/!#(B CO2 $B$@$H(B 88.54 kg $B$bGS=P$7$F$$$k$h!#(B

$BJ82=E*3hF0(B

$B:#8e$NM=Dj$J$j!#(B


3/27 ($BEZ(B)

[Bench][Tips] Linux/IA-64 $B$G(B SPEC CPU2000 $B$,7WB,ITG=(B

SPEC CPU2000 $B$O(B C$B!"(BC++$B!"(BFortran $B%=!<%9%3!<%IG[I[$5$l$k%Y%s%A%^!<%/$J$N$G!"(B $B!V(BSPEC CPU2000 $B$,7WB,$G$-$J$$!W$H$$$&$N$OIaDL(B $B%Y%s%A%^!<%/%W%m%0%i%`$,%3%s%Q%$%k$G$-$J$$(B $B>uBV$r;X$9$N$@$,!"(B $B4IM}?M$N>uBV$O(B $B$=$l0JA0$N(B $B%Y%s%A%^!<%/%W%m%0%i%`$N%3%s%Q%$%k$KI,MW$J%I%i%$%P!<$,%3%s%Q%$%k$G$-$J$$(B $B>uBV$@!#(B

SPEC CPU2000 $B$O%3%s%Q%$%i!"7WB,!"7k2L$NHf3S$N@)8f$K(B Tools $B$H8F$P$l$k<+:n%W%m%0%i%`72$rMQ$$$F$$$k!#(B $B$?$@(B Tools $B$N

$B$G!"(Bperl5.005_03 $B$,%S%k%I$G$-$J$$$G:$$C$F$$$k!#(B $B$=$N$^$^%S%k%I$9$k$H2<$N$h$&$J%(%i!<$,=P8=$9$k!#(B

make: *** No rule to make target `<built-in>', needed by `miniperlmain.o'.  Stop.

$B$I$&$b(B cpu2000/tools/src/perl5.005_03/makefile $B%U%!%$%k$NCf$K(B <built-in> <command line> $B$H$$$&Ff$NJ8;zNs$,4^$^$l$F$$$F0-$5$r$7$F$$$k$h$&$@!#(B
$B%$%s%?!<%M%C%H$G8!:w$7$?=j(B WATANABE, Hirofumi $B;a$N(B Just another Ruby porter,(Diary) $B$N(B 2002$BG/(B5$B7n(B28$BJ,$NF|5-(B $B$K2r$rH/8+!#(B v3.x.x $B7O$N(B gcc $B$N%W%j%W%m%;%C%5$,A^F~$9$k%-!<%o!<%I$,LdBj$i$7$$(B ($B%G%#%9%H%j%S%e!<%7%g%s$KIUB0$9$k(B gcc $B$O(B v3.2.3) $B!#(B cpu2000/tools/src/perl5.005_03/makedepend.SH $B$r=q$-49$(!"(B ./Configure -S$B!"(Bmake depend$B!"(Bmake all $B$H(B $BBG$D$H>/$7?J$`!#(B

$B$@$,cpu2000/tools/src/perl5.005_03/ext/DB_File/DB_File.c $B$G(B DB_INFO $B$,$J$$$H(B $BJ86g$r$$$o$l$k!#(B Berkeley DB Version2 $B$rMW5a$7$F$$$k$h$&$@$,!"(B $B%G%#%9%H%j$K:G=i$+$iF~$C$F$$$?(B Berkeley DB $B$O(B Version4$B!#(B
$B%G%#%9%H%j$K:G=i$+$iF~$C$F$$$k(B perl 5.8 $B$r$=$N$^$^;H$&$3$H$O$G$-$J$$$N$+$M!)(B $B!d(B SPEC $B$N?M(B

$BDI5-!'(B3/29

$B$@$$$?$$M}M3$,J,$+$C$?!#(B
$B7k6I(B SPEC CPU2000 $B$N(B Tools $B$,%S%k%I$G$-$J$$$H8@$&$h$j!"(B perl5.005_03 + $BFC

  1. $SPEC/cpu2000/tools/src/perl5.005_03/makedepend.SH $B$N(B L131 $B$H(B L132 $B$N4V$K@V;z$N9T$r2C$($k!#(B
    $sed \
         -e '/^#.*<stdin>/d' \
         -e '/^#.*<built-in>/d' \
         -e '/^#.*<command line>/d' \
         -e '/^#.*"-"/d' \
    
  2. $SPEC/cpu2000/tools/src/perl5.005_03/ext/DB_File/ $B0J2<$N(B $B%G%#%l%/%H%j$r:G?7$N(B DB_File $B%b%8%e!<%k(B ($BNc$($P(B $B$3$l(B) $B$KF~$lBX$($k!#(B
  3. $B4D6-JQ?t(B LANG $B$r(B C $B$K@_Dj$7$?8e!"(B $SPEC/cpu2000/tools/src/ $B0J2<$G(B ./buildtools $B$r

    $BDI5-!'(B4/24

    176.gcc $B$O(B Intel C++ Compiler v8.0 $B$G%S%k%I$,2DG=$@$,!" $B$=$&$$$&>l9g(B $B%P!<%8%g%s$r(B 8.0.0.58_pl063.1 $B0J>e$K>e$2(B -static$B!"(B-auto_ilp32 $B%*%W%7%g%s$rIU$1$F(B $B%S%k%I$9$k$H$&$^$/$$$/$3$H$,$"$k!#(B
    $B7Y9p$,B?$/$F%3%s%Q%$%k$,;_$^$k>l9g!"(B -wd180 -wd188 -wd256 -wd266 $B$"$?$j$r;XDj$7$F;_$a$k$HNI$$!#(B


3/26 ($B6b(B)

$B%i!

$B=PD%$N5"$j$K$$$D$b$N$h$&$K%i!$B!V$i!<$O$/?_K $B$G?)$Y$k$3$H$K$7$?!#(B
$B$G!"?7@=IJ(B $B!V2#_@$A$c$s$]$s!W(B $B$r?)$Y$F$_$k$h!#(B

$B$i!<$O$/?_K<(B:$B2#_@$A$c$s$]$s(B
$B$i!<$O$/?_K

$B%T!<%J%C%D$N:U$$$?$N$H%Y!<%3%s$,$N$C$F$$$k$h!D(B
$B%9!<%W$b%T!<%J%C%D$NL#$,$9$k!D(B
$BLM$O!VD9:j$A$c$s$]$s!W$N$h$&$KB@$$$1$I!"(B $B3$A/$,$U$s$@$s$K;H$o$l$kK\2H!VD9:j$A$c$s$]$s!W$H0c$C$F(B $BLn:Z0J30$N6q$O(B ($B%T!<%J%C%D$H%Y!<%3%s0J30(B) $BF~$C$F$$$J$$!D(B

$B:#F|$N7kO@(B
    $B$3$l(B $B!V$A$c$s$]$s!W(B $B$8$c$J$/$F(B $B!VLn:Z%i!<%a%s(B ($B%T!<%J%C%DF~$j(B)$B!W(B $B$G$O!)(B

$B%9%F%#!<%V%s!&%;%,!<%k$+$iF|K\8l$N%a!<%k$,FO$$$?$h(B

$B!V$3$s$$$A$O!#;d$O%9%F%#!<%V%s!&%;%,!<%k$G$9!#!W(B

$B$@$C$F$5!#%H%[%[!#(B


3/25 ($BLZ(B)

[Bench] IBM PowerPC 970 $B7O$N(B SPEC CPU2000 $B%9%3%"(B

$B:#7n$O(B www.spec.org $B$KEPO?$5$l$?(B SPEC CPU2000 $B$N7k2L$O(B Intel $B$N(B IA-32 $B$H(B SUN $B$N(B SPARC $B$@$1$GL\N)$C$?$b$N$O$J$+$C$?(B ($BMh7n$KF~$k$H$$$m$$$m$HL\?7$7$$(B CPU $B$N%9%3%"$,EPO?$5$l$k$N$@$,(B)$B!#(B
$B$=$NBe$o$j$H8@$C$F$J$s$@$,!"(B IBM PowerPC 970 $B7O(B CPU $B$K4X$9$k(B SPEC CPU2000 $B$N%9%3%"$r=8$a$F$_$k!#(B

CPUGHzCINT2000CFP2000$B=PE5(B
PowerPC 9702.0800840 $BJF(B VeriTest $B PowerMac G5 $B$N@-G=(B
PowerPC 9701.88281036 IBM $B$N(B PowerPC Quick Reference Guide $B$+$i!#(B
PowerPC 970FX2.08901100
PowerPC 970+2.510821361 $BFH(B C't $B$N(B$B5-;v(B$B$h$j!#(B ISSCC $B$+(B CeBit2003 $B$G$NH/I=$H;W$o$l$k!#(B $B%I%$%D8l$O$^$H$b$KFI$a$J$$$+$i$h$/J,$+$i$J$$!#(B
PowerPC 9701.89371051

$BB>$K$b(B PowerMac G5 (1.8GHz) $B>e$G!"(B GCC/NAGware Fortran $B$NBe$o$j$K(B IBM $B$N(B XL C/C++/Fortran $B$r;H$C$FB,Dj$r9T$C$?%Z!<%8$,$"$C$?$O$:$J$N$@$,!"(B $B%j%s%/$r>C<:$7$F$7$^$C$?!#(B $B$3$N%G!<%?(B $B$N$h$&$K$+$J$j$N@-G=8~>e$,F@$i$l$k$O$:$@!#(B


3/24 ($B?e(B)

$B$4$-$2$s$h$&!"$*;P$5$^(B

$BF,DK$,$5$i$K9s$/$J$k!#(B
Eclipse JDT $B%W%i%0%$%s$N(B refactoring $B%k!<%A%s$rFI$_$J$,$i!"(B AST $B%N!<%I>e$K2C$($?JQ99$r(B IDE $B>e$N%=!<%9%3!<%I$KH?1G$5$;$kJ}K!$rC5$9!#(B $B$7$+$7!"(B$B;X8~(B$B;W9M(B$BG=NO$,BgI}$KDc2<$7$F$$$k$N$G%3!<%I$r=q$/

$B8=e$N%K%e!<%9$rFI$s$G$$$k$H(B $B!V="?&Fq$G!)3X@8$N<+;&A}2C!"Bg3XB&$,M=KI$KK\9x!W(B $B$H$$$&5-;v$NCf$K(B

$B$*Cc$N?e=w;RBg!JEl5~ET!K$O?7G/EY$+$i!"(B $B@hGZ3X@8$,?7F~@8$NAjCLAj$l!"(B $B?=$79~$s$@?7F~@8#4!"#5?M$r

$B$N5-=R$,!#%j%"%k!V%9!<%k!W$C$9$+!)(B
$B$F!"K\Ev$K(B$B;X8~(B$B;W9M(B$BG=NO$,BgI}$KDc2<$7$F$$$k$h!#(B


3/23 ($B2P(B)

$B%j%/%k!<%F%#%s%03hF0$r9T$&(B

$BD+5/$-$k$HF,DK$,$9$k$,!"%j%/%k!<%F%#%s%03hF0(B ($B?MGc$$(B) $B$N$?$a$KBg3X$X=PD%!#(B
$B?M;v$,Bg3X$N6a>l$N%l%9%H%i%s$r $BM}7O3X@8$@$,@lLg$O%P%i%P%i!#(B SI $B;VK>$N3X@8$b7k9=B?$$$,!"5R4QE*$K8+$FM}7O$,(B SI $B$r;VK>$7$F$&$A$KF~$k$N$O$I$&$+$H;W$&$h!#(B

$BM<9o$h$j=P?H8&5f<<$rK,Ld$7$F8DJL$N%j%/%k!<%F%#%s%0(B ($B?MGc$$(B) $B$b9T$&!#(B
$B@h=5$O#S!":#=5$O#H$d#M(B($B#P(B)$B$,4+M6$KMh$k$=$&$J!#(B
$BHUHS$O3X@8$N?M$H:,DE$N!V%U%l%s%G%#!W$GOBDj?)$r?)$Y$k!#(B

$BFI=q(B

2/17 $B$+$iFI$s$G$$$k%f%j%7!<%:(B(1$B4,(B$B!"(B2$B4,(B$B!"(B3$B4,(B$B!"(B4$B4,(B)$B!#(B
$BA0$K8e$m$K$b?J$^$J$$%9%H!<%j!<$@$,FI$_?J$a$F$$$/$&$A$K!#(B $B$"$l$@!#%H%j%C%W$9$k$h$&$J463P$K=1$o$l$k!#(B
3$B:}L\$^$GFI$s$G!":G8e$N(B 4 $B4,L\$rC5$7$K6a=j$NK\20$K9T$/$,!"FnL5;0!"(B4$B4,L\$O$9$G$K>C$($F$$$?!#(B
$B$3$NE9$OGv>p$@$J!#(B $B%9%F%#!<%V%s!&%-%s%0$N!V%I%j!<%`!&%-%c%C%A%c! $BLLGr$1$l$PB3$-$rFI$b$&$H(B 1$B!&(B2$B4,$@$1Gc$C$?$N$K!"B3$-$rC5$7$?;~$K$O(B3$B!&(B4$B4,$OJVIJ$5$l$F$$$?$h!#(B

$B%*%s%i%$%s$N=qE9$r;H$($P$h$$$N$@$,!"N@$r0z$-J'$C$F$+$iBp5^JX$N $BK\6?$K=P$k$N$G$D$$$G$K?@J]D.$K4s$C$F$$$3$&!#(B
$B;0>JF2$@!#%(%l%Y!<%?!<$r$N$\$C$F?MJ8$N3,$K!#(B
$B4IM}?M$,30$K=P$k$H(B 3 $B:}$NK\$,%S%K!<%kB^$KF~$l$i$l$F$$$?!#(B

  • $B%8%c%C%/!&%V!<%t%l%9Cx(B $B5\Be9/>fLu(B $B!V%"%J%m%8!<$Nf+!W(B($B?7=q4[(B)
  • $B%&%#%H%2%s%7%e%?%$%sCx(B $BLnLpLP$B!VO@M}E/3XO@9M!W(B($B4dGHJ88K(B)
  • $BLnLpLP$B!V!XO@M}E/3XO@9M!Y$rFI$`!W(B($BE/3X=qK<(B)
  • $B%H!<%^%9!&%/!<%sCx(B $BCf;3(B $BLPLu(B $B!V2J3X3WL?$N9=B$!W(B($B$_$9$:=qK<(B)

$B$$$d4V0c$($?$o$1$8$c$J$$!#(B
$B


3/22 ($B7n(B)

IP-Processor $B$K?7@=IJ$,=P$F$7$^$C$?$h!"%H%[%[(B

$B:rG/!"(B $B;6!96lO+$5$;$i$l$?%/%i%9%?5<$K(B $B?7@=IJ(B $B$,=P$?$h$&$@!#(B
IP-Processor $B$H$O!"$h$&$9$k$K(B HDD $BBe$o$j$K(B CF $B%a%b%j$r;H$&(B 3.5 $B%$%s%A%U%m%C%T!

$B$@$,A0%P!<%8%g%s$O(B VGA $BC<;R$,$J$$$?$a(B $B%3%s%=!<%k7PM3$G%$%s%9%H!<%k2DG=$J(B OS $B0J30$O;HMQITG=!#(B $B$7$+$b%G%#%9%/%$%a!<%8$,(B CF $B%a%b%j$K<}$^$i$J$$$H$$$1$J$$$+$i!"(B $BIaDL$N(B PC-UNIX $B$N%G%#%9%H%j%S%e!<%7%g%s$O;HMQ$G$-$J$$!#(B
$B$=$N>e!"(B $B$3$N

$B:#2s$O$=$N$"$?$j$NH?>J$r$b$H$K(B VGA $B$H%j%b!<%H4F;k!&@)8f5!9=$,DI2C$5$l$?LOMM!#(B
CPU $B$O(B Transmeta efficeon TM800 (1.0GHz $B!A(B 2.0GHz)$B!"%a%b%j$O(B 1$B!A(B2 GB $B$,:\$C$F(B 18W $BDxEY$GF0$/$=$&$J!#(B $B@=IJ;EMM0lMw$O(B $B$3$A$i(B$B!#(B
$B$?$@$7$3$N;EMM$O(B EXCEL $B%U%!%$%k$GG[I[!#(B $B$=$N>e!"%5!<%P!<$O(B Content-Type $B$K(B text/plain $B$rJV$7$F$-$d$,$k!#(B


3/20 ($BEZ(B)

Sound Horizon $B$N(B Chronicle 2nd

$BMh$?$h!#(B


3/19 ($B6b(B)

[Compiler] $B$H$K$+$/(B IA-64 $B%"%;%s%V%i$,M}2r$G$-$k$h$&$K$J$m$&(B

$BK?%_%I%k%&%'%"$N%3%s%Q%$%iItJ,$,EG$-=P$9%"%;%s%V%i$r$_$J$,$i%3!<%I$NIJ $B$7$+$7EG$-=P$5$l$?%3!<%I$,NI$$$b$N$J$N$+0-$$$b$N$J$N$+$O$5$C$Q$j$@!#(B
$B4IM}?M$,M=A[$7$F$$$?$h$j$bL?Na%P%s%I%kFb$N%9%m%C%H=

$B$H$$$&$o$1$G!"(B IPC (Instruction Per Cycle) $B$J$I$,I=<($G$-$k%D!<%k$rC5$9!#(B
Intel $B$N(B VTune $B$,%Y%9%H$J$N$@$,!"$"$$$K$/(B Itanium2 $BMQ$N$O;}$C$F$$$J$$!#(B
SGI $B$N(B IRIX $B$N(B perfex $B$N$h$&$K(B OS $BB&$KMQ0U$7$F$*$$$F$/$l$h!"(B $B$H;W$$$J$,$i%M%C%H$rD4$Y$_$k$H(B hp $B$,(B Perfmon $B$r(B $B8x3+$7$F$$$k$h$&$@!#(B
$B%+!<%M%k$X%Q%C%A$r08$F$kI,MW$,$"$k$N$G(B $B:#F|$OF0$/$H$3$m$^$G;}$C$F$$$1$:!#(B

$B;29M(B


3/18 ($BLZ(B)

[Compiler] $B%3%s%Q%$%i$K4X$9$k;(5-(B

  • $BIY;NDL$N(B IA-32 Linux $BMQ(B Fortran/C/C++ $B%3%s%Q%$%i(B $B$K(B $B%P!<%8%g%s(B 5 $B$,EP>l!#(B
    $B$G$b!"$I$3$,?7$7$/$J$C$?$N$+J,$+$i$J$$!#(B
  • Absoft $B$N(B AMD64 $BMQ(B Fortran 95 compiler v9.0 $B$rH/I=!#(B
  • NAGWare $B$N(B Win32 $BMQ(B Fortran $B$N(B v4.2 $B$rH/I=!#(BAMD-64/Linux $BMQ(B v5 $B$r%j%j!<%9!#(B

[Lang] C# & CLI

ECMA $B$H(B ISO/IEC $B$K$h$C$F:vDj$5$l$F$$$k(B C#$B!"(BCLI $B$N;EMM$O(B $B$3$3(B$B!#(B

  • C# Language Specification
  • CLI Partition I - Architecture
  • CLI Partition II - Metadata and File Format
  • CLI Partition III - CIL
  • CLI Partition IV - Library
  • CLI Partition V - Annexes
  • Class Library XML
  • Class Library Detailed Specifications
  • CLI Technical Report

$B;EMM=q$H$7$F$O!"Dj5A$,87L)$G$J$$$H$3$m$,;68+$5$l$k!#(B
$BNc$($P(B $B!V(Bdestructor $B$O(B GC $BCf$K5/F0$5$l$k(B (The destructor for an instance is called automatically during garbage collection. C# Standrad 8.7.9) $B!W(B $B$H$+K\Ev$+!)$H;W$o$l$kItJ,$,2?E@$+$"$k!#(B

[Link] $B$=$NB>(B

$BL>8E20Bg$N?\ED=u65$B1~MQJ*M}3XFCO@$N%Z!<%8(B ... $B%"%k%4%j%:%`$NOC$,$^$H$^$C$F$$$k(B


3/17 ($B?e(B)

[Java] Itanium2 $B%^%7%s$OCY$$$,!"(BBEA JRockit 1.4.2 $B$OB.$$(B

rx2600 $B$G(B Java $B7O%Y%s%A%^!<%/$N@-G=$r$\$A$\$A$H$C$F$$$k!#(B
GC $B$N1F6A$rL5;k$G$-$k$0$i$$(B Xmx/Xms $B$rBg$-$/$H$C$F(B JIT $B%3%s%Q%$%i$N@-G=$rHf3S$9$k$H!"(B BEA JRockit 1.4.2_03 $B$O(B Sun Hotspot VM 1.4.2_03 $B$h$j$b(B 50% $B$0$i$$9bB.$JCM$rC!$-$@$9!#(B $B%a%b%j$r8:$i$7$F(B GC $B$N1F6A$,=P$k$h$&$K$9$k$H(B $B$[$H$s$I(B 100% $BB.$/$J$k%"%W%j%1!<%7%g%s$b$"$k!#(B

$B@N!"(B 4-way $B$N(B Itanium2 1000MHz (L3:3MB) $B%^%7%s$re$G(B SPEC JBB2000 $B$r7WB,$7$?;~$O!"(B ($BEv;~@$$K$"$C$?(B) BEA JRockit 8.0 SP1 $B$G(B 43,632 ops/sec$B!"(B Sun Hotspot VM 1.4.2_01 $B$G(B 39,804 ops/sec $B$G(B $B@-G=:9$O(B 10% $BDxEY!#(B BEA $B$,(B IA-64 $B$K(B JRockit $B$r:GE,2=$7$?$H$$$C$F$b(B $B8}$[$I$K$b$J$$$H;W$C$F$$$?$N$@$,!"(B $B$?$$$7$?$b$N$@!#(B JRockit $B$h!"7/$O8b2<0$LX$K$"$i$:!#(B

$BDI5-!'(B3/27
IPF $B$G$N(B BEA $B$N@-G=8~>e$O(B JRockit 8.1 SP2 $B"*(B JRockit 1.4.2 $B$N4V$G9T$o$l$?$h$&$@!#(B JRockit 8.1 SP2 $B$N@-G=$O(B Sun Hotspot VM 1.4.2_03$B!"(B1.5.0 $B$H(B $B$[$H$s$IJB$s$G$$$k!#(B


3/16 ($B2P(B)

[CPU] Itanium2 $B$V$ACY$$!D(B

3/9 $B$KFO$$$?(B rx2600 $B$r%i%C%/$K%^%&%s%H$7$F(B RedHat Enterprise Linux AS 3.0 $B$r%$%s%9%H!<%k!#(B $B$\$A$\$A(B hp rx2600 (Itanium2 1.3GHz) $B$N%G!<%? $B%F%9%H%W%m%0%i%`$O!"(B 4KB $B$N%a%b%j$rFI$s$G1i;;$7$F=q$-9~$`$@$1$N!#(B Pentium3 $B!A(B Itanium2 $B$G%-%c%C%7%e$K>h$k0J2<$N$h$&$J%W%m%0%i%`!#(B

/* $B%G!<%?$NBg$-$5$O(B 4KB               */
#define MAX              1000

/* $B$3$3$r(B + $B$K$7$?$j(B * $B$K$7$?$j$9$k(B   */
#define OPERATION(x,y)   ((x)+(y)) 

int D[MAX];
 
int main(int argc, char** argv) {
  int i,j,k,l; 

  for(l=0 ; l<10 ; l++)
    for(j=0 ; j<MAX ; j++)
      for(k=0 ; k<MAX ; k++)
        for(i=0 ; i<MAX ; i++)
          D[i] += OPERATION(j,k); 

  return 0;
}

$BHf3SBP>]$H$7$F(B Vine Linux 2.6 $B$r%$%s%9%H!<%k$7$?(B Pentium3 800MHz (L1:16K+16K L2:256K)$B!"(B RHEL AS2.1 $B$r%$%s%9%H!<%k$7$?(B Pentium4 1.7GHz (L1:12K op L2:128K) $B$r2C$($k!#(B $BF1$8%W%m%0%i%`$r(B Pentium3 800MHz $B%^%7%s$N(B gcc v2.95.3 $B$G%3%s%Q%$%k$7$?(B IA-32 $B%P%$%J%j(B $B$H!"(B Itanium2 1.3GHz $B$N(B gcc 3.2.3 $B$G%3%s%Q%$%k$7$?(B IA-64 $B%P%$%J%j(B $B$r:n@.$7!"(B 3$BBf$N%^%7%s!"(B4 $BDL$j$NAH$_9g$o$;$G $B%W%m%0%i%`$N

CPU $B%P%$%J%j(B $B2C;;(B
(GCC -02)
$B>h;;(B
(GCC -02)
$B2C;;(B
(GCC -03)
$B>h;;(B
(GCC -03)
$B2C;;(B
(ICC -fast)
$B>h;;(B
(ICC -fast)
Pentium3 800MHzIA-32 37.87037.900 37.90037.880   
Pentium4 1.7GHzIA-32 17.90018.249 17.88017.870   
Itanium2 1.3GHzIA-32 46.42846.590 46.58646.427   
Itanium2 1.3GHzIA-64 34.70034.747 30.94930.857 15.44610.360

$B$I$&$b(B IA-64 $B%M%$%F%#%V$G$b(B GCC $B$G%3%s%Q%$%k$7$?%P%$%J%j$O!"(B Pentium3 800MHz $B$K$O>!$k$b$N$N(B Pentium4 1.7GHz $B$K$O5Z$P$J$$$b$h$&!#(B $B$@$$$?$$(B Pentium3 1.0GHz $BAjEv$0$i$$$+!)(B
$B0lJ}!"(BIA-32 $B%(%_%e%l!<%7%g%s$NJ}$O4|BT$7$?$h$j$b@-G=$,=P$G$F$$$k!#(B Petnium3 600MHz $B$0$i$$$+$7$i$M!#(B

$BDI5-!'(B3/18
Linux/Itanium2 $BHG$N(B Intel C/C++ Compiler (ver. 8.0 Build20040303) $B$r;H$C$?7k2L$rDI2C!#(B
GCC (-O3) $B$HHf3S$7$F2C;;$O(B 2 $BG\$K!">h;;$O(B 3 $BG\$K@-G=%"%C%W!#(B
$BAGE($@!#(B


3/15 ($B7n(B)

[Java] Eclipse JDT $B%W%i%0%$%s$r$7$3$7$3:n@.(B

Eclipse JDT $B$N5!G=$rMxMQ$7$?%W%i%0%$%s$N:n@. $B3P$(=q$-!#(B

  • Java element API $B$H(B JDOM API $B$O%(%G%#%C%?Cf$N%=!<%9%3!<%I$r=$@5$9$k$3$H$,2DG=!#(B $B$?$@$7(B Java elemtn API (IMethod) $B$ODI2C$d:o=|$O$G$-$k$b!"(B JDOM API (IDOMMethod) $B$N$h$&$K=$@5!&JQ99$O$G$-$J$$!#(B
  • Java $B%=!<%9%3!<%I$rFI$_9~$s$G%3%s%Q%$%i:GE,2=$N$h$&$J$3$H$r$7$?$$>l9g$K$O!"(B ICompilationUnit $B$+$i(B AST.parseCompilationUnit $B$rMQ$$$F(B AST $B$r@8@.$7!"(B $B$=$N>e$G(B AST $B$NJQ7A$r9T$&!#(B
  • $B$?$@$7!"=$@58e$N(B AST $B$NFbMF$O%(%G%#%C%?>e$N%=!<%9%3!<%I$KH?1G$5$l$J$$!#(B AST $B$N=$@5ItJ,$HBP1~$9$k%=!<%9%3!<%I$r(B Java element / JDOM $B$r;H$C$F=$@5$9$kI,MW$,$"$k!#(B $B0l1~!"(BAST Rewriting API $B$,;Y1g$7$F$/$l$k$h$&$@!#(B

$B;29M!'(B


3/13 ($BEZ(B)

[Prog] $B%9%?%C%/%*!<%P!<%U%m!<%O%s%I%j%s%0(B (Part3)

($B$3$NF|5-$NFbMF$O(B $B$3$N%Z!<%8(B $B$K$^$H$a$^$7$?(B)

3/6$B!&(B 3/11 $B$NB3$-!#(B
UNIX $B7O(B OS $B$G$OBeBX%7%0%J%k%9%?%C%/(B(alternative signal stack)$B$r@5$7$/@_Dj$7!"(B SEGV $B%7%0%J%k$r%-%c%C%A$9$k$3$H$K$h$C$F%9%?%C%/$N%*!<%P!<%U%m!<$rJdB-$9$k$3$H$,$G$-$k!#(B $B$3$N8e%7%0%J%k%O%s%I%iFb$G(B exit/abort $B$9$k$h$&$J%(%i!<=hM}$r$9$k$N$G$"$l$P!"(B $B%9%?%C%/%*!<%P!<%U%m!<%O%s%I%j%s%0$O(B Part2 $B$^$G$N=hM}$G=*$o$j$H$J$k!#(B
$B$7$+$7!"(B $B%9%?%C%/%*!<%P!<%U%m!<$,H/@8$7$?$H$7$F$b(B $B85$N%3%s%F%-%9%H$G=hM}$rB39T$7$?$$$H$$$&>l9g$b$"$k!#(B $B$3$N>l9g!"0J2<$NFsDL$j$NJ}K!$,9M$($i$l$k!#(B

  • (a) $B%7%0%J%k%O%s%I%i!(b) $BDL>o$N%3%s%F%-%9%H$N:F3+%]%$%s%H$r(B sigsetjmp $B$r;H$C$F5-O?$7$F$*$-!"(B $B%7%0%J%k%O%s%I%iFb$G(B siglongjmp $B$r;H$C$F$=$3$K%8%c%s%W$9$k$3$H$G:F3+$9$k!#(B

$B:#2s$O(B (a) $B$N$9!#(B

$B%9%?%C%/%*!<%P!<%U%m!<$O!V%9%?%C%/NN0h$,0n$l$F(B($B1[$($F(B)$B$7$^$C$?!W$H$$$&%K%e%"%s%9$,$"$k$,!"(B $BBg35$N(B OS $B$G$O%9%?%C%/%*!<%P!<%U%m!<$NIT@5%"%/%;%9Nc30$O%9%?%C%/NN0h$NCf$GH/@8$9$k$h$&$KA[5-21(B 1$B%Z!<%8$N(B $B%,!<%INN0h(B $B$r@_$1$F$$$F!"(B mprotect $B4X?t$K$h$C$FFI$_9~$_!&=q$-9~$_!&e$O%9%?%C%/$O?-$P$;$^$;$s!W$H$$$&$3$H$r$"$i$o$7$F$$$k!#(B

(a) $B$N $B%9%?%C%/%*!<%P!<%U%m!<$N(B SEGV $B%7%0%J%k$,H/@8$7$?>l9g!"(B $B85$N%3%s%F%-%9%H$KLa$C$?$H$7$F$b=hM}$rB39T$9$k$?$a$N%9%?%C%/$,ITB-$7$F$$$k$N$G$"$k!#(B $B%9%?%C%/NN0h$N30B&$K$OJL$N%9%l%C%I$N%9%?%C%/$,E83+$5$l$F$$$k$N$G!"(B $B%9%?%C%/$r?-$P$9$3$H$OIT2DG=$G$"$k!#(B
$B$=$3$G(B 1. $B$N=hM}$r:F3+$KI,MW$J%9%?%C%/NL$rM=$a8+@Q$b$C$F$*$-!"(B $B%7%9%F%`(B(Linux $B$N>l9g(B glibc) $B$,MQ0U$9$k%,!<%INN0h$N>e$K(B $B%f!<%6!

  1. $BM=$a3F%9%l%C%I$N%9%?%C%/$K%f!<%6!$B%9%?%C%/$,?-$S$F%f!<%6!$B%7%0%J%k%O%s%I%iFb$G%f!<%6!o;HMQ2DG=$J%9%?%C%/NN0h$KLa$k!#(B
  2. $B%7%0%J%k%O%s%I%i$rC&=P$7=hM}$r:F3+!#(B $B$I$3$+$N%]%$%s%H$G%f!<%6!

    $B

    P.S.
    Fixed stack $B$N(B LinuxThreads $B$G(B alternative signal stack $B$,$^$H$b$K;H$($J$$LdBj$@$,!"(B $B$3$l$O!V:G=i$K

    Fixed floating $B$N%9%?%C%/(B (2MB)
    $B%9%?%C%/$H$7$F;H$($kNN0h(B
    Glibc $B$,MQ0U$9$k%,!<%INN0h(B
       
    Alt. siganl stack $B$r(B 2MB $BFb$KA^F~(B
    $B%9%?%C%/$H$7$F;H$($kNN0h(B
    $B%f!<%6!
    Alt. signal stack $B$r@_Dj(B
    Glibc $B$,MQ0U$9$k%,!<%INN0h(B

    Alterantive signal stack $B$O(B mmap $B$r;H$C$Fo$N%,!<%INN0h$,;H$($J$/$J$k$N$G!"(B alternative siganl stack $B$N>e$K(B $B?7$7$$%,!<%INN0h$r:n$C$F<+J,$G4IM}$9$kI,MW$,$"$k!#(B


3/12 ($B6b(B)

[Food] $B%i!

$B=PD%5"$j$K(B $B%i! $B$K4s$C$F8+$k$H!"(B $B?7$7$$$*E9$,F~$C$F$$$?!#(B $B4d$B$i!<$a$s$N@iAp(B$B!#(B $B:#7n$N#3F|$K%*!<%W%s$7$?$i$7$$!#(B

$B7\$N%9!<%W$N%i!<%a%s20!#(B $B%a%K%e!$r<:G0$7$?$,!"7\$N$+$iMH$2$,F~$C$F$$$k%i!<%a%s$r?)$Y$k!#(B $B$"$C$5$j$7$?>_L}%i!<%a%s$@$,!"(B $B=ULZ20$HF1MM$K;i$,B?$$!#(B $BLM$N$7$3$7$346$,$h$$!#(B
$B@iAp$,7Z$$%i!<%a%s$@$C$?$N$G!"(B $B$D$$$G$K(B $B3!N6(B $B$K$b4s$C$F9T$/!#(B

$B$i!<$a$s$N@iAp(B:
$B$i!<$a$s$N@iAp(B
$B3!N6(B:$B3!N6%i!<%a%s(B
$B3!N6(B

[Java] $B:#F|3N?.$7$?$3$H(B

Java $B$N%U%!%$%J%i%$%:$N;EAH$_$r@53N$KM}2r$7$F$$$k?M$O!"(B $BF|K\9qFb$K(B 100 $B?M$$$J$$$H;W$o$l$k!#(B


3/11 ($BLZ(B)

[Prog] $B%9%?%C%/%*!<%P!<%U%m!<%O%s%I%j%s%0(B (Part2)

($B$3$NF|5-$NFbMF$O(B $B$3$N%Z!<%8(B $B$K$^$H$a$^$7$?(B)

3/6 $B$NB3$-!#(B $B%9%?%C%/%*!<%P!<%U%m!<$r%O%s%I%j%s%0$9$k$?$a$ND9$$F;$N$j$N0lN$DM!#(B
UNIX $B7O(B OS $B$G%9%?%C%/%*!<%P!<%U%m!<$,H/@8$7$?>l9g!"(B ($B%*!<%P!<%U%m!<$r5/$3$7$?%9%l%C%I$N%3%s%F%-%9%H$G(B) SEGV $B%7%0%J%k$,H/@8$9$k!#(B SEGV $B%7%0%J%k$O%(%i!<$r5/$3$7$?%a%b%j%"%I%l%9$r(B siginfo_t.si_addr $B$GD4$Y$k$3$H$,$G$-$k$N$G!"(B $B$=$N%"%I%l%9$,%9%?%C%/Fb$K$"$k$+$I$&$+$G%9%?%C%/%*!<%P!<%U%m!<$,H=Dj$G$-$k(B(*1)$B!#(B

(*1) $B%9%?%C%/%*!<%P!<%U%m!<$,%9%?%C%/NN0hFb$GH/@8$9$k$N$O(B $B$J$<$J$N$+$O(B Part 3 $B$G$d$j$^$9!#(B

$B:#2s$O%9%l%C%I$N%9%?%C%/$,%a%b%j>e$N$I$3$K$"$k$+H=Dj$9$kJ}K!$K$D$$$F=R$Y$k!#(B
$B$^$:(B Linux $B$NFCp$,7k9=J#;($J$N$G$=$l$r@h$KJR$E$1$k!#(B
$B!t(B $B0J2<$K=P$F$/$k%5%s%W%k$O(B C++$B!#(B

$B8=:_!";HMQ$5$l$F$$$k(B Linux $B$N%9%l%C%I%7%9%F%`$K$O(B $BBg$-$/J,$1$F(B 2 $BLinux $B%9%l%C%I(B (LinuxThreads) $B$H(B Native POSIX $B%9%l%C%I%i%$%V%i%j(B (NPTL) $B$,$"$k!#(B NPTL $B$O:G6a$K$J$C$F=P$F$-$?(B $B$A$c$s$H$7$?(B POSIX $B%9%l%C%I%i%$%V%i%j(B $B$G!"Hf3SE*LdBj$O>/$J$$!#(B $B$h$C$F:#2s$O(B NPTL $B$K$O?($l$J$$!#(B
$BLdBj$OA0

$B$^$:!"(BLinuxTheads $B$O%P!<%8%g%s$K$h$C$F(B fixed stack $B$H(B floating stack $B$KJ,$+$l$F$$$k!#(B fixed stack $B$O%9%?%C%/$N%5%$%:$O(B 2MB $B$K8GDj$5$l$F$$$FJQ99ITG=$G$"$k!"(B floating stack $B$N>l9g$K$O%9%?%C%/%5%$%:$rJQ99$9$k$3$H$,2DG=$K$J$C$F$$$k!#(B RedHat Linux $B$N>l9g$O(B v7.0 $B0JA0$,(B fixed stack $B$G(B v7.1 $B0J9_$,(B floating stack $B$G$"$k!#(B
$B$3$3$^$GA0CV$-$r$*$$$F!"(B LinuxThreads $B$NLdBjE@$r8+$F9T$/!#(B

$B%a%$%s%9%l%C%I$NF0:n(B

$B$^$:%W%m%;%9$,(B LinuxThreads $B$r;H$&>l9g(B(libpthread.so $B$r%"%?%C%A(B)$B$H(B $B$7$J$$>l9g$G5sF0$,0[$J$k!#(B
Linux $B%W%m%;%9$,(B libpthread.so $B$r%"%?%C%A$7$J$$>l9g!"(B $B$=$N%9%?%C%/%5%$%:$O!"(B tcsh $B$G$O(B limit stacksize <n>$B!"(B bash $B$G$O(B ulimit -s <n> $B$G;XDj$9$k%W%m%;%9$N%j%=!<%9$K$h$C$F7hDj$5$l$k!#(B $B%a%b%j>e$N0LCV$O%a%b%j%"%I%l%9(B 0xC0000000 $B$+$i(B $B2<8~$-$K%9%?%C%/%5%$%:J,3d$jEv$F$i$l$k!#(B $B%G%U%)%k%H$N%9%?%C%/%5%$%:$O(B 8192K $B$J$N$G(B [0xB800000,0xC0000000) $B$,(B $B%9%?%C%/%5%$%:$K$J$k!#(B

$B0lJ}!"(B fixed stack $B$N(B libpthread.so $B$r%"%?%C%A$7$?>l9g$O!"(B $B%9%?%C%/%5%$%:$N:GBgCM$,(B 2MB $B$K@)8B$5$l$F$7$^$&!#(B $B$3$l$O(B pthread_create $B$r;H$C$F?7$7$$%9%l%C%I$r:n$i$J$$>uBV$G$b$G$"$k!#(B
$B5/F0;~$K$G$-$k%9%l%C%I(B($B%a%$%s%9%l%C%I$H8F$V$3$H$K$9$k(B) $B$O(B $B%j%=!<%9%j%_%C%H$r;XDj$9$k$3$H$G!"(B $B%9%?%C%/%5%$%:$r(B 2MB $B$+$i8:$i$9$3$H$O2DG=!#(B $B$?$@$7!"(Bpthread_create $B$G?7$?$K:n$i$l$?%9%l%C%I(B ($BGI@8%9%l%C%I$H8F$V$3$H$K$9$k(B) $B$O(B $B%j%=!<%9%j%_%C%H$N%9%?%C%/%5%$%:;XDj$N1F6A$r

fixed stack $B$NF0:n(B

$B@N$N(B Linux $B%9%l%C%I$N@_7W$G$O%9%?%C%/$N%5%$%:$r(B 2MB $B$K8GDj$7!"(B $B$5$i$K(B 2MB $B6-3&$KB7$($FG[CV$7$F$$$?!#(B $B$=$N$?$a(B (SP $B%l%8%9%?$NCM(B) & (2MB -1) $B$H7W;;$9$k$3$H$G(B $B%9%?%C%/NN0h$r<1JL$9$k$3$H$,$G$-$k!#(B

$B$3$l$OJXMx$J(B hack $B$J$N$@$,!"(B $B%9%?%C%/%5%$%:$,8GDj$5$l$F$7$^$&$N$O:$$j$b$N!#(B $B$=$N>e!"(B $B!V%9%?%C%/%l%8%9%?$+$i%9%?%C%/NN0hH=Dj$G$-!"(B $B$=$3$+$i%9%l%C%I$b<1JL$b$G$-$k!W$H$$$&(B $BFC@-$rMxMQ$7$F$7$^$C$?%i%$%V%i%j$,$"$k$i$7$$!#(B $B8GDj$N(B 2MB $B$N0J30$N>l=j$r%9%?%C%/$H$7$F;HMQ$9$k$H%(%i!<$H$J$k!#(B $B$3$N@)Ls$O(B alternative signal stack $B$N;HMQJ}K!$H40A4$K%P%C%G%#%s%0(B $B$9$k!#(B
$B$3$l$,(B $BLdBj#1(B$B!#(B $B$?$@$7$3$NLdBj$r2sHr$9$k(B hack $B$,B8:_$9$k!#(B

fixed stack $B$H(B floating stack $B$N<1JLJ}K!(B

floating stack $B$,pthread_getattr_np $B4X?t$,

typedef int (*PTHREAD_GETATTR_NP_FUNC)(pthread_t, pthread_attr_t *);
PTHREAD_GETATTR_NP_FUNC  pthread_getattr_np_func = NULL;

pthread_getattr_np_func = (PTHREAD_GETATTR_NP_FUNC) dlsym(RTLD_DEFAULT, "pthread_getattr_np" );

if( pthread_getattr_np_func != NULL ) {
  // floating stack 
} else {
  // fixed stack 
}

$B$?$@$7?7$7$$(B LinuxThreads $B$r%*%W%7%g%s$G(B fixed stack $B$rA*$S%S%k%I$9$k$3$H$b2DG=$G$"$k!#(B $B$=$N$?$a(B pthread_getattr_np $B$,B8:_$7$?$H$7$F$b(B floating stack $B$G$"$k$H$O8B$i$J$$!#(B Debian $B$d(B Vine Linux 2.6 $B$O(B $B?7$7$$(B glibc/LinuxThreads $B$r:NMQ$7$F$$$F$b(B fixed stack $B$K$J$C$F$$$k!#(B
$B:#$N$H$3$m%7%9%F%`$N%9%l%C%I%i%$%V%i%j$,(B floating stack $B$J$N$+!"(B $B$=$l$H$b(B fixed stack $B$J$N$+$r8+J,$1$k3N$BLdBj#2(B$B!#(B

pthread_getattr_np $B$NLdBj(B

$B%5%U%#%C%/%9$K(B _np $B$,IU$$$F$k$3$H$+$iJ,$+$k$h$&$K(B pthread_getattr_np $B4X?t$O(B POSIX $B;EMM30$N(B ABI $B$G!"(B $B8=:_

pthread_attr_t attr;

if( pthread_getattr_np_func(pthread_self(), &attr) ){
  fprintf(stderr, "Failed pthread_getattr_np().\n" );
  fflush(stderr);
  exit(2);
}

void*  stack_base = 0;
size_t stack_size = 0;

// Method 1.
pthread_attr_getstackaddr(&attr, &stack_base);
pthread_attr_getstacksize(&attr, &stack_size);

// Method 2.
pthread_attr_getstack(&attr, &stack_base, &stack_size);

$B$@$,$d$C$Q$jLdBj$,$"$k!#(B $B$3$N(B pthread_getattr_np $B$K$h$C$F%"%H%j%S%e!<%7%g%s$,@5$7$/pthread_getattr_np $B$r;H$C$F$bIT@53N$JCM$7$+ $B$3$NLdBj$O%9%?%C%/%5%$%:$N

$BCm0U!*(B
$B%9%?%C%/%O%s%I%iFb$G(B pthread_getattr_np $B$r;HMQ$7$?>l9g!"(B alternative signal stack $B$r;H$C$F$$$k>l9g$G$b(B (alternative signal stack $B$G$J$$(B) $B%N!<%^%k$J%9%?%C%/>pJs$,

$B%j%=!<%9%j%_%C%H$N%9%?%C%/%5%$%:$NLdBj(B

$B%9%?%C%/$N%G%U%)%k%H$N%5%$%:$O(B $B%W%m%;%9$N%j%=!<%9%j%_%C%H$rgetrlimit $B$rMQ$$$H!"(B rlim.rlim_cur $B$K%9%?%C%/%5%$%:$,%P%$%H?t$G3JG<$5$l$k!#(B

struct rlimit rlim;
getrlimit(RLIMIT_STACK, &rlim);

Linux $B$G$b$@$$$?$$$3$N%k!<%k$,M-8z$J$N$G!"(B $B%a%$%s%9%l%C%I$N%9%?%C%/%5%$%:$O(B getrlimit(RLIMIT_STACK, ...) $B$r(B $BMQ$$$FH=Dj$9$l$P$h$$!#(B
$B$?$@$7!"(B floating stack $B$N>l9g$K$O(B rlim.rlim_cur $B$NCM$O%j%=!<%9%j%_%C%H$HF1$8CM$H$J$k!#(B ($B%W%m%;%9%j%_%C%H$,(B 8192KB $B$J$i(B 8192 * 1024)$B$,!"(B fixed stack $B$N>l9g$K$O(B $B%9%?%C%/%5%$%:$+$i%,!<%INN0h$N%5%$%:$,0z$+$l$F$$$k!#(B x86/Linux $B$G$O2>A[5-21(B 1$B%Z!<%8$O(B 4kB $B$J$N$G(B $B$=$N$?$a(B 2044KB $B$K$J$k!#(B

$B$^$H$a$k$H(B Linux $B$N%9%?%C%/$N0LCV$H%5%$%:$r5a$a$k0J2<$N(B $B%5%s%W%k%W%m%0%i%`(B $B$N(B get_linux_stack_info $B$N$h$&$K$J$k!#(B

Linux $B$HHf3S$9$k$H!"(BSolaris $B$H(B Windows (NT $B7O(B) $B$G:#F0$$$F$k%9%l%C%I$N%9%?%C%/>pJs$rF@$k$N$OHs>o$K4JC1!#(B
Solaris $B$N>l9g$O(B thr_stksegment $B$r;H$($P$h$$!#(B $B;H$$J}$O(B man thr_stksegment$B!#(B
Windows $B$N>l9g$O!"%9%?%C%/>pJs$O3F%9%l%C%IKh$KB8:_$9$k(B thread information block (TIB) $B$K5-=R$5$l$F$$$k!#(B $B0J2<$N$h$&$J%3!<%I$G%"%/%;%92DG=!#(B

// Visual C++ Code

NT_TIB* getTIB(void) {
  NT_TIB* pTib;
  __asm {
    mov eax, dword ptr FS:[18H];
    mov pTib, eax;
  }
  return pTib;
}

NT_TIB $B$N>\:Y$O%W%i%C%H%U%)!<%`(B SDK $B$d(B Visual Studio $B$N%$%s%/%k!<%I%U%!%$%kCf$K$"$k(B WinNT.h $B$r;29M$K!#(B

[$B;~;v(B] $B%9%Z%$%s$GF1;~GzCF%F%m$,H/@8(B

$B8=CO;~4V$N(B 7 $B;~H>(B ($BF|K\;~4V(B $B8a8e(B 3$B;~H>(B)$B!"%9%Z%$%s$N


3/10 ($B?e(B)

DELL $B$H(B VMware $B$,Ds7H$9$k$H$O(B

DELL $B$H(B VMware $B$,(B$B%Q!<%H%J!<7@Ls$r7k$s$@(B$B!#(B DELL $B$O(B PowerEdge $B$N%i%$%s%J%C%W$K(B ESX Server / Virtual Center / VMotion $B$r%P%s%I%k$7$FGd$k$i$7$$!#(B VMware $B$,(B EMC $B$KGc<}$5$l$?;~$K$b6C$$$?$,!":#2s$NJ}$,$G$C$+$$%K%e!<%9$+$b$7$l$J$$!#(B $B%P%s%I%k2A3J$,==J,$K0B$1$l$P(B IA $B%5!<%P!<$N;T>l$,A4It0z$C$/$jJV$k$+$b$7$l$J$$!#(B

$B0l1~(B $B=q$$$F$*$/$H(B ESX Server $B$O%[%9%H(B OS $B>e$GF0$/(B VMware Workstation $B$d(B GSX Server $B$H$O0[$J$j!"(BIA-32 $B%5!<%P!<>e$GD>@\$KF0$/0lA[%^%7%s$r(Bon-the-fly $B$K%^%$%0%l!<%7%g%s$5$;$k$3$H$N$G$-$k;EAH$_!#(B
VMotion $B$N>\:Y$OCN$i$J$$$,!"$*$=$i$/0J2<$N$h$&$J$b$N$@$H?dB,$G$-$k!#(B

  • $B%M%C%H%o!<%/$K4X$7$F$O!"(B VMware $B$O85!9%$!<%5!<%M%C%H$N(B MAC $B%"%I%l%9$r2>A[2=$7$F$$$k!#(B
    $B0\F085$N2>A[%^%7%s$r;_$a$F!"(B $B0\F0@h$GA0$HF1$8(B MAC $B%"%I%l%9(B / IP $B%"%I%l%9$r?6$C$F2>A[%^%7%s$r:F3+$7$F$d$l$P!"(B $B30$+$i$O0\F0$7$?$3$H$,H=JL$,$D$+$J$$!#(B
  • $B%G%#%9%/$O(B SAN (Storage Area Network) $B$r;H$C$F$$$l$P(B $B%5!<%P!<$N%m%1!<%7%g%s$,JQ$o$C$F$bLdBj$J$$!#(B
  • $B%a%b%j$b(B ESX Server $B$GF0$$$F$$$k$N$G!"(B $B%5%9%Z%s%I(B/$B%l%8%e!<%`$N$h$&$J$3$H$r$7$J$/$F$b(B $BE>Aw85$+$iE>Aw@h$K%M%C%H%o!<%/7PM3$G%a%b%j%$%a!<%8$rE> $B$5$i$K8@$($P(B VMotion $B$O%@%&%s%?%$%`%<%m$rkp$C$F$$$k!#(B $B0\F085$N2>A[%^%7%s$,;H$C$F$$$?%a%b%j$r0lEY$KE>Aw$9$k$N$G$O$J$/!"(B $B0\F0@h$G2>A[%^%7%s$r:F3+$9$k$N$K:GDc8BI,MW$J%a%b%j%Z!<%8$N$_$rE>Aw$7$F$*$$$F!"(B $B8e$O0\F0@h$N2>A[%^%7%s$,I,MW$H$7$?%a%b%j$r(B copy-on-write $BE*$JAw$9$k

    DELL $B$O5;=Q$,$A$C$H$b$J$$2q


3/9 ($B2P(B)

Hewlett-Packard $B$N(B rx2600 $B$,Mh$?$h(B

Hewlett-Packard $B$N(B 2U $B$N%i%C%/%^%&%s%H7?(B Itanium2 $B%5!<%P!<(B rx2600 $B$,Mh$?(B($BK\Ev$O:rF|G 2-way Itanium2 1.3GHz$B!"%a%b%j$O(B 10GB $B$r:\$;$F$$$k!#(B

$B$H$j$"$($:.7?2=$5$l$F$$$k$h$&$@!#(B

rx2600
$B%U%m%s%H(B
rx2600
CPU $B$r>e$+$i8+$k(B
rx2600
CPU $B%U%!%s(B

$B%i%C%/%^%&%s%H7?$N(B HP $B%5!<%P!<$K$b!"(BItanium $B%5!<%P!<$K?($k$N$b=i$a$F!#(B $B$$$m$$$m$H6=L#?<$$!#(B

  • $B%-!<%\!<%I$d%^%&%9$N@lMQC<;R$O$J$7!#(BUSB $B$K@\B3$9$k!#%l%,%7!<%U%j!<$@!#(B
  • $B5/F0;~$J$I$K$O@N$N!V%2!<%`%&%)%C%A!W$N$h$&$J7Y9p2;$,=P$k!#(B
  • $B%U%m%s%H$H%j%"$K$O(B Locator $B%\%?%s(B $B$H$$$&$N$,0l$D$E$D$"$k!#(B $B$3$l$OA08e$GO"F0$7$F$$$F!"(B $B$I$A$i$+$N%\%?%s$r2!$9$H(B $BN>B&$N(B LED $B$,E@LG$9$k$h$&$K$J$k!#(B $B$3$l$O%i%C%/$K%^%&%s%H$7$?;~$G$b!"(B $BA`:n$7$F$$$k%5!<%P!<$r<1JL$9$k$?$a$N;EAH$_$H;W$o$l$k!#(B
  • Itanium $B%5!<%P!VGA $B5!G=$OI,?\$G$O$J$$(B$B!#(B $BK\BN$+$i%3%s%=!<%kMQ$N%7%j%"%kCVGA $B=PNO$,M_$7$$>l9g$O(B $B%0%i%U%#%C%/%+!<%I$+(B Management Processor (MP) $B$H$$$&$N$r$b$N$r MP $B$r!"(B $BK\BN$N%b%K%?%j%s%0$dEE8;@)8f$,2DG=$K$J$k!#(B $BK\Mh$O(B rx2600 $B$r%/%i%9%?$N%N!<%I$H$7$F;H$&;~$K!"(B $B%P%C%/%W%l!<%s$K7R$2$F=8Cf4IM}$9$k$?$a$K;HMQ$9$k$h$&$@!#(B
    MP $B$K$O(B VGA $B$NB>$K(B ($BK\BN$H%3%s%=!<%k$H$OJL$K(B)$B%3%s%=!<%k!"%j%b!<%H!"(BUPS $BMQ$N(B RS-232C $B%1!<%V%k$,=P$F$$$k!#(B $B%3%s%=!<%k$O(B VT-100 $BC!"@)8fMQ$N(B Ethernet $B7PM3$G%3%s%=!<%kF1MM$N@)8f$,2DG=$K$J$k!#(B
    $B:#2s$O(B MP $B$r4^$a$?9=@.$GGc$C$?!#(B

$B$G!"(Brx2600 $B$r%;%C%H%"%C%W$7$h$&$H$7$?$N$@$,!";W$$$C$-$j$O$^$C$F$7$^$C$?!#(B
$B:G=i!"(BMP $B$K$D$$$F$$$k(B VGA $BC<;R$K%G%#%9%W%l%$$r7R$0$N$@$,5/F02hLL$,1G$i$J$$!#(B
$BK\BN$KIU$$$F$$$k%3%s%=!<%kMQ%7%j%"%kC<;R(B(RS-232C) $B$K(B VT-100 $BC $B%1!<%V%k$N%/%m%9(B or $B%9%H%l!<%H$N0c$$$dC

$B7k6I!"860x$O(B MP $B$K$"$C$?!#(B MP $B$r $B;EMM$N$h$&$@!#(B $B$@$,!"$b$7(B MP $B$NBe$o$j$K(B($B%N!<%^%k$J(B)$B%0%i%U%#%C%/%+!<%I$r:9$7$F$$$?$i:G=i$+$i(B VGA $BC<;R$,;H$($?$+$H$$$&$H$=$NEz$O(B NO$B!#(B $B$3$N%5!<%P!<$O(B$B4IM} $B$H$$$&AG@2$i$7$$;WA[$G@_7W$5$l$F$$$k(B($B$h$&$@(B)$B!#(B

$B8D?ME*$K$O(B VGA $B=PNO$,$J$$>uBV$G!"(BIA-64 $BMQ(B Windows $B$,%$%s%9%H!<%k2DG=$J$N$+!)$,5$$K$J$k!#(B

$BFp PC-AT $B$G(B BIOS $B5/F0@_Dj2hLL$KAjEv$9$k$N$O!"(BItanium $B%^%7%s$O(B Extensible Firmware Interface (EFI) $B$G$"$k!#(B $B$3$l$O(B Sun $B$N%o!<%/%9%F!<%7%g%s$N(B OpenBoot $B$N$h$&$J46$8$M!#(B
$B$3$N!V(BBoot Option Maintenance Menu$B!W(B $B$NCf$N(B

  • $B!V(BSelect Active Console Output Devices$B!W(B
  • $B!V(BSelect Active Console Input Devices$B!W(B
  • $B!V(BSelect Active Standard Error Devices$B!W(B

$B$N(B 3 $B$D$r@_Dj$G!"$I$NAuCV$r%3%s%=!<%k$H$9$k$N$+$r7h$a$i$l$k!#(B VGA & $B%-!<%\!<%I$dK\BN$N%3%s%=!<%kMQ%7%j%"%kC$B%3%s%=!<%k(B$B$K%;%C%H$7$F0l8+MnCe!#(B

$B:#F|$OK;$7$$$N$G$3$3$^$G!"=5Kv$^$G$K$O$$$m$$$m(B OS $B$rF~$l$F4D6-$r@0$($h$&!#(B


3/7 ($BF|(B)

$B%(%s%2%k78?t$r9b$a$k2q(B

Ide $B;a$NAwJL2q$b7s$M$?!V%(%s%2%k78?t$r9b$a$k2q!W$N2q9g$,3+$+$l$k!#(B
$B:#2s$OCk$O2#IMCf2Z39$N7JFADC$GKcGLF&Ie$r?)$Y!"Lk$O%9%Z%$%sNAM}$N%Q%(%j%"$r?)$Y$k$H$$$&(B 2 $BIt9=@.!#(B $B3hF0$N>\:Y$OJL$N>l=j$G=q$$$?$N$G!"$3$NF|5-$G$O2?$r?)$Y$?$N$+$@$1$rC8!9$HDV$m$&!#(B

$B$^$:!"$*Ck$O2#IMCf2Z39$K$"$k;M@nNAM}$NE9(B$B7JFADC(B($B$0$k$J$S(B) $B$X!#(B $B%?!<%2%C%H$O$3$NE9$NL>J*(B $BDDKcGLF&Ie(B$B!#(B
$BA02s(B $B$OFs?M$G!"$7$+$bO"$l$K$O?I$9$.$?$?$aDDKcGLF&Ie$N$[$H$s$I$r4IM}?M0l?M$,?)$Y$k$3$H$K$J$C$?!#(B
$B$7$+$7!":#2s$O<7?M$G?I$$$b$N$KBQ@-$,$"$k?M$bB?$$!#(B $BDDKcGLF&Ie$,0l;.$G$OB-$j$:Fs;.CmJ8!#(B
$B$7$+$7:G8e$K=P$F$-$?(B$B5mFy$NGv@Z$j?I;R?e$B$O!"DDKcGLF&Ie$h$j$b?I$+$C$?!#(B

$B7JFADC(B:$B%+%bFy(B
$B%+%bFy(B
$B7JFADC(B:$B%+%bFy(B
$B%+%bFy$rJq$s$G?)$Y$k%Q%s(B(?)
$B7JFADC(B:$BBg:,$b$A(B
$BBg:,$b$A(B
$B7JFADC(B:$BCf9qLn:Z$N_V$a(B
$BCf9qLn:Z$N_V$a(B
$B7JFADC(B:$B>.dFJq(B
$B>.dFJq(B
$B7JFADC(B:$B<c7\$N3Q@Z$j%+%7%e%J%C%D_V$a(B
$B
$B7JFADC(B:$BDDKcGLF&Ie(B
$BDDKcGLF&Ie(B
$B7JFADC(B:$B5mFy$NGv@Z$j?I;R?e<Q(B
$B5mFy$NGv@Z$j?I;R?e

$BCf2Z39(B $B!A(B $B;32<8x1`$r;6:v!#(B
Takada $B;a$OMQ;v$,$"$C$F5"$C$F$7$^$&$,!";D$j(B 6 $B?M$O2#IM%o!<%k%I%]!<%?!<%:$K0\F0!#(B
$B%1!<%-%^%K%"(B $B$G%G%6!<%H$r?)$Y$k!#(B
6$B?M$J$N$K?)$YJ*$O(B 7 $B;.$N2x!#(B

$B%1!<%-%^%K%
$B%\%9%H%s%A!<%:%1!<%-(B
$B%1!<%-%^%K%
$B%U%l%s%A%H!<%9%H(B
$B%a%$%W%k%7%m%C%W$H@8%/%j!<%`$,IU$-$^$9!#(B
$B%1!<%-%^%K%
$B%^%m%s%Q%U%'(B
$B%1!<%-%^%K%
$B%F%#%i%_%9%Q%U%'(B
$B%1!<%-%^%K%
$B%9%H%m%Y%j!<%Q%U%'(B
$B%1!<%-%^%K%
$B%_%k%U%#!<%f%Q%U%'(B

$BK\F|$NL\E*CO!"5~2&@~:{DM1X$K$"$k%9%Z%$%sNAM}$NE9(B$B%3%9%?!&%V%i%P(B ($B$5$5$O$?%I%C$H$3$`(B$B!"(BYahoo! $B%0%k%a(B)$B!#(B
$B;22C?M?t(B 16$B?M$J$j!#(B $B$*E9$O$[$H$s$IB_$7@Z$j>uBV$G$"$k!#(B $B%9%Z%$%sNAM}$K@e$rBG$A$J$,$i!"(BIde $B;a$r$7$N$V2q9g$H$J$C$?!#(B

$B%3%9%?%V%i%P(B:$B$*E9(B
$B$*E9(B
$B%3%9%?%V%i%P(B:$BA0:Z(B
$BA0:Z!'%*%j!<%V$H@8%O%`$N@9$j9g$o$;(B
$B%3%9%?%V%i%P(B:$B%9%Q%K%C%7%e%*%`%l%D(B
$B%9%Q%K%C%7%e%*%`%l%D(B
$B%3%9%?%V%i%P(B:$B3$O7$N%*!<%V%s>F$-(B
$B3$O7$N%*!<%V%s>F$-(B
$B%3%9%?%V%i%P(B:$B!)(B
$B%j%>%C%H$+$7$i(B(?)
$B%3%9%?%V%i%P(B:$B%9!<%W(B
$B%`!<%k3-$H$"$5$j3-$N%9!<%W(B(?)
$B%3%9%?%V%i%P!&%Q%(%j%
$B%Q%(%j%"(B
($B9u$$$N$O%(%9%+%k%4(B)

3/6 ($BEZ(B)

[Prog] $B%9%?%C%/%*!<%P!<%U%m!<%O%s%I%j%s%0(B ($B$*$=$i$/(B Part1)

($B$3$NF|5-$NFbMF$O(B $B$3$N%Z!<%8(B $B$K$^$H$a$^$7$?(B)

C/C++ $B$G%W%m%0%i%`$r$7$F$$$k$H$D$$K:$l$F$7$^$&$N$,%9%l%C%I$N%9%?%C%/%*!<%P!<%U%m!<$NLdBj!#(B
$B:G6a$N(B OS $B$O%9%l%C%IEv$?$j(B 2$B!A(B8MB $BA08e$N%9%?%C%/NN0h$r;}$C$F$$$k$?$a$h$[$I$N$3$H$,$J$$8B$j%9%?%C%/$,0n$l$F$7$^$&$3$H$O$J$$$,!":F5"$d(B alloca $B$r@Q6KE*$K;H$&$h$&$J%W%m%0%i%`$G$O%9%?%C%/%*!<%P!<%U%m!<$r5$$K$9$Y$-$G$"$k!#(B $B$D$^$j!"%9%?%C%/$N%*!<%P!<%U%m!<$,5/$-$?>l9g$G$b%W%m%0%i%`Cf$G;v8N=hM}$r9T$$!"E,@Z$K%j%+%P%j!<$G$-$k$h$&$K$7$?$$!#(B

$B0lHLE*$J(B OS $B$G$O%9%l%C%I$,@8@.$5$l$?;~$K=jDj$N%5%$%:$N2>A[%a%b%j6u4V$,3d$jIU$1$i$l$k!#(B $B$3$l$,%9%?%C%/$,A[%a%b%j$N;EAH$_$rMxMQ$7$F%9%?%C%/$N:G=i$N%Z!<%8$K$@$1 $B$=$7$F!"%9%l%C%I$K3d$jEv$F$i$l$?%9%?%C%/$N:GBg%5%$%:$r1[$($F%"%/%;%9$,H/@8$7$=$&$K$J$C$?>l9g$K$O!"(BUNIX $B7O$G$O(B SEGV $B%7%0%J%k!"(BWin32 API $B$G$O(B EXCEPTION_STACK_OVERFLOW $B9=B$2=Nc30$,%9%m!<$5$l$k!#(B

$B$^$:!"(BUNIX $B7O(B OS $B$K$D$$$F9M$($k!#(B
UNIX $B7O(B OS $B$G$O!"%9%?%C%/%*!<%P!<%U%m!<$N%O%s%I%j%s%0$N$?$a$K$O(B SEGV $B%7%0%J%k$rJdB-$9$kI,MW$,$"$k!#(B $B$7$+$7!"%7%0%J%k%O%s%I%i$,DL>o$N%9%l%C%I$N%9%?%C%/$rMxMQ$7$FF0:n$9$k$H$$$&LdBj$,$"$j!"%9%?%C%/%*!<%P!<%U%m!<$,H/@8$7$?;~$K$O%7%0%J%k%O%s%I%i$N%9%?%C%/%U%l!<%`$rCV$/%a%b%j$,$J$$$H$$$&$3$H$K$J$k!#(B $B$3$NLdBj$KBP=h$9$k$?$a$K(B UNIX $B7O(B OS $B$G$O(B alternative signal stack $B$N5!9=$rMQ0U$7$F$$$k!#(B $B$3$l$O%7%0%J%k%O%s%I%i$,M=$aMQ0U$5$l$?DL>o$H$O0[$J$k%9%?%C%/$r;HMQ$9$k5!9=$G$"$k!#(B
Linux / Solaris $B$G$O%G%U%)%k%H$G$O(B alternative signal stack $B$OMQ0U$5$l$J$$!#(B Windows $B$G$OF1MM$N5!9=$,%G%U%)%k%H$GMQ0U$5$l$F$$$k!#(B

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

#define ALT_STACK_SIZE (1024*1024)
#define ALLOCA_SIZE    (1024*2)

/* $B%7%0%J%k%O%s%I%i(B */
static void signal_handler(int sig, siginfo_t* sig_info, void* sig_data) {
  if( sig == SIGSEGV ) {
    fprintf(stderr, "SEGV: %p\n", sig_info->si_addr );
    fflush(stderr);
    exit(1);
  }
  
  /* $B$3$3$G0LCV$G0JA0$KEPO?$5$l$?%7%0%J%k%O%s%I%i$r(B
     $B8F$S=P$9=hM}$r9T$C$F$b$h$$!#(B */
}


/* $B%a%$%s4X?t(B */
int main(int argc, char** argv) {

  /* $B%7%0%J%k%O%s%I%iMQ$N%9%?%C%/NN0h$N%;%C%H(B */
  stack_t ss ;

  ss.ss_sp    = malloc(ALT_STACK_SIZE);
  ss.ss_size  = ALT_STACK_SIZE;
  ss.ss_flags = 0;

  if( sigaltstack(&ss, NULL)) {
    /* error */
    fprintf(stderr, "Failed sigaltstack\n" );
    exit(1);
  }  


  /* Set siginal handler */
  struct sigaction newAct, oldAct;

  if( sigaction( SIGSEGV, NULL, &oldAct ) == -1 ){
    /* error */
    fprintf(stderr, "Failed to acquire the current sigaction_t.\n" );
    exit(1);
  }

  sigemptyset(&newAct.sa_mask);
  sigaddset(&newAct.sa_mask, SIGSEGV);
  newAct.sa_sigaction = signal_handler;
  newAct.sa_flags     = SA_SIGINFO|SA_RESTART|SA_ONSTACK; 

  if( sigaction( SIGSEGV, &newAct, NULL ) == -1 ){
    /* error */
    fprintf(stderr, "Failed to set my signal handler.\n" );
    exit(1);
  }

  /* $B$o$6$H%9%?%C%/%*!<%P!<%U%m!<$rH/@8$5$;$k(B */
  size_t size = 0;
  while( true ){
    void* p  = alloca(ALLOCA_SIZE);
    size    += ALLOCA_SIZE;
    printf("stack pointer = %p %8dK\n", p, size/1024 );
  }

  return 0;
}

$B$3$N;~E@$G$O$^$@%7%0%J%k$r%O%s%I%i$7$?$@$1$G!"%9%?%C%/%*!<%P!<%U%m!<$KBP=h$7$?$H$O$$$($J$$!#(B $B0J2<$N$h$&$JLdBj$,$"$k!#(B

  • SEGV $B$O%9%?%C%/%*!<%P!<%U%m!<0J30$G$bAw=P$5$l$k$N$G!"(B $B%9%?%C%/%*!<%P!<%U%m!<$H$=$&$G$J$$>l9g$N@Z$jJ,$1$,I,MW!#(B
    (Windows $B$G$O(B EXCEPTION_STACK_OVERFLOW $B$H(B EXCEPTION_ACCESS_VIOLATION $B$O(B $B6hJL$5$l$k(B)
  • $B $B$@$,!"(B $B85$N%3%s%F%-%9%H$KLa$k$H(B alternative signal stack $B$O8z$+$J$$$N$G(B $B%9%?%C%/%*!<%P!<%U%m!<$N$^$^$G$"$k!#(B
    $B$3$NLdBj$O(B Windows $B$G$bB8:_$9$k(B ($B$,!"(BWindows $B$G$O>/$7$@$13Z$r$7$FBP=h2DG=(B)$B!#(B
  • $B%9%?%C%/%*!<%P!<%U%m!<$,H/@8$7$?>l=j$H$O(B $B0[$J$k>l=j$+$il9g$,$"$k!#(B
  • Linux $B$N(B alternative siginal stack $B$K$O8GM-$NLdBj$,$"$k!#(B

$B$H$$$&$o$1$GB3$/!#!#!#(B


3/5 ($B6b(B)

[Java][Prog] COBOL $B$H(B Java $B$H%j%U%!%/%?%j%s%0(B

$BF($l$k$3$H$N$G$-$J$$1?L?$N$$$?$:$i$K$h$C$F4IM}?M$b(B COBOL $B$rJY6/$9$k$3$H$K$J$k!#(B
$B0l1~!">pJs2J3X$r3X$s$@$b$N$H$7$F!V(BCOBOL $B$G2?$,$G$-$k$N$+!)!W$H$$$&$3$H$OCN$C$F$$$k$N$@$,!"$^$8$a$KJY6/$7$?$3$H$O$J$+$C$?(B ($BF($2$F$$$?$+$i(B) $B!#(B

$B:#2s!"J8K!$r$^$8$a$KFI$s$G$_$F(B Common Business Oriented Language $B$NN,>N$O0KC#$8$c$J$$$HDK46$7$?!#(B COBOL $B$O!"4IM}?M$,$3$l$^$G(B($B>.$J$j$H$$$($I$b(B) $B%W%m%0%i%`7P83$N$"$k(B Lisp/Scheme$B!"(BFortran$B!"(BProlog$B!"(BML$B!"(BPascal$B!"(BC/C++$B!"(BJava$B!"(BSmalltalk $B$N$h$&$J8@8l$H$O$^$C$?$/0[ $B;E;v$NFbMF$O(B $B$4$K$g$4$K$g(B $B$J$N$@$,!"%*%V%8%'%/%H$H$$$&35G0$r;}$?$:%a%b%j$rHs>o$K@EE*$K;H$*$&$H$9$k(B COBOL $B$H!"$9$Y$F$N%G!<%?$rF0E*$K4IM}$9$k(B $B$b$K$g$b$K$g(B $B$O62$m$7$/Aj@-$,0-$$$H;W$&$N$@$,!"!"!"(B

$BEvLL$O(B $B$`$K$g$`$K$g(B $B$J$N$G(B COBOL $B$NJY6/$r$9$k$@$1$@$,!"$=$N;EMM$bI8=`5,3J$N!V(BCOBOL 85$B!W!"6H3&I8=`$N(B Micro Focus $B

$B;29M(B

COBOL $B$NJ8K!$O!"IY;NDL$N(B NetCOBOL $B$N%^%K%e%"%k%Z!<%8(B $B$GFI$a$k!#(B

$B%8%c%s%\%^%C%7%e%k!<%`$,$-$?!*(B

2/24 $B$K=q$$$?3ZE7$NED $BFO$$$?%8%c%s%\%^%C%7%e%k!<%`$rD4M}!#(B

$B%8%c%s%\%^%C%7%e%k!<%`(B2
10cm $B$0$i$$(B
$B%8%c%s%\%^%C%7%e%k!<%`(B1
$B;1$NN"(B
$B%8%c%s%\%^%C%7%e%k!<%`$N%Y!<%3%s_V$a(B
$B%Y!<%3%s$H0l=o$K_V$a$?$b$N(B

$B%Q%9%?$KF~$l$k$+!"%=%F!<$K$7$F?)$Y$k$+!">>B{$N$4$H$/$K>F$$$F?)$Y$k$+!"NAM}J}K!$r9M$($h$&!#(B

$B%?%3%9%Q!<%F%#!<(B

$B=P?H8&5f<<$G%?%3%9%Q!<%F%#!<$r$d$k$N$G!"?MGc$$$r7s$M$FM7$S$K9T$/!#(B
$B%?%3%9%Q!<%F%#!<$H$O!"%?%3%9$NHi$H6q$rMQ0U$7$F!"$=$N>l$G:n$C$F?)$Y$k$H$$$&$b$N!#(B
$B

$B?MGc$$(B ($B%j%/%k!<%?!<$H$b8@$&(B) $B$O!"#M#1$,;M?M!"#D#2$,0l?MJa$^$k!#(B
$B%I%J!"%I%J!"%I%J!#2fJa3M$K@.8y$;$j!#(B

$B$^$?$7$F$bO)@~>h$j49$($N<:GT(B

$BIpB"Cf86$+$iElBg%-%c%s%Q%9$K9T$/;~$K!"$^$?$7$F$bO)@~>h$j49$($N<:GT$r$7$F$7$^$C$?!#(B

$BEl5^L\9u@~$O!"(B

  • $B1DCDCO2$BET1D(B $B;0ED@~(B $B@>9bEgJ?(B

$B$N(B 2 $B$D$NO)@~$K>h$jF~$l$F$$$k!#(B $B$H$j$"$($:ElBg$K9T$/$K$O!"L\9u@~$K$N$C$F$*$$$FJ,4tE@$G$"$kGr6b9bNX1X$G>h$j49$($r9T$&!#(B $B$@$,!":#F|$O?2$\$1$F$$$F@>9bEgJ?9T$-$K>h$C$?$N$KGr6b9bNX1X$G>h$j49$($rK:$l$F

$B4V0c$($K5$$E$$$FH?BPJ}8~$NEE $BEE8w7G<(HD$Gh$k!#(B
$BHb$,JD$^$k$H!V$3$NEE9bEgJ?9T$-!W$H$$$&%"%J%&%s%9$,N.$l$F$-$?$h!D(B


3/4 ($BLZ(B)

[MyWeb] $B2a5n$NF|5-$K

$B%G%8%+%a$G;#$jN/$a$F$$$?(B $B?)$YJ*$K4X$9$k

$B$"$HM'?M$+$i(B 2/10 $B$N%d%^%.%o%=%U%H4[$N2P;v$N;~$N


3/3 ($B?e(B)

[MyWeb] T.MTL $B$N%[!<%`%Z!<%8$r0\E>(B

$BEDCf@h@8$,B`41$J$5$l$k$7!"4IM}?M$b(B $BB46H$7$F(B 3 $BG/$b7P$C$F$$$k$N$G(B$B!"CY$^$-$J$,$i(B http://www.mtl.t.u-tokyo.ac.jp/~nminoru/ $B$N%[!<%`%Z!<%8$r0z$-J'$&$3$H$K$9$k!#(B
T.MTL $B$N%[!<%`%Z!<%8$O3XIt(B 4$BG/$N:"$K:n$j;O$a$?$b$N$@$+$i!"$9$G$K(B 7 $BG/$,7P2a$7$F$$$k$s$@$h$J$!!#(B

[MyWeb][Java] Mostly-Concurrent Mark & Sweep $B$N%Z!<%8$r99?7(B

Mostly-Concurrent Mark & Sweep $B$N%Z!<%8$r99?7!#(B IBM VM$B!"(BJRockit $B$N>\:Y$,$b$&>/$7J,$+$l$P(B SUN$B!"(BIBM VM$B!"(BJRockit $B$N(B 3 $B$D$N(B VM $B$N(B Mostly-Concurrent GC $B$,$I$N$h$&$K0c$&$N$+$r=q$-$?$$!#(B


3/1 ($B7n(B)

$BIc$A$c$s!"N^$G$F$/$i$!!#(B

2/22 $B$K80$r$J$/$7$F$+$i(B 10$BF|$bN)$?$J$$$N$K!":F$S%"%Q!<%H$N80$rL5$/$7$F$7$^$&!#(B
$B%"%Q!<%H$K5"$jCe$$$?$N$,Lk$N(B1$B;~2a$.!#(B $B80$,3+$+$:?&>l$K0z$-La$9$O$a$K!D(B
3/2 $B$O=PD%$,F~$C$F$$$k$H$$$&$N$K!"!"!"(B

[Movie] $B:#G/$N%"%+%G%_!<>^(B

$B:#G/$N%"%+%G%_!<>^$,H/I=$5$l$?!#(B
RotK $B$O(B$B%N%_%M!<%H$5$l$?A4ItLg$G^(B$B!#(B
$B$A$g$C$H=PMh%l!<%9$C$]$$5$$b$9$k$,!"%P%s%6%$!#(B


$B@h7n$NF|5-(B(2004$BG/(B02$B7n(B) $B:#7n$NF|5-(B(2004$BG/(B03$B7n(B)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2024 | 1 | 2 | 3 | 4
$B%[!<%`%Z!<%8(B | $B:G?7$N%3%a%s%H(B50
$B%$%s%G%C%/%9(B: $B?)$YJb$-(B | Java | $B%W%m%0%i%`(B | UNIX | $B2hA|(B
$B:G?7$NF|5-$X$N%j%s%/(B | $B$3$NF|5-%Z!<%8$r$O$F$J% $B$3$NF|5-%Z!<%8$r$O$F$J%V%C%/%^!<%/$KDI2C(B
$B$O$F$J(B $B%@%$%"%j!<(B $B%"%s%F%J(B $B%V%C%/%^!<%/(B $B%V%m%0(B
Twitter | mixi | Facebook | slideshare | github | Qiita


Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp