«linux-kernel» etiketlenmiş sorular

Bu etiket, Linux çekirdeğinin kendi iç bileşenleriyle ilgili sorular içindir - özellikle çekirdek bağlamında (çekirdek modülleri veya sürücüler gibi) çalışan kod yazma hakkında. Linux'ta kullanıcı alanı kodu yazmayla ilgili sorular genellikle bunun yerine [linux] olarak etiketlenmelidir. Linux çekirdeğinin iç bileşenleri sürekli değiştiği için, ilgilendiğiniz kesin çekirdek sürümlerini dahil etmek yararlıdır.

3
İş parçacıkları aynı PID'yi paylaşıyorsa, nasıl tanımlanabilirler?
İş parçacığının Linux'ta uygulanmasıyla ilgili bir sorgum var. Linux, açık bir iş parçacığı desteğine sahip değildir. Kullanıcı alanında, evreler oluşturmak için bir iş parçacığı kitaplığı (NPTL gibi) kullanabiliriz. Şimdi NPTL kullanırsak, 1: 1 eşlemeyi destekler. Çekirdek, evreleri clone()uygulamak için işlevi kullanacaktır . 4 iş parçacığı oluşturduğumu varsayalım. O zaman şu …

2
Bir Linux çekirdek modülü içindeki dosyaları oku / yaz
Bunun için / proc veya netlink'in nasıl kullanılacağından ziyade neden kernel'den dosya okumaması / yazmaması gerektiğine dair tüm tartışmaları biliyorum . Yine de okumak / yazmak istiyorum. Ayrıca Driving Me Fındık - Çekirdeğin Asla Yapmaması Gereken Şeyler'i okudum . Ancak sorun 2.6.30'un dışa aktarmamasıdır sys_read(). Aksine, sarılıdır SYSCALL_DEFINE3. Yani modülümde …

3
Bağlam, yeni linux çekirdeklerinde çok daha yavaş değişiyor
Sunucularımızdaki işletim sistemini Ubuntu 10.04 LTS'den Ubuntu 12.04 LTS'ye yükseltmek istiyoruz. Ne yazık ki, çalıştırılabilir hale gelen bir iş parçacığını çalıştırma gecikmesi 2.6 çekirdekten 3.2 çekirdeğe doğru önemli ölçüde artmış gibi görünüyor. Aslında, aldığımız gecikme sayılarına inanmak zor. Test hakkında daha net konuşmama izin verin. İki iş parçacığı çalıştıran bir …


6
Mongodb'dan transparent_hugepage / defrag uyarısı nasıl önlenir?
THP ile ilgili mongodb'den aşağıdaki uyarıyı alıyorum 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' Ama THP'yi manuel olarak kapatmayı başardım frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag always madvise [never] Ben ekleyerek hile yaptı transparent_hugepage=neveretmek …

2
= Makefile'da nedir?
KDIR ?= $(shell uname -r) Ne anlama geliyor ?=? Ben arasındaki farkı anlamış :=, +=ve =yığın taşması kullanılabilmektedir, ancak yapamaz başka bir iş parçacığı için açıklama bulmaya ?=.

2
Vdso ve vsyscall nedir?
yaptım sudo cat /proc/1/maps -vv Çıktıyı anlamaya çalışıyorum. Beklendiği gibi bellek eşleme segmentine eşlenen çok sayıda paylaşılan kitaplık görebiliyorum. 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 r-xp 00000000 08:01 21237216 /lib/x86_64-linux-gnu/libnih-dbus.so.1.0.0 7f3c00383000-7f3c00583000 …
89 c  linux  linux-kernel  kernel  vdso 

3
Belirtilen yürütülebilir dosyanın dışındaki tek adımlı derleme kodunu gdb kullanmak, "geçerli işlevin sınırları bulunamıyor" hatasına neden oluyor
Gdb'nin hedef yürütülebilir dosyasının dışındayım ve bu hedefe karşılık gelen bir yığınım bile yok. Yine de tek adımda yapmak istiyorum, böylece montaj kodumda neler olup bittiğini doğrulayabilirim, çünkü x86 montajında ​​uzman değilim. Ne yazık ki, gdb bu basit derleme düzeyinde hata ayıklamayı yapmayı reddediyor. Uygun kesme noktasını ayarlamama ve durdurmama …

5
Bir Linux G / Ç Zamanlayıcısının Seçilmesi
/ Sys / block / [disk] / queue / scheduler'a yazarak çalışan bir çekirdekteki belirli bir aygıt için G / Ç zamanlayıcısını değiştirmenin sözde mümkün olduğunu okudum. Örneğin sistemimde görebiliyorum: anon@anon:~$ cat /sys/block/sda/queue/scheduler noop anticipatory deadline [cfq] varsayılan, tamamen adil kuyruk planlayıcısıdır. Merak ettiğim, özel çekirdeğime dört zamanlayıcıyı da dahil …

4
Yapı dizisinin sonunda '{}' boş parantezlere ne gerek var?
Linux çekirdeğinde bazı c kodlarına çarptım: 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, }, { …

2
Dma_mmap_coherent () eşlenen belleğin sıfır kopya kullanıcı alanı TCP gönderimi
Linux 5.1'i bir çipte iki ARMv7 çekirdeği olan bir FPGA olan Cyclone V SoC'de çalıştırıyorum. Amacım bir dış arabirimden çok sayıda veri toplamak ve bu verileri bir TCP soketi aracılığıyla dışarı aktarmak. Buradaki zorluk, veri hızının çok yüksek olması ve GbE arayüzünü doyurmaya yaklaşmasıdır. Ben sadece write()soket çağrıları kullanan bir …

1
Neden aynı ada sahip bir işleve bir makro tanımlamalıyım?
Aşağıdaki kodu https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/atomic.h adresinde buldum. 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 #definegerçekten ne yapıyor ? Bunu yapmak ne zaman gereklidir?
12 c  linux-kernel 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.