• ベストアンサー

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

toysmithの回答

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

オペレーティングシステムの機能をアプリケーションプログラムに公開する方法の一つです。 システム(オペレーティングシステム)の機能を呼び出すことからシステムコールと呼ばれることがあります。 同様の機能はOSであれば間違い無く持っているのですが、OSによって呼び方が違います。 unix系:システムコール Windows:WindowsAPI(Win32API) Macintosh:Toolbox 汎用コンピュータ:スーパーバイザコール パソコン系の場合、OSの基本機能以外の部分(ウィンドウ制御など)も含まれるため厳密にはシステムコールではありません。 OSの基本機能は ・ファイルシステム ・プロセス管理 ・ユーザ管理 ・通信(プロセス間、ノード間、スレッド間) ・同期、タイマ ・システム情報取得/設定 などです。

lowfater
質問者

お礼

ありがとうございます。大変分かり易いです。

関連するQ&A

  • システムコール

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

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

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

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

    最近システムコールについて学んでいるのですが、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) これについて詳しく教えていただけないでしょうか?すみません。

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

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

  • Ubuntuの端末におけるシステムコールの数え方

    こんばんは。 課題でcとJavaのコードを実行してstraceコマンドでその実行時のシステムコールを読み取るという課題をやっています。 Ubuntuの端末でcとJavaのコードをコンパイルし、straceコマンドを実行するとtracefileというのがでてきてそこにずらずらシステムコール(おそらく)が書いてあります。 ↓ こんな感じ。 3232 execve("./Noop", ["./Noop"], [/* 39 vars */]) = 0 3232 brk(0) = 0x98c6000 まずこれがシステムコールであっていますか?execveとかがそうですか? これが6000行くらいあります。 質問はこの中からresumedと書かれたラインを抜かした行数を数え(システムコールの数を数える)、さらにシステムコールの種類の数を数えたいのですがいい方法はありますでしょうか? 便利なコマンドとかあったら使い方とともに教えていただきたいです。 もし何か検討違いなことを言っていたら教えてください。 よろしくお願いします。

  • Linux/Windowsのシステムコール

    CentOS 5.5 + Eclipse CDT で C++ のプログラミングを始めたばかりです。 プログラムを作成するにあたって、今後 Windows へ移植したときに移植しやすいプログラムを作成したいと考えています。 (現段階ではまだ標準出力に何か表示するお粗末なものですが) 素人考えでは、システムコールを使用すると他プラットフォームへ移植したときに同等のシステムコールがないと実装を大きく変更しなければならなくなるので、あらかじめどれが固有のシステムコールかを判断したいと思っています。 例えば Linux では待ち行列を実現するのに mkfifo システムコールが使えるけど、Windows では使えないから待ち行列をあらかじめロジックで実現しよう、という感じです。 (あくまで例なので、Windows の FIFO の API を使えばいいじゃん、というのはナシで) なので、Linux および Windows でシステムコール一覧を参照する方法を教えて頂きたいです。 まあ、STLでもプラットフォームが変われば動く保証はないみたいなので、Javaみたいなクロスプラットフォームのようにはいかないと思いますが。。。 よろしくお願いします。