GNU/Linux >> Linux の 問題 >  >> Linux

現在の Linux カーネル ソースは何ですか?

これは、現在のプロセス (つまり、システム コールを発行したプロセス) へのポインターです。

x86 では、arch/x86/include/asm/current.h で定義されています。 (他のアーチの同様のファイル)

#ifndef _ASM_X86_CURRENT_H
#define _ASM_X86_CURRENT_H

#include <linux/compiler.h>
#include <asm/percpu.h>

#ifndef __ASSEMBLY__
struct task_struct;

DECLARE_PER_CPU(struct task_struct *, current_task);

static __always_inline struct task_struct *get_current(void)
{
    return percpu_read_stable(current_task);
}

#define current get_current()

#endif /* __ASSEMBLY__ */

#endif /* _ASM_X86_CURRENT_H */

詳細については、Linux デバイス ドライバーの第 2 章を参照してください:

<ブロック引用>

現在のポインターは、現在実行中のユーザー プロセスを参照します。 open や read などのシステム コールの実行中、現在のプロセスはその呼び出しを呼び出したプロセスです。カーネル コードは、必要に応じて current を使用してプロセス固有の情報を使用できます。 [...]


Current struct task_struct 型のグローバル変数です .その定義は [1] にあります。

Files struct files_struct です 現在のプロセスで使用されているファイルの情報が含まれています。

[1] http://students.mimuw.edu.pl/SO/LabLinux/PROCESY/ZRODLA/sched.h.html


Linux
  1. LinuxとUnix:違いは何ですか?

  2. Linuxカーネルテストのライフサイクル

  3. Linux ビデオ ドライバー サポートの現在の状態はどのようなものですか?

  1. Linuxシステムの現在のランレベルはどれくらいですか?

  2. Linux – Linuxカーネルで使用されているエントロピーソースは何ですか?

  3. Linuxで自分でコンパイルするという考え方のソースは何ですか

  1. Linux では、top コマンドのすべての値は何を意味しますか?

  2. Linuxカーネルコードで__initはどういう意味ですか?

  3. Linux カーネル ソース ツリーのバージョンはどこにありますか?