Pro*cとは? わかりやすく解説

Pro*C

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2017/09/21 23:38 UTC 版)

Pro-C ( Pro-C/C++)とはOracleデータベース のデータベース管理システム埋め込みSQLに対応したプログラミング言語である。Pro*Cはベースの言語としてC または C++ を使用している。コンパイル時は埋め込みSQL文をプリコンパイラで一度プリコンパイルしたソースを、さらにコンパイルし、C、C++言語のSQLライブラリを読み込む処理を行う。Pro*Cプリコンパイラによって生成されたコードは標準的なC 、C++のコードであり、再度C、C++のコンパイラでコンパイルする事で実行できるようになる。

外部リンク


procfs

(Pro*c から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/27 14:21 UTC 版)

ナビゲーションに移動 検索に移動

procfsは、Process Filesystem の略で、Unix系システムにある擬似ファイルシステム。主にプロセスに関するカーネル情報にアクセスする手段を提供する。procfs は実際のファイルシステムではないので、ディスクスペースを消費しないし、メモリもごくわずかしか消費しない。

通常、procfs は立ち上げ時に /proc ディレクトリにマウントされる。SolarisBSDLinuxAIXQNXなどでサポートされ、特にLinuxではプロセス関連以外のデータにも拡張されている(AIXのprocfsはLinuxベース)。procfs は機能をカーネルモードからユーザーモードに移すことに重要な役割を果たしている。例えば GNUプロジェクト版の psコマンドは全てのデータを procfs から得ており、特別なシステムコールを使用しない。

歴史

Tom J. Killian は Version 8 Unix 上に /proc を実装し[1]1984年6月、USENIXProcesses as Files という題の論文を発表した。これは、プロセスのトレースを行う ptrace システムコールを置き換える目的で設計された。

Roger Faulkner と Ron Gomes は V8 /procSVR4 に移植し、1991年1月、USENIX で The Process File System and Process Model in UNIX System V という論文を発表した。この procfs は psコマンドの実装に使える程度の機能を有するようになったが、procfs内のファイルには read()write()ioctl() といったシステムコールしか使えなかった。

Plan 9で実装された procfs は V8 のものよりずっと進化していた。V8 の procfs では、あるプロセスに関する機能はひとつのファイルへの操作で実現されていた。Plan 9 は、それを複数のファイルに機能毎に分割し、procfs をよりファイルシステムらしくした。

4.4BSDで実装された procfs はプロセス毎のサブディレクトリがあり、プロセスのメモリ、レジスタ、現在ステータスにアクセスすることができた。Solaris 2.6 の procfs もプロセス毎のディレクトリがあり、制御用の ctl ファイルが用意され、トレースやプロセス毎の操作ができるようになっていた。

Linux

Linux では、procfs は動作中プロセスに関する情報を /proc/PID というディレクトリで提供し、以下のような情報を提供する。

  • /proc/PID/cmdline - そのプロセスを起動した際のコマンド行文字列
  • /proc/PID/cwd - そのプロセスのカレントディレクトリへのシンボリックリンク
  • /proc/PID/environ - そのプロセスの設定している環境変数とその中身
  • /proc/PID/exe - 元々の実行ファイルへのシンボリックリンク(もしあれば。プロセスは元々の実行ファイルが削除/移動された後も動作し続けることがある)
  • /proc/PID/fd - オープンしているファイル記述子に対応したシンボリックリンク群のあるディレクトリ
  • /proc/PID/fdinfo - オープンしているファイル記述子に対応したファイルの位置やフラグを記したファイル群があるディレクトリ
  • /proc/PID/root - そのプロセスにとってのルートディレクトリへのシンボリックリンク。通常は / だが、chrootしている場合は異なる。
  • /proc/PID/stat - プロセスの状態についての情報(40個以上の値を含む。psコマンドはこのファイルから情報を得ている)
  • /proc/PID/status - プロセスの動作状態やメモリ使用状況についての基本情報
  • /proc/PID/task - そのプロセスを親プロセスとしている全プロセスへのハードリンクを格納したディレクトリ
  • /proc/PID/maps - そのプロセスの仮想アドレス空間のマッピング状況(アドレス範囲とマッピングされているリソース)

特定のプロセスのPIDは、pgreppidofps といったユーティリティで得られる。

$ ls -l /proc/$(pgrep -n python)/fd        # 最近起動された `python' というプロセスの全ファイル識別子を一覧表示
samtala 0
lrwx------ 1 baldur baldur 64 2011-03-18 12:31 0 -> /dev/pts/3
lrwx------ 1 baldur baldur 64 2011-03-18 12:31 1 -> /dev/pts/3
lrwx------ 1 baldur baldur 64 2011-03-18 12:31 2 -> /dev/pts/3
$ readlink /proc/$(pgrep -n python)/exe    # 最近起動された `python' というプロセスの実行ファイルのパス名を表示
/usr/bin/python3.1

