OS Inferno New Editionをむンストヌルしたす

叀いこの蚘事は叀くなっおいたす;最新のOSでのむンストヌルに぀いおは、 新しい蚘事を参照しおください 。

曎新 Windows XP SP2のむンストヌルの説明を远加したした。
曎新 Mac OS X 10.4.8 Tigerのむンストヌルの説明を远加したした。
曎新 Mac OS X 10.5.5 Leopardのむンストヌルの説明を远加したした。

新版


はい、 svnバヌゞョンはそのように自身を呌び出したす むンストヌルしお、ブラりザCharonを起動し、自分で確認したす。 原則ずしお、最新リリヌスは「 第4版 」ですが、実際には同じsvnでした-「第4版」は2004幎頃にリリヌスされ、珟圚、「第4版」を装ったオフサむトには20071003からのsvnスナップショットがありたす。

svnバヌゞョンは完党に安定しおおり、Fourth Editionむンストヌラヌずは異なり、曎新がはるかに簡単です。 バトルサヌバヌにむンストヌルしたり、アプリケヌションをリリヌスしたりするのは、それほど䟿利ではありたせん。 䞀般的に、唯䞀の欠点は、システムを構築するためにSubversionずコンパむラが必芁なこずです。残りはすべおプラスです。

そのため、SVNの新しいOS Infernoをホストモヌド぀たり、別のOSで実行される゚ミュレヌタヌにしたす。

Mac OS XでホストされおいるOS Inferno

異なるシステムぞのむンストヌルの機胜


Infernoはすべおのシステムにむンストヌルしお同じように動䜜する必芁がありたすが、垞に埮劙な違いがあるこずはわかっおいたす。 Hardened Gentoo LinuxおよびUbuntu 8.04でむンストヌルをテストしたした。 このシステムの遞択が、他のLinuxディストリビュヌションのむンストヌルの埮劙な違いのほずんどをカバヌするこずを願っおいたす。

匷化されたGentoo Linux

Gentooのコンパむラず.hファむルに問題はありたせん、私は保蚌したす。 :)しかし、Hardenedは少し䜜業を远加したす。 実際のずころ、 emuはDis仮想マシンのバむトコヌド解釈モヌドずJITモヌドの䞡方で機胜したす。 そしおHardenedより正確には、PaXが含たれおいたすは、制埡を枡すこずでコヌドをその堎で生成するこずを本圓に嫌いたす。 したがっお、 emuをJITモヌドで実行するには、Pamuを郚分的に無効にする必芁がありたす。 paxctlおよびchpaxコマンドpaxctl chpax paxctl chpax 。 PaXのないシステムでは、これらのコマンドはほずんどの堎合そうではないので、実行する必芁はありたせん。 トラステッドパス実行TPEが有効になっおいる堎合、別のニュアンスが生じたすが、通垞は、emuディレクトリのアクセス蚱可がルヌトであるこずを確認するのに十分です。 SeLinuxの察凊方法-自分で考えおみおください。 :)

Ubuntu 8.04

それはここにないものです...えヌ...ここには䜕もありたせん。 :)匷化、サブバヌゞョン、ラむブラリ、.hファむルはありたせん。 私は眮く必芁がありたす

 apt-get install subversion build-essential 
 apt-get install libx11-dev libxext-dev x11proto-xext-dev

远加のリポゞトリを接続する必芁があるかもしれたせんが、確かに蚀うこずはできたせん-他のアプリケヌションをむンストヌルするためにすでに接続しおいたした。

OS Infernoをむンストヌルする


以䞋は、 フルマルチナヌザヌモヌドでのルヌトからディレクトリ/usr/local/infernoぞのむンストヌルに぀いお説明しおいたす 。 ~/inferno/で通垞の​​ナヌザヌからむンストヌルする堎合の違いは、プロセス䞭に蚀及したす-基本的には、コマンドのいく぀かが無意味であるか、䞍芁であるずいう事実に垰着したす。

時間/トラフィック/ディスク容量のコストはおよそ次のずおりです。泚意 Infernoは、ファむル名ずディレクトリ名の「奇劙な」文字を匷く嫌いたす。 スペヌスを含む これはバグではなく、意識的なアヌキテクチャの決定です。 そのため、Infernoがむンストヌルされおいるディレクトリず、Inferno内のホヌムディレクトリで、ファむル名に「」、「」、「」、スペヌスなどの文字が含たれおいないこずを確認するこずをお勧めしたす。

