Linux Kernel. Michał Kulling. matrix@arahnet.org. www.arahnet.org



Podobne dokumenty
Kompilacja jądra systemu Linux

GRUB (GRand Unified Bootloader) - jest bootloaderem instalowanym standardowo w Ubuntu, potrafiącym obsłużyć kilka systemów jednocześnie (Multiboot).

Acronis Universal Restore

System kontroli dostępu ACCO NET Instrukcja instalacji

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa)

K. Konopko; Toolchain. Jądro Linuksa. dr inż. Krzysztof Konopko

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

Sprawozdanie z zadania 2. Artur Angiel, śr. 12:15

Memeo Instant Backup Podręcznik Szybkiego Startu

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

SystimPlus. Dokumentacja (FAQ) dla wersji: v

Instalacja i opis podstawowych funkcji programu Dev-C++

Wstęp 5 Rozdział 1. SUSE od ręki 13

Kernel Kompilacja jądra

Acronis Backup & Recovery 10 Server for Linux. Instrukcja szybkiego rozpoczęcia pracy

BF20 JTAG dla ARM ów z interfejsem USB Instrukcja obsługi

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Instalacja Ubuntu 12.12

Tworzenie połączenia szerokopasmowego /PPPoE/ dla sieci SOLARNET w systemie Linux

Wstęp 5 Rozdział 1. Instalowanie systemu 11

INSTRUKCJA INSTALACJI I PIERWSZEGO URUCHOMIENIA APLIKACJI Rodzajowa Ewidencja Wydatków plus Zamówienia i Umowy

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux

Poziomy wymagań Konieczny K Podstawowy- P Rozszerzający- R Dopełniający- D Uczeń: z zakresu systemów

Spis treści. O autorze 9. O recenzentach 10. Przedmowa 13. Rozdział 1. Oto Linux Mint 17_

Instalacja NOD32 Remote Administrator

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

Instrukcja postępowania przy najczęściej występujących problemach technicznych

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Sieciowa instalacja Sekafi 3 SQL

1. Instalacja Programu

Instalacja aplikacji

Szybki start instalacji SUSE Linux Enterprise Server 11

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Laboratorium - Instalacja systemu Windows 7

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

Ewidencja Wyposażenia PL+

Instalacja rozwiązania Uruchomienie rozwiązania w systemie Sage Konfiguracja dodatku Ustawienia dodatkowe rozwiązania...

Podręcznik KGet. Gaurav Chaturvedi : Michał Bendowski : Jan Stożek

Tworzenie wirtualnej maszyny

Instrukcja instalacji oprogramowania pixel-fox

Instrukcja aktualizacji oprogramowania. Wersja dokumentu: 01i00 Aktualizacja:

Szybki start instalacji SUSE Linux Enterprise Server 11 SP1

System operacyjny Linux

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

INSTRUKCJA INSTALACJI

Instalacja programu Warsztat 3 w sieci

UNIFON podręcznik użytkownika

Instrukcja instalacji wtyczki Przelewy24

Internetowy serwis Era mail Aplikacja sieci Web

Dodatki. Dodatek A Octave. Język maszyn

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Q E M U.

4. Podstawowa konfiguracja

Instalacja i konfiguracja konsoli ShadowControl

Podręcznik instalacji Command WorkStation 5.6 z aplikacjami Fiery Extended Applications 4.2

Usługi sieciowe systemu Linux

Połączenia. Obsługiwane systemy operacyjne. Instalowanie drukarki przy użyciu dysku CD Oprogramowanie i dokumentacja

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu MacOS

Instalacja i podstawowa konfiguracja aplikacji ImageManager

Opis modułu pl.id w programie Komornik SQL-VAT

Część zadań będzie już zrobiona, np. część programów zainstalowana, ale proszę przeczytać instrukcje i ew. np. zainstalować w domu.

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

Tytuły Wykonawcze. Opis systemu tworzenia dokumentacji TW-1

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Linux

