linux-kernel

Co to jest ": -!!"w kodzie C?

Natknąłem się na ten dziwny kod makra w /usr/include/linux/kernel.h : /* Force a compilation error if condition is true, bu ... ERO(e) (sizeof(struct { int:-!!(e); })) #define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); })) Co robi :-!!?

Jaka jest teoretyczna maksymalna liczba otwartych połączeń TCP, jakie może mieć nowoczesny Linux box

Zakładając nieskończoną wydajność sprzętu, czy Linux box może obsługiwać >65536 otwartych połączeń TCP? Rozumiem, że licz ... dalnych hostach z wielu lokalnych adresów IP. Czy jest jeszcze 16-bitowy limit w systemie? Liczba deskryptorów plików może?

Dlaczego Linux nazywa się jądrem monolitycznym?

Czytałem, że Linux jest monolitycznym jądrem. Czy monolityczne jądro oznacza kompilację i łączenie całego kodu jądra w plik w ... jądro nie musi początkowo ładować wszystkich modułów i może utrzymywać indeks funkcji w module i ładować je w razie potrzeby.

Jak działa prawdopodobne / nieprawdopodobne makra w jądrze Linuksa i jakie są z nich korzyści?

Grzebałem w niektórych częściach jądra Linuksa i znalazłem takie wywołania: if (unlikely(fd < 0)) { /* Do something ... I czy warto (i utraty przenośności prawdopodobnie) przynajmniej w wąskim gardle kodu (w przestrzeni użytkownika, oczywiście).

Zmierz czas w Linuksie-time vs clock vs getrusage vs clock gettime vs gettimeofday vs timespec get?

Wśród funkcji czasu, time, clock getrusage, clock_gettime, gettimeofday i timespec_get, chcę jasno zrozumieć, w jaki sposób s ... jest w stanie być tak dokładne, jeśli pozwala na to podstawowy sprzęt? A co z monotonicznością? Czy są jakieś inne funkcje?

stos jądra i stos przestrzeni użytkownika

Jaka jest różnica między stosem jądra a stosem użytkownika? Dlaczego Kernel stack jest używany? Jeśli zmienna lokalna jest za ... gdzie będzie przechowywana? Czy każdy proces ma swój własny stos jądra ? Więc jak proces koordynuje się między tymi stosami?

Kontekst przełącza się znacznie wolniej w nowych jądrach Linuksa

Chcemy zaktualizować system operacyjny na naszych serwerach z Ubuntu 10.04 LTS do Ubuntu 12.04 LTS. Niestety, wydaje się, że ... an w jądrze i osobistych badaniach, odkryłem na czym polega problem i opublikowałem rozwiązanie jako odpowiedź na to pytanie.

Odczyt/zapis plików w module jądra Linuksa

Znam wszystkie dyskusje o tym, dlaczego nie należy odczytywać/zapisywać plików z jądra, zamiast tego jak używać / proclub n ... open() nie są eksportowane)? ogólnie, jak używać wywołań systemowych zawiniętych w makro SYSCALL_DEFINEn() z wnętrza jądra?

Jak używać gniazda netlink do komunikacji z modułem jądra?

Próbuję napisać moduł jądra Linuksa, który komunikuje się z procesem użytkownika za pomocą netlink. Używam netlinka, ponieważ ... ting hello module\n"); netlink_kernel_release(nl_sk); } module_init(hello_init); module_exit(hello_exit);

Jądro Linuksa: przykład hakowania wywołań systemowych

Próbuję napisać prosty kod testowy jako demonstrację podpięcia tabeli wywołań systemowych. "sys_call_table" nie jest już eks ... ] = our_sys_open; } void cleanup_module() { // Restore the original call sys_call_table[__NR_open] = original_call; }

Jak rozpocząć naukę programowania,kodowania lub czytania jądra Linuksa? [zamknięte]

Mam do tego celu dwie książki: rozwój jądra Linuksa autorstwa Roberta Love I O 'Reilly' s Zrozumienie jądra Linuksa. Zaczął ... kie sugestie, które pomogą mi w dalszym postępowaniu. Powiedz mi też, jak nauczyłeś się programować jądro? Z góry dziękuję...

Ustalenie, który proces został zabity przez linuksowego zabójcę Oom

Gdy w Linuksie zabraknie pamięci (OOM), zabójca OOM wybiera proces do zabicia na podstawie jakiejś heurystyki (to interesując ... http://lwn.net/Articles/317814/). Jak można programowo określić, które procesy zostały ostatnio zabite przez zabójcę OOM?

Czy bool to rodzimy Typ C?

Zauważyłem, że kod jądra Linuksa używa boola, ale myślałem, że bool jest typem C++. Czy bool jest standardowym rozszerzeniem C (np.

Wewnętrzne przełączniki kontekstowe

Chcę się uczyć i uzupełniać braki w mojej wiedzy za pomocą tego pytania Więc, użytkownik uruchamia wątek (na poziomie jądra ... ątek, który może uruchamiać tylko kod jądra)? Czy istnieje oddzielny stos jądra dla każdego wątku jądra lub każdego procesu?

IOCTL Linux device driver

Czy ktoś może mi wyjaśnić, Co to jest IOCTL? w jakim celu się go stosuje? Jak mogę go użyć? Dlaczego nie mogę zdefiniować nowej funkcji, która działa tak samo jak IOCTL?

Jaka jest różnica między vmalloc a kmalloc?

Poszperałem w googlach i znalazłem większość ludzi opowiadających się za używaniem kmalloc, ponieważ masz gwarancję, że dosta ... normalny przydział i może zablokować. To jest flaga do użycia w kodzie kontekstu procesu, gdy jest to bezpieczne dla śpij.

Wybieranie harmonogramu We/Wy Linuksa

Czytałem, że podobno można zmienić scheduler We / Wy dla konkretnego urządzenia na uruchomionym jądrze, zapisując do / sys/bl ... sprzętu, w szczególności harmonogram "noop" dla dysków flash i jeden z innych dla tradycyjnego dysku twardego. Czy tak jest?

Dlaczego kod jądra/wątek wykonujący w kontekście przerwania nie może być uśpiony?

Czytam następujący artykuł Roberta Love Http://www.linuxjournal.com/article/6916 To mówi "...Omówmy fakt, że kolejki p ... ę. Co powstrzymuje scehdulera przed uśpieniem kontekstu przerwania i przejęciem kolejnego procesu i przekazaniem mu kontroli?

Linux Kernel live debugging, jak to się robi i jakie narzędzia są używane?

Jakie są najczęstsze i dlaczego nie rzadkie metody i narzędzia używane do debugowania na żywo w jądrze Linuksa? Wiem, że Linu ... chwili (lokalne czy zdalne)? Mile widziane są odniesienia do solucji i samouczków na temat wspomnianych technik i narzędzi.

Jak jądro Linuksa zarządza mniej niż 1GB pamięci fizycznej?

Uczę się jądra Linuksa i podczas czytania "Understanding Linux Kernel", uderzyło mnie kilka pytań związanych z pamięcią. Jedn ... użytkownika zużywają pozostałą ilość pamięci RAM. Byłbym wdzięczny za każdą pomoc w poprawie mojego zrozumienia. Dzięki..!