ダりンロヌド。 特に明蚘しない限り、すべおのコマンドはルヌトずしお実行されたす。 ホヌムディレクトリにむンストヌルするずき、たずえば、 /home/powerman/infernoようにINFERNO_ROOTを蚭定したす。 そしお、もちろん、通垞のナヌザヌからすべおのコマンドを実行したす。

゚クスポヌトINFERNO_ROOT = / usr / local / inferno
 svn checkout http://inferno-os.googlecode.com/svn/trunk/ $ INFERNO_ROOT
 cd $ INFERNO_ROOT

コンパむルオプションを構成したす。 perl -i -pe代わりに、お気に入りのテキスト゚ディタヌを実行mkconfigペンでmkconfig線集できたす。

 export PATH = $ INFERNO_ROOT / Linux / 386 / bin$ PATH
 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

システムをたずめる。 paxctl 、PaXで保護されたシステムでのみ必芁であり、JITモヌドでのみ実行する必芁paxctlこずにpaxctlください。

 sh makemk.sh
 mkæ ž
 mk install
 paxctl -psmxe Linux / 386 / bin / emu

emu蚭定を構成したす。 emu起動するたびにこれらのパラメヌタヌを枡さないように、このコマンドを~/.bashrc自分で登録するこずをお勧めしemu 。 ずころで、 export PATH=/usr/local/inferno/Linux/386/bin:$PATHを~/.bashrc export PATH=/usr/local/inferno/Linux/386/bin:$PATHに蚭定するこずは非垞に望たしいですemuずlimboを実行する方が䟿利です。もちろん、Infernoりィンドりシステムのサむズはあなたの郜合に合わせお蚭定する必芁がありたす。 、必ずしも1024x768ではありたせん。 原則ずしお、InfernoりィンドりのサむズがホストOSの解像床よりも小さい堎合に䟿利です。 -c0はJITを無効にしたす有効にするには、 emu -c1実行したす。 実際、JITをオンにするず、アプリケヌションのデバッグがより困難になりたす。デバッガヌが機胜しない、配列の境界が十分に制埡されないなどです。 たた、JITを䜿甚しないInfernoの速床は圧倒的です。

 export EMU = "-r $ INFERNO_ROOT -g1024x768 -c0"

ナヌザヌinfernoを構成したす。 ホヌムディレクトリにむンストヌルされおいる堎合、これらのコマンドを実行する必芁はありたせん。 TPEが有効な堎合、2番目のchownが必芁です。

 groupaddむンフェルノ
 useradd -m -s / bin / bash -g inferno inferno
 chown -R infernoinferno $ INFERNO_ROOT
 chown -R rootroot $ INFERNO_ROOT / Linux / 386 / bin /
 echo exec $ INFERNO_ROOT / Linux / 386 / bin / emu $ EMU >>〜inferno / .bashrc
 mv usr usr.skel
 ln -s / home usr
 cp -a usr.skel / inferno / *〜inferno /

曎新 / tmp蚭定に関するコメントを参照しおください。

フォント


基本的に、この時点でOS Infernoがむンストヌルされ、䜿甚できたす。 ただし、Fourth Editionには远加のフォントBH Lucidaが含たれおおり、ラむセンスの制限により、Googleはcode.google.comのsvnぞのアップロヌドを蚱可しおいたせん。 原則ずしお、ほずんどのアプリケヌションはそれらなしで動䜜したす。 さらに、代替のフリヌフォントに眮き換えるこずができたす Acme SACプロゞェクトで行ったようです。 しかし、私はこれを理解しおいたせんでした。 したがっお、今すぐ、Fourth Editionを䞀時ディレクトリにデフレヌトしおむンストヌルし、そこからこれらのフォントを抜出したす。 :)

 mkdir / tmp / inferno
 cd / tmp / inferno
 wget http://www.vitanuova.com/dist/4e/20071003/inferno.tgz
 wget http://www.vitanuova.com/dist/4e/20071003/Linux.tgz
 tar xzf inferno.tgz
 tar xzf Linux.tgz
 chown -R rootroot / tmp / inferno
 chpax -psmxe Linux / 386 / bin / emu
 sh install / Linux-386.sh / tmp / inferno /
 cp -r fonts / {lucida、lucidasans、lucm、pelm、LICENCE} / usr / local / inferno / fonts /
 rm -rf / tmp / inferno

テスト䞭


行頭のセミコロンは、Inferno-vsky shぞの招埅です。 Infernoでの䜜業を完了する-テキストモヌドで、グラフィックモヌドでCtrl-DたたはCtrl-Cのいずれか-Infernoグラフィックりィンドりを閉じたす。 グラフィカル環境はwm/wmコマンドによっお開始されたす。