InPost PACZKOMATY. (Moduł Magento 2) v Strona 1 z 18

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie

Automatyczna instalacja oprogramowania.

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Konfiguracja i kompilacja jądra Linux. Based on Free Electrons

Podręcznik użytkownika

UCanlogUpdater INSTRUKCJA OBSŁUGI

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Diagnostyka pamięci RAM

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

IBM SPSS Statistics Wersja 24. Windows Instrukcja instalacji (licencja wielokrotna) IBM

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

Kalipso wywiady środowiskowe

INSTRUKCJA INSTALACJI SLACKWARE LINUX + LMS

Pracownia Technik Obliczeniowych

IBM SPSS Statistics Version 22. Windows - Instrukcja instalacji (licencja wielokrotna)

Instrukcja aktualizacji oprogramowania routera D-Link DWR-932 C1 (do wersji 1.0.3CPGb01)

I. Uruchomić setup i postępować według instrukcji

Instrukcja użytkownika

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności:

Włóż płytę instalacyjną z systemem Windows Vista do napędu DVD ROM lub podłącz pamięć flash USB do portu USB.

Instalacja i konfiguracja SAS PC Files Server

w o l f e n s t e i n ENEMY TERRITORY P O R A D N I K INSTALACJA GRY W SYSTEMIE WINDOWS et.wrocek.com:27960

PlantVisor_1.90PL Instrukcja instalacji, konfiguracji oraz obsługi

Transkrypt:

Linux Kernel Michał Kulling matrix@arahnet.org www.arahnet.org

Cele prezentacji Przedstawienie co to jest jądro systemu Co to jest jądro Linux Przedstawienie ogólnych informacji o jądrze systemu Linux Kto tworzy jądro Linux Jak się tworzy oraz rozwija jądro Linux Aktualizacja jądra w systemie Linuksowym, kompilacja oraz instalacja

Co to jest jądro systemu... Jądro (kernel) jest centralnym miejscem systemu operacyjnego. To on decyduje o uruchomieniu danej aplikacji, a co wiąże się z tym przydzieleniem jej odpowiedniego miejsca w pamięci wewnętrznej jądra oraz pamięci RAM (również SWAP), obsługa komunikatów, komunikacji między procesorowej, warstwa wirtualna, warstwa systemu plików i wiele innych rzeczy które potrzebuje aplikacja do istnienia. Jądro również zawiera odpowiednie sterowniki (w systemie Linux mówimy o modułach jądra do obsługi sprzętu (modules)) modułami mogą być również aplikacje działające jako deamony (aplikacje działające w tle). Podsumowując - gdyby nie było jądra, nie było by systemu.

Jak pracuje jądro Linux... Ładowanie jądra do pamięci komputera Wyszukiwanie sprzętu, ładowanie sterowników Sprawdzanie dysków, montowanie partycji Ustawianie systemu kodowania, czasu, zmiennych globalnych Uruchamianie interfejsów sieciowych (lo, eth0) Uruchamianie procesów potomnych w postaci daemonów (procesów pracujących w tle, np. inetd, apache2, crontab...) Proces logowania użytkownika poprzez konsole lub graficzny menedżer logowania (np. gdm, kdm, xdm).

Jak pracuje jądro Linux...

Informacje o jądrze Linux Publikowany na licencji GNU/GPL Aktualna wersja: linux-2.6.22.6 Ostatnia data wydania: 2007-08-31 Skąd można pobrać jądro: www.kernel.org Dokumentacja jądra: www.linux.dzien-email.org/prezentacja/kernel/docbook.zip

Kto tworzy jądro Linux Pierwotnym twórcą jest duńczyk Linus Torvalds. Z biegiem lat dołączyła do niego rzesza programistów z całego świata. Każda osoba nawet nie znająca się na programowaniu może wesprzeć tworzenie jądra Linuksa.

