zxLinux $B%+!<%M%k(B
$B%I%-%e%a%s%H(B
V0.1

2000/Mar/11
$B$?$1$*$+(B@AXE







0. $B$O$8$a$K(B


$BK\J8=q$O(BZaurus$B>e$N(BLinux($B0J2<(B zxLinux$B$H8F$V(B) $B$N%+!<%M%k$K$D$$$F=R$Y$F$$$k!#(B
zxLinux$B$O!"$=$b$=$bI8=`E*$J(BLinux$B%+!<%M%k$KJQ99$r2C$($F!"(BZaurus$B>e$G2TF/$9$k$h$&$K$7$?$b$N$G$"$k!#(B
zxLinux$B$O4{B8$N(BZaurus$B$N%=%U%H%&%'%"E*$JOHAH$r$=$N$^$^;D$7!"2DG=$G$"$l$P!"4{B8(BZaurus$B$NDs6!$9$k5!G=$r!"$=$N$^$^;HMQ$9$k$h$&$K$J$C$F$$$k!#(B
zxLinux$B$O4{B8(BZaurus$BFb$N%^%$%/%m%+!<%M%k(B"XTAL"$B$N(B1$B%W%m%;%9$H$7$FF0:n$7!"(BXTAL$B$N5!G=$G(Blinux$B5!G=$r zxLinux$B$N%+!<%M%k5!G=$r




1.$BBg$^$+$J9=B$(B

$B$3$3$G$O(BzxLinux$B$NBg$^$+$J9=B$$r<($9!#(B
zxLinux$B$O(BXTAL$B$N4p$GF0:n$9$k!#(B
Linux$BM3Mh$N%W%m%0%i%`$O!"(BzxLinux$B$N4IM}2<$GAv9T$9$k!#(BLinux$BM3Mh$N%W%m%0%i%`$r!"0J2<$G$O!"(BzxLinux$B%"%W%j%1!<%7%g%s!"$^$?5/F0$5$l$?(BzxLinux$B%"%W%j%1!<%7%g%s$r(B zxLinux$B%W%m%;%9$H8F$V!#(B
zxLinux$B%"%W%j%1!<%7%g%s$O!"!V(BzxLinux$B%"%W%j%1!<%7%g%s3+H/%-%C%H!W$r;HMQ$7$F3+H/$5$l$?!"(BzxLinux$B$N$?$a$N%"%W%j%1!<%7%g%s$G$"$k!#(B
zxLinux$B%W%m%;%9$O!"(BLinux$B%7%9%F%`%3!<%k$rH/9T$9$k!#$=$N%7%9%F%`%3!<%k$O(BXTAL$B$N$b$D(BQueue$B$K$h$k%W%m%;%94VDL?.$r;HMQ$7$F $B#z#x(BLinux$B%5!<%P30$N#z#x(BLinux$B%W%m%;%9$N;q8;!J@\$KF@$F!"$=$N4IM}$b(BXTAL$B$KMj$k!#(B











$B%7%9%F%`35N,?^(B



2. $B%7%9%F%`%3!<%k=hM}$N35MW(B

zxLinux$B%"%W%j%1!<%7%g%s!&%W%m%;%9$,H/9T$7$?(BLinux$B%7%9%F%`%3!<%k$O!"(BzxLinux$B%W%m%;%9$K%j%s%/$5$l$?%9%?%V!&%k!<%A%s$K$h$C$F!"(B XTAL$B$N%W%m%;%94VDL?.$KJQ49$5$l!"(BzxLinux$B%+!<%M%k$KAw?.$5$l$k!#(B
zxLinux$B%+!<%M%k$O%7%9%F%`%3!<%k$KBP1~$7$?=hM}$r9T$C$?8e!"$=$NLa$jCM$r!":F$S!"(BXTAL$B$N%W%m%;%94VDL?.$r;HMQ$7$FJV$9!#(B













$B%7%9%F%`%3!<%k=hM}$N35MW(B


3. I/O$B$K$D$$$F(B

zxLinux$B%"%W%j%1!<%7%g%s$O4pK\E*$K!"(BLinux$B%"%W%j%1!<%7%g%s$G$"$j!"%G%P%$%9$NA`:n$J$I$b!"(BLinux$B$N:nK!$K=>$o$J$1$l$P$J$i$J$$!#$D$^$j!"4pK\E*$K(BI/O$BA`:n$O!"(B/dev$B2<$N%G%P%$%9!&%U%!%$%k$KBP$9$k!"(Bread/write$B$G9T$o$M$P$J$i$J$$!#(B
$B%G%P%$%9$KBP$9$k=hM}$O!"(BzxLinux$B%+!<%M%k$K%j%s%/$5$l$?%G%P%$%9!&%I%i%$%PItJ,$, $B8=%P!<%8%g%s$,%5%]!<%H$9$k(BI/O$B$O!"(B
$BJ8;z=PNO(B
$B%-!<%\!<%IF~NO(B
$B%\%?%sF~NO(B
$B$G$"$k!#(B

$B%-!<%\!<%I!"%\%?%s$J$I$NF~NO$O!"(BZaurusOS$B>oCs$N(BAPM$B$h$j%$%Y%s%H$H$7$F%"%W%j%1!<%7%g%s$KEO$5$l$k!#(B
zxLinux$B$G$O!"$=$l$i$N%$%Y%s%H$r zxLinux$B$N$?$a$K(BZaurusOS$B$,@8@.$7$?%$%Y%s%H$O(Bzlboot$B$, zxLinux$B$N%G%P%$%9%I%i%$%P$O!"E,59$=$NET9g$N$h$$;~$K!"(Bzlboot$B$+$i$N%$%Y%s%H$ro$N(Blinux$B%G%P%$%9=hM}$r9T$&!#(B











$B%$%Y%s%H=hM}$NN.$l(B



4. $B%M%C%H%o!<%/(B

zxLinux$B$N%M%C%H%o!<%/$O!"DL>o$N(BLinux$B$N$b$N$G$O$J$/!"4{B8(BZaurus$B$N%M%C%H%o!<%/!&%W%m%H%3%k!&%9%?%C%/$r;HMQ$9$k!#(B
$B$D$^$j!"(BzxLinux$B%+!<%M%k$X8~$19T$o$l$?%M%C%H%o!<%/4XO"$N%7%9%F%`%3!<%k$O!"(BzxLinux$B%+!<%M%kFb$+$i!"4{B8(BZaurus$B$N%M%C%H%o!<%/5!G=$N8F$S=P$7$KJQ49$5$l!" $B$h$C$F!"%@%$%"%k%"%C%W






5.$B%+!<%M%kFbIt$G$N=hM}(B

zxLinux$B%+!<%M%kFbIt$K$O!"(BzxLinux$B%"%W%j%1!<%7%g%s$KBP1~$7$F!"%+!<%M%kFb%9%l%C%I$,B8:_$9$k!#(B
$B%+!<%M%kFb%9%l%C%I$O!"(BzxLinux$B%"%W%j%1!<%7%g%s$N%7%9%F%`!&%3!<%k=hM}$r $BFC$K!"%7%9%F%`%3!<%k$K$h$j!"%+!<%M%kFbIt$G!VBT$A!W$,H/@8$7$?$H$-!"%+!<%M%kFb%9%l%C%I$O$=$NBT$A>r7o$,K~$?$5$l$k$^$G(BWait$B$KF~$k!#(B
$B$3$N9=B$$K$h$C$F!"BT$A=hM}$rJ#;($K$;$:$K(BXTAL$B$N$b$H$G(BLinux$B%+!<%M%k$rF0:n$5$;$k$3$H$K@.8y$7$F$$$k!#(B

$B%+!<%M%kFb$G@8$8$kBT$A$H$O!"$?$H$($P(B
nanosleep()$B%7%9%F%`%3!<%k(B
$B%U%!%$%k(BI/O$B=hM}(B
$B$J$I$G$"$k!#(B
zxLinux$B$G$O%U%!%$%k(BI/O$B$O(BLinux$B30$N5!G=$K$h$C$F$$$k$N$G!"$=$l$i$N=hM}$,40N;$9$k$^$G$O!"%+!<%M%kFb%9%l%C%I$O(BWait$B$9$k$N$_$G$h$$!#(B




zxLinux$B%5!<%PFb$G$N%7%9%F%`%3!<%k=hM}(B



$B$3$3$GFCI.$9$Y$-FCD'$O!"#z#x(BLinux$B%5!<%P30$N%f!<%6!&%W%m%;%9$O(BXTAL$B85Mh$N%9%1%8%e!<%i$K$h$j%9%1%8%e!<%k$5$l!"#z#x(BLinux$B%5!<%PCf$N%+!<%M%kFb%9%l%C%I$O(BLinux$BM3Mh$N%9%1%8%e!<%i$r;HMQ$7$F%9%1%8%e!<%j%s%0$r9T$&E@$G$"$k!#(B



6. $B%U%!%$%k!&%7%9%F%`(B

zxLinux$B$O%U%!%$%k!&%7%9%F%`$H$7$F(Bext2fs$B$r;HMQ$7$F$$$k!#(B
$B$?$@$7!"(Bext2fs$B$r3JG<$9$k5-21AuCV$,L5$$$?$a!"(BZaurus$B4{B8$N(BDOS$B%U%!%$%k!&%7%9%F%`>e$K(Bext2fs$BA4BN$N%$%a!<%8$r#1$D$N%U%!%$%k$H$7$F3JG<$7!"$=$l$r(Bmount$B$9$k$3$H$G!"(Bext2fs$B$r DOS FS$B>e$N(Bext2fs$B$r%a%s%F%J%s%9$9$k$3$H$O!"JLES(BLinux$B%^%7%s$r;}$C$F$$$l$PFq$7$/$J$$!#(B($B$=$NJ}K!$K$D$$$F$O3+H/%I%-%e%a%s%H;2>H$N$3$H(B)
zxLinux$B%+!<%M%k$O(BDOS FS$B>e$N%U%!%$%k$H$7$F4IM}$5$l$F$$$k!#(B
zxLinux$B%+!<%M%k$r%V!<%H$9$k(Bzlboot(MORE$B%=%U%H(B)$B$b(BDOS FS$B>e$N%U%!%$%k$H$7$F4IM}$5$l$k!#(B













zxLinux$B$N%U%!%$%k(I%$B%7%9%F%`(B



7. zxLinux$B%"%W%j%1!<%7%g%s$N5/F0(B

zxLinux$B%+!<%M%k$+$i(BzxLinux$B%"%W%j%1!<%7%g%s$r5/F0$9$k;~!"4{B8(BZaurusu$B4D6-$GF0:n$5$;$k$?$a$K!"(BzxLinux$B$G$OFH<+$JF0:n$r9T$C$F$$$k!#(B


1) $B4{B8(BZaurus$B4D6-$G$N%W%m%0%i%` Zaurus$BHG(BXTAL$B$G$O!"30It%W%m%0%i%`$N%W%m%0%i%`!&%3!<%I$O!"e$N%U%!%$%k!&%7%9%F%`$+$i(BRAM$B>e$N%R!<%WNN0h$KFI$_9~$^$l!"e$N%G!<%?$O
($BCm(B)$B%G%^%s%I!&%Z!<%8%s%0$O!"(BCPU$B$,IT:_%Z!<%8$K%"%/%;%9$9$k$3$H$G@8$8$k!"%;%0%a%s%F!<%7%g%s!&%U%)!<%k%H$r(BXTAL$B$, $B!!$3$l$K$h$j(BZaurus$B$G$O>/$J$$(BRAM$B$G9bB.$J%W%m%0%i%`

7. zxLinux$B%"%W%j%1!<%7%g%s$N5/F0(B ($BB3(B)

2) zxLinux$B$N zxLinux$B%5!<%P$K$h$j5/F0$5$l$?%"%W%j%1!<%7%g%s$,(BXTAL$B$NOHAH$_$GF0$/$?$a$K$O!"(BROM$B$N%U%!%$%k!&%7%9%F%`(B(DOSFS)$B$K%3!<%I$r;}$?$J$1$l$P$J$i$J$$!#(B
$B$=$3$G(BzxLinux$B$O$=$N%"%W%j%1!<%7%g%s5/F0;~$K!"(B
i) ext2fs$B$+$i%3!<%I$rFI$_9~$_!"(BDOSFS$B>e$K%$%a!<%8$rE83+(B
$BF1;~$K(BELF$B7A<0$+$i(BZaurusOS$B%P%$%J%j7A<0$X$N%U%)!<%^%C%HJQ49$b9T$&(B
ii) code_create_file()
iii) proc_create()
iv) proc_start()
$B$r=g





$B#z(BxLinux$B%"%W%j%1!<%7%g%s5/F0=hM}(B



8. zxLinux$B$N5/F0(B


zxLinux$B%+!<%M%k$O!"%V!<%H!&%W%m%0%i%`$G$"$k(Bzlboot$B$H6&$K!"(BZaurusOS$B$,4IM}$9$k(BDOSFileSystem$B>e$K=q$-9~$^$l$F$$$k!#(B
ZaurusOS$B$K$O(Bzlboot$B$,(BMORE$B%"%W%j%1!<%7%g%s$H$7$FG'<1$5$l!"(BMORE$B%"%W%j%1!<%7%g%s!&%i%&%s%A%c$GI=<($5$l$k!#(B
$B%f!<%6$K$h$C$F!"(Bzlboot$B$,5/F0$5$l$k$H!"(Bzlboot$B$O(BDOSFS$B>e$N(BzxLinux$B%+!<%M%k$rFI$_9~$_(BzxLinux$B%5!<%P$H$7$F5/F0$9$k!#(B
zlboot$B$O(BzxLinux$B%5!<%P5/F08e$b=*N;$;$:!"(BZarusOS(APM)$B$+$i$N%$%Y%s%H$r








zxLinux$B%7%9%F%`$N5/F0(B




$B#9(B. $BDL>o(BLinux$B$KBP$9$k(BzxLinux$B%+!<%M%k$NJQ99E@(B


1) $B%+!<%M%k$N5/F0ItJ,$,(B MORE$B%=%U%H7PM3$K$J$C$?(B
boot$B%7!<%1%s%9$r(BMORE$B%=%U%H$N5/F0%W%m%0%i%`$+$i$KJQ99(B

2) CPU$B$X$N3d$j9~$_(B
$B%O!<%I%&%'%"$K$h$k3d$j9~$_$O!"4pK\E*$K!"(BXTAL$B$r;O$a$H$9$k4{B8(BZaurus$B$NOHAH$,=hM}$9$k!#(B
$B8=%j%j!<%9$N(BzxLinux$B$G$O3d$j9~$_6nF0$N%G%P%$%9%I%i%$%PB8:_$7$J$$!#(B
$B$?$@$7!"%O!<%I%&%'%"$N3d$j9~$_$r!"(BLinux$B$N%G%P%$%9%I%i%$%P$N3d$j9~$_%k!<%A%s$K$D$J$$$G$d$l$P!"3d$j9~$_6nF0$N%G%P%$%9%I%i%$%P$rF0:n$5$;$k$3$H$bIT2DG=$G$O$J$$$H;W$o$l$k!#(B

3) $B%?%$%^!<3d$j9~$_(B
$B%?%$%^!<3d$j9~$_$r!"(BXTAL$B$N%9%l%C%I$K$h$k%9%-%c%s$KJQ99!#(B
$B#z#x(BLinux$BFb$K0lDj;~4V$4$H$K5/F0$9$k%9%l%C%I$r?7@_$7!"$=$N%9%l%C%I$G%?%$%^3d$j9~$_$r%7%_%e%l!<%H$7$F$$$k!#(B

$B#4(B) Linux$B%+!<%M%k%9%l%C%I$NJQ99(B
Linux$B%+!<%M%kFb$K$O!"30It%W%m%;%9$KBP1~$9$k!V%+!<%M%k%9%l%C%I!W$,B8:_$9$k!#(B
Linux$B$N4{B8$N%+!<%M%k%9%l%C%I5!G=$r;HMQ$;$:!"%+!<%M%k%9%l%C%I$H$7$F(BXTAL$B$N%W%m%;%9$,5/F0$9$k$h$&$KJQ99$7$?!#(B

$B#5(B) zxLinux$B%W%m%;%9$,;HMQ$9$k%a%b%j$r(BXTAL$B$N3d$jEv$F$KG$$;$k$3$H$K$7$?(B

6) $B Linux $B$N $BK\J8=q$N(B8$B>O$r;2>H$N$3$H!#(B

7) $B%W%m%;%9$NA`:n(B
zxLinux$B%+!<%M%k$+$i$N!"(BzxLinux$B%W%m%;%9$N%a%b%j$rA`:n$r(BXTAL$B%7%9%F%`%3!<%k$G9T$&$h$&$KJQ99!#(B

8) $B%7%0%J%k=hM}(B