ほとんどのLinuxディストリビューションがPOSIXに準拠していないのはなぜですか?私は多くの場所でそれらがそうではないことを見てきました(例えば ほとんどPOSIX準拠 )が、これを裏付ける実際の説明はありません。
これを回避するためにCライブラリやツールでできることはありますか(つまり、カーネル自体に変更はありません)?何をする必要がありますか?
想定される重複は、どのLinuxディストリビューションがPOSIX準拠であるかを尋ねることです。これは、ほとんどのLinuxディストリビューションがPOSIXに準拠していない理由を尋ねています。特定のディストリビューションが認証されない(試されない)理由ではなく、特定の詳細(つまり、一部の機能またはコマンドが準拠していない)を求めています。
@PhilipCoulingからのこのコメント(ありがとう!)
コンプライアンスと認定は別のテーマです。回答は、(再)認定のコストを示していますが、これは(非)コンプライアンスの対象には関係ありません。
POSIXはカーネルインターフェイスを指定していないため、Linuxはほとんど関係ありません。システムインターフェース、さまざまなツール、C標準の拡張機能を指定します。これらは、任意のカーネルの上に存在する可能性があります。言及されていないという意味でPOSIXに準拠していないか、言及されていないという意味でPOSIXに準拠しています。
NIX®認定のLinuxディストリビューションがあります 、したがって、Linuxを使用して完全にPOSIX準拠のオペレーティングシステムを持つことは確かに可能です。 HuaweiのEulerOSは1つです あり、必要に応じて購入できます。残りのほとんどはお金を支払っていないので、適合性をチェックするために test suite にアクセスできません。
彼らが実際にそれを満足するかどうかは明らかではありませんが、一部は他よりも頑張っています。一部のBSDはほとんどのLinuxディストリビューションよりも近いと思いますが、それは推測です。たとえば、ほとんどのLinuxディストリビューションではexeclp("cd", "/", NULL)
は失敗しますが、多くのBSDで機能し、POSIXで必要です。