Wst p do moduªów. Marcin Milewski. Wrocªaw, 28 pa¹dziernika Instytut Informatyki Uniwersytetu Wrocªawskiego

Podobne dokumenty
Linux Kernel II. Hello kernel - jak napisać pierwszy moduł

Laboratorium 1: Moduły jądra systemu Linux (jedne zajęcia) dr inż. Arkadiusz Chrobot

Warstwy systemu Windows 2000

Wzorce projektowe kreacyjne

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

Konfiguracja historii plików

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Kompilowanie programów

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz 24 czerwca Podstawowe funkcje. 2.1 Windows

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Wykład 2. Budowa komputera. W teorii i w praktyce

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

Cyfrowe Ukªady Scalone

Instalacja programu Sprzeda z motorem. bazy danych Pervasive V8

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

Subversion - jak dziaªa

1. Odcienie szaro±ci. Materiaªy na wiczenia z Wprowadzenia do graki maszynowej dla kierunku Informatyka, rok III, sem. 5, rok akadem.

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS

1. Wprowadzenie do C/C++

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

... Ireneusz Mrozek. Wydział Informatyki

YapS Plan testów. Šukasz Bieniasz-Krzywiec Dariusz Leniowski Jakub Š cki 29 maja 2007

Dokumentacja i systemy jako±ci

Low Level Virtual Machine

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

J zyk C dla sterowników programowalnych GeFanuc

Programowanie obiektowe w C++ Wykªad 4

Kopia zapasowa i odzyskiwanie Podręcznik użytkownika

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

1. Wprowadzenie do C/C++

ĆWICZENIE NR 4 KONFIGURACJA JĄDRA, USŁUGI SIECIOWE. KATEDRA ELEKTRONIKI POLITECHNIKA LUBELSKA

Programowanie obiektowe zastosowanie języka Java SE

Przetwarzanie sygnaªów

Lekcja 6 Programowanie - Zaawansowane

Charakterystyka systemów plików

Programowanie wspóªbie»ne

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

Listy i operacje pytania

Makroekonomia Zaawansowana

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Lab. 02: Algorytm Schrage

Instalacja programu Sprzeda

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Linux VServer - wirtualizacja przez separacj

Bazy danych. Andrzej Łachwa, UJ, /15

Analiza wydajno±ci serwera openldap

Karty kryptograczne w ±rodowisku Linux

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Funkcje, wielomiany. Informacje pomocnicze

Wska¹niki, tablice dynamiczne wielowymiarowe

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

2.1 INFORMACJE OGÓLNE O SERII NX

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Interpreter opisu dziaªa«quadrokoptera wtyczki. 1 Ogólny opis zadania. 2 Skªadnia nowych polece« 2.1 Polecenie Grasper

Dostp do zasobów dyskowych uytkowników lcme10 przez protokół SMB (Microsoft Networking)

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Ashampoo Rescue Disc

Centralizacji Systemu. Procedury zasilania danymi systemu LAS oprogramowania do aktualizacji LMN. etap C13 pkt 5

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Systemy operacyjne II

Java Code Signing Uycie certyfikatów niekwalifikowanych do podpisywania kodu w technologii Java. wersja 1.1 UNIZETO TECHNOLOGIES SA

Kompilacja jądra systemu Linux

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

Bash i algorytmy. Elwira Wachowicz. 20 lutego

System komputerowy - hardware (schemat uproszczony) System operacyjny. Składniki systemu. Struktury systemów operacyjnych

VMware, QEMU, UML. oraz inne wirtualne maszyny. Piotr Findeisen Filip Grządkowski Piotr Kuśka Krzysztof Mroczek

Przetwarzanie sygnaªów

3.1 Budowa jądra Linux'a Poniższy rysunek przedstawia blokow ą budow ę jądra Linux'a. The System Call Interface

Wstawianie gotowych rysunków w texu - informacje podstawowe.

Kernel Kompilacja jądra

Budowa systemów komputerowych

DOS Podstawowe komendy Przygotowanie dyskietki do pracy Praca z katalogami w systemie DOS Operacje kopiowania

Przykªadowe tematy z JiMP

Podstawy informatyki

2 Skªadnia polece«w pliku

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

Liniowe równania ró»niczkowe n tego rz du o staªych wspóªczynnikach

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Wzorce projektowe strukturalne cz. 1

Programowanie i struktury danych

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Lekcja 3 Banki i nowe przedmioty

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Wprowadzanie i zmiany faktur z zakupu, wydruk rejestru zakupu

