NAKAMURA Minoru $B$NF|5-(B (2007$BG/(B8$B7n(B)

$B@h7n$NF|5-(B(2007$BG/(B07$B7n(B) $B:#7n$NF|5-(B(2007$BG/(B08$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



8/31 ($B6b(B)

[MyPC] $B$J$s$H$+I|5l(B

$BK\F|$OM-5k5Y2K$r$B<+Bp(BPC4$B9f5!(B$B$N(B $BI|5l$KL@$1Jk$l$k!#(B

$BK\F|$N9XF~IJ(B

HDD $B$@$1$G$O$J$/$F(B CD-ROM$B%I%i%$%V$b2u$l$F$$$k$3$H$,H=L@$7$?$N$G!"(B $B=)MU86$^$G=PD%$C$F9XF~$7$F$/$k!#(B $B7k6I!"(BFaith $B$G0J2<$r9XF~!#(B

  • $BF|N)(BGST Deskstar T7K500(500GB/ATA133/7200rpm/8MB) HDT725050VLAT8
  • $B%Q%$%*%K%"(B DVR-112/MP

$B%G%j!<$N%+%7%_!<%k%+%l!<$r?)$Y$F5"$k!#(B

OS $B$N%$%s%9%H!<%k(B

$B2u$l$kA0$N%^%7%s$K$O(B VineLinux 2.6 ($B"+AjEv8E$$(B) $B$,F~$C$F$$$?$N$@$,!"(B $B:#2s$N%$%s%9%H!<%k$7D>$7$G(B VineLinux 4.1 $B$K%"%C%W%G!<%H$7$?!#(B $BB>$N%G%#%9%H%j%S%e!<%7%g%s$K>h$j49$($h$&$H$$$&5$$,$;$s$G$b$J$$$N$@$,!"(B $B%G%U%)%k%H4A;z%3!<%I$H$+(B LaTeX $B$H$+$NLdBj$,$"$C$Fm4m0$5$l$k!#(B

$B%$%s%9%H!<%k8e$K:F5/F0$9$k$H(B udev $B$,(B 3 $B2s$K(B 2 $B2s$/$i$$$N3d9g$G!"(B $B1J5WDd;_$7$F$7$^$&!#(B NIC$B%+!<%I$r(B2$BKg(B(FNW-9700-T $B$H(B FNW-9802-T)$BA^$7$F$$$k$,!"(B FNW-9700-T $B$NJ}$,LdBj$r5/$3$7$F$$$k$h$&$@!#(B

apt $B0J30$G

  • emh-1.14.1-0vl3.noarch.rpm
  • mh-6.8.4_jp-13vl6.i386.rpm
  • db4-devel-4.2.52-6vl6.i386.rpm
  • db4-tcl-4.2.52-6vl6.i386.rpm
  • db4-utils-4.2.52-6vl6.i386.rpm
  • fetchmail-6.3.8-0vl2.i386.rpm
  • fetchmailconf-6.3.8-0vl2.i386.rpm
  • openssl-devel-0.9.7l-0vl1.40.i386.rpm
  • openssl-perl-0.9.7l-0vl1.40.i386.rpm
  • emacs20-20.7-0vl19.i386.rpm
  • emacs20-20.7-0vl19.src.rpm
  • kterm-6.2.0-40vl2.i386.rpm
  • readline-devel-5.1-0vl1.i386.rpm

$B%$%s%9%H!<%k$,40A4$K=*$o$C$F$+$i5$$E$$$?$N$@$1$I!"(B $B$h$/8+$k$H%+!<%M%k%P!<%8%g%s$O(B 2.6.16 $B%Y!<%9$J$N$M!#(B

Apache2 $B$N@_Dj(B

$B:#2s$+$i(B Apache $B$r(B 1.3 $B7O$+$i(B 2.2 $B7O$K%"%C%W%G!<%H$7$?!#(B $B$=$l$KH<$$

  • suEXEC $B$O;H$o$J$$$N$G(B /usr/lib/apache2/suexec $B$O%j%M!<%`$7$F$*$/!#(B
  • SSI $B$r;H$C$F$$$?$H$3$m$G!"(B AddHandler server-parsed .shtml .html $B$r(B AddOutputFilter INCLUDES .shtml .html $B$K=$@5$9$k!#(B

Perl $B$N@_Dj(B

www.nminoru.jp $B$GF0$+$7$F$$$k(B CGI $B$KI,MW$J(B Perl $B$N%b%8%e!<%k$r(B CPAN $B$+$i%$%s%9%H!<%k$9$k!#(B

# perl -MCPAN -e shell
> install ($B%b%8%e!<%kL>(B)

Jcode$B!"(B Net::Amazon (Log::Log4perl $B$H(B XML::Simple 2.08 $B$K0MB8(B)$B!"(B SOAP::Lite (XMLRPC::Lite $B$H(B UDDI::Lite $B$H(B XML::Parser::Lite $B$K0MB8(B)$B!"(B BerkeleyDB($B@h$K(B db4-devel $B$,I,MW(B)$B!"(B Cache::File

$BLdBj$,;D$k$h!D(B

MH $B$r

Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed.

glibc $B$N%P!<%8%g%s$,>e$,$C$?$N$,LdBj$J$N$@$,!"(B emh $B$r;H$C$F$$$k$H$3$N7Y9p%a%C%;!<%8$N$?$a$K%I%i%U%H$,J]B8$G$-$J$$$H$$$&>c32$K$V$D$+$k!#(B $B:$$C$?%J%j!#(B


8/29 ($B?e(B)

[MyPC] MX91792D7 $B$,$D$$$K@B$/(B

$BG.BP:v$H$7$F2q$B<+Bp(BPC4$B9f5!(B$B$N(B root $B$d(B Web $B%5!<%P$N%G!<%?$r;}$C$F$$$k(B HDD $B$,(B fsck $B$NESCf$N(B 3.1% $B$0$i$$$GDd;_$7$?!#(B $B40A4$K;`K4$7$F$7$^$C$?$h$&$@!#(B

$B$3$N(B HDD $B$O(B Maxtor MX91792D7 $B$H$$$&G/BeJ*$G!"(B $B9=@.$O(B 14GB / 7,000rpm / ATA33 $B$@$C$?!#(B ATA133 $B$8$c$J$/$F(B ATA33 $B$M!#(B $B:G6a$8$c%8%c%s%/20$G$b8+$J$$$h$M!#(B Made in Singapore $B$@$7!#(B

$B:#F|$^$GNI$/;}$C$?$H46?4$7$?$$$,!"(B $B$H$j$($"$:%a!<%k$bFI$a$J$$$d(B($BN^(B)


8/28 ($B2P(B)

[MyPC] $B%^%7%s$ND4;R$,$*$+$7$$(B

$B2q$B<+Bp(BPC4$B9f5!(B$B$,(B $B860xITL@$N%7%c%C%H%@%&%s$r$7$F$$$k!#(B $B$b$7$d$H;W$$(B HDD $B$r0z$-=P$7$F$_$k$H62$m$7$/G.$r;}$C$F$$$k!#(B

$B$=$&$$$($P!"(B $B$3$l$^$G$:$C$HJ9$3$($F$$$?%U%!%s$N0[2;$,(B $B$3$3?tF|J9$3$($J$/$J$C$F$$$?$h$&$J5$$,$9$k!#(B $B$`!A!#(B

$B$H$j$"$($:=EMW%G!<%?$N%P%C%/%"%C%W$r


8/23 ($BLZ(B)

[Linux] IA-64/Linux $B$NIT@56-3&%"%/%;%9$K%P%0$+$7$i!)(B

IA-64/Linux $B$N%m!<%I!&%9%H%"L?Na$K$O(B base update $B7A<0$H$$$&$N$,$"$k!#(B $B2<$N%3!<%I$,$=$l$G!"(B $B%l%8%9%?(B r3 $B$N;X$9%a%b%j$NFbMF$r(B r1 $B$K%m!<%I$9$k$N$@$,!"(B $B%m!<%I40N;8e$K(B r3 $B%l%8%9%?$NFbMF$,(B r3 += r2 $B$5$l$k!#(B $B$D$^$j$3$NL?Na$O!"(Br2 $B$H(B r3 $B$N%l%8%9%?$rFI$s$G!"(B r1 $B$H(B r3 $B$K=q$-9~$s$G$$$k!#(B

ld8 r1 = [r3], r2

$B$3$N7A<0$N%m!<%I!&%9%H%"L?Na$K=P$F$/$k(B r1, r2, r3 $B$N%l%8%9%?$N$&$A!"(B 2$B$D$,0lCW$7$?>l9g$NF0:n$,LdBj$K$J$k!#(B

$B!{(B ld8 r1 = [r3], r3
$B!_(B ld8 r1 = [r1], r2
$B!{(B ld8 r1 = [r3], r1
  • 1$BHV:G=i$OL5LdBj!#(B
  • 2$BHVL\$O5v$5$l$J$$7A<0$G(B illegal operation fault $B$H$J$k!#(B
  • 3$BHVL\$O(B r1 $B$NFbMF$r(B r1_tmp $B$K%3%T!<$7$F$*$-!"(Br1 = [r3] $B$GFI$_9~$s$@8e!"(Br3 += r1_tmp $B$H99?7$5$l$k!#(B

$B0J>e$,(B IA-64 $BL?Na$N;EMM$J$i$S$Kl9g$NL?Na%(%_%e%l!<%7%g%s$G$O!"(B 3$BHVL\$NF0:n$,;EMM$K9g$o$:(B r3 $B%l%8%9%?$NCM$,ITDj$K$J$k!#(B linux/arch/ia64/unaligned.c $B$KLdBj$,$"$k$h$&$@!#(B

$B%F%9%H%3!<%I(B

$B0J2<$N$h$&$J%3!<%I$G%F%9%H!#(B emulate_load_update $B$O(B p $B$NCM$r(B 1 $B$@$1A}J,$7$F(B

#include <stdio.h>
#include <stdint.h>

void* emulate_load_update(void* p) {
    uint64_t res = 1;
    asm volatile ("ld4 %0=[%1],%0" : "+r" (res), "+r"(p) : : "memory");
    return p;
}

int main(int argc, char** argv) {
    uint64_t data = 0xFFFFFFFFFFFFFFFFUL;
    uint64_t* p;

    // $B<+A36-3&(B
    p = &data;
    printf("%p -> %p\n", p, emulate_load_update(p));

    // $B$o$6$H6-3&$r$:$i$9(B
    p = (uint64_t*)((uintptr_t)p + 1);
    printf("%p -> %p\n", p, emulate_load_update(p));

    return 0;
}
$B%3%a%s%H$r=q$-9~$`(B
[1] [$B%]%;(B] 2007-08-28 14:08:12
LD4$B"*(BLD8$B$NJ}$,:F8=@-$,9b$/$J$$$G$9$+(B?
[2] [nminoru] 2007-09-01 01:00:06
> $B%]%;$5$s(B
$B%F%9%H%3!<%I$NItJ,$r>/$7=q$-49$($^$7$?$,!"JQ?t(B data $B$,7h$^$C$F$$$l$P(B ld1/2/4/8 $B$rLd$o$:40A4$K:F8=$7$^$9(B($B%m!<%I$7$?CM$,$?$^$?$^(B1$B$G$J$1$l$P(B)$B!#(B
IA-64/Linux $B$N(B unaligned reference fault $B%O%s%I%iFb$N=hM}$,!"K\Mh$G$"$l$P(B %0 $B$N%l%8%9%?$N85$NCM$r(B %1 $B$K2C$($k$Y$-$J$N$K!"(B%0 $B$N%l%8%9%?$K%m!<%ICM$rFI$_9~$s$@8e$NCM$r(B %1 $B$K2C$($F$$$k$h$&$G$9!#(B

8/18 ($BEZ(B)

[Linux] IPF Machine Check (MC) error inject tool

IA-64 $B$N(B PAL (Processor Abstract Layer) $B;EMM$rD/$a$F$$$/$&$A$K!"(B Rev. 2.1 $B$+$i(B Rev. 2.2 $B$XJQ$k;~$KA}$($?(B PAL procedure $B$NCf$K(B PAL_MC_ERROR_INJECT $B$,$"$k$N$K5$$E$/(B (PAL $B$H$$$&$N$O(B CPU $BMQ$N%U%!!<%`%&%'%"$G!"(B PAL procedure $B$O(B OS $B$+$i8F$S=P$72DG=$J%U%!!<%`%&%'%"(BAPI)$B!#(B $BL>>N$+$iJ,$+$kDL$j!"(B IA-64 CPU $B$NFbIt9=B$(B(TLB$B!"%-%c%C%7%e!"%l%8%9%?%U%!%$%k!"(Betc) $B$r;XDj$7$F!"(B $B$=$N2U=j$K5<;w%(%i!<$r5/$3$9$3$H$,$G$-$k5!G=$@!#(B

$B5<;w%(%i!<$NA^F~$H$$$&$N$O!"(B $B%"%W%j%1!<%7%g%s$O!V(BCPU $B$,%(%i!<$r5/$3$7$?>l9g$NBP1~%3!<%I!W$J$I$r(B $B%3!<%G%#%s%0$9$k$,!"(B $Bo$KFq$7$$!#(B $B$=$&$$$&;~$K!"%(%i!<$r5/$3$7$??6$j$r$7$F$/$l$k5!G=$,$"$k$HBgJQ=u$+$k$o$1$@!#(B

Linux 2.6.22 $B$+$i(B arch/ia64/kernel/err_inject.c $B$H$$$&%b%8%e!<%k$,F~$C$F$$$k!#(B $B=q$$$?$N$O(B Intel $B$NCf$N?M$N$h$&$@!#(B $B%W%m%0%i%`$+$i(B /sys/devices/system/cpu/cpu%d/err_inject/ $B$r%"%/%;%9$9$k$3$H$G(B CPU $B$K%(%i!<$rA^F~$G$-$k!#(B $B$"$j$,$?$d!"$"$j$,$?$d!#(B

$B$H$3$m$G!"(B

$B!!!!!!!!!!!!!!!y(B (IA]$B!!!!!!!!!!!!!!!!(IJWM/@$B!A(B
$B!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(IJWM/@$B!A(B
$B!!!y!!(IA]$B!!!!!7!!"J!2"J(B $B!!(B $B!?!1!1!1!1!1!1!1!1!1!1!1!1(B
$B!!!!!3!!!2!2(B_$B!@!J!@!&"O!&!K!c!!%a%b%j%(%i!<$N%$%s%8%'%/%7%g%s%D!<%k$O$^$@!A(B
$B!!(B $B!!(B $B!!(B $B!@!2!?">!!">!2(B)$B!2(B $B!@!2!2!2!2!2!2!2!2!2!2!2!2(B
$B!!(B $B!!(B $B!?!1!1!1!1!1!1!1!?(B|
$B!!!!(B | $B!1(B $B!1!1!1!1!1!1(B:|$B!!(B |
$B!!!!(B |$B!!C8O)$?$^$M$.(B $B!!(B .|$B!?(B
$B!!!!(B $B!1!1!1!1!1!1!1!1(B

8/17 ($B6b(B)

[Prog] Linux $B$N%9%1%8%e!<%i$NF0:n$N%a%b(B

Linux $B%+!<%M%k(B 2.6 $B7O$N%9%1%8%e!<%i$rD4$Y$F$$$k$&$A$K!"(B $B!V9bM%@hEY$N%9%l%C%I$,$9$G$K%?%$%`%9%i%$%9$r;H$$@Z$C$F$$$k;~$K!"(B $BDcM%@hEY$N%9%l%C%I$+$i%7%0%J%k$,Aw$i$l$?$i$I$&$J$k$+!)!W$H$$$&5?Ld$,M/$/!#(B $Bl9g!"(B $BB>$N%9%l%C%I$,%?%$%`%9%i%$%9$r;H$$@Z$k$^$G(B $B9bM%@hEY$N%9%l%C%I$O$[$H$s$IF0$1$J$$$h$&$@!#(B

$B%F%9%H%W%m%0%i%`$O(B $BAw?.85%W%m%;%9$,(B SIGRTMIN $B%7%0%J%k$rEj$2$F$+$i(B $B

  • dummy loop $B%?%$%`%9%i%$%9Fb$K=hM}$r40N;$G$-$:(B expired queue $B$K7R$,$l$?8e$K!"%7%0%J%k$,Ht$s$G$-$?%b%G%k!#(B
  • sched_yield$B$O9bM%@hEY%W%m%;%9$,(B sched_yield $B$r(B $By$C$?%b%G%k!#(B
  • pause $B$O%7%0%J%k$,$/$k$^$G$:$C$HBT5!$7$F$$$k%b%G%k!#(B $B%7%0%J%k$,Ht$s$G$/$k$HHsF14|E*$K%7%0%J%k%O%s%I%i$,8F$S=P$5$l$k!#(B
  • sigwaitinfo $B$b%7%0%J%k$,$/$k$^$G$:$C$HBT5!$7$F$$$k%b%G%k!#(B $B$?$@$7%7%0%J%k$O%a%$%s$N%3%s%F%-%9%H$G

    $B7WB,$7$F$_$k$H(B pause $B$H(B sigwaitinfo $B$OAw?.B&%W%m%;%9(B($BDcM%@hEY(B)$B$,(B SIGRTMIN $B%7%0%J%k$rEj$2$?D>8e$K!"(B $Br7o$,2r=|$5$l(B $B:F$S(B active queue $B$KA^F~$5$l$?$,!"(B $B8=:_F0:nCf$NAw?.B&%W%m%;%9$h$j$bM%@hEY$,9b$$$N$G(B preemption $B$,8z$$$?$H9M$($i$l$k!#(B

    $B0lJ}(B dummy loop $B$H(B sched_yield $B$G$O!"(B $B%7%0%J%kAw?.8e$bAw?.B&%W%m%;%9$OF0$-B3$1!"(B $B;D$C$?B>$N%9%l%C%I$N%?%$%`%9%i%$%9$,?T$-$?8e$K!"(B $Bo$G$b(B 0.1 $BIC$N%*!<%@!

    #include <stdio.h>
    #include <stdlib.h>
    #include <stdint.h>
    #include <signal.h>
    #include <sched.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    #include <unistd.h>
    
    enum {
        REPEAT = 5000
    };
    
    /* $B%^%7%s$K9g$o$;$F(B CPU $B$N%j%"%k%?%$%`%9%?%s%W$r
    

    LP64 $B$G$J$$$H(B sigval_t $B$,(B 64 $B%S%C%HI}$K$J$i$J$$$N$G!"(B $B%j%"%k%?%$%`%9%?%s%W$r3JG<$G$-$J$$$+$b$7$s$J$$!#(B $BMWD4@0!#(B

    $Be$2$F$b!"(B $B%?%$%`%9%i%$%9$r;H$$@Z$C$F$7$^$&$H(B $B%7%0%J%k$K%j%"%k%?%$%`$KBP=h$G$-$J$$$3$H$,J,$+$k!#(B $BFC$K(B sched_yield $B$r;H$C$F(B CPU $BuBV$K$h$C$F$O(B $B$=$N8e$K$7$P$i$/=hM}$,2s$C$F$3$J$$!#(B $BMWCm0U!#(B

    $BDI5-!'(B9/3

    $BF1OpenLDAP $B$G$b=P$F$$$k$h$&$@!#(B

    $B$3$A$i$N9M$($kM}A[E*$J(B sched_yield $B$NF0:n$O!"(B CPU $Bl9g$O(B wake up $B$7!"(B $B%(%]%C%/$N=*$o$j$K$O%?%$%`%9%i%$%9$N:F3d$jEv$F$r

    $B$?$@(B Linux 2.6 $B$N(B O(1) $B%9%1%8%e!<%i$O!"(B $B%7%0%J%k$J$I$N%$%Y%s%H$rBT$D$?$a$K$O(B active queue $B$+$i$$$C$?$s%?%9%/$rH4$/I,MW$,$"$k$,!"(B active queue $B$+$i%?%9%/$rH4$$$F$7$^$&$H%(%]%C%/$N=*$o$j(B (active queue $B$H(B expired queue $B$r%9%$%C%A$9$k%?%$%_%s%0(B)$B$,8!=P$G$-$J$/$J$k!#(B $B$&$^$$J}K!$O$J$5$=$&$@!#(B O(1) $B%9%1%8%e!<%i$K$&$^$$2r$,$J$$$+$i(B Completely Fair Scheduler $B$,MW5a$5$l$k$N$@$m$&$1$I!#(B


8/16 ($BLZ(B)

$B%+%s%V%j%"GzH/$OK\Ev$K$"$C$?$N$+!)(B

$B4c$NCB@8!=%+%s%V%j%"5*Bg?J2=$NFf$r2r$/(B ($B%"%s%I%j%e!
Book Cover Book Cover Book Cover $B!!%"%s%I%j%e!
$B!!$^$:;W$C$?$N$O(B $B%+%s%V%j%"GzH/(B$B$H$$$&8=>]$N0\$jJQ$o$j$@!#(B

$B!!%9%F%#!<%V%s!&%8%'%$!&%0!<%k%I$N(B $B!V%o%s%@%U%k!&%i%$%U!W(B (1989$BG/Cx(B)$B$K$h$l$P!"(B $B!VGzH/!W$O%+%s%V%j%"=i4|$N(B500$BK|G/$N4V$K$KF0J*$N!VLg!W$,0l@F$KJ,2=$7$F!"(B $BF0J*3&$N0[$B!V%+%s%V%j%"5*$N2xJ*$?$A!W(B $B$,=q$+$l$?:"(B(1997$BG/Cx(B)$B$K$O!"(B $BJ,;R@8J*3X$NH/E8$K$h$j!VLg!W$O@h%+%s%V%j%";~Be$K(B $B2?@iK|G/!&2?2/G/$H$$$&$f$C$/$j$H$7$?%Z!<%9$GJ,2=$7$?$H$$$&@b$,
$B!!K\=q$N86=q$O(B2003$BG/$KH/Gd$5$l$?$b$N$@$,!"(B $B$5$i$K8&5f$O?J$_@h%+%s%V%j%";~Be$H%+%s%V%j%";~Be$NG/Be>e$N%.%c%C%W$OKd$a$i$l(B $B!V%(%G%#%"%+%iF0J*72$OF0J*?J2=$N$B$9$Y$F$NF0J*Lg$GFMG!$H$7$F9E$$3L$,?J2=$7$?=PMh;v(B$B$r;X$9$=$&$@!#(B $B8D?ME*$K$O%+%s%V%j%"BgGzH/$N!VGzH/!W$NFbMF$,!"(B $B;~Be$,2<$k$KO"$l$Fbd>.2=$7$F$$$C$F$$$k$h$&$K;W$($k!#(B

$B!!K\Bj$KLa$k$H!"(B $B!V4c$NCB@8!W$O$=$N$h$&$J30It7ABV$NBg?J2=$,5/$3$C$?M}M3$r!"(B $B%+%s%V%j%"@8J*$,4c$rCB@8$5$;$?$3$H$K860x$,$"$k$H$$$&2>@b$G@bL@$7$F$$$k!#(B $B4c$,@8$^$l$?$3$H$K$h$j!"(B $B3MJ*$r$7$C$+$j$HGD0.$7$F!"?( $B!!$=$N8e!"@8J*$N4c$,;}$D=EMW$5!"F|8wNL$H@8J*$NB?MM$5$N4X78$J$I$N%(%T%=!<%I$K?($l!"(B $B4c$NCB@8$,?J2=$NGzH/$rB%$7$?$H$$$&2>@b$NK5>Z$H$7$F$$$k!#(B $B$?$@8D!9$NOC$OLLGr$$$@$,!"(B $B4c$NCB@8%+%s%V%j%"GzH/@b$ND>@\E*$J>Z5r$O<($;$F$$$J$$!#(B $B$G$b!"$=$s$J$b$N$I$&$d$C$F=P$;$P$$$$$N$@$m$&!)(B

8/15 ($B?e(B)

[CPU] AMD Light-Weight Profiling (AMD)

AMD $B$,(B Light-Weight Profiling (LWP) $B$H8F$P$l$k(B $B%O!<%I%&%'%"!&%Q%U%)!<%^%s%9!&%b%K%?5!9=$rDs0F$7$F$$$k!#(B

$B$3$l$^$G$b%Q%U%)!<%^%s%9!&%b%K%?!&%f%K%C%H(B(PMU)$B$rHw$($?(B CPU $B$O?'!9$"$C$?!#(B $B4{B8$N(B PMU $B$O(B CPU $BFb$G5/$3$k%$%Y%s%H?t!&%$%Y%s%HNL$r%+%&%s%?%l%8%9%?$K5-O?$9$k$3$H$,$G$-$F$$$?!#(B $B$3$l$O(B LWP $B$b0l=o$@!#(B

$B4{B8$N(B PMU $B$O%+%&%s%?%l%8%9%?$,%*!<%P!<%U%m!<$7$?;~$K(B $B3d$j9~$_$r5/$3$7$F$=$NCf$G>pJs$N=hM}$r$7$F$$$?$,!"(B LWP $B$O%+%&%s%?$N%*!<%P!<%U%m!<$^$?$O%<%m;~$K(B CPU $BKh$K;XDj2DG=$J%P%C%U%!(B($B%j%s%0%P%C%U%!(B)$B$K%$%Y%s%H%l%3!<%I$r=q$-=P$9$3$H$,$G$-$k!#(B $B$3$N%$%Y%s%H%l%3!<%I$N=q$-=P$7$O!"(B $BI=B&$GF0$$$F$$$k%W%m%0%i%`$NF0:n$H$O(B($B$"$kDxEY(B)$BJ?9T$7$F=hM}$9$k$3$H$,$G$-$k$H$$$&(B $B%$%s%F%j%8%'%s%H$J$b$N!#(B $B$3$N<+F0E*$J=q$-=P$7$O!"(B $B%$%Y%s%H

  • Instruction retired $B$N7WB,;~$K$O!"(B $BL?Na$,%j%?%$%"$9$kEY$K%$%Y%s%H%+%&%s%?$,8:;;$5$l(B 0 $B$K$J$k$H!"(B $B8=:_$NL?Na%"%I%l%9$,%P%C%U%!$K=q$-=P$9!#(B
  • Branches retired $B$N7WB,;~$K$O!"(B $B%+%&%s%?$,(B 0 $B$K$J$C$?J,4tL?Na$NL?Na%"%I%l%9$HJ,4t%?!<%2%C%H%"%I%l%9$r(B $B%P%C%U%!$K=q$-=P$9!#(B
  • $B%G!<%?%-%c%C%7%e%_%9$N7WB,;~$K$O!"(B $B%l%$%F%s%7$,7WB,$G$-$kB>!"(B $BL?Na%"%I%l%9(B/$B%-%c%C%7%e%_%9$7$?%G!<%?%"%I%l%9$r=q$-=P$9!#(B

$B4{B8$N%5%s%W%j%s%0$K$bF1;~$KJ#?t$N%$%Y%s%H$r:N


8/12 ($BF|(B)

$BBg>l;a$HBG$A9g$o$;!w=BC+(B

$BM'?M$,(B9$B7n$K9-Eg$G7k:'<0$r$d$k$=$&$G!"(B $BM'?M$K=P$7J*$r%j%/%(%9%H$7$F$$$k!#(B $B$=$N=P$7J*$NAjCL$r$7$h$&$HBg>l;a$H=BC+$GMn$A9g$&!#(B

$B=BC+$N%$%s%INAM}E9%i!<%8%^%O!<%k$G%i%s%A$r?)$Y$J$,$iOC$79g$&$,!"(B $B<0$K$I$s$J?M$,>7BT$5$l$F$$$k$N$+!"(B $BB>$K$I$&$$$&=P$7J*$,$"$k$N$+J,$+$i$:!"(B $B$J$+$J$+%"%$%G%"$,7A$K$J$i$J$$!#(B $B$H$j$"$($:(B 1.$B%/%$%:(B 2.$B?7O:$N3X@8;~Be$N5l0-$rK=O*$9$k(B 3.$B2N$r14$&!"(B $B$H$$$&9`L\$r=P$7$?$@$1E9$r$G$k!#(B

$B%i%s%A$r?)$Y$?8e!"(B $BBe!9LZ8x1`(B$B$r$0$k$C$H0l<~$^$o$C$F$/$k!#(B $B8x1`$NCf$O(B8$B7n$NG.5$$bOB$i$$$G$$$$46$8!#(B $B8x1`$r;6:v$9$k?M!"3Z4o$r1iAU$9$k?M!"BgF;7]$d$A$c$s$P$i$NN}=,$r$9$k?M!"(B $BMg$GF|8wMa$9$k?M$H$N$s$S$j$7$F$$$k!#(B

$BBe!9LZ8x1`$+$i86=I1X$X=P$F!"$=$3$+$iJb$$$F=BC+$KLa$k!#(B $B:G8e$K(B Book 1st $B$GK\$rJ*?'$7$F$+$iBg>l;a$HJL$l$k!#(B $B$H$3$m$G:#F|$O2?$N$?$a$K=8$^$C$?$s$@$C$1!D(B


8/11 ($BEZ(B)

[MyPC] Nanao FlexScan S1701-STBK

8/8 $B$K2u$l$?%G%#%9%W%l%$$NBX$o$jGc$$$K@n:j$K=P$F!"(B $B%h%I%P%7$G1U>=%G%#%9%W%l%$$rJ*?'$9$k!#(B $B%Q%=%3%s;(;o$r8+$J$/$J$C$F5W$7$$$N$G(B $B:G6a$N%G%#%9%W%l%$$NN.9T$H$+$,J,$+$i$J$$$N$@$,!"(B $BH?1~B.EY$H(B DVI $BC<;R$,$D$$$F$$$k$3$H$+$i(B Nanao $B$N(B FlexScan S1701-STBK $B$r9XF~!#(B $BMh=5$N2PMKF|$KFO$/M=Dj!#(B

$BDI5-!'(B2007/8/14

$BK\F|!"E~Ce(B

CRT $B$N(B 15 $B%$%s%A$+$i1U>=$N(B 17 $B%$%s%A$J$N$GI=<(LL@Q$,>/$7$@$1A}$($?$b$N$N!"(B $B2rA|EY$,(B 1,152$B!_(B864 $B"*(B 1,280$B!_(B1,024 $B$KJQ$C$F(B $BJ8;z$,>.$5$/$J$C$?$h!#(B $B$G$b$\$s$d$j$7$F$$$?2hLL$,$/$C$-$j$O$C$-$j$7$F!"(B jpeg $B%U%!%$%k$N05=LN($N0c$$$,J,$+$k$h$&$K$J$C$?(B!!

$BDI5-!'(B2007/8/20

$B;EMM=q$r$h$/FI$`$H%"%J%m%0$O(B PC-98x1 $B%7%j!<%:$N(B 24.8kHz $B$N(B $BF~NO$KBP1~$7$F$$$k$H$N$3$H!#K|:P(B!!

$B$"$H$3$N(B1$BG/$0$i$$EE8;EjF~8e$K%j%;%C%H%\%?%s$r2!$5$J$$$H!"(B $B%Q%=%3%s$,5/F0$7$J$+$C$?$N$,D>$C$?!#K|:P(B!!

[Movie] $B%H%i%s%9%U%)!<%^!<(B

$B$D$$$G$K%A%M%A%C%?$G(B $B%H%i%s%9%U%)!<%^!<(B$B$r(B $B8+$F9T$/!#(B 18:05 $B$NIt$r(B11$BHV%9%/%j!<%s$G8+$?$,!"(B $B5R@J$OH>J,$0$i$$$NKd$^$jJ}$@$C$?!#(B $BEZMKF|$@$H$$$&$N$K3d$H$9$$$F$$$k!#(B

$B:G=i$O!"(B $B%H%i%s%9%U%)!<%^!<$NL>$r

$B$H$3$m$G1G2hCf$K=P$F$/$k(B$B%-%e!<%V(B$B$O!"(B $B%"%K%a!&%3%_%C%/$@$H(B$B%^%H%j%/%9(B$B$@$C$?$h$&$J5$$,$9$k!#(B $B$"$N1G2h$N%?%$%H%k$rO"A[$5$;$k$+$iJQ99$K$J$C$?$N$+$7$i!)(B


8/10 ($B6b(B)

[CPU] Itanium2 $B$N5!G=$,$&$^$/F0:n$7$J$$$N$O$J$<(B

IA-64 $B$N%G!<%?%G%P%C%0%V%l!<%/5!G=(B(DDB)$B$N

$B0lEY!"%G%P%C%0%U%)%k%H$r5/$3$7$?(B ld/st $BL?Na$O!"(B PSR(Program Status Register) $B$N(B dd $B%S%C%H$rN)$F$F:F3+$9$k$H(B 1$BL?NaJ,$@$1(B DDB $B$,M^;_$5$l$k!#(B $B

$B8$B7n(B5$BF|(B$B$NF|5-$K=q$$$?$h$&$K(B IA-64/Linux $B%+!<%M%k$r$$$8$C$F$$$k$N$@$,!"(B st $BL?Na$G%G!<%?%G%P%C%0%V%l!<%/$K$D$+$^$j(B SIGTRAP $BAw?."*(B SIGTRAP $B%7%0%J%k%O%s%I%iFb$G!{!{!{$r

  • $B%7%0%J%k%O%s%I%iFb$G2?$b$;$:$K(B SIGTRAP $B%7%0%J%k$+$iH4$1$k$H(B DDB $BM^;_$OM-8z!#(B
  • printf $B$r(B 1 $B9T$@$1printf $B$rBgNL$KI=<($9$k$H>o$KL58z!#(B
  • flushrs $BL?Na$r(B 1 $B2s$G$bo$KL58z!#(B

Itanium2 $B$N%O!<%I$NLdBj$J$N$+%+!<%M%k$N%3!<%I$NLdBj$J$N$+@Z$jJ,$1$i$l$F$$$J$$$,!"(B $BIT;W5D$J5sF0$@!#(B

$BDI5-!'(B2007/8/13

PSR.dd $B$O%j%9%?!<%H$7$?L?NaFb$G9T$o$l$k(B ld/st/$B%;%^%U%)A`:n0J30$K!"(B RSE $B$K$h$k%a%b%jA`:n$K(B DDB $B$rM^;_$9$k$H$"$k!#(B $B$b$7$+$7$F(B rfi $BL?Na$K$h$k(B RSE $B$N6/@)%m!<%I$r(B PSR.dd $B$,M^;_$9$k$3$H$G(B PSR.dd $B$N8z2L$,$J$/$J$j!"(B $B%j%9%?!<%HL?Na$O(B PSR.dd=0 $B$N>uBV$G

$B$H$j$"$($:(B $B%G%P%C%0%U%)%k%H(B $B"*(B PSR.db=0 $B"*(B SIGTRAP $B"*(B PSR.ss=1 $B"*(B $B%7%s%0%k%9%F%C%W%H%i%C%W(B $B"*(B PSR.ss=0 $B"*(B SIGTRAP $B"*(B PSR.db=1 $B$H$$$&A+0\$K$9$k$3$H$G!"(B PSR.dd $B$NLdBj$O2sHr$G$-$k$3$H$r3NG'!#(B


8/8 ($B?e(B)

[MyPC] $B<+Bp$N(B CRT $B%G%#%9%W%l%$2u$l$k(B

$B<+Bp$G;H$C$F$$$?(B iiyama $B$N%H%j%K%H%m%s%G%#%9%W%l%$$,$D$$$K2u$l$k!#(B $B$I$s$J<~GH?t$rF~NO$7$F$b2hLL$N??$sCf$G=DBS$N$h$&$KI=<($5$l$k$@$1!D(B


8/5 ($BF|(B)

[CPU] $BNc30$H3d$j9~$_$H%U%)%k%H$H%H%i%C%W$H%"%\!<%H(B

CPU $B$,L?Na$r=hM}$7$F$$$k:GCf$K%3%s%H%m!<%k%U%m!<$r%V%C$A$.$C$F(B $BJL=hM}$K0\$k$h$&$J%$%Y%s%H$N$3$H$r(B $BNc30(B(exception)$B!"(B $B3d$j9~$_(B(interruption or interrupt)$B!"(B $B%U%)%k%H(B(fault)$B!"(B $B%H%i%C%W(B(trap)$B!"(B $B%"%\!<%H(B(abort) $B$H$+FI$s$G$$$k!#(B $B$?$@$7MQ8l$N;H$$J}$O%"!<%-%F%/%A%cKh$KHyL/$K0[$J$k$N$G!"(B $B$=$N0c$$$r$A$g$C$H%a%b!#(B

  • IA-32/Intel64 $B$O%$%Y%s%H$r(B interrupt $B$H(B exception $B$NFs$D$K6hJL$7$F$$$k!#(B
    • Interrupt $B$O30It$+$i$N;I7c$GH/@8$9$kHsF14|$J%$%Y%s%H$r;X$9!#(B
    • Exception $B$OL?Na Exception $B$O$5$i$K(B fault/trap/abort$B$KJ,$+$l$k!#(B
      • Fault $B$OL?Na$,Trap $B$OL?Na$,Abort $B$O0[>o>uBV$rJs9p$9$k(B exception$B!#(B $BL?Na$N
    • IA-64 $B$N%$%Y%s%H$ONc30(B(interruption)$B$H$$$&Jq3g35G0$r;}$A!"(B $B$=$N2<$K(B interrupt/fault/trap/abort $B$H$$$&J,N`$r;}$C$F$$$k!#(B
      • Interrupt $B$OHsF14|E*$J(B interruption$B!#(B
      • Fault $B$OF14|%$%Y%s%H$N$&$AL?Na$,Trap $B$OF14|%$%Y%s%H$N$&$AL?Na$,Abort $B$O0[>o>uBV$rJs9p$9$k(B interruption $B$G!"(B $BF14|$HHsF14|$N$I$A$i$b4^$`!#(B

    $B$H$3$m$G3d$HG/G[$N5;=Q$B3d=P$7(B$B$H$$$&8@MU$,=P$F$/$k!#(B $B%=%U%H%&%'%"3d9~$_$N$3$H$r8@$&$i$7$$$,!"(B $B$I$&$$$&5/8;$,$"$k$N$+$7$i!)(B Google$B$G8!:w(B$B$9$k$H(B $B!V3d=P$9!W$NL>;l7A$7$+>e0L$K$3$J$$$h!#(B

    [Program] $B<+8JFbB"7?%G%P%C%,(B

    $B:G6a!"<+8JFbB"7?%G%P%C%,$H$$$&%"%$%G%"$r%[%m%[%m$H9M$($F$$$k!#(B

    $B$9$G$K2TF0$7$F$7$^$C$?%7%9%F%`$KBP$9$k>c32D4::$G$O!"(B $BBPOCE*$J%G%P%C%,$O;H$($J$$(B($B>c32$,=P$k$^$G$K;~4V$,$+$+$k$N$,IaDL$@$+$i(B)$B!#(B $B$^$?(B ptrace $B%Y!<%9$N%G%P%C%,$O9=B$E*$K@-G=Dc2<$r@8$8$k!#(B $B7k6I!"(B $B>I>u$+$i8+$F%=!<%9%3!<%I>e$N2x$7$$2U=j$KLV$r3]$1$?D4::MQ$N%P%$%J%j$rMQ0U$7$F!"(B $B8\5R@h$N%7%9%F%`$rF~$lBX$($5$;$F$b$i$&$H$$$&$3$H$K$J$k!#(B

    $B$J$s$+$&$^$$J}K!$O$J$$$+9M$($F$$$k!#(B $B$G$-$l$P0J2<$N$h$&$J%]%$%s%H$rK~$?$7$?$$!#(B

    1. $BB.EY$NDc2<$r>7$+$J$$$3$H!#(B
    2. $B%7%9%F%`$N%P%$%J%j$K$O$BFCDj$N%a%b%j%"%/%;%9$^$?$OFCDj$N%3!<%I$,$B1?MQCf$K%*%s!&%*%U$,$G$-$k$3$H!#(B

    $B0F$H$7$F$O!"(B $BFCDj$N%7%0%J%k$r%G%P%C%0MQ$KM=Ls$7$F$*$$$F!"(B $B$=$N%7%0%J%k$r

    $B%V%l!<%/%]%$%s%H$N$?$a$N%O!<%I5!9=(B

    $B:G6a$N(B CPU $B$K$O%G%P%C%05!9=$H$7$FFCDj$NL?Na%"%I%l%9$rl9g(B or $BFCDj$N%G!<%?%a%b%j$K%"%/%;%9$7$?>l9g$KNc30$r>e$2$k5!9=$,$"$k$o$1$G!"(B $B%G%P%C%0$O$3$N5!G=$r;H$C$F%V%l!<%/%]%$%s%H$r;E3]$1$?$j%a%b%j$r4F;k$9$k%&%)%C%A5!G=$r

    Linux $B$G$O$3$N5!G=$O(B ptrace $B$r8F$S=P$9$H@_Dj$G$-!"(B $BM?$($i$l$?HO0O$N%a%b%j%"%/%;%9$,5/$-$k$H(B SIGTRAP $B%7%0%J%k$,H/@8$9$k$h$&$K$J$C$F$$$k!#(B

    1. Linux $B$K$O%G!<%?%V%l!<%/%]%$%s%H$N%O!<%I$N<+N'E*$K%*%s$K$9$kJ}K!$,$J$$!#(B
    2. SIGTRAP $B%7%0%J%k$,5/$-$?8e$N=hM}$,%"!<%-%F%/%A%c$K$h$C$FJQ$k!#(B

    1. $B$NLdBj$O%+!<%M%k$K

    IA-32/Intel64 $B$N>l9g!"(B DR$B%l%8%9%?$r;H$C$F9g$o$;$F(B4$BAH$^$G$N(B $BL?Na%V%l!<%/%]%$%s%H$H%G!<%?%a%b%j%V%l!<%/%]%$%s%H$r;E3]$1$i$l$k!#(B $B$=$l$>$l>r7o$K0lCW$9$k$,L?Na%V%l!<%/%]%$%s%HNc30$H%G!<%?%a%b%j%V%l!<%/%]%$%s%HNc30$,H/@8$9$k$N$@$,!"(B $BA0l9g!"(B $BNc30%O%s%I%i$+$i%j%?!<%s$9$k$H

    $B$G!"(BIA-64/Linux $B$NLdBj(B

    IA-64$B$N>l9g$OL?Na$H%G!<%?$rJL!9$K:GBg(B4$BAH$^$G4F;k$9$k$3$H$,$G$-$k!#(B $B>r7o$K0lCW$7$?>l9g$O%U%)%k%H7?$N3d$j9~$_$,H/@8$9$k!#(B IA-64 $B$K$b(B EFLAGS $B$N(B RF $B%U%i%0$K;w$?5!9=$,$"$C$F!"(B $B%U%)%k%H%O%s%I%iFb$G(B PSR $B$N(B dd $B%S%C%H$rN)$F$F$+$i:F3+$9$k$H!"(B 1$BL?NaJ,$@$1%G%P%C%0%U%)%k%H$NH/@8$rM^;_$9$k$3$H$,$G$-$k!#(B

    $B$@$1$IC$($F$$$k!#(B

            case 29: /* Debug */
                    ia64_psr(&regs)->dd = 1;
            case 35: /* Taken Branch Trap */
            case 36: /* Single Step Trap */
                    if (fsys_mode(current, &regs)) {
                            ($BCfN,(B)
                    }
                    ($BCfN,(B)
                    if (notify_die(DIE_FAULT, "ia64_fault", &regs, vector, siginfo.si_code, SIGTRAP)
                        == NOTIFY_STOP)
                            return;
                    siginfo.si_signo = SIGTRAP;
                    siginfo.si_errno = 0;
                    siginfo.si_addr  = (void __user *) ifa;
                    siginfo.si_imm   = 0;
                    siginfo.si_flags = __ISR_VALID;
                    siginfo.si_isr   = isr;
                    force_sig_info(SIGTRAP, &siginfo, current);
                    return;
    

    rt_sigreturn $B4X?t$NCf$+$i8F$P$l$k(B restore_sigcontext $B$G(B dd $B%S%C%H$rN)$F$k$HN.@P$K(B disable debug $B$7$F$/$l$k$N$@$,!"(B $B%7%0%J%k8e$NA4$F$N=hM}$K(B dd $B$,IU$$$A$c$&!#(B $B$A$g$C$H$^$:$$!#(B

    static long
    restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr)
    {
            unsigned long ip, flags, nat, um, cfm, rsc;
            long err;
    
            /* Always make any pending restarted system calls return -EINTR */
            current_thread_info()->restart_block.fn = do_no_restart_syscall;
    
            /* restore scratch that always needs gets updated during signal delivery: */
            err  = __get_user(flags, &sc->sc_flags);
            err |= __get_user(nat, &sc->sc_nat);
            err |= __get_user(ip, &sc->sc_ip);                      /* instruction pointer */
            err |= __get_user(cfm, &sc->sc_cfm);
            err |= __get_user(um, &sc->sc_um);                      /* user mask */
            ($BCfN,(B)
    
            /* establish new instruction pointer: */
            scr->pt.cr_iip = ip & ~0x3UL;
            ia64_psr(&scr->pt)->ri = ip & 0x3;
            scr->pt.cr_ipsr = (scr->pt.cr_ipsr & ~IA64_PSR_UM) | (um & IA64_PSR_UM);
            scr->pt.cr_ipsr |= IA64_PSR_DD;
    

8/3 ($B6b(B)

[Food] $B8f?);v=h%9%:%-!w?72#IM(B ($B8x<0(B)

$B?7$7$/G[B0$5$l$??M$N4?7^2q$G(B $B%9%C%]%s$H%&%J%.$N$*E9%9%:%-$G$9!#(B $B?72#IM$H85=;5H$N=;Bp39$G$R$C$=$j$HE9$r3+$$$k$N$G$9$,!"(B $BCN$k?M$OCN$k$H$$$C$?E9$i$7$$$G$9!#(B $B$h$/8+$D$1$?$J$!!A!#(B

$B8f?);v=h%9%:%-(B:$BE9$NA0(B
$BE9$NA0(B
$B8f?);v=h%9%:%-(B:$B%&%J%.$N?eAe(B
$B%&%J%.$N?eAe(B
$B8f?);v=h%9%:%-(B:$B?]$N$b$N(B
$B?]$N$b$N(B
$B8f?);v=h%9%:%-(B:$B@8$-7l(B
$B@8$-7l(B
$B8f?);v=h%9%:%-(B:$B?4B!$HC@G9(B
$B?4B!$HC@G9(B
$B?4B!$O$^$@F0$$$F$$$k(B
$B8f?);v=h%9%:%-(B:$B%9%C%]%sFi(B
$B%9%C%]%sFi(B
$B8f?);v=h%9%:%-(B:$B%9%C%]%s9CMe(B
$B9CMeItJ,$rFCJL$K(B
$B8f?);v=h%9%:%-(B:$B$*;I?H$N@9$j9g$o$;(B
$B$*;I?H$N@9$j9g$o$;(B
$B8f?);v=h%9%:%-(B:$B=)Ea5{(B
$B=)Ea5{(B
$B8f?);v=h%9%:%-(B:$B%&%J%.$N3w>F(B
$B%&%J%.$N3w>F(B
$B8f?);v=h%9%:%-(B:$B%9%C%]%sFi$N;(?f(B
$B%9%C%]%sFi$N;(?f(B

$B%9%C%]%s$OL#$h$j$b8z2L$,>!Ii$G$9$,!"(B $B$*;I?H!&=)Ea5{!&%&%J%.$N3w>F$OH~L#$7$e$&$4$6$$$^$7$?!#(B

$B$*EZ;:(B

$B%9%C%]%s$O9CMe$r@v$C$F;}$A5"$i$;$F$/$l$^$9!#(B
$B4%$/$HGr?'$K$J$k$=$&$G$9!#(B


8/2 ($BLZ(B)

Referer $B%9%Q%`$J$N$+$I$&$+HyL/(B

www.nminoru.jp $B$N%$%a!<%8%U%!%$%k$N%m%0$r8+$F$$$k$H!"(B $B:G6aJQ$J(B referer $B$,IU$$$?4qL/$J%"%/%;%9$,A}$($F$$$k$3$H$,J,$+$k!#(B http://pic.myjpg.org/$BDDKcGLF&Ie(B/index.html$B$H$+(B http://hot.myjpg.org/$B;3$A$c$s(B/index.html$B$H$+(B myjpg.org $B%I%a%$%s$,IU$$$FMh$F$$$k$N$,FCD'$@!#(B

Referer $B$N(B URL $B$rI=<($7$F$_$k$H!"(B Google $B$b$I$-$N%X%C%@!<$r;}$C$?(B $B2x$7$$2hA|$,%Y%?%Y%?$HBgNL$KE=$jIU$1$i$l$?%Z!<%8$,I=<($5$l$k!#(B $B%-!<%o!<%I8!:w$7$?%$%a!<%8$,0l$D$N%Z!<%8$K%F%s%3@9$j$K$J$C$F$$$k!#(B $B$I$&$7$F(B http://xn--o1qu10g.myjpg.org/$B2Z86J~H~(B/index3.html $B$N%Z!<%8$K(B $B$&$A$N(B$B?.9f5!$N%G%8%+%a$B$,E=$jIU$1$i$l$F$$$k$N$+Ff$@!#(B

Referer $B%9%Q%`$N$h$&$K$b$_$($k$,$=$l$K$7$F$O8z2L$,Gv$=$&$@$7!"(B $B8!:w%(%s%8%s$r;H$C$??7$7$$%a%?%5!<%S%9$H$7$F$O(B $B2?$rA@$C$F$$$k$N$+NI$/J,$+$i$J$$!#(B

$B$I$&$$$&BP1~$r$H$m$&$+$7$i!)(B


$B@h7n$NF|5-(B(2007$BG/(B07$B7n(B) $B:#7n$NF|5-(B(2007$BG/(B08$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