Als «linux-kernel» getaggte Fragen

Dieses Tag ist für Fragen zu den Interna des Linux-Kernels selbst gedacht - insbesondere zum Schreiben von Code, der im Kontext des Kernels ausgeführt wird (wie Kernelmodule oder Treiber). Fragen zum Schreiben von Userspace-Code unter Linux sollten im Allgemeinen stattdessen mit [Linux] gekennzeichnet werden. Da sich die Interna des Linux-Kernels ständig ändern, ist es hilfreich, die genauen Kernel-Versionen anzugeben, an denen Sie interessiert sind.

7
Welche Echtzeitpriorität hat unter Linux die höchste Priorität?
Im Linux-Echtzeitprozessprioritätsbereich 1 bis 99 ist mir unklar, welche Priorität 1 oder 99 die höchste Priorität hat. In Abschnitt 7.2.2 von "Grundlegendes zum Linux-Kernel" (O'Reilly) heißt es, dass 1 die höchste Priorität hat. Dies ist sinnvoll, wenn man bedenkt, dass normale Prozesse statische Prioritäten von 100 bis 139 haben, wobei …

3
Was bedeutet das Linux __user-Makro?
Ich hatte gehofft, jemand könnte die Nuancen des in der Linux-Kernel-Quelle verwendeten __user-Makros erklären. Zunächst das Makro: # define __user __attribute__((noderef, address_space(1))) Nach einigem googeln habe ich nun gelesen, dass man mit diesem Makro einen Zeiger als zum Benutzeradressraum gehörend festlegen kann und dass er nicht dereferenziert werden sollte. Ich …

4
Was ist die Notwendigkeit von leeren Klammern '{}' am Ende eines Arrays von Strukturen?
Ich habe einen C- Code im Linux-Kernel getroffen: static struct ctl_table ip_ct_sysctl_table[] = { { .procname = "ip_conntrack_max", .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, // ... { .procname = "ip_conntrack_log_invalid", .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &log_invalid_proto_min, .extra2 = &log_invalid_proto_max, …


1
Warum ein Makro für eine Funktion mit demselben Namen definieren?
Ich habe den folgenden Code unter https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/atomic.h gefunden static __always_inline bool arch_atomic_sub_and_test(int i, atomic_t *v) { return GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, e, "er", i); } #define arch_atomic_sub_and_test arch_atomic_sub_and_test Was macht der #definewirklich? Wann ist das nötig?
12 c  linux-kernel 
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.