GNU/Linux >> Znalost Linux >  >> Linux

Jaký je aktuální zdrojový kód jádra Linuxu?

Je to ukazatel na aktuální proces (tj. proces, který vyvolal systémové volání).

Na x86 je definován v arch/x86/include/asm/current.h (podobné soubory pro jiné oblouky).

#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 */

Další informace v kapitole 2 Ovladače zařízení pro Linux:

Aktuální ukazatel odkazuje na aktuálně prováděný uživatelský proces. Během provádění systémového volání, jako je otevření nebo čtení, je aktuální proces ten, který volání vyvolal. Kód jádra může použít informace specifické pro proces pomocí proudu, pokud to potřebuje. [...]


Current je globální proměnná typu struct task_struct . Jeho definici najdete na [1].

Files je struct files_struct a obsahuje informace o souborech používaných aktuálním procesem.

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


Linux
  1. Co je to jádro Linuxu a měli byste upgradovat na nejnovější jádro?

  2. Jaká je aktuální úroveň běhu systému Linux?

  3. Linux – jaké zdroje entropie používá jádro Linuxu?

  1. Kde najdu verzi zdrojového stromu linuxového jádra?

  2. Jaká je definice relace v linuxu?

  3. Co je zdrojem mentality zkompilujte si sami v linuxu

  1. Linux vs. Unix:Jaký je rozdíl?

  2. Životní cyklus testování linuxového jádra

  3. Co v linuxu znamenají všechny hodnoty v příkazu top?