• 締切済み

Linuxカーネルで使用されているシステムコール一覧が知りたいです。

Linuxカーネルで使用されているシステムコールの処理内容が書かれている書籍はないでしょうか?いろいろ調べたのですが発見できていません。昔PC98シリーズであったBIOSリファレンスマニュアル的なものが無いか期待しているのですが... LinuxカーネルはVer 2.6.15.2を見てますが特にこだわっていません。 よろしく、お願いします。

  • 3chV
  • お礼率100% (2/2)

みんなの回答

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.2

/usr/share/man/man2/ のオンラインマニュアルがそれでは?

3chV
質問者

お礼

ありがとうございます。 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/syscalls.2.html と同じですよね。参考にさせて頂きます。

  • MOMON12345
  • ベストアンサー率32% (1125/3490)
回答No.1

この辺りは如何でしょうか。 http://0xcc.net/blog/archives/000199.html

3chV
質問者

お礼

ありがとうございます。参考にさせて頂きます。

関連するQ&A

  • linuxにシステムコールの追加

    linuxに新しくシステムコールを追加したいのですが、 http://xathrya.web.id/blog/2012/10/16/add-new-system-call-to-linux-3-6-1/ こちらのサイトを参考にしているのですが、makeを実行すると arch/x86/built-in.o:(.rodata+0x14a0): undefined reference to `sys_mycal' make: *** [vmlinux] Error 1 と、エラーになってしまいます。 どうしたらよいのでしょうか。 OSのバージョンはUbuntu 12.0.4(VMWareで実行、ホストはWin7) カーネルのソースは3.6.1です。 よろしくお願いします。

  • カーネルの再構築

    はじめまして。私はLinuxの初心者です。 今回、RHL9.0を使ってのカーネルの再構築をしようと思っています。 なぜかというとシステムコールの追加の設定をして、それを適用させるにはカーネルの再構築をする必要があると聞きました。 いろいろ調べてみたのですがこれを言うものが見つかりません。解答の方よろしくお願いします。 カーネルのバージョンは2.4.20-8です。

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

    アセンブリ言語で、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) これについて詳しく教えていただけないでしょうか?すみません。

  • CDブータブルするカーネルの読み込み方法

    お忙しい中、失礼します。 現在、「作りながら学ぶOSカーネル」という書籍の内容に沿って、 カーネルを作成中なのですが、記載してあるカーネルの読み込み方法が、 FDからカーネルを読み込む方法しか記載してありません。 自分としてはCDからカーネルを読み込む方法を選択したいのですが、 どなたか、CDからカーネルを読み込む際のBIOSコールと各レジスタの設定をご教授して頂けないでしょうか?

  • Linuxソフトウェア割り込み

    Linuxの初心者です。 Linuxのソフトウェア割り込みはシステムコールによるものだと聞いています。 実際にシステムコールを利用した時に、いつ割り込みが行われ、ユーザ空間からカーネル空間に移行されたが分かりません。 何か確認する方法というものはあるのでしょうか? よろしくお願いします。

  • Linuxについて教えてください

    LinuxユーザーのDragonです。 最近、愛用のPearOSを使ってて思った、Linuxについての疑問を教えてください。 その一 Linuxのカーネルのビルド方法を教えてください。 (できたら、カーネルのビルド後、デスクトップ環境 X Window System を導入する方法も 教えてください。) その二 OSのことや、パソコンのことを深く知ることができるサイトや本ってありますか? (おもにOSの分野はLinuxについて沢山知りたいです。) その三 Linuxのことから外れますが、インターネットセキュリティのことが学べる書籍やサイト ってありますか? 中学三年生のアホな僕に知識を恵んでください。 御回答のほど、宜しくお願いします。

  • 実行中のプロセスのシステムコールフックについて

    表題の通り,実行中のプロセスのシステムコールのフックについて質問があります. 現在,Linux上の全てのプロセスがどんなシステムコールを使って,どんなリソースにアクセスをしているのか調査しているのですが 具体的には以下のURLのソフトと同じものを,Linux上でC言語を用いて作りたいと考えています. [Process Monitor] http://www.microsoft.com/technet/sysinternals/utilities/processmonitor.mspx いろいろ調べていく中で strace http://www.netadmintools.com/html/1strace.man.html を使うと目的としている調査が実装できそうだということでさっそくいじってみたのですが, strace では既に実行されているプロセスのシステムコールの呼び出しをトレースすることはできないようでした. そこで1点質問なのですが,既に実行中のプロセスのシステムコールをフックするにはどのような方法を使えばいいのでしょうか. お分かりになるかたご回答よろしくお願いします. こちらの開発環境は以下です. OS: Debian 4.0 Kernel: 2.6.20-16 gcc: 4.1.2 (3つとも11/9現在の最新版を使用しています)

  • LKMを用いたカーネル2.6でのシステムコールのフック

    度々すみません。 LKMを使ったシステムコールのフックに挑戦しているのですがうまくいかずに悩んでいます。 お力を貸していただけたら嬉しいです。 ディストリビューション: Debian 4.0r4 カーネル: 2.6.24 以前2.6.18のカーネルを使っていたのですが、使用するカーネルのバージョンを上げました。 開発前にやったことをすべて書いておきます。 ・ linux-source-2.6.24_2.6.24-6~etchnhalf.7_all.deb ・ linux-headers-2.6.24-etchnhalf.1-686_2.6.24-6~etchnhalf.7_i386.deb ・ linux-kbuild-2.6.24-1~etchnhalf.1_i386.deb をダウンロードし、dpkg -i *.deb で展開。 /usr/src/linux-source-2.6.24/arch/x86/kernel/i386_ksyms_32.c の末尾に以下の2行を追加 extern void *sys_call_table[]; EXPORT_SYMBOL(sys_call_table); 変更後以下の手順でカーネルコンパイル cp /boot/config-2.6.18-6-686 .config make menuconfig (Enterを押しっぱなしにして設定終了) make-kpkg --initrd kernel_image dpkg -i (kernel_image).deb 書いたプログラムは以下です。 #include <linux/module.h> #include <linux/init.h> #include <linux/syscalls.h> #include <linux/utsname.h> #include <asm-x86/unistd_32.h> MODULE_LICENSE("GPL"); extern void *sys_call_table[]; static char *msg = "[message.o]:"; asmlinkage int (*orig_open)(const char *pathname, int flags); asmlinkage static int hook_open(const char *pathname, int flags) { printk(KERN_INFO "hook_open(\"%s\", %d)\n", pathname, flags); return orig_open(pathname, flags); } static int message_module(void) { printk(KERN_INFO "%s loaded\n",msg); printk(KERN_INFO "%s hook_init\n", msg); orig_open = sys_call_table[__NR_open]; sys_call_table[__NR_open] = hook_open; return 0; } static void message_remove(void) { printk(KERN_INFO "%s removed\n", msg); printk(KERN_INFO "%s hook_exit\n", msg); sys_call_table[__NR_open] = orig_open; } module_init(message_module); module_exit(message_remove); コンパイルすると以下のようなエラーが出ます。 user@debian:~/lkm/message$ make make -C /lib/modules/2.6.24/build M=/home/user/lkm/message modules make[1]: ディレクトリ `/usr/src/linux-source-2.6.24' に入ります Building modules, stage 2. MODPOST 1 modules WARNING: "sys_call_table" [/home/user/lkm/message/message.ko] undefined! make[1]: ディレクトリ `/usr/src/linux-source-2.6.24' から出ます 長文で申し訳ありませんが、お力をお貸しください。 宜しくお願いします。

  • 今使用しているカーネルのディレクトリはどこ?

    VirtualBoxでCentOS5.4をゲストOSにして、guest additionを入れようとしました。 インストールを始めると以下のようにエラーがでました。 Uninstalling old VirtualBox DKMS kernel modules [ OK ] Building the VirtualBox Guest Additions kernel modules [失敗] Your system does not seem to be set up to build kernel modules. Look at /var/log/vboxadd-install.log to find out what went wrong. ↑vboxadd-install.logでしらべろということなので、catで↓その内容を下に記します Makefile:23: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.. 中止. Creating user for the Guest Additions. Creating udev rule for the Guest Additions kernel module. あなたの現在のlinuxカーネルが見つからないということですよね Specify KERN_DIR=<directory> これはカーネルのディレクトリをしっかり、示せということ?だと思いましたので uname -r をして 2.6.18-164.el5 これが今のカーネルのバージョンでこれを export KERN_DIR=/usr/src/kernels/2.6.18-164.el5 と思ったのですが、kernelsディレクトリには2.6.18-164.el5ではなく 2.6.18-194.26.1.el5-PAE-i686と2.6.18-194.26.1.el5-iしかありませんでした。 今現在使用しているカーネルのバージョンの場所はどこにあるのでしょうか? まだlinux初心者ですので、根本的に勘違いしているとこも多いと思いますが、よろしくお願いします。 もしくはどなたか、Linuxカーネルのことなどが勉強できるようなサイトを教えていただけるととても助かります。

  • コールセンターについて

    20代前半の女です。 今、新しい仕事を探しているのですが、時給と勤務時間帯が良いのでコールセンターのアルバイトに応募してみようかと思うのですが、コールセンターの仕事ってあまり良い話し聞きませんよね。。。 クレーム処理だとかノルマがあるとか。。。 時給が高いから精神的にキツそうなイメージがあるのですが、実際はどうなんでしょうか。 ちなみに会社はB●コールと言う、ベ●システム系列??の会社で仕事内容は電報受付サービスと明記されていました。【セールス無し】 時給は850円で、私の住んでいる所の他のコールセンターと比べると高めの時給なので、やっぱりキツいのかなぁと思うのですが。。。 よろしくお願いします。