• 締切済み

POSIXがわかりません。

LINUXでPOSIXというキーワードが出てきました。 http://www.atmarkit.co.jp/ait/articles/0106/05/news002.html サイトを読んでいたのですが >それがさまざまにフィードバックされました。これには速やかに改良が進むという利点と ここまでは理解できたのですが、次に続く、 >バリエーションが増えて互換性が低くなるという欠点がありました。これを何とかしようとしたのが >POSIXです。OSの実装面ではなく、APIを規定することで互換性を確保しようとしたのです。現代の >UNIXは、みなPOSIXに準拠しているといっていいでしょう。 いきなり、話がとんだ感がしてわかりません。 ・質問 >バリエーションが増えて互換性が低くなるという欠点がありました。 >APIを規定することで互換性を確保しようとしたのです。 これは色々な人がプログラムを作ることが可能になり、 様々な仕様(=バリエーション?)が増えるということなんでしょうが、 その様々な仕様が作成されることを防止するために、HDDにデータを書き出す際は、A というライブラリを使って書き出しなさいよ。というルールを使って、ある程度、皆が共通のルールで作成できるようにしたということなのでしょうか? このライブラリが、POSIX ということなのでしょうか?

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5085/13288)
回答No.1

POSIX は仕様書です。 OSのある機能について、その機能の呼び出し方、振る舞いが仕様書に書いてあります。 その仕様書に基づいてあれば中身のプログラムをどのように書こうとOS作成者の自由です。 質問者さんが書かれている例をとれば、 ・HDDにデータを書き出す際はAというライブラリを使用してください。 ・Aライブラリを呼び出すときは引数に○○と××を渡してください。 ・そうすると○○をHDDの××領域に保存します。 といった具合で仕様書に書かれているのです。 Aライブラリの実装方法はプログラマーの自由ですが、この仕様に基づいていることが条件です。 また、HDDにデータを書き出すプログラムを作る人はAライブラリを使用するようプログラミングしておけば、OSが違っても動くプログラムを作ることができます。 これでいろんな種類のOSが作られても互換性が確保できます。

