2011-07-06 7 views
2

Solarisの機能とPOSIXの実装は類似しているか、または大きく分岐していますか。実際、私は、複数のスレッドでプロセスをフォークするソリューションを見つけることを試みていました。この目的のためにSolarisにforkallがある間、POSIXはこれを行うための何らの機能も持っていません。 Linuxに簡単に移植できると思いますか?私の解決策は、ポータブルかPOSIXに準拠する必要はないことに注意してください。SolarisとPOSIXの相違

答えて

5

SolarisにはPOSIXインタフェース(一部のオプション部品なしで可能)がありますが、Solarisには古いSolarisソフトウェア(POSIXではなくSolarisインタフェースで作成されたもの)をサポートするための追加インタフェースがあります。

また、汎用fork http://www.mail-archive.com/[email protected]/msg02256.html

Solarisは(他の規格の数 間)POSIXをサポートしていますが、Solaris上で見つけるすべての 物事が厳しく ありませんについてのML内のスレッドがありますPOSIX

このような内部的なもの(プロセス/スレッド管理は深くカーネル内にある)の移植は難しく、これをスクラッチから書くこととほとんど同じです。これは、Solarisが異なるモデルのスレッドを使用するためです。

+1

Solaris用のglibcに相当することを知っていますか?forkとforkallのコードをそこで見ることができますか? – MetallicPriest

+2

forkallとforkはカーネル呼び出し(システムコール、システムコール)です。それらはカーネルにあり、libcにはありません。 Libcには、システムコールを行うためのラッパーだけが含まれています。 OpenSolarisカーネルのforkallは次のとおりです。http://fxr.watson.org/fxr/source/common/os/fork.c?v=OPENSOLARIS#L107 OpenSolaris libc http://src.opensolarisのラッパーです。 org/source/xref/onnv/onnv-gate/usr/src/lib/libc/port/threads/scalls.c#280 – osgx

+0

ああ、本当に、私はそれを忘れてしまった。私に思い出させて、私にリンクを提供してくれてありがとう:)! – MetallicPriest

関連する問題