Linux Kernel. Wprowadzenie

Podobne dokumenty
Linux Kernel III. Character devices

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

Struktury systemów operacyjnych

Jądro systemu operacyjnego

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Kernel Kompilacja jądra

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Działanie systemu operacyjnego

KOMPUTER. Programy użytkowe i systemy operacyjne

Wstęp do Informatyki. Klasyfikacja oprogramowania

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Historia systemów operacyjnych - Unix

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

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

Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008

Poziomy wymagań Konieczny K Podstawowy- P Rozszerzający- R Dopełniający- D Uczeń: - zna rodzaje sieci - zna topologie sieciowe sieci

Wstęp do Informatyki dla bioinformatyków

Architektura i administracja systemów operacyjnych

Czujniki obiektowe Sterowniki przemysłowe

Wprowadzenie do systemu Minix

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Budowa karty sieciowej; Sterowniki kart sieciowych; Specyfikacja interfejsu sterownika sieciowego; Open data link interface (ODI); Packet driver

Paweł Skrobanek. C-3, pok

Działanie systemu operacyjnego

Wykład 3: Implementacja programów wbudowanych

Informatyka. informatyka i nauki komputerowe (computer science)

System komputerowy. System komputerowy

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

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Software is like sex it s better when it s free. Linus Torvalds

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

Q E M U.

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

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Działanie systemu operacyjnego

Technologia Informacyjna

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Technologie Informatyczne Wykład XI linux

Działanie systemu operacyjnego

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

Monitor maszyn wirtualnych

Podstawy Techniki Komputerowej. Temat: System operacyjny komputera - charakterystyka

Przegląd współczesnych systemów operacyjnych

Tomasz Greszata - Koszalin

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

Działanie komputera i sieci komputerowej.

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Systemy operacyjne. Paweł Pełczyński

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Pracownia komputerowa

EMBEDDED LINUX ON ARM9 CORE EMBEDDED LINUX NA PROCESORACH Z RODZINY ARM9

Komputery przemysłowe i systemy wbudowane

Wprowadzenie do systemów operacyjnych

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania

Przegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect

Wykład 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

Warstwy systemu Windows 2000

Tworzenie sterowników dla FreeBSD. Michał Hajduk

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

4. Procesy pojęcia podstawowe

Prezentacja systemu RTLinux

Temat 8 Systemy operacyjne rodziny UNIX. powłoki graficzny interfejs użytkownika (GUI) 8.1. Cechy systemu UNIX

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

Podstawy Techniki Komputerowej. Temat: BIOS

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Java jako język programowania

Systemy operacyjne II

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Rola i zadania systemu operacyjnego


Opis efektów kształcenia dla modułu zajęć

Sieciowe Systemy Operacyjne

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

ponad pracowników ponad pracowników ponad pracowników ponad pracowników

Podstawy administracji systemu Linux

Architektura systemów komputerowych. Przetwarzanie potokowe I

Pomoc: konfiguracja PPPoE

OPROGRAMOWANIE KOMPUTERÓW

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

1. Etapy rozwoju systemów komputerowych

SYSTEM OPERACYJNY. Monika Słomian

Tomasz Greszata - Koszalin

Warsztaty szkoleniowe. Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5.

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

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Politechnika Śląska w Gliwicach Instytut Automatyki 2005/2006

Dariusz Kozak ZESTAW URUCHOMIENIOWY MIKROKOMPUTERÓW JEDNOUKŁADOWYCH MCS-51 ZUX51. Loader LX51 INSTRUKCJA OBSŁUGI DK Wszystkie prawa zastrzeżone

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Instalowanie VHOPE i plików biblioteki VHOPE

Transkrypt:

Linux Kernel Wprowadzenie

Trochę historii (1) Rozpoczęło się od Bell Labolatories we wczesnych latach 70- tych XX wieku, kiedy rozpoczęto prace nad systemem UNIX: UNIX był pierwszym systemem operacyjnym nadającym się do uruchomienia na wielu architekturach komputerowych, Przez całe lata 70-te UNIX rozwijał się w środowiskach akademickich i laboratoriach. page 2

Trochę historii (2) W latach 80- tych UNIX rozpowszechniał się w dalszym ciągu i zaczął przenikać również do biznesu, Powstały takie systemy operacyjne jak: BSD, Xenix, Sun OS, Minix, W roku 1991 Linus Torvalds, fiński programista, ujawnił swoją własną wersję systemu UNIX, Nazwał ją Linux, czyli UNIX Linusa. page 3

Trochę historii (3) Linux był pierwszym, otwartym i darmowym systemem operacyjnym, Linux był (i jest) w pełni zgodny z systemem UNIX dzięki standardom POSIX, Linux jest nadal w pełni darmowy i dostępny dla każdego, Posiada wiele niezależnych od siebie dystrybucji, np. Arch linux, Ubuntu, Mint, Suse i wiele, wiele wiele innych... Jeśli jednak wszystkie te systemy są Linuxami, to muszą posiadać część wspólną......co to za część? page 4

