• ベストアンサー

ライブラリ・システムコールとは?

ライブラリコール、システムコールについて要約して教えてもらえませんか?別に要約じゃなくてもいいですが(^_^.) あと、相違点などについても教えて下さい。 調べてもイマイチ分からないので。 宜しくお願いします。

  • t-cmt
  • お礼率7% (68/935)

質問者が選んだベストアンサー

  • ベストアンサー
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

ライブラリコール・・・共通的にあると便利な機能をライブラリーにしてあり、  必要に応じてコールする。サブルーチンみたいなもの。 システムコール・・・ライブラリーコールとよく似ているが  単なるライブラリーでなく、OSをコールして必要な仕事をしてもらう。  システムと言うのはOSのこと。  ファイルの読み書きなどOSの管理している機能を使うときは必須。 ライブラリーが勝手にシステムコールをしている事もある。

その他の回答 (1)

noname#6829
noname#6829
回答No.2

システムコールというのは、OS が持っているいろいろなモジュールのことで、OS 自身もさまざまな処理の際にそれらを多用して各種のプロセスを実行しており、また公開された仕様になっているので その OS 上で動くアプリケーションもプログラミングに際してこれらを利用します。機能の内容としては基本的な処理に関するものが大半です。OS に基づくものなので、その OS 上で動くプログラムならどれでも共通に使えます。 これに対し、ライブラリというのはやはり他のプログラムから呼び出されて利用されるモジュールですが、システムコールに比べてやや込み入った処理をする応用的な内容の傾向にあり、OS 用に用意されているものの他に、特定の言語処理系( C++ コンパイラや VisualBasic など)用に作成されたライブラリというのもあります。後者はその処理環境がインストールされていたりそれらを使ったアプリケーションがインストールされたりすることによってシステムに導入されるので、それらがなければシステム上に存在しないこともあり得ます。 プログラムが作成され、実行形式にコンパイルされる段階で呼び出されてオブジェクトに組み込まれるタイプのライブラリもあれば、すでに出来上がっているプログラムが動作する段階で必要に応じて呼び出されて作業に参加するタイプのライブラリ(動的リンク)もあります。上述の VisualBasic のうち、.NET 仕様以前の世代ではランタイムライブラリ(やはり実行時に呼び出される部品の集合体)があり、実行するプロセスが要求する部品を持った正しい世代のランタイムがインストールされていないとプログラムが実行できなかったりします。

関連するQ&A

  • システムコールと標準ライブラリの正しい使い方を教えて下さい

    システムコールって何でしょうか。 C言語初心者なので、変な質問だったら、すみません。 システムコールと標準ライブラリにおける、関数の違いを教えて頂けませんでしょうか。 例えばファイル入出力で用いる openとfopenは何が違うのでしょうか? 私はそもそも、システムコールというものが判っていない状態です。 いつも標準ライブラリを参考にしていたものですから・・。 更に似た使い方をすると思いますが、使える範囲等どちらが広いのでしょうか。 よろしくお願いします。

  • システムコール

    システム・コールをより使いやすい形にしたものが、ライブラリである。と解説されていたのですが、システムコールを使うときは手間がかかるんですか?例えばわかりやすい例をあげてもらえないでしょうか、よろしくお願いします。

  • システムコールとOSマクロ

    同じような質問を続けてしまって申し訳ないのですが・・ 今度はシステムコールとOSマクロの相違点が分かりません。 それぞれの意味ではなく、違う部分を調べるのが難しくて・・ できれば簡潔にまとめていただけるとうれしいです。 分かる方、お願いします。

  • システムコールについて教えてください!

     私は機械工学を専攻しているのですが、大学の授業で情報学科のOSの授業に興味があり受講してみたものの、やはり知識不足で困っております。  つまったところは、「どのようなシステムコールがあるか」という問題です。  システムコールとは、ユーザがハードウェアを直接制御すること??なのでしょうか? 問題が「どのようなシステムコールがあるか?」ということなので、簡単な例をだして頂いて教えて頂ければ幸いです。よろしくお願い致します。

  • システムコールって何でしょうか?

    システムコールってなんでしょうか?

  • Solarisの実装メモリ容量を得るシステムコール(ライブラリコール)

    Solarisではコマンドラインでは、prtconfをすると実装メモリ容量を得ることが出来ますが、これと同じ情報(実装メモリ容量だけでいいです)をCやC++のプログラムから、システム(ライブラリ)コールを呼ぶことで得る方法を知っている方教えてください。 ちなみに、Linuxでは、/proc/meminfo の中に実装メモリ容量が書かれているので、このファイルをopen / read / close してやれば解決するのですが....Solarisにはどうもこういった便利なファイルが見当たりません....。

  • システムコールについて

    最近システムコールについて学んでいるのですが、C言語でprintfを実行するために必要なシステムコールを特定するにはどのようなさぎょうをすればよいでしょうか? はじめに適当なプログラムを作ってあるのですが、そのプログラムを工夫することによって特定するやり方でお願いします。

  • Windowsのシステムコール呼び出し

    アセンブラでシステムコールを呼び出したいのですが、 Linuxとかだとシステムコールの一覧みたいのが載ってるのですが、 Windowsのシステムコールの一覧みたいのが見つかりません。 一覧が載っているようなサイトってありませんか?? とりあえずLinuxの11番(C言語で言うexecv関数)みたいのが使いたいのですが。。。

  • コールトラッキングシステムとは・・・

    コールトラッキングシステムとは、どんなシステムですか? 教えてください。

  • システムコールについて。

    アセンブリ言語で、int $0x80はシステムコールと言われていますが、Linuxを知らないとわかりません。システムコールはアプリとカーネルのインターフェースです。 x86 Linux 32bitのシステムコールの呼び出しは int 0x80です。 システムコールはEAXに格納されている数値でいろいろな処理ができます。 https://www.mztn.org/lxasm64/x86_x64_table.html を見ていただくとWRITEのsyscall#は4です。 mov $0x4,%eax でeaxに4を入れているので画面に出力したいのだとわかります。 WRITEの第2引数は画面に出力したい文字列が格納されているアドレスでECXに格納します。 mov %esp,%ecx とスタックポインターのアドレスをecxに入れています。 ESPは push eax でEAXに格納されている$0x616b6157(Waka)がスタックに退避しています。 WRITEの第3引数は文字数です。文字数はEDXに格納します。 mov $0x4,%edx と4が入っているので文字数は4です。 このプログラムを実行させると画面にWakaと表示して元の画面に戻ります。そのためのRETです。 C言語で書けばたった1行。 write(1,"Waka",4) これについて詳しく教えていただけないでしょうか?すみません。