web-dev-qa-db-ja.com

syscall_table_32.Sファイルが見つかりません

Linuxにシステムコールを追加したいのですが、トレーニングデータではファイルを変更する必要がありますlinux/Arch/i386/kernel/entry.SまたはArch/x86/kernel/syscall_table_32.S。ファイルが見つかりません。探して見つけられず、i386という名前のフォルダがありません。私を助けてください。必要です。

3
Mostafa

まず、Linuxカーネルのソースコードが必要です。 kernel.org でダウンロードするか、Ubuntuからlinux-sourceパッケージをインストールします。後者の場合、Ubuntuのパッチが適用されています。

通常、ソースは/usr/srcの下にあります。ファイルを展開したり、パッケージをインストールした場合は、上記のツリーが見つかります。そのため、最新のカーネルバージョンには、サブディレクトリentry_32.Sentry_64.S および Arch/x86/kernel というファイルがあります。 Archの後の部分の名前はx86であり、前述のi386ではありません。 i386は3.7から削除されたため、i386を使用する場合は、3.7より前のカーネルバージョンを選択する必要があります。

2
qbi

entry_64.Sファイルは、変更する必要がある同等のファイルではありません...実行したい内容によって異なります。カーネルにカスタムsyscallを追加する場合は、ファイル/ Arch/x86/syscalls/syscall_64.tblを変更します。

0
jazzyfresh