«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.

5
Nedir ":-!!" C kodunda?
Ben de bu garip makro kod çarptı /usr/include/linux/kernel.h : /* Force a compilation error if condition is true, but also produce a result (of value 0 and type size_t), so the expression can be used e.g. in a structure initializer (or where-ever else comma expressions aren't permitted). */ #define BUILD_BUG_ON_ZERO(e) …
1665 c  linux  macros  linux-kernel 

10
Linux çekirdeğindeki olası / olası olmayan makrolar nasıl çalışır ve faydaları nelerdir?
Linux çekirdeğinin bazı bölümlerini araştırıyorum ve şu şekilde aramalar buldum: if (unlikely(fd < 0)) { /* Do something */ } veya if (likely(!err)) { /* Do something */ } Bunların tanımını buldum: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) Optimizasyon için olduklarını biliyorum, ama nasıl çalışırlar? Ve bunları kullanmaktan ne kadar …

11
Bool yerel bir C tipi midir?
Linux çekirdek kodunun bool kullandığını fark ettim, ama bool'ün bir C ++ tipi olduğunu düşündüm. Bool standart bir C uzantısı mı (örn. ISO C90) veya bir GCC uzantısı mı?
265 c  gcc  linux-kernel  boolean 


3
Modern bir Linux kutusunun sahip olabileceği teorik maksimum açık TCP bağlantısı sayısı nedir?
Donanımdan sonsuz performans varsayarsak, bir Linux kutusu 65536'dan fazla açık TCP bağlantısını destekleyebilir mi? Geçici bağlantı noktalarının sayısının (<65536), bir yerel IP'den bir uzak IP'deki bir bağlantı noktasına bağlantı sayısını sınırladığını anlıyorum. Tuple (yerel ip, yerel bağlantı noktası, uzak ip, uzak bağlantı noktası) bir TCP bağlantısını benzersiz olarak tanımlayan şeydir; …

4
Linux'ta maksimum TCP / IP bağlantısı sayısını artırma
Bir sunucu programlıyorum ve bağlantı sayısını "sınırsız" olarak ayarladığımda bile bant genişliğim doygun olmadığından bağlantı sayım sınırlı görünüyor. Ubuntu Linux kutumun aynı anda açabileceği maksimum bağlantı sayısını nasıl artırabilir veya kaldırabilirim? İşletim sistemi bunu sınırlıyor mu yoksa yönlendirici mi, ISS mi? Yoksa başka bir şey mi?

6
Linux neden monolitik çekirdek olarak adlandırılır?
Linux'un monolitik bir çekirdek olduğunu okudum. Monolitik çekirdek, tüm çekirdek kodunu bir çalıştırılabilir dosyaya derlemek ve bağlamak anlamına mı geliyor? Linux modülleri destekleyebiliyorsa, neden tüm alt sistemleri modüllere ayırıp gerektiğinde yüklemeyesiniz? Bu durumda, çekirdek başlangıçta tüm modülleri yüklemek zorunda değildir ve modüldeki işlevlerin bir dizinini koruyabilir ve gerektiğinde bunları yükleyebilir.


2
Linux'ta zamanı ölçün - saat vs getrusage, clock_gettime, gettimeofday ve timespec_get?
Zamanlama fonksiyonları arasında, time, clock getrusage, clock_gettime, gettimeofdayve timespec_get, onlar nasıl uygulandığını açıkça anlamak istiyorum ve hangi durumlarda bunları kullanmak zorunda bilmek için onların dönüş değerleri nelerdir. Öncelikle, duvar saati değerlerini döndüren işlevleri, süreç veya iş parçacığı değerlerini döndüren işlevlerle karşılaştırmalıyız . kendisine geçirilen parametreye göre duvar gettimeofdaysaati değerini clock_gettimedöndürür, …
149 c  linux  time  linux-kernel 


5
Linux'ta kayıp yazmalara neden olan I / O hatalarıyla başa çıkmak için programlar yazma
TL; DR: Linux çekirdeği arabellekli bir G / Ç yazımını kaybederse , uygulamanın öğrenmesi için herhangi bir yol var mı? fsync()Dayanıklılık için dosyaya (ve üst dizinine) sahip olduğunuzu biliyorum . Soru, çekirdek bir G / Ç hatası nedeniyle yazma bekleyen kirli arabellekleri kaybederse , uygulama bunu nasıl algılayabilir ve kurtarabilir …
138 c  linux  linux-kernel  posix 

2
IOCTL Linux aygıt sürücüsü [kapalı]
Kapalı . Bu soruya daha çok odaklanılması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek mi istiyorsunuz? Soruyu yalnızca bu gönderiyi düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . Geçen yıl kapalı . Bu soruyu geliştirin Biri bana açıklayabilir mi Nedir IOCTL? Ne için kullanılır? Nasıl kullanabilirim? Neden …

7
Vmalloc ve kmalloc arasındaki fark nedir?
Etrafta dolaştım ve kmallocbitişik fiziksel bellek blokları elde edeceğiniz garantili olduğundan, çoğu insanın kullanımını savunan buldum . Bununla birlikte, istediğiniz kmallocbitişik bir fiziksel blok bulunamazsa başarısız olabilir gibi görünüyor . Bitişik bir bellek bloğuna sahip olmanın avantajları nelerdir? Özellikle, neden bir sistem çağrısında bitişik fiziksel bellek bloğuna ihtiyacım olsun ki …


7
İşaretli dosya taşınır veya silinirse, Linux'ta açık bir dosya tutamacına ne olur?
Bu arada sivri uçlu dosya şunu alırsa, Linux'ta açık bir dosya tanıtıcısına ne olur: Taşındı -> Dosya tanıtıcısı geçerli kalıyor mu? Silindi -> Bu geçersiz bir dosya tutamacını gösteren bir EBADF'ye yol açar mı? Yeni bir dosya ile değiştirildi -> Dosya tanıtıcısı bu yeni dosyayı gösteriyor mu? Yeni bir dosyaya …

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.