Rozwi zania klasycznych problemów w Rendezvous

Projekt. Projekt opracował Inż. Roman Polski

Akademia Rodzinnych Finansów

Programowanie Proceduralne

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)


Wprowadzenie 5 Rozdział 1. Lokalna sieć komputerowa 7

Systemy Operacyjne - Operacje na plikach

Instalacja programów Ubuntu

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Transkrypt:

Wst p do moduªów Marcin Milewski Instytut Informatyki Uniwersytetu Wrocªawskiego Wrocªaw, 28 pa¹dziernika 2009

Moduªy Ró»ne okre±lenia ªadowalne moduªy j dra, moduªy j dra, moduªy ang. Loadable Kernel Modules (LKM) w innych systemach operacyjnych tak»e rozszerzenia j dra (ang. kernel extensions) Rozszerzenia plików W j drze 2.6 pliki nazywaj si *.ko zawieraj sekcj.modinfo a nie *.o. Dodatkowo

Zalety i wady Zalety nie trzeba przebudowywa j dra lepiej pozostawi dziaªaj ce j dro nietkni tym mo»na wyª czy pewn funkcjonalno± (moduªy mog zatrzyma uruchamianie systemu) oszcz dno± pami ci brak spadku wydajno±ci dziaªaj podobnie jak programy, ale mog zatrzyma system

Zalety i wady Ewentualne kªopoty które moduªy ªadowa przy starcie systemu? zale»no±ci mi dzy moduªami specyczne dla j dra, /lib/modules/ nie mog drukowa niczego na ekranie (w sensie trybu gracznego)

Zastosowanie sterowniki urz dze«sterowniki s projektowane dla konkretnego sprz tu. J dro u»ywa ich do komunikacji ze sprz tem pomijaj c szczegóªy pracy sprz tu. Takie sterowniki mog by np. dla dysków ATA. eby skorzysta z urz dzenia, j dro musi zawiera odpowiedni dla niego sterownik. sterowniki systemu plików sterownik interpretuje zawarto± systemu plików (czyli zawarto± dysku twardego) jako pliki i katalogi. Jest wiele sposobów na przechowywanie plików, np. wspomniane dyski twarde czy serwery sieciowe. Dla ka»dego z nich potrzebny jest sterownik. Wi c mamy sterowniki dla ext3, msdos czy nfs. sterowniki sieciowe taki sterownik interpretuje protokóª sieciowy. Zarz dza danymi, które przepªywaj mi dzy ró»nymi warstwami sieciowymi.

Zastosowanie wywoªania systemowe programy w przestrzeni u»ytkownika u»ywaj mechanizmu wywoªa«systemowych, aby uzyska od j dra wykonanie jakiej± usªugi. Przykªadowe wywoªania systemowe to odczyt z pliku, utworzenie nowego procesu czy zamkni cie systemu. Wi kszo± z wywoªa«systemowych jest integraln cz ±ci systemu, wi c s w budowane w j dro. Mo»na jednak wymy±li swoje wywoªanie systemowe i obsªugiwa je przez moduª. Mo»na te» nadpisa zachowanie j dra i samemu obsªugiwa pewne wywoªania systemowe. interpretery, binfmt_java ich zadaniem jest ªadowanie i uruchamianie plików wykonywalnych. Linuks jest zaprojektowany, aby uruchamia pliki wykonywalne w ró»nych formatach. Ka»dy z nich musi mie swój interpreter. Posiadaja np. moduª interpretuj cy bytecode mo»emy uruchamia pliki Javy jak normalne pliki wykonywalne.

Niezb dne polecenia insmod insmod moduª.ko proste? nale»y poda peªn ±cie»k problemy z wersjami (ang. module/kernel version mismatch) problemy z symbolami (ang. unresolved symbols) modprobe modprobe [opcje] moduª [parametry] -n --dry-run uruchamia moduª, ale go nie wpina do j dra. U»yte z opcj -v jest dobre do debugowania -r --remove usu«moduª z j dra -f --force usuwa informacje o wersji,»eby przepchn ªadowanie -o --name zaªaduj moduª pod wskazan nazw

Niezb dne polecenia cd. rmmod rmmod moduª usuwa moduª z j dra -f --force usuwa nawet je»eli kto± z niego korzysta depmod -a Wygenerowanie zale»no±ci mi dzy moduªami. Zapis w pliku /lib/modules/`uname -r`/modules.dep