Jak się tworzy oraz rozwija jądro Linux Poprawki kodu, tłumaczeń dokumentacji Dodawanie nowych modułów w formie kodu w języku C, C++ Poszukiwanie i zgłaszanie błędów w pracy działania jądra (wycieki pamięci, nie działające moduły, wyjątki występowania Kernel Panic) Dofinansowania do projektu (utrzymanie serwera potrzebnych do prac kosztuje :-)

Aktualizacja jądra Jak zaktualizować nasze jądro gdy jest już przestarzałe i powoli przestaje wspierać nasz najnowszy sprzęt...

Aktualizacja jądra Z biegiem czasu, nasze jądro się starzeje. Przestaje wspierać najnowszy sprzęt, najnowsze protokoły, jakieś aplikacje odmawiają posłuszeństwa. Jest na to sposób...

Aktualizujemy nasze jądro Aktualizacja jądra!

Aktualizujemy nasze jądro W tym celu potrzebujemy: Najnowszą paczkę z naszym nowym jądrem którą pobierzemy ze strony: www.kernel.org Pobieramy pełną wersje (F Full) ma ona rozmiar około 45MB. Zainstalowane programy i biblioteki: gcc, g++, g77, make, libstd++, libc, mkinitramfs...

Aktualizujemy nasze jądro Co zawiera paczka linux-2.6.22.6.tar.bz2? Zawiera ona źródła jądra. Jest tam około 30 tysięcy plików z kodem źródłowym pisanym w językach C, C++, Perl i innych. Zawiera również dokumentację dotyczącą funkcji jądra oraz tzw. Kernel Hacking.

Pierwsze kroki Pobrana paczka ma nazwę: linux-2.6.22.6.tar.bz2 jest to spakowany folder ze źródłem jądra. Aby go rozpakować wydajemy polecenie w terminalu: # cd /usr/src/ # tar -xf $ADDR/linux-2.6.22.6.tar.bz2 # cd linux-2.6.22.6 (Gdzie $ADDR tam ścieżka gdzie zapisaliśmy paczkę) Następnie czyścimy konfigurację poleceniem make: # make mrproper

Konfiguracja przed kompilacją Teraz musimy skonfigurować jądro, czyli wybrać co ma być zawarte w naszym jądrze. Jest dostępnych kilka sposobów konfiguracji: make config - konfiguracja tekstowa, dużo pytań na temat obsługiwania sprzętu, sieci, sterowników, systemów plików i innych - zalecane dla zaawansowanych użytkowników.

make config

Konfiguracja make menuconfig - kolorowa konfiguracja tekstowa semigraficzna dodatkowo opisy elementów konfiguracyjnych. make xconfig - graficzne menu, wybór modułów przez zaznaczenie krzyżykiem odpowiedniego pola, podział na kategorie i pod kategorie, opisy elementów. Wymaga zainstalowane elementy Qt3 bądź Qt4, wszelkie biblioteki graficzne Qt.

make xconfig

Konfiguracja make gconfig - graficzne menu, wybór modułów przez zaznaczenie krzyżykiem odpowiedniego pola, podział na kategorie i pod kategorie, opisy elementów. Wymaga zainstalowane elementy GTK, glib, libglade, wszelkie biblioteki graficzne GTK+. make oldconfig - konfiguracja taka sama co aktualnie zainstalowanego jądra, dodatkowe pytania, głównie co do nowości zaimplementowanych w jądro, często ciekawe i przydatne. Ten sposób jest przeze mnie zalecany!

make gconfig

make oldconfig

Konfiguracja make silentoldconfig - konfiguracja poprzedniej konfiguracji... make defconfig - konfiguracja na podstawie domyślnych ustawień dostarczonych wraz z jądrem. make allyesconfig - wszystko jest ustawiane na Instaluj (wszystkie moduły są dodawane do kompilacji).

make defconfig

make allyesconfig

