OS Inferno New Editionのむンストヌル曎新

FAQ OS Infernoずは䜕ですか、なぜ必芁なのですか



前の投皿の情報はほが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のむンストヌルに぀いお説明したす。



内容





むンストヌル機胜



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でも同じです。 䞀般に、むンフェルノは、商甚プロゞェクトでの運甚で䜿甚する準備が長い玠晎らしいシステムでありそこで䜿甚しおいたす、それよりもはるかに人気がありたす。



All Articles