Pomocnicze polecenia modinfo Informacje o module, np. modinfo snd-pcm objdump -x Informacje dla plików linkowalnych (.o ). Nie tylko dla moduªów, ale moduª jest specjalnym przypadkiem. ELF (Executable and Linkable Format) pliki wykonywalne, linkowalne (.o ), biblioteki (.so ) oraz moduª (.ko ).

insmod/modprobe - dobra rada Wygodniej jest u»ywa modprobe zamiast insmod, gdy»: mo»na tworzy aliasy plik /etc/modprobe.conf szuka moduªów /lib/modules/`uname -r`/kernel/ wymaga tylko nazwy, nie wymaga ±cie»ki czy rozszerzenia rozwi zuje zale»no±ci

Wa»ne miejsca /lib/modules/`uname -r`/ moduªy dla konkretnej wersji j dra /usr/src/`uname -r`/include/ nagªówki j dra /proc/modules informacje o zaªadowanych moduªach (czyteln wersj dostarcza lsmod ) /proc/kallsyms symbole wyeksportowane do j dra (moduªy s plikami.o, symbole s potrzebne przy linkowaniu) /var/log/messages logi z uruchamiania (patrz dmesg )

Wymagania ±ci gni te nagªówki j dra przynajmniej dwie funkcje int init_module(void) void cleanup_module(void) nale»y doª czy plik linux/module.h narz dzie make

Najprostszy moduª / hello1 - najprostszy program / #include <linux/kernel.h> / makra KERN / #include <linux/module.h> int init module(void) { printk(kern INFO "witaj w hello1\n"); return 0; } void cleanup module(void) { printk(kern INFO "pa pa, hello1\n"); } linux/kernel.h potrzebne do printk(), KERN_INFO, KERN_ALERT, KERN_EMERG makra logowania priorytety s w pliku linux/kernel.h. Domy±lny to default_message_loglevel

Kompilacja hello1.c PWD=$ ( s h e l l pwd ) b u i l d D i r =/ l i b / modules /$ ( s h e l l uname r )/ b u i l d obj m += h e l l o 1. o a l l : c l e a n : make C $ b u i l d D i r M=$ (PWD) modules make C $ b u i l d D i r M=$ (PWD) c l e a n

Zmiana funkcji init i cleanup / hello2 - wªasne funkcje init i cleanup / #include <linux/module.h> #include <linux/kernel.h> / makra KERN / #include <linux/init.h> / makra do zmiany funkcji init i cleanup / const static int n=2; static int init myinit(void) { printk(kern INFO "Drugi moduª si rozpocz ª! n=%d \n", n); return 0; } static void exit mycleanup(void) { printk(kern INFO "Ko«czymy drugi moduª\n"); } module init(myinit); module exit(mycleanup);

Kompilacja z nowym moduªem PWD=$ ( s h e l l pwd ) b u i l d D i r =/ l i b / modules /$ ( s h e l l uname r )/ b u i l d obj m += h e l l o 1. o obj m += h e l l o 2. o a l l : c l e a n : make C $ b u i l d D i r M=$ (PWD) modules make C $ b u i l d D i r M=$ (PWD) c l e a n

Dokumentacja moduªu MODULE_AUTHOR("Marcin Milewski"); MODULE_DESCRIPTION("Szczegóªowy opis"); MODULE_VERSION("1.0-rc1"); MODULE_LICENSE("GPL"); MODULE_PARM_DESC(numerek, "szcz ±liwy numerek"); U»ycie: modinfo

Argumenty dla moduªu Mo»na przekazywa : liczby ci gi znaków tablice warto±ci Przykªad: modprobe hello3 luckyone=42 name=marcin msgs=hello,world

Kilka informacji do eksportowania funkcji/symboli sªu»y makro EXPORT_SYMBOL(symbol) Makele z prawdziwego zdarzenia: /usr/src/linux-headers-`uname -r`/drivers/char/makefile moduªy pracuj w przestrzeni j dra, a nie w przestrzeni u»ytkownika Fragmentation penalty j dro jest w ci gªym obszarze pami ci. Do czasu zaªadowania moduªów. Wydajno±

User-mode linux Linuks jako proces na prawach u»ytkownika - wirtualny system (host & guests) bezpieczne testowanie oprogramowania honeypot - puªapka do wykrywania prób nieautoryzowanego dost pu. Komputer + dane + sie + oprogramowanie

Bibliograa The Linux Kernel Module Programming Guide User-mode Linux @ Wikipedia, http://pl.wikipedia.org/wiki/user-mode_linux Instalacja UML, https://help.ubuntu.com/community/usermodelinux