関連するQ&A

  • Bourne Shell と POSIX について

    現在、会社でLinux 上でバッチプログラムを何本か作成しています。 その中で、規約に「シェルはB シェルとし、冒頭には /bin/sh と すること」というようなことが書かれていました。 これは互換性を意識してのことだと解釈し、拡張表現を使用しないことを 意識して書いていました。 具体的には、export VAR=VALUE みたいな書き方はせずに、 VAR=VALUE; export VAR みたいにするとか。 ところが、Solaris を触る機会があって、そのプログラムを 動かしてみると正しく動きませんでした。 その原因は、関数内でローカル変数を宣言するために local を 使っていたのですが、それが Solaris の /usr/bin/sh が 解釈してくれないためでした。 そこで、以下の疑問点が上がってきましたので、 可能な箇所だけでも回答をお願いできたらと思っています。 1. Solaris の /usr/bin/sh は POSIX に準拠しているのでしょうか? 2. 互換性を意識するのであれば local は使用しない方がよいという 結論だと思っています。それでは、local を使用せずにローカル変数を 使用したい場合や再帰処理を行いたい場合はどのような方法を使うのが 一般的なのでしょうか? それとも、拡張機能無しにそのようなことは できないと考えるべきなのでしょうか? 3. そもそも、POSIX でシェルに求められる必要条件とはどのようなこと があるのでしょうか?(どのようなことが規定されているか。 Google検索で見つけられなかったので、原文がWeb 公開されているので あればURL 指定でも・・・)

  • 「Perl 互換の正規表現の POSIX API」の日本語対応

    環境は OS:Windows XP, コンパイラ:C++Builder6 です。 C++Builder6 付属の正規表現ライブラリ (「Perl 互換の正規表現の POSIX API」というもののようです) を使ってプログラミングしています。 このライブラリは日本語対応していないらしく、パターンを /[  ]/ ([]の中には全角空白1個と半角空白1個が書かれています) にしてコンパイルしマッチングを行うと、「@」や 「香」の第2バイトがマッチしてしまいます。 全角空白または半角空白だけにマッチするようにするには どうすれば良いでしょうか?

  • 画像のインフルエンス予測って何ですか?

    お世話になります。教えてください。 リクルートがA3RTを無料公開したそうですね。 http://www.atmarkit.co.jp/ait/articles/1703/30/news007.html 利用できるAPIは、以下の通りだそうです。 1. Listing API:レコメンド機能(モデル作成可能) 2. Image Influence API:画像のインフルエンス予測(モデル作成可能) 3. Text Classification API:文章の自動分類とラベル付け(モデル作成可能) 4. Text Suggest API:文章作成中にセンテンスをサジェスト 5. Proofreading API:文章の誤字脱字検出 6. Talk API:日常会話を行うチャットボット 上記の2の「画像のインフルエンス予測」っていうのはどんなことができるのでしょうか?

  • win8.1/10のシステムイメージ作成の欠点

    http://www.atmarkit.co.jp/ait/articles/1304/05/news045.html システム全体のバックアップをしたいという質問に対してフリーの中華アプリを推奨する回答者が多いです。 windowsOS7/8/8.1/10が全バージョン標準で、システム全体をバックアップする機能を持っているのになぜ怪しいフリーウェアを推奨する人が多いのか、ウィンドウズ標準機能の[システム イメージの作成]には何か欠点があるのですか。 7/7sp1の場合は、OSドライバが無くて復元時USB3.0ポートが使えずUSB2.0ポートが必要になるというのが見つかりましたが、8/8.1/10には検索しても何も欠点が見つかりませんでした。 なぜフリーウェア推奨の回答が多いのか教えてください。 中国製アプリをお勧めする書き込みで回答者が何か利益を得られる仕組みがあるのですか。

  • Android製品のデバイスドライバ

    業務でAndroid製品を開発している方に質問です。 (自分は組み込み系のソフト開発(C言語)をかじり中です) Android製品にBluetoothチップを載せる際、 デバイスドライバは、どのように開発してますか? (1)Bluetoothのチップベンダの独自通信仕様に基づいて別途APIを開発しているのでしょうか? それとも (2)Androidのソース自体(ライブラリやLinuxカーネル?)をチップベンダの通信仕様に合うよう修正しているのでしょうか? (1)だと、Androidのソースを読み解く必要がないので楽だと思うのですが Android APIが使えない欠点があると思ってます。 (2)だと、アプリケーション層の開発者がAndroidの標準仕様で開発できますが Linuxカーネル層やライブラリ層を解読する必要があるし ライセンスも気にしないといけないためカナリ大変なのでは?と想像しています。 想定してる製品は、スマフォやタブレットではないので Androidアプリが起動できなくてもいいのですが(そもそもAndroidでなくてもいい) 将来性を考えて(2)を選択しつつも、負担を軽減できる良い方法をご存じないでしょうか? チップベンダがAndroid用(Linux)のデバイスドイラバを提供していれば話は簡単ですが(笑)

  • ImageMagickをAPIで利用する場合のライセンスについて

    ImageMagickを使用したプログラムについてのライセンスなのですが、 下記URLのとある方が訳しているページを見てみたのですが、 http://ms2.seesaa.net/article/74598111.html 要求することに ・ライセンスのコピーをImageMagickを含む配布物に含めること ・ImageMagickを含む配布物にImageMagick Studio LLCへの明確な帰属を提供すること 要求しないことに ・あなたの配布物にImageMagickのソースを含めること、もしくはあなたによる変更部分のソースを含めること ・ ImageMagick Studio LLCに対してあなたが作成した変更を提出すること(だがそのようなフィードバックは奨励されている) その他幾つかの明示に ・このライセンスはGPL互換である。 とあります。 ImageMagick自体に手を入れた場合はこれらのライセンスでわかるのですが ImageMagickのAPIを利用する場合(Shared Object、もしくはDLLを利用する場合)には どのようなライセンスになるのでしょうか? ※ImageMagick自体は再配布などはしません。あくまでそれをAPI経由でImageMagickを使用するアプリケーションの場合です 最後のGPL互換という言葉が非常に気になります。 ※GPLに関する議論が色々ありすぎて、私自身どれが正しいのか判断しかねています。 ダイナミックリンクはOKや、Includeした時点で駄目だとか、ダイナミックにリンクした瞬間に GPLになるだとか・・・ ご存知の方がいらっしゃれば、何卒よろしくお願いいたします。

  • POSIXメッセージとは?

    こんにちわ。 私はSolaris8のC++でプログラミングをしている中級者です。 プロセス間通信の方法として、メッセージキューを使っています。 具体的には、キュー作成(msgget)、送信(msgsnd)、受信(msgrcv)、削除(msgctl)等の関数を使っているのですが、これ以外に「POSIXメッセージ」とかいうメッセージがあると聞きました。 SUNのドキュメントで調べてみたのですが、POSIXとは"Potal Operating System Interface for UNIX"で、まあUNIXベースのOSならみんな使えるような関数と解釈しました。この解釈は正しいでしょうか? そして、私が使用しているmsgXXX関数とどのように違って、どのような利点があるのでしょうか? 具体的には、上記のmsgXXXを実現するために、mq_open(), mq_close, mq_send, mq_receiveを使えば良いというだけのことなのでしょうか? POSIXメッセージとは、何か?また、こうやって使うんだよというような参考になるURLをご存じの方がいらっしゃいましたら、教えてくださいませ。

  • posix_getpwuid()の使い方を知りたい

    ディレクトリ所有者を確認したいと思ってリンク先のコードを試したら、下記エラーになりました Fatal error: Call to undefined function posix_getpwuid() ・標準関数だと思ったのですが、なんで定義されていない、となるのでしょうか? ・バージョンの問題? ▽PHP関数 - ファイルの所有者を確認 - fileowner()、posix_getpwuid()   http://webkaru.net/php/fileowner-posix-getpwuid/

    • 締切済み
    • PHP
  • Shift-JISでxml宣言するべき?

    独学でサイト作成に挑戦しています。 ネットと書籍しか知識を得る手段がなく、つまずくとなかなか進めません。どなたか教えて下さい。  現在の状況 XHTML 1.0 Strictで記述 文字コードはShift-JIS(Windowsのメモ帳使用) ブラウザはIntrenet Explorer6のみ xml宣言ありである程度レイアウトを進めてきましたが、 >XML は文字コードのデフォルトが UTF-8 で、その場合 XML宣言を記述しなくてもよく、それ以外の文字コードを利用する場合は、原則として XML 宣言に charset 記述が必要。ただし、xhtml1.0 の場合、仕様書の第2版で "上位のプロトコルで文字コードを指定すれば XML宣言はなくてもよい" となったそうです。 という記述を見て、xml宣言のありなしを悩んでいます。 ○できればIE6でも標準準拠モードで表示させたい。 ○UTF-8対応のエディタもいまいち分からないので出来ればShift-JISで記述したい。 今の状態から単純にxml宣言を消して表示させてみると全くレイアウトがちがうのですが、現在の表示が過去互換モード、標準準拠モードのどちらにスイッチされているか分かる方法はありますか? どなたか教えて下さい。お願いします。

    • ベストアンサー
    • HTML
  • シェルスクリプトについて(POSIX)

    シェルスクリプトを書いていますが、思うように動きません。シェルにお詳しい方がいらっしゃいましたら、ご教授ください。以下のような仕様です。 1.Working dierctoryの中から目的のファイルを検索 2.検出されたファイルの内容を1行ずつ表示させる。 このような簡単な仕様なのですが、awkを使用する必要はありますでしょうか? シェルは初めてなので勉強不足なため、ここで質問するにあたり、情報が不足していましたら、どうぞ補足してください。宜しくお願い致します。