出典: システムコール 『通信用語の基礎知識』 更新年月日 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の動作モードを変更することなどが可能になる。 ・・・ |
同義語・類義語 | 関連語・その他 |
---|---|
system call | ・ |
sístəm kɔ́ːl | kernel call |
シィステム コァールゥ | kə́rnl kɔːl |
シィステム・コァールゥ | カゥーヌルゥ コァールゥ |
シィ́ステム・コァ́ールゥ | カゥーヌルゥ・コァールゥ |
システム コール | カゥ́ーヌゥルゥ・コァ́ールゥ |
システム・コール | カーネル コール |
シ́ステム・コ́ール | カーネル・コール |
システム呼出し | カ́ーネル・コ́ール |
・ | カーネルコール |
SVC | ・ |
és ví: síː | service call |
エス ヴィー シィー | sə́rvəs kɔ́ːl |
エ́ス ヴィ́ー シィ́ー | サゥァーヴィス コァールゥ |
エス ブイ シー | サゥァーヴィス・コァールゥ |
エ́ス ブ́イ シ́ー | サゥ́ァーヴィス・コァ́ールゥ |
Supervisor Call | サービス コール |
súːpərvàizər kɔːl | サービス・コール |
スーパゥァーヴァイザゥァー コァールゥ | サ́ービス・コ́ール |
スーパゥァーヴァイザゥァー・コァールゥ | ・ |
ス́ーパゥァーヴァ̀イザゥァー・コァ́ールゥ | 【 以下関連語 】 |
スーパーバイザー コール | API |
スーパーバイザー・コール | Application Programming Interface |
ス́ーパーバ̀イザー・コ́ール | ・ |
・ | Function Call |
API Call | ファンクション・コール |
éi píː ái kɔ́ːl | ファンクション コール |
エイ ピー アイ コァールゥ | 関数呼び出し |
エイ ピー アイ・コァールゥ | ・ |
エ́イ ピ́ー ア́イ・コァ́ールゥ | function |
エー ピー アイ・コール | fʌ́ŋkʃən |
エ́ー ピ́ー ア́イ・コ́ール | ファンクシュン |
Application Programming Interface Call | ファ́ンクシュン |
æ̀plikéiʃən prə́ugræmiŋ íntərfèis kɔːl | ファンクション |
アェプリィケイシュン プログラェミング インタゥーフェイス コァールゥ | ファ́ンクション |
アェプリィケイシュン・プログラェミング・インタゥーフェイス・コァールゥ | [名詞] |
アェ̀プリィケ́イシュン・プロ́グラェミング・イ́ンターフェ̀ース・コァ́ールゥ | 関数 |
アプリケーション プログラミング インターフェース コール | かんすう |
アプリケーション・プログラミング・インターフェース・コール | 機能 |
ア̀プリケ́ーション・プロ́グラミング・イ́ンターフェ̀ース・コ́ール | 働き |
更新日:2024年 4月29日 |