Kernel Słowo kernel w słowniku Cambridge Dictionary: Kernel the most important part of something, although it might not always be easy to find: There is often a kernel of truth in what they say. Kernel jest główną częścią Linuxa, Kernel jest w dalszym ciągu utrzymywany przez jego twórcę, Linusa Torvaldsa, Kernel to spory kawałek kodu źródłowego pozwalający użytkownikowi na korzystanie z mocy obliczeniowej procesorów, pamięci operacyjnej, łączności z siecią oraz wielu innych zasobów. Kernel jest jedyną częścią Linuxa, którą należy dopasować do sprzętu komputerowego. page 5

Kernel i jego moduły Do Kernela można dodawać tzw. moduły, które rozszerzają jego podstawowe funkcje. Kernel wymienia informacje z modułami za pomocą zunifikowanego (identycznego dla wszystkich modułów) interfejsu, Interfejs ten pozwala modułom na korzystanie z zasobów komputera, np. z mocy obliczeniowej procesora, Niektóre moduły można nazwać sterownikami, bo pozwalają sterować sprzętem komputerowym... page 6

Moduł a aplikacja Istnieje kilka istotnych różnic między modułem Kernela, a aplikacją: zazwyczaj moduły rozpoczynają swoje życie tuż po załadowaniu się Kernela i kończą je tuż przed zakończeniem pracy komputera, aplikacje włączamy i wyłączamy w zależności od chwilowej potrzeby, moduły rejestrują się do Kernela i świadczą usługi dla wszystkich procesów, programy użytkownika realizują z reguły jedno, konkretne zadanie, moduły korzystają jedynie z funkcji Kernelowych, Aplikacje zazwyczaj korzystają z bibliotek funkcji (np. bibliotek systemowych), choć nie muszą tego robić. page 7

Kernel, moduły i aplikacje page 8

Kernel space i User space (1) Moduły działają w przestrzeni Kernela (Kernel space) Aplikacje działają w przestrzeni użytkownika (User space) page 9

Kernel space i User space (2) User space Kernel space page 10

Pogawędka z Kernelem (1) #include <termios.h> #include <fcntl.h> #include <errno.h> #include <sys/ioctl.h> ioctl interface (dostępny z poziomu języka C) Main() { int fd, status; fd = open("/dev/ttys0", O_RDONLY); if (ioctl(fd, TIOCMGET, &status) == -1) { printf("tiocmget failed: %s\n", strerror(errno)); } else { if (status & TIOCM_DTR) { puts("tiocm_dtr is not set"); } else { puts("tiocm_dtr is set"); } } close(fd); } page 11

Pogawędka z Kernelem (2) /proc interface (dostępny poprzez konsolę systemową) page 12

Zadania Kernela (1) Zarządzanie pamięcią Przydzielanie pamięci dla procesów, Zwalnianie nieużywanej pamięci, Ochrona pamięci. KERNEL Dostarczanie systemu plików Wsparcie dla wielu systemów plików, Porządkowanie danych, Strukturyzacja danych. Zarządzanie procesami Dostarczanie usług sieciowych Obsługa wielu protokołów sieciowych, Zarządzanie pakietami danych. Kontrola urządzeń fizycznych Wsparcie dla urządzeń peryferyjnych, Ładowanie i usuwanie sterowników. Tworzenie i niszczenie procesów, Komunikacja międzyprocesowa, Synchronizacja procesów. page 13

Posumowanie Co warto zapamiętać: Kernel jest główną częścią Linuxa, Kernel dostarcza wszystkich podstawowych zasobów dla innych procesów w systemie Linux, Moduły uruchamiamy w Kernel space, Aplikacje uruchamiamy w User space, Z Kernelem komunikujemy się za pomocą interfejsów /proc i ioctl page 14

Koniec

Źródła ilustracji http://www.wired.com/images_blogs/photos/uncategorized/2 008/08/27/transistor_inventors_hr.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/3/ 35/Tux.svg/2000px-Tux.svg.png Kod źródłowy ioctl http://www.linuxjournal.com/article/6908 page 16

Slajdy dodatkowe: Kernel space i user space Aplikacje mają początek i koniec, Moduły zaś rejestrują się w Kernelu i działają. psmouse soundcore KERNEL usbhid page 17

Slajdy dodatkowe: Życie modułu Insert module Init function Wait for event Remove module Cleanup page 18

Slajdy dodatkowe: Rodzaje urządzeń w Kernelu Character device Block device Network device Do urządzenia piszemy jak do pliku, Dozwolone działania: open, close, read, write, Np. /dev/tty1. Urządzenie udostępnia system plików, Dozwolone działania: operacje wejścia / wyścia. Obsługuje wszystkie rodzaje interfejsów sieciowych, Nie korzystamy z nich bezpośrednio. Z punktu widzenia użytkownika (a nie programisty Kernela) Character device oraz block device są do siebie bardzo podobne i ciężko je odróżnić. page 19

Slajdy dodatkowe: Linux Kernel Mailing List W skrócie LKML, Otwarta, darmowa i jawna lista mailingowa społeczności deweloperów Kernela, Możliwość darmowej subskrypcji do systemu GIT, Swobodny przegląd aktualności, nowinek i trudności z jakimi boryka się obecnie społeczność Kernela. page 20

Slajdy dodatkowe: Kontakt W razie trudności w zrozumieniu jakiejkolwiek części wykładu bądź slajdów nie bójcie się zadawać pytań. Piszcie na mój adres mailowy. W najgorszym razie nie odpowiem :) s.trawinski@adbglobal.com page 21