Konfiguracja make allmodconfig - wszystkie moduły są instalowane, a pytania z możliwościami Y/n są oznaczane jako Y - yes. make allnoconfig - wszystkie pytania są automatycznie oznaczane jako Nie instaluj (minimalna wersja jądra), nie zalecana dla niezaawansowanych użytkowników. make randconfig - coś w stylu "wybierz co chcesz", system sam dobiera co będzie zainstalowane a co nie, również nie zalecam dla niezaawansowanych użytkowników.

make allmodconfig

make allnoconfig

make randconfig

Konfiguracja Teraz wpisujemy komendę make wraz ze sposobem konfiguracji (w prezentacji wykorzystujemy komendę make oldconfig): # make oldconfig Musimy odpowiadać na każde pytanie, alternatywą jest wciskanie klawisza Enter cały czas co wiąże się z domyślnymi ustawieniami, lecz czasem warto przeczytać jakie są nowości i może nawet je zaakceptować.

Proces konfiguracji Proces konfiguracji może trochę trwać (zależnie od wybranego typu konfiguracji). Dla make oldconfig proces ten będzie trwał aż do wyczerpania pytań. Dla np. make defconfig proces ten będzie trwał aż system zaznaczy wszystkie odpowiedzi. Mogą wystąpić błędy. Najczęściej są one związane z brakiem zainstalowanych wymaganych pakietów. Dlatego proszę się upewnić, że mamy wszystkie pakiety zainstalowane tuż przed konfiguracją.

Kompilujemy jądro A więc teraz przyszedł czas na gwóźdź programu. Proces kompilacji to proces przetwarzania kodu źródłowego na kod zrozumiały dla maszyny (kod binarny 0101100...). Następnie wszystkie pliki są konsolidowane czyli łączone. Proces kompilacji oraz konsolidacji może być krótszy lub dłuższy. Wszystko zależy od ilości kodu oraz od prędkości naszego komputera.

Kompilujemy jądro W celu kompilacji jądra wydajemy polecenie: # make Czas kompilacji może zająć od 25 do ponad godziny. Zalecam podczas kompilacji nie pracować na programach zajmujących dużo pamięci oraz procesora, takich jak gry czy odtwarzacze filmów. To ma naprawdę wielkie znaczenie podczas kompilacji. Takie działające programy bardzo spowalniają ten proces.

Kompilujemy jądro Podczas kompilacja mogą wyskakiwać różne błędy, na przykład w postaci: kernel/auditfilter.c: In function audit_receive_filter : kernel/auditfilter.c:1213: warning: ndw may be used uninitialized in this function kernel/auditfilter.c:1213: warning: ndp may be used uninitialized in this function Proszę się nimi nie przejmować. Nie przeszkadzają one w prawidłowej kompilacji jądra oraz w jego późniejszym użytkowaniu.

Kompilacja jądra Tuż po kompilacji jądra, wydajemy polecenie: # make modules które skompiluje wszystkie moduły jądra, następnie: # make modules_install ta komenda instaluje wszystkie moduły do folderu /lib/modules/2.6.22.6/

Instalujemy jądro Tuż po udanym kompilowaniu jądra oraz modułów przyszedł czas na jego instalację. Aby zainstalować nasze nowe jądro wydajemy polecenie: # make install W tym momencie nasze jądro zostaje umieszczone w katalogu /boot o nazwie: vmlinuz-2.6.22.6

Instalacja jądra Dla poprawnego działania jądra, tzn poprawnego uruchomienia wymagany jest początkowy ramdysk, czyli obraz zawierający początkowe pliki jądra takie jak moduły oraz skrypt INIT. Aby stworzyć taki obraz ramdysku używamy programu mkinitramfs. (Nie zawsze musimy posiadać ramdysk. W naszym bootloaderze możemy zaznaczyć skąd jądro ma pobierać pliki: init=/dev/hda1)

