Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Komputerowe i sieciowe systemy operacyjne

Informacje ogólne

Kod przedmiotu: 103A-CBxxx-ISP-KSO
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Komputerowe i sieciowe systemy operacyjne
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Informatyka techniczna )-Cyberbezpieczeństwo-inż.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 5.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

KSO

Numer wersji:

1

Skrócony opis:

Głównym celem przedmiotu jest wprowadzenie studentów do zagadnień współczesnych systemów operacyjnych stosowanych w działaniu wszelkiego rodzaju współczesnych systemów sprzętowo-programowych takich jak komputery, platformy mobilne czy urządzenia sieciowe. Tematami fundamentalnymi dla przedmiotu są interfejsy wejścia-wyjścia, dyski, systemy plików, wątki i procesy, przełączanie zadań, pamięć wirtualna, bezpieczeństwo, obsługa przerwań, zrównoleglanie i synchronizacja oraz. W kontekście poznanych zagadnień fundamentalnych zostaną omówione podstawowe architektury systemów operacyjnych dla systemów komputerowych, platform mobilnych i urządzeń sieciowych. Przedmiot podsumowuje wprowadzenie do bezpieczeństwa w systemach operacyjnych. Założeniem prowadzenia przedmiotu jest ukierunkowanie się na naukę praktyczną. Zajęcia projektowe będą oparte na pracy nad stworzeniem własnego systemu operacyjnego od podstaw, który będą mogli uruchomić na dedykowanych edukacyjnych platformach sprzętowych.

Pełny opis:

Głównym celem przedmiotu jest wprowadzenie studentów do zagadnień współczesnych systemów operacyjnych stosowanych w działaniu wszelkiego rodzaju współczesnych systemów sprzętowo-programowych takich jak komputery, platformy mobilne czy urządzenia sieciowe. Tematami fundamentalnymi dla przedmiotu są interfejsy wejścia-wyjścia, dyski, systemy plików, wątki i procesy, przełączanie zadań, pamięć wirtualna, bezpieczeństwo, obsługa przerwań, zrównoleglanie i synchronizacja oraz. W kontekście poznanych zagadnień fundamentalnych zostaną omówione podstawowe architektury systemów operacyjnych dla systemów komputerowych, platform mobilnych i urządzeń sieciowych. Przedmiot podsumowuje wprowadzenie do bezpieczeństwa w systemach operacyjnych. Założeniem prowadzenia przedmiotu jest ukierunkowanie się na naukę praktyczną. Zajęcia projektowe będą oparte na pracy studentów nad stworzeniem własnego systemu operacyjnego od podstaw, który będą mogli następnie uruchomić na dedykowanych edukacyjnych platformach sprzętowych.



