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.

14
Wie kann man einen Prozess unter Linux in den Ruhezustand versetzen, indem man seinen Speicher auf der Festplatte speichert und später wiederherstellt?
Ist es möglich, einen Prozess unter Linux in den Ruhezustand zu versetzen? Genau wie im Ruhezustand eines Laptops würde ich den gesamten von einem Prozess verwendeten Speicher auf die Festplatte schreiben und den Arbeitsspeicher freigeben. Und später kann ich den Prozess fortsetzen, dh alle Daten aus dem Speicher lesen und …



3
Wie können Threads identifiziert werden, die dieselbe PID haben?
Ich habe eine Abfrage zur Implementierung von Threads unter Linux. Linux hat keine explizite Thread-Unterstützung. Im Userspace verwenden wir möglicherweise eine Thread-Bibliothek (wie NPTL) zum Erstellen von Threads. Wenn wir jetzt NPTL verwenden, unterstützt es 1: 1-Mapping. Der Kernel verwendet die clone()Funktion, um Threads zu implementieren. Angenommen, ich habe 4 …

6
Wie vermeide ich die Warnung transparent_hugepage / defragmentieren von mongodb?
Ich erhalte die folgende Warnung von Mongodb über THP 2015-03-06T21:01:15.526-0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2015-03-06T21:01:15.526-0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' Aber ich habe es geschafft, THP manuell auszuschalten frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag always madvise [never] Ich …

2
Was ist? = In Makefile
KDIR ?= $(shell uname -r) Was bedeutet das ?=? Ich habe den Unterschied zwischen verstanden :=, +=und =von einem anderen Thread in Stack - Überlauf, aber nicht in der Lage , um die Erklärung zu finden ?=.

2
Was sind vdso und vsyscall?
Ich tat sudo cat /proc/1/maps -vv Ich versuche, die Ausgabe zu verstehen. Ich kann sehen, dass viele gemeinsam genutzte Bibliotheken wie erwartet dem Speicherzuordnungssegment zugeordnet werden. 7f3c00137000-7f3c00179000 r-xp 00000000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00179000-7f3c00379000 ---p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00379000-7f3c0037a000 r--p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037a000-7f3c0037b000 rw-p 00043000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 …
87 c  linux  linux-kernel  kernel  vdso 

3
Die Verwendung von gdb für einstufigen Assembler-Code außerhalb der angegebenen ausführbaren Datei führt zu dem Fehler "Grenzen der aktuellen Funktion können nicht gefunden werden".
Ich bin außerhalb der ausführbaren Zieldatei von gdb und habe nicht einmal einen Stapel, der diesem Ziel entspricht. Ich möchte sowieso in einem Schritt arbeiten, damit ich überprüfen kann, was in meinem Assemblycode vor sich geht, da ich kein Experte für x86-Assembly bin. Leider weigert sich gdb, dieses einfache Debuggen …

1
Bild vs zImage vs uImage
Was ist der Unterschied zwischen ihnen? Ich weiß, dass U-Boot einen Kernel im uImage-Format benötigt. Das System, das ich benutze, bootet zuerst vom Stage 1-Loader und ruft dann U-Boot auf. Ich möchte U-Boot verwerfen und direkt vom Stage 1-Loader booten. Welche Art von Kernel-Image muss ich verwenden?

2
Verwendung von Gleitkommazahlen im Linux-Kernel
Ich lese Robert Loves "Linux Kernel Development" und bin auf folgende Passage gestoßen: Keine (einfache) Verwendung von Gleitkommazahlen Wenn ein User-Space-Prozess Gleitkomma-Anweisungen verwendet, verwaltet der Kernel den Übergang vom Ganzzahl- zum Gleitkomma-Modus. Was der Kernel bei der Verwendung von Gleitkommaanweisungen tun muss, hängt von der Architektur ab. Der Kernel fängt …

5
Auswahl eines Linux I / O Schedulers
Ich habe gelesen, dass es angeblich möglich ist, den E / A-Scheduler für ein bestimmtes Gerät auf einem laufenden Kernel zu ändern, indem Sie in / sys / block / [disk] / queue / scheduler schreiben. Zum Beispiel kann ich auf meinem System sehen: anon@anon:~$ cat /sys/block/sda/queue/scheduler noop anticipatory deadline …

7
Grundlegendes zum Makro container_of im Linux-Kernel
Beim Durchsuchen des Linux-Kernels habe ich ein container_ofMakro gefunden, das wie folgt definiert ist: #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );}) Ich verstehe, was container_of tut, aber was ich nicht verstehe, ist der letzte Satz …



2
Magische Nummern des Linux-Systemaufrufs reboot ()
Die Linux-Programmierschnittstelle enthält eine Übung in Kapitel 3, die folgendermaßen aussieht: Wenn Sie den Linux-spezifischen Systemaufruf reboot () zum Neustart des Systems verwenden, muss das zweite Argument, magic2, als eine von mehreren magischen Zahlen angegeben werden (z. B. LINUX_REBOOT_MAGIC2). Welche Bedeutung haben diese Zahlen? (Die Konvertierung in hexadezimal liefert einen …

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.