procfs では個々のプロセスとは直接関係しないシステム情報も提供するが、Linuxカーネル 2.6 では大部分が別の擬似ファイルシステム sysfs に分離移動されている(/sys にマウントされる)。

  • /proc/acpi または /proc/apm - パワーマネジメント関連情報
  • /proc/buddyinfo - バディブロック・アルゴリズムに関する情報[2]
  • /proc/bus - PCI/USBなどの情報。/sys/bus の方が情報が豊富。
  • /proc/fb - 利用可能なフレームバッファの一覧
  • /proc/cmdline - カーネルに渡されたブートオプション文字列
  • /proc/cpuinfo - CPUに関する情報(ベンダー、CPUファミリ、機種、クロック周波数、キャッシュサイズ、コア数など)[3]BogoMipsの値もあるが、実際の性能を反映しているとは言えない。
  • /proc/devices - メジャーデバイス番号とデバイスグループの一覧
  • /proc/diskstats - 各論理ディスクデバイスの統計情報
  • /proc/filesystems - カーネルがサポートしているファイルシステムの一覧
  • /proc/interrupts, /proc/iomem, /proc/ioports, /proc/irq - 各種システム資源についての詳細情報
  • /proc/meminfo - メモリ使用状況の概要情報
  • /proc/modules - 現在ロードされているカーネルモジュールに関する情報
  • /proc/mounts - 現在マウントされているデバイスとマウントポイントの一覧(/proc/self/mounts へのシンボリックリンク)
  • /proc/net - ネットワークのプロトコルスタックに関する情報
  • /proc/partitions - 存在するパーティションについての各種情報
  • /proc/scsi - SCSIまたはRAIDコントローラで接続されているデバイスに関する情報
  • /proc/self - 現在動作中のプロセス(/procを見ているプロセス)の /proc/PID/ へのシンボリックリンク
  • /proc/swaps - 使用中のスワップ領域の一覧
  • /proc/sys - 動的に変更可能なカーネルオプションへのアクセスを提供。
  • /proc/sysvipc - 共有メモリなどIPCに関する情報
  • /proc/tty - (擬似)端末に関する情報
  • /proc/uptime - システム起動からの時間とアイドル状態だった時間(秒)
  • /proc/version - カーネルのバージョン番号、(カーネルビルドに使われた)gccのバージョン番号など

procfs を使用する Linux 上のユーティリティは procps パッケージに収められており、利用するには procfs が /proc にマウントされていなければならない。

*BSD

  • FreeBSD 及び OpenBSD ではデフォルトで procfs はマウントされない[4]
  • NetBSD 及び DragonFlyBSD ではマウントされるが、ファイル構造が異なる。

脚注

参考文献

外部リンク


/proc

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/21 14:05 UTC 版)

Plan 9 from Bell Labs」の記事における「/proc」の解説

/proc ディレクトリには動作プロセスの一覧があり、それぞれの状態を示している。いわゆる「プロセスファイルシステム(procfs)」と呼ばれるもので、標準化はされておらず詳細異なるが、Linuxその他多くUnixでも採用されている。プロセスは名前付きのオブジェクトinfoファイルcontrolファイルのあるサブディレクトリ)として /proc 配下にあり、他のカーネルリソースと共に動的I/Oチャネルもあり、ユーザーはそれにコマンド送ったり、データ読み取ったりできる。ユーザー一部システムコール使ったプログラムコンパイルしてカーネルやり取りする必要はなく、lscat といったコマンドプロセス検索し操作することができる。 他のマシンの /proc ディレクトリは他の特殊なファイルシステムと同様、ユーザー名前空間マウントでき、ローカルあるかのようにそれを使うことができる。これにより、複数マシンから成る分散コンピューティング環境ができる。ユーザー机上にある端末データ格納してあるファイルサーバ高速CPU認証ゲートウェイなどのその他サーバ群などがあり、それら全てユーザー見慣れたディレクトリ階層使っている。ユーザーファイルサーバサーバ動作中のアプリケーションネットワーク上のプリンターなどを集め端末上の個人的名前空間にそれらをまとめることができる。

※この「/proc」の解説は、「Plan 9 from Bell Labs」の解説の一部です。
「/proc」を含む「Plan 9 from Bell Labs」の記事については、「Plan 9 from Bell Labs」の概要を参照ください。

ウィキペディア小見出し辞書の「Pro*c」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Pro*c」の関連用語

Pro*cのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Pro*cのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのPro*C (改訂履歴)、procfs (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのPlan 9 from Bell Labs (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS