åã®æçš¿ã®æ å ±ã¯ã»ãŒ4幎éå€ããªã£ãŠãããããæŽæ°ããããã«æ±ããããŸããã ãŸãã1ã€ã®ãã¹ãã§ã€ã³ã¹ããŒã«ãšã»ããã¢ãããæ··åšãããªãã§ãã ããããããã£ãŠãã€ã³ã¹ããŒã«ã®ã¿ãè¡ããã ã»ããã¢ããã¯å¥ã®ãã¹ãã®å¥ã®ãã¹ãã§èª¬æãããŸã ã æŽæ°ïŒ Windowsã®ã€ã³ã¹ããŒã«ã®èª¬æã¯2014幎6æã«æŽæ°ãããŸããã
ãã®ããã åæ£Inferno OSãã€ã³ã¹ããŒã«ããŸãã å ¬åŒWebãµã€ã ã«ã¯ã€ã³ã¹ããŒã«æé ããããŸãããå®å šã«æ£ããããã§ã¯ãªããå°ãå€ããªã£ãŠããŸãã Infernoã¯2ã€ã®ã¢ãŒãã§åäœã§ããŸã- ãã€ãã£ã ïŒãã¢ã¡ã¿ã«ãŸãã¯qemu /ãªã©ããã¹ãŠã®éåžžã®OSãšåæ§ïŒãšãã¹ã ïŒ* NIX / Winã®äžã®éåžžã®ã¢ããªã±ãŒã·ã§ã³ïŒã ãã€ãã£ãInfernoã®ã€ã³ã¹ããŒã«æé 㯠ã ãã·ã¢ã®wikiã«ãããŸã ã ããã«ãä»ã®ãªãã·ã§ã³ããããŸã-ããšãã°ã Androidã«Infernoãã€ã³ã¹ããŒã«ãã ã å人çã«ã¯ãéåžžã®ã³ã³ãã¥ãŒã¿ãŒã§ãã€ãã£ãã®Infernoã䜿çšããæå³ãããããªããããGentooãUbuntuãFreeBSDãMacOSXãWindowsã§ã®ãã¹ããããInfernoã®ã€ã³ã¹ããŒã«ã«ã€ããŠèª¬æããŸãã
å 容
- ã€ã³ã¹ããŒã«æ©èœ
- èšçœ®
- æã¡äžã
- 䟿å©ãªãªã³ã¯
- PS
ã€ã³ã¹ããŒã«æ©èœ
OS InfernoããŒãžã§ã³
çè«çã«ã¯ã第4çã®ææ°ã®å ¬åŒããŒãžã§ã³ã¯2004幎é ã«ãªãªãŒã¹ãããŸããã çŸåšã®ããŒãžã§ã³ã¯Google Codeã®Mercurialãªããžããªã«ããããNew EditionããšåŒã°ããŠããŸãã å®éã«ã¯ããªããžããªã®çŸåšã®ããŒãžã§ã³ä»¥å€ã®ãã®ã䜿çšããããšã¯æå³ããããŸãããå®å šã«å®å®ããŠãããåžžã«å®å®ããŠããŸãã å ¥ããŸãã
1人ãŸãã¯è€æ°ãŠãŒã¶ãŒã®ã€ã³ã¹ããŒã«ã¹ã¿ã€ã«
Infernoã¯ã·ã¹ãã å šäœã«ã€ã³ã¹ããŒã«ããããšãã§ãïŒããšãã°
/usr/inferno/
ïŒããã¹ãŠã®ãŠãŒã¶ãŒã䜿çšã§ããŸãã Infernoã¯ãããã«å¿ èŠãªãã¹ãŠããµããŒãããŸã-ãŠãŒã¶ãŒæš©éãåå¥ã®ããŒã ãã£ã¬ã¯ããªãªã©ã§ã®äœæ¥ã äžæ¹ãã€ã³ãã§ã«ãã¯ããŒã ãã£ã¬ã¯ããªã«ç°¡åã«é 眮ã§ããŸãïŒäŸïŒ
~/inferno/
ïŒãããã¯ããã«äŸ¿å©ã§ãã äž¡æ¹ã®æ¹æ³ãåæã«èª¬æããããšã§ååã®èšäºãè€éã«ããŸããããã·ã³ã°ã«ãŠãŒã¶ãŒããŒãžã§ã³ã®ã€ã³ã¹ããŒã«ã®ã¿ã説æããæ¹ãç°¡åã ãšå€æããŸããã ãã®èšäºã®èªè ã®1人ã«è€æ°ã®ã€ã³ãã§ã«ããŠãŒã¶ãŒããããµãŒããŒãããå Žåãã€ã³ãã§ã«ããã€ã³ã¹ããŒã«ããããã®ç§ã®æ瀺ã¯ã»ãšãã©å¿ èŠãããŸããã ;-)ãããã£ãŠãNIXã·ã¹ãã ã§ã¯
~/inferno/
ã«ãWindowsã§ã¯
C:\inferno\
ã«ã€ã³ã¹ããŒã«ããŸãã
32/64ããã
OS Inferno 32ãããã ãããã£ãŠã64ãããOSã«ã€ã³ã¹ããŒã«ããŠå®è¡ããã«ã¯ããããã®OSã§ã®32ãããã¢ããªã±ãŒã·ã§ã³ã®ãµããŒããå¿ èŠã§ãã æ®å¿µãªããã64ãããFreeBSD-9.0ã§ã¯ãinfernoãèµ·åã§ããŸããã§ããã
Hardened / PaX / SeLinux /ãªã©
Infernoã¯ä»®æ³ãã·ã³ã§ã³ãŒããå®è¡ããããã«JITããµããŒããããããJavaãªã©ã®ããŸããŸãªä¿è·ãšåãåé¡ãæ±ããŠããŸãã ååã®èšäºã§ããã®ãããã¯ã«ãã£ãšæ³šæãæããŸããã質åãããå Žåã¯ããã¡ããã芧ãã ããã
æéãšå Žæ
ã€ã³ã¹ããŒã«ãããã€ã³ãã§ã«ãã¯çŽ200MBããããŸãã ãã ããã³ã³ãã€ã©ã®ã€ã³ã¹ããŒã«ã«ã¯æ倧3å¥æ°ã®ã¬ãã€ããå¿ èŠã«ãªãå ŽåããããŸãïŒXcodeãVisual Studioãªã©ïŒã Infernoã¯ãå¹³åçãªã·ã¹ãã ã§æåéãæ°åã§ã³ã³ãã€ã«ããŸãã
å Žæ
ããŒã ãã£ã¬ã¯ããªã«ã€ã³ãã§ã«ããã€ã³ã¹ããŒã«ãããšããã€ã³ãã§ã«ãã¯ã¹ãã·ã£ã«ã奜ãã§ã¯ãªãããšã«æ³šæããŠãã ããã ãã¡ã€ã«/ãã£ã¬ã¯ããªã®ååã«æåãå«ãŸããŠãããããããŒã ãã£ã¬ã¯ããªãžã®ãã¹ã«ã¹ããŒã¹ãå«ãŸããŠããå Žåã¯ãèæ ®ããªãã£ãåé¡ãããå¯èœæ§ããããŸãã
èšçœ®
ïŒããŒããã³ã°ãããïŒGentoo Linux 32/64ãããã§ã¯ãã¹ãŠãç°¡åã§ã-
/usr/inferno/
ã·ã¹ãã å šäœã«infernoãã€ã³ã¹ããŒã«ããããã±ãŒãžããããŸãïŒ
layman -a powerman emerge inferno
ãããŠä»ãç§ãã¡ã¯ä»ã®OSã«å¯ŸåŠããŸãã
Mercurialãã³ã³ãã€ã©ããã¹ãŠãã¹ãŠ
... Ubuntu 12.04 32ããã
sudo apt-get install -y mercurial sudo apt-get install -y libxext-dev
... Ubuntu 12.04 64ããã
sudo apt-get install -y mercurial sudo apt-get install -y libc6-dev-i386 sudo apt-get install -y libxext-dev:i386
... FreeBSD 8.0 32ããã
pkg_add -r mercurial
... Mac OS X 10.6.8 Snow Leopard 32-ããã
XcodeïŒ3.2.2ïŒãšMercurialïŒ1.7.1ïŒããã§ã«ã€ã³ã¹ããŒã«ããŠããŸãã
... Mac OS X 10.7.4 Lion 64ããã
App StoreããXcodeïŒ4.3.2ïŒãã€ã³ã¹ããŒã«ããŸãã
Xcodeãèµ·åããXcode-ç°å¢èšå®-ããŠã³ããŒãã¡ãã¥ãŒã«ç§»åããã³ãã³ãã©ã€ã³ããŒã«ã®ã€ã³ã¹ããŒã«ãã¯ãªãã¯ããŸãã
mercurial.berkwood.comã«ã¢ã¯ã»ã¹ããŠãçŸåšã®ããŒãžã§ã³ïŒOS X 10.7ã®Mercurial 2.2.2ïŒãããŠã³ããŒã/ã€ã³ã¹ããŒã«ããŸãã
... WindowsïŒXP 32ãããã7ã€ã®32ãããã7ã€ã®64ãããïŒ
mercurial.selenic.com/downloadsã«ã¢ã¯ã»ã¹ããçŸåšã®ããŒãžã§ã³ïŒ3.0.1ïŒãããŠã³ããŒã/ã€ã³ã¹ããŒã«ããŸãã
ããããã³ã³ãã€ã©ã«ã¯ãªãã·ã§ã³ããããŸãã Visual Studio Expressãã€ã³ã¹ããŒã«ããæçœãªãªãã·ã§ã³ã¯ãããžããšã«3ã®ã¬ä»¥äžããããŸãã å¥ã®æ¹æ³-WinSDKã®ã€ã³ã¹ããŒã«-ã«ã¯çŽ800ã¡ã¬ãã€ãããããŸãã äž¡æ¹ã®ãªãã·ã§ã³ã«ã€ããŠèª¬æããŸããèªåã§éžæããŠãã ããã
æåã®ãªãã·ã§ã³ã www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-expressã«ã¢ã¯ã»ã¹ããããŠã³ããŒã/ã€ã³ã¹ããŒã«/æŽæ°ïŒãã·ã¢ã®ã«ã¹ã¿ã ã«å¿ããŠ-3å:)ãã以å€ã®å Žåããã¹ãŠã®æŽæ°ãã€ã³ã¹ããŒã«ãããããã§ã¯ãããŸããïŒ "Visual C ++ 2010 Express ãã
2çªç®ã®ãªãã·ã§ã³ã ãŸãã go.microsoft.com / fwlink / ïŒLinkId = 187668ã«ã¢ã¯ã»ã¹ããŠãå®å šãªã.NET Framework 4ããããŠã³ããŒã/ã€ã³ã¹ããŒã«ããŸãã 次ã«ã www.microsoft.com / en-us / download / details.aspxïŒid = 8279ã«ã¢ã¯ã»ã¹ããŠããWindows SDK 7.1ããããŠã³ããŒã/ã€ã³ã¹ããŒã«ããŸãã ã€ã³ã¹ããŒã«ãããšãã¯ã次ã®ç¹ã«å¶éããã ãã§ååã§ãã
# Windows Native Code Development: # Windows Headers and Libraries: # [X] Windows Headers # [X] x86 Libraries # [X] Visual C++ Compilers # Redistributable Packages: # [X] Microsoft Visual C++ 2010
ïŒ2014幎ããã¹ãŠã®Visual C ++ 2010 Redistributableãç Žå£ãããŸã§ãç§ã®SDKã¯ã€ã³ã¹ããŒã«ãæåŠããŸãããããã¯ãæ°ããŒãžã§ã³ã§ããããšãå€æããŸãããïŒãã®åŸãæŽæ°ããŸãã å®éãæŽæ°ã¯ããããå¿
èŠã§ã¯ãªããç¿æ
£ã«ãªã£ãŠããŸãã
ã€ã³ãã§ã«ããœãŒã¹ãããŠã³ããŒãããŠæŽæ°ãã
å ¬åŒãŠã§ããµã€ãã¯Windowsçšã®åå¥ã®ã¢ãŒã«ã€ããšãããŒçšã®åå¥ã®ãã€ããªãæäŸããŠãããšããäºå®ã«ãããããããç§ãã¡ã¯ããããã¹ãŠå¿ èŠãšãããããã«æ害ã§ãïŒWindowsã®ã¢ãŒã«ã€ãã¯ãªããžããªããæ£åžžã«æŽæ°ãããŸãã-競åããããŸãïŒã ãããã£ãŠããã¹ãŠã®OSã®äžã§ãinferno-20100120.tgzããã€ã³ã¹ããŒã«ããŸãã åã«ãªããžããªãè€è£œããã®ã§ã¯ãªãããã®ã¢ãŒã«ã€ãã䜿çšããçç±ã¯ãã¢ãŒã«ã€ãã«ã©ã€ã»ã³ã¹ãGoogle Codeãžã®ã¢ããããŒããçŠæ¢ããŠããããã€ãã®ãã¡ã€ã«ïŒäž»ã«ãã©ã³ãïŒãå«ãŸããŠããããã§ãã
... * NIX
wget http://www.vitanuova.com/dist/4e/inferno-20100120.tgz tar xzf inferno-20100120.tgz cd inferno/ hg pull -uv
...åã€
www.vitanuova.com/dist/4e/inferno.zipãããŠã³ããŒãããŸã ïŒãµã€ãã§æšå¥šãããŠããŸããã.tgzãå ¥æããããšãã§ããŸããäž¡æ¹ãšãåé¡ãªãå®è¡ã§ããŸãïŒã
C:\inferno\
ã§è§£åããŸãã Windowsã§.tgzã解åããã®ã«äœãå¿ èŠãããããŸãã-Farãš7ZipããããFarã解åããŸããã
cmd
å®è¡ããŸãã
cd \inferno hg pull -uv # : merging libinterp/keyring.h warning: conflicts during merge. merging libinterp/keyring.h incomplete! (edit conflicts, then use 'hg resolve --mark') merging libinterp/runt.h warning: conflicts during merge. merging libinterp/runt.h incomplete! (edit conflicts, then use 'hg resolve --mark') 3038 files updated, 0 files merged, 106 files removed, 2 files unresolved use 'hg resolve' to retry unresolved file merges # : hg revert -r tip libinterp\keyring.h hg revert -r tip libinterp\runt.h
cmd
çµäºããŸãã
ç°å¢å€æ°ãæ§æãã
æ¬åœã«å¿ èŠãªå€æ°ã¯
PATH
ã ãã§ãã
EMU
ã¯ãinfernoãå®è¡ããããã®ããã©ã«ããã©ã¡ãŒã¿ãèšå®ããŸãããããã¯äŸ¿å®äžã®ã¿å¿ èŠã§ãã
INFERNO_ROOT
ãinfernoã¯ããã«ã€ããŠãŸã£ããç¥ããŸããã䟿å®äžãã®å€æ°ãå¿ èŠã§ãã çŸåšã®ã»ãã·ã§ã³ã§å€æ°ãèšå®ããããšã«å ããŠãéå§ã¹ã¯ãªããã«å€æ°ãæžã蟌ã¿ãŸãã
... Ubuntu
export INFERNO_ROOT=$(pwd) export PATH=$INFERNO_ROOT/Linux/386/bin:$PATH export EMU=-r$INFERNO_ROOT echo "export INFERNO_ROOT=$INFERNO_ROOT" >> ~/.bashrc echo "export PATH=\$INFERNO_ROOT/Linux/386/bin:\$PATH" >> ~/.bashrc echo "export EMU=-r\$INFERNO_ROOT" >> ~/.bashrc
... FreeBSD
export INFERNO_ROOT=$(pwd) export PATH=$INFERNO_ROOT/FreeBSD/386/bin:$PATH export EMU=-r$INFERNO_ROOT echo "export INFERNO_ROOT=$INFERNO_ROOT" >> ~/.bash_profile echo "export PATH=\$INFERNO_ROOT/FreeBSD/386/bin:\$PATH" >> ~/.bash_profile echo "export EMU=-r\$INFERNO_ROOT" >> ~/.bash_profile
... Mac OS X
export INFERNO_ROOT=$(pwd) export PATH=$INFERNO_ROOT/MacOSX/386/bin:$PATH export EMU=-r$INFERNO_ROOT echo "export INFERNO_ROOT=$INFERNO_ROOT" >> ~/.bash_profile echo "export PATH=\$INFERNO_ROOT/MacOSX/386/bin:\$PATH" >> ~/.bash_profile echo "export EMU=-r\$INFERNO_ROOT" >> ~/.bash_profile
...åã€
ã³ã³ãããŒã«ããã«->ã·ã¹ãã ->è¿œå ã®ã·ã¹ãã ãã©ã¡ãŒã¿ãŒïŒXPã§ã¯åã«ã詳现ãïŒ->ç°å¢å€æ°ã«ç§»åããŸãã
ãã¹ãè¿œå ïŒ;
;C:\inferno\Nt\386\bin
ãæåŸã«
æ°ããå€æ°ãäœæããŸãïŒINFERNO_ROOTïŒ
C:\inferno
æ°ããå€æ°ãäœæããŸãïŒEMUïŒ
-rC:\inferno
ãã«ããªãã·ã§ã³ãæ§æãã
ãã¹ãŠã®OSã§
mkconfig
ãã¡ã€ã«ãæåã§ç·šéã§ããŸãããç°¡åã«ããããã«ãå¯èœãªéãæ§æãèªåçã«å€æŽããã³ãã³ããæäŸããŸãã
... Ubuntu
perl -i -pe 's/^ROOT=.*/ROOT=$ENV{INFERNO_ROOT}/m' mkconfig perl -i -pe 's/^SYSHOST=.*/SYSHOST=Linux/m' mkconfig perl -i -pe 's/^OBJTYPE=.*/OBJTYPE=386/m' mkconfig
linukhaã§ã¯ãinfernoã¯IPv6ããµããŒãããŠããŸãã ããã«ããã®IPv6ã¯ããã©ã«ãã§äœ¿çšãããŸãã ãããããªãã«åã£ãŠãããã©ãã-èªåã§æ±ºããŠãã ããã ç§ã¯å人çã«ããããªãã«ããŸãïŒ
perl -i -pe 's/ipif6/ipif/g' emu/Linux/emu emu/Linux/emu-g
... FreeBSD
perl -i -pe 's/^ROOT=.*/ROOT=$ENV{INFERNO_ROOT}/m' mkconfig perl -i -pe 's/^SYSHOST=.*/SYSHOST=FreeBSD/m' mkconfig perl -i -pe 's/^OBJTYPE=.*/OBJTYPE=386/m' mkconfig
... Mac OS X
perl -i -pe 's/^ROOT=.*/ROOT=$ENV{INFERNO_ROOT}/m' mkconfig perl -i -pe 's/^SYSHOST=.*/SYSHOST=MacOSX/m' mkconfig perl -i -pe 's/^OBJTYPE=.*/OBJTYPE=386/m' mkconfig
...åã€
mkconfig
ç·šéïŒ
ROOT=c:/inferno SYSHOST=Nt OBJTYPE=386
çµç«
... * NIX
sh makemk.sh mk nuke mk install # X- GUI mk CONF=emu-g install
... 7ã€ã®64ãããã«åã€
WinSDKãã€ã³ã¹ããŒã«ããå Žåã¯ããWindows SDK 7.1ã³ãã³ãããã³ãããã«æ°ããã·ã§ãŒãã«ãããäœæãããã®ããããã£ã«ç§»åããŠ
/x86
ãªãã·ã§ã³ãè¿œå ããŠãããååŸããå¿ èŠããããŸãã
C:\Windows\System32\cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x86
Visual C ++ 2010ãã€ã³ã¹ããŒã«ããå Žåã32ãããã³ã³ãã€ã©ã®å®è¡æ¹æ³ãããããŸããïŒãã ããããã¯ã»ãŒåãæ¹æ³ã§å®è¡ãããå¯èœæ§ããããŸãïŒã
次ã®äœæ¥ã¯ããã¹ãŠã®ããŒãžã§ã³ã®Windowsã®æ¬¡ã®æ®µèœã§èª¬æãããŠããŸãã
...åã€
ãWindows SDK 7.1ã³ãã³ãããã³ãããïŒãŸãããŸãã¯ãVisual Studioã³ãã³ãããã³ããïŒ2010ïŒã-ã€ã³ã¹ããŒã«ããå 容ã«å¿ããŠïŒãèµ·åããŸãã
cd \inferno mk nuke mk install
æã¡äžã
å®éãããã ãã§ãã
emu
ãŸãã¯
emu-g
ã³ãã³ãã§ã€ã³ãã§ã«ããéå§ã§ããããã«ãªããŸããïŒ2ã€ç®ã¯ã°ã©ãã£ã«ã«ã¢ãŒãããµããŒãããªããšããç¹ã§ç°ãªããŸãããXã®ãªããµãŒããŒã§åäœããããŸããŸãªãããã¯ãŒã¯ãµãŒãã¹ã®èµ·åã«éåžžã«äŸ¿å©ã§ãïŒã emuå ã§
wm/wm
ã³ãã³ããå®è¡ãããšãã°ã©ãã£ã«ã«ç°å¢ã衚瀺ã§ããŸãã
$ emu ; wm/wm
䟿å©ãªãªã³ã¯
ã·ã¹ãã ã®ã€ã³ã¹ããŒã«ã«æ¢ãŸããªã人ã¯ããã·ã¢èªã®Limboã®èª¬æ ãhtmlã®ææ°ããŒãžã§ã³ã®ããã¥ã¢ã«ã ç§ã®ã€ã³ãã§ã«ãã¢ãžã¥ãŒã«ãšã¢ããªã±ãŒã·ã§ã³ ãããã³mjlããã®ã€ã³ãã§ã«ãã¢ããªã±ãŒã·ã§ã³ã®å€§èŠæš¡ãªã¢ãŒã«ã€ããèªãããšã«èå³ããããããããŸããã è±èªåã®ã³ãã¥ããã£ã¯ã
#inferno
ãšfreenodeãããã¯ãŒã¯ã®IRC
#inferno
ã§ããŸãã
PS
ã誰ã«ããªãããããã¹ãŠå¿ èŠãªã®ãããšããäŒçµ±çãªè³ªåã«äºåã«çããŸãã ãã¹ãã¢ãŒãã§ã¯ãinfernoã¯ErlangãJavaããŸãã¯Goãšã»ãŒåãæ¹æ³ã§äœ¿çšãããŸããã·ã³ãã«ã§å¿«é©ãªèšè¿°ç°å¢ã§å®è¡ãããã¯ãŒã«ãªããã°ã©ãã³ã°èšèªã§ã¢ããªã±ãŒã·ã§ã³ãéçºããå°ãªããšãä»ã®èšèªã®åæ§ã®ã¢ããªã±ãŒã·ã§ã³ãšåæ§ã«åäœããŸãã Erlangãšã¯ç°ãªããInfernoã«ã¯ããã«äœ¿çšã§ãããã®ã¯ããŸããããŸããïŒãã ããå¿ èŠã«å¿ããŠãã³ãã«ã§ç°¡åã«å®è£ ã§ããŸãïŒããåé¡ã解決ããã®ã«é©ããæ±çšã·ã¹ãã ã§ãïŒéåžžãäœã¬ãã«ãã©ã€ããŒãªã©ãé€ãïŒã Javaãšã¯ç°ãªããå®å šãªè»œéã¹ã¬ãããšãã·ã³ãã«ãªãã«ãã¹ã¬ããã¢ããªã±ãŒã·ã§ã³ãCSPã¹ã¿ã€ã«ã§äœæããæ©èœããããŸãã Goãšã¯ç°ãªããä»®æ³åããã³åçŽåãããç°å¢ã¯ã©ã®OSã§ãåãã§ãã äžè¬ã«ãã€ã³ãã§ã«ãã¯ãåçšãããžã§ã¯ãã§ã®éçšã§äœ¿çšããæºåãé·ãçŽ æŽãããã·ã¹ãã ã§ããïŒããã§äœ¿çšããŠããŸãïŒããããããã¯ããã«äººæ°ããããŸãã