問題タブ [system-calls]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
396 参照

linux - syscall は Linux でどのように検索されますか?

Red Hat 8.0 に新しい syscall を追加しようとしていますが、メカニズムのいくつかの側面について混乱しています。私はこのガイドに従ってきました: http://www.linuxjournal.com/article/3326entry.Sでは、およびの syscall テーブルを更新する手順が詳しく説明されていますunistd.h

ただし、この情報から、syscall が実装されている場所をコンパイラが実際にどのように検出するかはわかりません。明らかに#includes に関連するものがありますが、インクルードが作成されている兆候を見つけることも、コード内の多くのシステムコールを見つけることもできません。システムコールが見つかるようにするにはどうすればよいですか?

0 投票する
2 に答える
1821 参照

windows - システムコール中にWindowsはどのようにスーパーバイザーモードに切り替わりますか?

システムコール中にWindowsはどのようにスーパーバイザーモードに切り替わりますか?「トラップ0」について何か聞いたのですが、それはx86命令のようにも思えません。いくつかのシステムコールを実行しましたが、見つかりません。多くのWindowsシステムコールはユーザーモードで実行されますか?スーパーバイザーモードで実行するのはどれですか?

0 投票する
1 に答える
2834 参照

linux - Linux用のシステムコールの作成

システムコールを書こうとしています。私はこれらの手順に従いました:

linux / arch / x86 / kernel /syscall_table_32.S---->。long sys mycall

linux / include / linux / syscalls.h --------> asmlinkage int sys mycall(int i、int j);

linux / arch / x86 / include / asm / unistd_32.h ----> #define NR mycall 333

linux/Makefileをcore-y+= kernel / mm / fs / ipc / security / crypto / block /mycall/に変更しました

mycallというディレクトリを作成しました。----> linux / mycall

そのファイルの中に、mycall.cを配置しました:

6)Makefileを作成します。---> linux / mycall/Makefile。

次に、このシステムコールを試すと、常に-1が返されます。これらの行は、デスクトップでの私のテストコードです。testmycall.c

次に、カーネルを再コンパイルします。コードをコンパイルしても問題はありません。このプログラムを実行すると、2つの値が合計されません。常に-1を返します。システムコールの何が問題になっていますか?(カーネルを再コンパイルしたとき、システムは3秒以上時間を無駄にしませんでした。ここでは、問題がある可能性があると思います)

0 投票する
5 に答える
101663 参照

c - 実際の例では、dupまたはdup2を使用します

dup/dup2が何をするかは知っていますが、いつ使用されるかわかりません。

実用的な例はありますか?

ありがとう。

0 投票する
1 に答える
294 参照

ubuntu - カーネルの構成

新しいシステム コールを作成した後、カーネルを更新する方法は?

私はこれらの行を試しました、

しかし、Ubuntu は、自分が何をしているのか確信があるかどうかを尋ねてきました。しかし、よくわかりません。はいと言わなければなりませんか?これが何をしたかです、Ubuntuは私に言いました:

カーネル イメージ (バージョン 2.6.25.4-us122l) をインストールしようとしていますが、ディレクトリ /lib/modules/2.6.25.4-us122l/kernel がまだ存在しています。このディレクトリが以前の linux-image-2.6.25.4-us122l パッケージに属しており、一部のモジュールの選択を解除したり、スタンドアロン モジュール パッケージをインストールしたりした場合、これは問題になる可能性があります。

Ubuntuに同意します。これは悪いかもしれません。カーネルを再コンパイルするにはどうすればよいですか? 2 番目の質問は、システム コールを作成した後、debian ファイルをインストールする必要があるかどうかです。

0 投票する
1 に答える
809 参照

c++ - システムコールがコマンドラインのように機能しない

私は2つのプログラムを持っています.1つは別の実行可能ファイルを使用して別のプログラムを呼び出します. Ubuntuターミナルで実行しています

これは適切なフォルダ構造です

.../src/pgm1/pgm1 .../src/pgm0/pgm0

pgm1 と pgm0 は実行可能ファイルです。

これは、他の実行可能ファイルを呼び出す方法です

私が調べたところ、cmd は適切に生成されています: ../pgm0/pgm0 yRes 400 xRes 400 inFile tmp_output/sph0.0000.sc > tmp_output/sph0.0000.ppm

したがって、コマンドラインからこのコマンドを実行すると、完全に機能します。

システム コールを使用して実行すると、ハングして入力ファイル sph0.0000.sc の解析に失敗します。

しかし、まだ運がありません。

これがコマンドラインからではなく、別の実行可能ファイル内のシステムコールからではなく、なぜ機能するのでしょうか...

明確にするために、フォルダーpgm1のコマンドラインから動作します。

ありがとう

0 投票する
2 に答える
2130 参照

linux - アセンブリとシステム コール

アセンブリでのより複雑なシステム コールを理解するのに少し苦労しています。私はexecシステムコールを書きましたが、うまくいきました

私は少し確信が持てませんが、文字列をレジスタに入れる方法に関する情報を見つけることができませんでした. 例として、私は exec システム コールを実行したいと考えていました。その最初のパラメーターとして、実行するファイル名が必要で、"/bin/bash" を実行したいのですが、rbx でそれを取得するにはどうすればよいでしょうか。rbx を使用する必要があることをどうすれば知ることができますか?X86 では ebx を使用することを知っていますが、amd64 で ebx=rbx、ecx=rcs などと同じ関係ですか?

int execve(const char *filename, char *const argv[], char *const envp[]);

皆さんありがとう

0 投票する
4 に答える
3914 参照

php - PHPでシステムコールを実行して忘れる

だから私は私のphpコードからいくつかのスクリプトを実行しようとしています。それはページblah.phpにあります

内部ではシステムコールを使用しています

うまく機能しますが、印刷が完了するまで完了します。タイプミスではなく、phpからperlスクリプトを呼び出していることを認識しています。

プログラムの実行を開始して、バックグラウンドで完了するにはどうすればよいですか。blah.plスクリプトは、電子メール通知を処理します。

誰?

ありがとうございます

0 投票する
3 に答える
2943 参照

ubuntu - linux-kernel は proc/pid ファイルをどのように読み取りますか?

システム内のすべてのプロセスを示す proc/pid ファイルを linux-kernel が読み取る方法と場所。見つけた linux-source-2.6.31/fs/proc/ ここにファイルがありますが、本当に複雑でわかりにくいです。誰かがそれがどのように機能するかを知ることができますか?