出典: システムコール 『通信用語の基礎知識』 更新年月日 2010/07/13,URL: https://www.wdic.org/ システムの機能を呼び出すこと。及び、それをするための機構のこと。 [概要] 差異 システム、一般にはオペレーティングシステム(OS)であるが、その機能の呼び出し方はOSによって大きく違いがある。OSに求められる機能の差や、OSの設計方針の差などが反映されるからである。かくして、あるOS用に書かれたプログラムは、別のOSで動かすことができない(実際の理由はそれだけではないが)。 [主な一覧] 呼び出し方法は、出来るだけ無理がなく、簡単であるほうが望ましい。そこでどのようなOSでも、そのCPUの種類に応じ、最も自然な方法が選択されている。x86系でありがちなOSでは、16ビット/32ビット/64ビットの環境を問わず、ソフトウェア割り込み機能が使われている。 -------------------------------------------------------------------------------- OS名 :呼び出し方法 :概 要 MD-DOS INT 21h AHまたはAXにファンクション番号。引数はレジスター。 Windows VxD INT 20h CD20FFFFNNNN (int 20h, <ファンクション番号>, Windows NT,Windows 2000 INT 2Eh EAXにファンクション番号 Windows XP(x86) sysenter Windows XP(64) syscall FreeBSD INT 80h EAXにファンクション番号。引数はスタック。 Linux INT 80h/Sysenter EAXにファンクション番号。引数はレジスター。 -------------------------------------------------------------------------------- Linuxの場合、Linux 2.6からsysenterによる呼び出しにも対応した。 [特徴] MS-DOS MS-DOSは、INT 21hシステムコールと呼ばれるソフトウェア割り込みで行なわれる。 AHレジスターに機能番号、それ以外のレジスターに必要な引数(パラメーター)を入れ、INT 21hを実行する。 Windows 3.xと9x Windows 9xの場合、アプリケーションソフトは通常、ring3で動作する。このためINT 30hでリングレベルをring0に変更し、VxD層にある機能を呼ぶことになる。後はWindows 3.xと同様である。 VxD層の機能は、INT 20hで呼ぶ。引数込みで6バイトで構成される。CD 20 FF FF NN NNFFFFがファンクション番号、NNNNが呼び出すVxD識別番号である。 FreeBSD FreeBSDのx86版は、int 80hソフトウェア割り込みで行なわれる。引数はスタックにpushし、システムコール番号をEAXレジスターに入れ、int 80hを実行する。 Linux Linuxのx86版は、二通り方法がある。基本はFreeBSDと同様にソフトウェア割り込みで行なわれる。但し呼び方は若干異なり、引数はレジスターに入れ、システムコール番号をEAXレジスターに入れ、int 80hを実行する。各レジスターの使われ方は、次のとおり。 ● eax ‐ システムコール番号 ● ebx ‐ システムコールの第1引数 ● ecx ‐ システムコールの第2引数 ● edx ‐ システムコールの第3引数 ● esi ‐ システムコールの第4引数 ● edi ‐ システムコールの第5引数 ● ebp ‐ システムコールの第6引数 Linuxカーネル2.6からはsysenterによる呼び出しにも対応した。int 80h命令でのシステムコールは既に古く、sysenterの方が高速である。 |
出典: システムコール 『フリー百科事典 ウィキペディア日本語版(Wikipedia)』 最終更新 2019年10月28日 (月) 04:42 UTC、URL: https://ja.wikipedia.org/ システムコール(英: system call、日: システム呼出し)とは、オペレーティングシステム (OS)(より明確に言えばOSのカーネル)の機能を呼び出すために使用される機構のこと。実際のプログラミングにおいては、OSの機能は関数 (API) 呼び出しによって実現されるので、OSの備える関数 (API) のことを指すこともある。なお、μITRONではサービスコールと呼ばれる。また、OSのことをスーパーバイザとも呼ぶため、スーパーバイザコールともいう。 [機構] システムコールは、多くの場合、専用命令(インテルはPentium II以降, ARMは最初から)もしくはソフトウェア割り込みによって実行される。CPUの動作モードを遷移させることによって、通常のアプリケーションプログラムからはアクセスできない保護されたメモリ領域にアクセスすることや、保護されたレジスタを操作すること、また、自らCPUの動作モードを変更することなどが可能になる。 ・・・ |
同義語・類義語 | 関連語・その他 |
---|---|
システムコール | API |
システム コール | Application Programming Interface |
system call | ・ |
システム・コール | Function Call |
システム呼出し | ファンクション・コール |
・ | ファンクション コール |
SVC | 関数呼び出し |
エス ヴィー シー | ・ |
エス ブイ シー | function |
Supervisor Call | fʌ́ŋkʃən |
súːpərvàizər kɔːl | ファンクシュン |
スーパゥーァヴァイザァ・コァールゥ | ファンクション |
スーパーバイザ コール | [名詞] |
スーパーバイザ・コール | 関数 |
スーパーバイザコール | 機能 |
・ | 働き |
API Call | |
Application Programming Interface Call | |
æ̀plikéiʃən prə́ugræmiŋ ìntərféis kɔːl | |
アプリィケイシュン・プロウグラェミング・インタゥフェイス・コァールゥ | |
アプリケーション・プログラミング・インターフェース・コール | |
エー ピー アイ・コール | |
・ | |
kernel call | |
kə́rnl kɔːl | |
カゥーヌルゥ コァールゥ | |
カゥーヌルゥ・コァールゥ | |
カーネル コール | |
カーネル・コール | |
カーネルコール | |
・ | |
service call | |
サービス コール | |
更新日:2023年 1月 6日 |