| 開発者 | Mozilla Foundation / Mozilla Corporation |
|---|---|
| 安定版リリース | 4.36 [1]
/ 2024年10月24日 |
| リポジトリ |
|
| 書かれた | C |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | ソフトウェアライブラリ |
| ライセンス | マルチプル |
| Webサイト | Firefox-source-docs.mozilla.org/nspr/index.html |
Netscape Portable Runtime(NSPR )は、 Cプログラミング言語用のクロスプラットフォーム抽象化レイヤーライブラリです。さまざまなオペレーティングシステム機能に統一されたAPIを提供します。[2]
歴史
NSPRはもともとNetscape 5のJava仮想マシンの基盤を提供するために設計されました。時が経つにつれ、Netscapeのサーバーおよびクライアントソフトウェアで使用される追加機能のサポートを可能にするために拡張されました。[3] NSPRは現在でもFirefoxやOracleやRed Hatの多くのサーバー製品で使用されています。[2]
特徴
スレッド
NSPRはスレッドAPIを提供します。可能な場合はOSのスレッド機能を使用します。また、スレッド間でのメモリ共有や、スレッドプールの作成と使用もサポートしています。 ロック、アトミック、セマフォ、キャッシュされたモニターとキャッシュされていないモニターの両方が提供されます。[4]
入出力
NSPRはファイル、ディレクトリ、匿名パイプ、ネットワークソケットを操作するための関数を提供します。[4]
ネットワークアドレス
NSPRはIP中心のネットワークアドレスオブジェクトを定義します。アドレス指定技術がIPv4かIPv6かに関係なく、ASCII文字列(DNS名)をNSPRのネットワークアドレス構造に変換する関数が提供されています。 [3] [4]
時間
NSPR では、間隔タイミングとカレンダー機能の 2 つの形式でタイミング機能が利用できます。
インターバル タイマーは、フリー ランニングの 32 ビット解像度タイマーに基づいています。エポックと間隔は必要に応じて設定できます。
カレンダーの時刻は64ビット符号付きUnix時間で表されます。NSPRはタイムスタンプを操作および変換するための関数を提供します。[3] [4]
メモリ管理
NSPRは、基本的なmalloc、calloc、realloc、free関数を実行するためのAPIを提供します。プラットフォームに応じて、関数はNSPRランタイムでほぼ完全に実装される場合もあれば、ホストオペレーティングシステムの提供機能に直接呼び出すシムだけである場合もあります。 [3] [4]
リンク
リンク(共有ライブラリのロードとアンロード)のサポートは、NSPRの機能セットの一部です。ほとんどの場合、これはさまざまなプラットフォームプロバイダーが提供する機能を単純に調整したものです。[3] [4]
データ構造
NSPRは循環リンクリストとハッシュテーブルの実装を提供します。[4]
参照
参考文献
- ^ ジョン・シャンク。 「NSS 3.106 リリース」。2024 年10 月 29 日に取得。
- ^ ab "NSPR". Firefox Source Docs . Mozilla . 2024年1月27日閲覧。
- ^ abcde Larry H. 「NSPRについて」。Firefoxソースドキュメント。Mozilla 。 2024年1月27日閲覧。
- ^ abcdefg 「NSPR API リファレンス」。Firefoxソースドキュメント。Mozilla。2024年 1 月 27 日閲覧。
外部リンク
- 公式サイト
- NSPR ソースコード
