Pertanyaan yang diberi tag «linux-kernel»

Tag ini untuk pertanyaan tentang internal kernel Linux itu sendiri - terutama tentang penulisan kode yang dijalankan dalam konteks kernel (seperti modul atau driver kernel). Pertanyaan tentang menulis kode userspace di Linux biasanya harus diberi tag [linux]. Karena internal kernel Linux terus berubah, sebaiknya sertakan versi kernel yang Anda minati.



2
Baca / tulis file dalam modul kernel Linux
Saya tahu semua diskusi tentang mengapa seseorang tidak boleh membaca / menulis file dari kernel, melainkan bagaimana menggunakan / proc atau netlink untuk melakukan itu. Saya tetap ingin membaca / menulis. Saya juga membaca Driving Me Nuts - Things You Never Should Do in the Kernel . Namun, masalahnya adalah …

3
Jika utas berbagi PID yang sama, bagaimana mereka dapat diidentifikasi?
Saya memiliki pertanyaan terkait dengan implementasi utas di Linux. Linux tidak memiliki dukungan utas eksplisit. Di ruang pengguna, kami mungkin menggunakan perpustakaan utas (seperti NPTL) untuk membuat utas. Sekarang jika kita menggunakan NPTL, ini mendukung pemetaan 1: 1. Kernel akan menggunakan clone()fungsi tersebut untuk mengimplementasikan utas. Misalkan saya telah membuat …

6
Bagaimana cara menghindari peringatan transparent_hugepage / defrag dari mongodb?
Saya menerima peringatan berikut dari mongodb tentang 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' Tapi saya berhasil mematikan THP secara manual frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag always madvise [never] Saya melakukan trik …

2
Apa itu? = Di Makefile
KDIR ?= $(shell uname -r) Apa arti dari ?=? Saya telah memahami perbedaan antara :=, +=dan =dari utas lain yang tersedia di Stack Overflow, tetapi tidak dapat menemukan penjelasannya ?=.

2
Apa itu vdso dan vsyscall?
aku melakukannya sudo cat /proc/1/maps -vv Saya mencoba memahami hasilnya. Saya dapat melihat banyak pustaka bersama yang dipetakan ke segmen pemetaan memori seperti yang diharapkan. 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 7f3c0037b000-7f3c00383000 …
89 c  linux  linux-kernel  kernel  vdso 

3
Menggunakan gdb ke kode perakitan satu langkah di luar yang dapat dieksekusi menyebabkan kesalahan "tidak dapat menemukan batas fungsi saat ini"
Saya berada di luar target gdb yang dapat dieksekusi dan saya bahkan tidak memiliki tumpukan yang sesuai dengan target itu. Saya ingin melakukan satu langkah, sehingga saya dapat memverifikasi apa yang terjadi dalam kode assembly saya, karena saya bukan ahli dalam perakitan x86. Sayangnya, gdb menolak melakukan proses debug tingkat …

4
Apa perlunya kawat gigi kosong '{}' di akhir array struct?
Saya menekan beberapa kode c di kernel Linux: 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
Mengapa mendefinisikan makro untuk suatu fungsi dengan nama yang sama?
Saya menemukan kode di bawah ini di https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/atomic.h 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 apa yang #definesebenarnya dilakukan? Kapan itu perlu dilakukan?
12 c  linux-kernel 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.