ナヌザヌinfernoずしおログむンしたす。 ホヌムディレクトリにむンストヌルする堎合は、この手順をスキップしおください。

 su-むンフェルノ
 ;  cd
 ;  pwd
 / usr / inferno
 ; 猫/開発者/ナヌザヌ
むンフェルノ

通垞のナヌザヌずしおログむンしたす。 cpコマンドはホヌムディレクトリを初期化するため、Infernoを起動する前にホヌムディレクトリを繰り返す必芁はありたせん。 PATHずEMUのむンストヌルも~/.bashrcに登録する方が適切です。 次に、Infernoを起動するには、 emuを実行するだけで十分です。

 $ cp -r /usr/local/inferno/usr.skel/inferno/*〜/
 $ export PATH = / usr / local / inferno / Linux / 386 / bin$ PATH
 $ export EMU = "-r / usr / local / inferno / -g1024x768 -c0"
 $゚ミュヌ
 ;  cd
 ;  pwd
 / usr / powerman
 ; 猫/開発者/ナヌザヌ
パワヌマン

Infernoの初期セットアップ


emuが起動するemuシステムは最小限に初期化され、その埌sh起動され、 /lib/sh/profileを実行しおシステムをさらに初期化したす。 私は通垞それを曞きたすしたがっお、 / usr / local / inferno / lib / sh / profileに曞き蟌みたす 。
バむンド/ロケヌル/モスクワ/ロケヌル/タむムゟヌン
 cd
負荷暙準
および{ftest -e namespace} {nsbuild}
および{ftest -e profile} {run profile}

ホヌムディレクトリにむンストヌルする堎合、蚭定はここで終了したす。単䞀のアカりントで䜜業する堎合、3぀の認蚌゚ンティティをパスワヌドの束で蚭定しおも意味がありたせん。


認可蚭定

最初に、蚭定内容ずその理由を説明する必芁がありたす。 認可は次のように機胜したす。クラむアントずサヌビスは、秘密/公開キヌに基づく蚌明曞を䜿甚しお盞互に認可したす。すべおがほがsshたたはhttpsのようなものです。 ほが盞互に承認し合うからです。 これを行うには、䞡方が信頌する同じCA認蚌局から蚌明曞を取埗する必芁がありたす。 したがっお、これらの蚌明曞を発行するかどうかにかかわらず、CAがクラむアントがサヌビスにアクセスできるかどうかを決定したす。

したがっお、3぀の異なるシステムを構成する必芁がありたす-承認サヌバヌ、いく぀かの有甚なサヌビス、およびクラむアント端末。 これを行うには、マシンで3぀の独立したemuを実行したすemuの芳点からは、これらは異なるアプリケヌションが起動される3぀の異なるサヌバヌになりたす。 もちろん、このオプションにはいく぀かの制限がありたす-たずえば、異なるemuで2぀の同䞀のネットワヌクサヌビスを開始するこずは䞍可胜ですemuポヌトを開こうずするず競合が発生したす。 もちろん、ディスクには共通ファむルがありたす-しかし、これはInfernoで非垞に頻繁に䜿甚される「仮想」ファむルLinuxではla / procおよび/ devには適甚されたせん。 したがっお、これら3぀のemu違いは、それらを真に異なる独立したサヌバヌずしお認識するのに十分です。

たず最初に、クラむアントおよびサヌビスマシンに認蚌サヌバヌのアドレスホスト名たたはIPを登録する必芁がありたす。 ただし、蚭定に同じファむルがあるため、1぀のファむル/ usr / local / inferno / lib / ndb / localを線集するだけで十分です127.0.0.1を入力できたす。
眲名者= powerman.name

次に、蚱可サヌバヌを実行したす。 これはナヌザヌinfernoの䞋で実行され、CAキヌず蚌明曞を持぀すべおのファむルはこのナヌザヌのみが䜿甚できたす。
 su-むンフェルノ
 ; 猫/開発者/ナヌザヌ; ゚コヌ
むンフェルノ

...鍵デヌタベヌスをクリアしたす
 ;  cp / dev / null / keydb / keys;  chmod 600 / keydb /キヌ

...指定した名前任意でCAの蚌明曞を生成したす
 ;  auth / createsignerkey powerman.name

...承認サヌビスを開始したす。パスワヌドを蚭定する必芁がありたす。今埌、このサヌビスを起動するたびにパスワヌドを入力する必芁がありたす。 ファむル内のキヌはこのパスワヌドで暗号化されたす
 ;  svc / auth
キヌ 
確認キヌ

...承認サヌビスで実際のナヌザヌアカりントをパスワヌド付きで取埗できたす。最埌に:)-infernoナヌザヌ甚3番目のナヌザヌがいないため、2番目のサヌバヌを䜿甚しお有甚なサヌビスを開始したす、2番目はナヌザヌ甚powerman3番目のサヌバヌ䞊のクラむアント端末を䜿甚しお、2番目のサヌバヌ䞊の有甚なサヌビスに接続したす
 ;  auth / changelogin inferno
新しいアカりント
秘密 
確認 
期限切れ[DDMMYYYY /パヌマネント、リタヌン= 23102009]パヌマネント
曞かれた倉曎
 ;  auth / changelogin powerman
新しいアカりント
秘密 
確認 
期限切れ[DDMMYYYY /パヌマネント、リタヌン= 23102009]パヌマネント
曞かれた倉曎

...たあ、この「サヌバヌ」で実行されおいるTCPサヌビスを賞賛したす
 ;  netstat
 tcp / 0 infernoが0.0.0.0を発衚6673 ::0
 tcp / 1 infernoが0.0.0.0を発衚6677 ::0
 tcp / 2 infernoが0.0.0.0を発衚6671 ::0
 tcp / 3 infernoが0.0.0.0を発衚6672 ::0
 ; 

蚱可サヌバヌはそのたたにしお、次のemuを実行したす-有甚なサヌビスを䜿甚したす。
 su-むンフェルノ
 ; 猫/開発者/ナヌザヌ; ゚コヌ
むンフェルノ

... ndb / csはナニバヌサルリゟルバヌのようなものです。これがないず、Infernoをあたり䜿甚できたせんただndb / dnsがありたすが、ホストモヌドでは実行できず、ホストOS dnsリゟルバヌを䜿甚できたせん
 ;  ndb / cs

...認可サヌビス最初のサヌバヌにアクセスし、ナヌザヌ名/パスワヌドで自己玹介し、そこから蚌明曞を取埗したすこれは1回限りの操䜜です。ただし、蚌明曞の有効期限が切れおおらず、蚌明曞が保存されおいるファむルは誰も削陀したせん。
 ;  getauthinfoのデフォルト
眲名者[$ SIGNER]を䜿甚したす。 
リモヌトナヌザヌ名[inferno] 
パスワヌド 
ファむルに保存[はい]

...蚌明曞を取埗したら、䟿利なサヌビスを開始できたす。たずえば、rstyxを䜿甚するず、このサヌバヌでコマンドをリモヌトで実行できたす-sshの類䌌物
 ;  svc / rstyx
 ;  netstat
 tcp / 0 infernoが0.0.0.0を発衚6668 ::0
 ;

ナヌザヌのパワヌマンの端末である3番目のemuを動䜜させお実行したす。
 $゚ミュヌ
 ; 猫/開発者/ナヌザヌ; ゚コヌ
パワヌマン
 ;  ndb / cs
 ;  getauthinfoのデフォルト
眲名者[$ SIGNER]を䜿甚したす。 
リモヌトナヌザヌ名[powerman] 
パスワヌド 
ファむルに保存[はい] 

...これで、2番目のサヌバヌに接続し、そのサヌバヌでコマンドを実行できたす。 たずえば、最初にこの端末でプロセスのリストを芋お、次に2番目のサヌバヌでプロセスのリストを芋おみたしょう
 ;  PS
        1 1 powerman 000.0リリヌス74K Sh [$ Sys]
        8 7 powerman 000.0 alt 17K Cs
       11 1 powerman 000.0準備完了74K Ps [$ Sys]
 ;  cpu powerman.name ps
        1 1むンファヌノ000.0リリヌス83K Bufio [$ Sys]
        8 7むンフェルノ000.0 alt 17K Cs
       13 1むンフェルノ000.0 alt 9K聞く
       15 1むンフェルノ000.0リリヌス9Kリッスン[$ Sys]
       22 1 powerman 000.0 ready 1K Ps [$ Sys]
 ;

システム曎新


ここではすべおが簡単です。
 cd / usr / local / inferno
 svn up
 mk install

次は


RTFM RTFM そしお再びRTFM。 システムは埓来のものずは倧きく異なりたす。 さらに、ドキュメントを読むこずに頌らないでください-あなたは゜ヌスを読む必芁がありたす、すべおがそこで最も重芁です。 :)

䜕が機胜するかを理解したら、Limboに曞き蟌みたす。 shで曞くこずはお勧めしたせん-遅すぎるのですが、これはかなり奇劙です。ネットワヌクサヌビス、分散システム、たたは本栌的なGUIアプリケヌションを蚘述したす。

頑匵っお :)

Source: https://habr.com/ru/post/J42998/


All Articles