Tworzenie ramdysku Aby utworzyć nowy obraz ramdysku wydajemy polecenie: # mkinitramfs -o /boot/initrd.img-2.6.22.6 2.6.22.6 Szkielet polecenia wygląda tak: mkinitramfs -o /gdzie/zapisac.imgnumer_jadra numer_jadra gdzie numer_jadra trzeba podać numer np. 2.6.22.6 lub inny zależnie od wersji. Zapraszam do: man mkinitramfs(8)

Instalacja jądra Następnym krokiem jest dodanie wpisu do naszego boot loadera. Aby to zrobić trzeba z edytować plik konfiguracyjny naszego programu rozruchowego. W celu prezentacji użyjemy programu GRUB.

Konfiguracja GRUB-a 1. Otwieramy plik menu.lst zawierający listę dostępnych systemów operacyjnych: # cd /boot/grub/ # nano menu.lst 2. Dodajemy na końcu pliku nową sekcje: title Debian GNU/Linux, kernel 2.6.22.6 root (hdx,x) kernel /boot/vmlinuz-2.6.22.1 root=/dev/hdax ro vga=792 initrd /boot/initrd.img-2.6.22.1 savedefault 3. Zapisujemy plik.

Konfiguracja GRUB-a title Debian GNU/Linux, kernel 2.6.22.6 root (hdx,x) kernel /boot/vmlinuz-2.6.22.1 root=/dev/hdax ro vga=792 initrd /boot/initrd.img-2.6.22.1 savedefault Gdzie (hdx,x) podajemy wartości z poprzednich wpisów. Tak samo postępujemy z root=/dev/hdax.

Po instalacji jądra... To już koniec instalacji naszego jądra. W tym momencie możemy zrestartować komputer, wybrać pozycję z nowym jądrem i cieszyć się pełnymi możliwościami naszego jądra. Stare jądro wraz z jego konfiguracją zostało nie tknięte. W razie problemów zawsze można przerzucić się na starszy model jądra :-) To jeszcze nie koniec prezentacji...

Dodatki dla wymagających Twórcy jądra Linux pomyśleli również o ludziach tworzących oprogramowanie, którzy wykorzystują funkcje jądra takie jak syscalls (wywołania systemowe). Wszystko jest opisane w DocBooku dołączonego do źródeł jądra. Aby stworzyć takiego DocBooka wystarczy wydać odpowiednią komendę...

Dodatki dla wymagających Aby stworzyć DocBooka wydajemy następujące polecenia: # cd /usr/src/linux-2.6.22.6/ # make htmldocs Dokumentacja po skompilowaniu dostępna jest w folderze: /usr/src/linux-2.6.22.6/documentation/docbook Do poprawnej kompilacji dokumentacji wymagany jest pakiet xmlto.

Dodatki dla wymagających Dostępna jest dokumentacja w PDF: # make pdfdocs XML: # make xmldocs SGML: # make sgmldocs PSD: # make psdocs strony MAN: # make mandocs # make installmandocs

Dodatki dla wymagających Co zawiera DocBook? Kernel API wykaz funkcji dostępnych do programowania Omówienie stylu pisania kodu jądra Oprogramowanie sterowników Opisanie funkcji I/O Opisanie funkcji związanych z USB, sterownikami urządzeń i wiele innych... Kernel Hacking Guide (unreliable)

Kernel Hacking Czym jest Kernel Hacking? Jest to głębsze poznawanie funkcji jądra Linuksa, wykorzystywanie ich do własnych celów, we własnych programach. Jest to również wiedza o tajnikach jądra, ważnych fragmentów kodu oraz sposobu ich wykorzystywania. Kernel Hacking to również umiejętność wstawiania własnych fragmentów kodu, sterowników oraz modułów do jądra a następnie kompilacja zakończona sukcesem.

Kernel Hacking

Kernel Hacking

Kernel Hacking

Koniec Dziękuję za uwagę. Michał Kulling