Treść wykładu

  1. Wprowadzenie do przedmiotu. (2 godz.)
    Wprowadzenie do przedmiotu. Co to jest system operacyjny? Cel stosowania systemów operacyjnych. Architektura systemu operacyjnego ogólnego przeznaczenia. Przegląd zagadnień współczesnych systemów operacyjnych. System operacyjny – fundament bezpieczeństwa systemów IT.
  2. Interfejsy wejścia-wyjścia i dyski. (6 godz.)
    Komunikacja ze sprzętem: mapowanie pamięci, komunikacja bezpośrednia, instrukcje specjalne, DMA. Przerwania i wyjątki. Konstrukcja sterownika sprzętu; sieciowe operacje wejścia/wyjścia. Stos sieciowy w systemie operacyjnym. Dyski: przechowywanie; odnajdywanie danych; sektory; interfejsy; partycje; woluminy logiczne; systemy plików w kontekście dysków – wirtualne systemy plików; dyski magnetyczne i flash.
  3. Zarządzanie pamięcią. (4 godz.)
    Fizyczna alokacja pamięci; mapowanie fizycznej alokacji pamięci na wirtualną; zarządzanie pamięcią: segmentacja; stronicowanie; bezpieczeństwo stronicowania; ochrona pamięci; algorytmy stronicowania; współdzielenie pamięci; metody alokacji pamięci w systemie; stos; sterta.
  4. Systemy plików. (4 godz.)
    Cel systemu plików: organizacja danych w pliki odnajdywalne po nazwie i wbudowaną kontrolą dostępu. Plik. Metadane pliku; ścieżka pliku. Wyszukiwanie plików w systemie. Kontrola dostępu do pliku. Typy plików. Katalogi. Operacje systemu plików. Przegląd implementacji systemów plików: FAT32, FFS, NTFS, ZFS. Wirtualna przestrzeń adresowa. Rozproszone systemy plików.
  5. Jądro, procesy, wątki. Komunikacja międzyprocesowa. (2 godz.)
    Jądro systemu; interfejsy programistyczne; proces; wątek; wieloprocesowość; wielowątkowość; komunikacja międzyprocesowa. Kontekst; przełączanie kontekstu; implementacja procesów we współczesnych systemach operacyjnych; rodzaje wątków; implementacja wątków; wpływ przerwań i wyjątków na sterowanie procesami.
  6. Synchronizacja. Przełączanie zadań. (4 godz.)
    Synchronizacja dostępu do pamięci dzielonej: mutex, semafor, zmienne warunkowe, monitory; wzorce i problemy synchronizacji; sygnały synchronizacji; algorytmy synchronizacji; sposoby i polityki przełączania zadań; rodzaje priorytetyzacji i zastosowania; mechanizm przerwań i wyjątków; wpływ przerwań i wyjątków na sterowanie kontekstem, priorytetyzacją i przełączaniem zadań. Wieloprocesorowość; przydzielanie zadań do wielu rdzeni.
  7. Wywołania systemowe i izolacja. Maszyny wirtualne. (2 godz.)
    Przestrzeń użytkownika, przestrzeń jądra. Wywołania systemowe; konstrukcja wywołań systemowych; mapowanie żądań użytkownika na żądania jądra; sygnały synchronizacji; algorytmy synchronizacji. Maszyny wirtualne; wirtualizacja zasobów; rodzaje wirtualizacji; hypervisor. Konteryzacja.
  8. Stosowanie systemów operacyjnych. (2 godz.)
    Systemy operacyjne dla urządzeń wbudowanych, urządzeń sieciowych i platform mobilnych. Sieciowe systemy operacyjne. Systemy czasu rzeczywistego. Systemy operacyjne centrów danych.
  9. Wstęp do bezpieczeństwa systemów operacyjnych. (4 godz.)
    Program w pamięci; konwencja wywołań funkcji; stos i sterta w kontekście wywołania funkcji; eksploitacja systemów operacyjnych; przechwytywanie kontroli wywoływania funkcji; atak z przepełnieniem bufora; wykonywanie złośliwego kodu z pamięci procesu; Return Oriented Programming; Sig-Return Oriented Programming; mechanizmy obrony: kanarki, blokada wykonywania danych z pamięci, weryfikacje adresów powrotu z funkcji, randomizacja adresów regionów w pamięci (ASLR) i inne; obchodzenie mechanizmów obrony.



Zakres projektu

W ramach projektu 2-osobowe zespoły projektowe będą prowadzić od podstaw implementację własnego systemu operacyjnego, który będą mogli uruchomić na edukacyjnych platformach sprzętowych.


Projekt będzie realizowany iteracyjne w kolejnych etapach:

  • podstawowe ćwiczenia z komunikacją ze sprzętową platformą edukacyjną: piny wejścia-wyjścia (GPIO), interfejs szeregowy UART, interfejs mapowania pamięci;
  • utworzenie własnych sterowników, narzędzi pomocniczych, powłoki systemu oraz systemu startowego;
  • utworzenie własnego alokatora pamięci, systemu plików oraz implementacja instrukcji powłoki dla systemu plików;
  • implementacja własnej struktury procesu.


W kontekście bezpieczeństwa systemów operacyjnych przewiduje się realizację zadań związanych z:

  • poznaniem sposobów pisania własnego kodu wykonywalnego z powłoki (shellcode), sposobów jego wstrzykiwania i wywoływania;
  • poznaniem działania mechanizmów kanarków, ASLR, no-execute.
Literatura:

Książki:

  1. T. Anderson, M. Dahlin: Operating Systems: Principle and Practice; 2014; Recursive Books.
  2. W. Stallings: Operating Systems: Internals and Design Principles; 2014; Pearson.
  3. A. S. Tanenbaum, H. Bos: Modern Operating Systems; 2014; Pearson.
  4. A. Silberschatz: Operaring System Concepts, 9th Ed.; 2012; Wiley.


Oprogramowanie:

  • Systemy operacyjne Windows, Linux, macOS – wersje klienckie i serwerowe;
  • Kompilatory.
Metody i kryteria oceniania:

Sprawdzanie założonych efektów kształcenia realizowane jest przez:

  • ocenę wiedzy i umiejętności związanych z realizacją zadań projektowych – ocena raportu, kodu i działania systemu operacyjnego;
  • ocenę wiedzy i umiejętności wykazanych na sprawdzianie pisemnym o charakterze problemowym.

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. zimowy" (zakończony)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć:
Laboratorium, 45 godzin, 46 miejsc więcej informacji
Wykład, 30 godzin, 46 miejsc więcej informacji
Koordynatorzy: Tomasz Kruk
Prowadzący grup: Tomasz Kruk, Mikołaj Płachta
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. zimowy" (zakończony)

Okres: 2021-10-01 - 2022-02-22
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć:
Laboratorium, 45 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Tomasz Kruk
Prowadzący grup: Tomasz Kruk, Mikołaj Płachta, Marcin Sowański
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 6.8.0.0-8 (2022-12-14)