Fileguards czyli implementacja operacji na plikach przez u ytkownika
Download
1 / 16

FileGuards czyli implementacja operacji na plikach przez użytkownika - PowerPoint PPT Presentation


  • 110 Views
  • Uploaded on
  • Presentation posted in: General

FileGuards czyli implementacja operacji na plikach przez użytkownika. Rafal@Wijata.com. Strażnik - wprowadzenie. Tradycyjne systemy plików – obsługa w jądrze OS Nikłe (jeśli w ogóle) możliwości rozszerzenia funkcjonalności i zachowań plików.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha

Download Presentationdownload

FileGuards czyli implementacja operacji na plikach przez użytkownika

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Fileguards czyli implementacja operacji na plikach przez u ytkownika

FileGuardsczyli implementacja operacji na plikach przez użytkownika

Rafal@Wijata.com


Stra nik wprowadzenie

Strażnik - wprowadzenie

  • Tradycyjne systemy plików – obsługa w jądrze OS

    • Nikłe (jeśli w ogóle) możliwości rozszerzenia funkcjonalności i zachowań plików.

  • Strażnik – wyprowadzenie obsługi plików poza jądro OS

    • Nieuprzywilejowane programy mogą obsługiwać pliki (lub katalogi)

    • Więcej kosztują tylko podmienione funkcje na metryczkach (przełączenia kontekstu, kopiowanie, szeregowanie, opóźnienia w czytaniu z dysku, itp).

    • Rozwiązanie transparentne dla programów!


Stra nik jak

Strażnik – jak ?

  • Dodatkowa funkcja systemowa fglink.

  • Funkcje rejestracji strażników [un]register_fgfunc

    • Parametry = nazwa + file_operations

  • W strukturze file dodatkowa file_operations

    • Funkcja open() podmienia f_ops jeśli plik pilnowany.

    • Tak uzyskujemy transparencję dla klientów

  • User process

    sys_open

    Request Open()

    If (guarded & module_registered) {

    remember orig f_ops;

    f_ops = our_f_ops;

    };

    Requests Read(), Write(), etc.

    Calls our wrappers !


    Stra nik w a ciwo ci

    Strażnik – właściwości

    • Minimalna modyfikacja jądra

      • Tylko 16 nowych/zmodyfikowanych linii kodu !

        • Na razie całość ma 2000 linii.

    • Włączanie w konfiguracji jądra.

    • Automatyczne ładowanie modułów

    • Flaga fg_allow (/proc/fs)


    Stra nik akcje

    Strażnik – akcje

    • Co może podmieniona funkcja ?

      • Wykonać operację i zwrócić wynik.

      • Zwrócić błąd.

      • Wykonać jakąś czynność, wywołać oryginalną funkcję z jądra, zmodyfikować wynik.

      • Poprosić jądro o wykonanie funkcji jak zwykle.

      • [ Jeśli brak funkcji , jądro wykonuje standardowy kod ]


    Stra nik modu u ytkownika

    Strażnik – moduł użytkownika

    • Osobne struktury (działa jako moduł)

    • Sam rejestruje procedury obsługi w jądrze w imieniu procesów użytkownika

    • Zajmuje się wymianą danych między jądrem i procesami


    Stra nik komunikacja z procesami

    Strażnik – komunikacja z procesami

    • Komunikacja za pomocą urządzeń /dev/fguX

    • Restrykcyjny protokół = bezpieczeństwo ?

    • Komunikacja: żądanie – odpowiedź.

      • Jądro nie przyjmuje żądań – tylko odpowiedzi.

    • Ścisłe komunikaty

      • { magic, cmd, nr, sid, pid, datalen, data }

      • Dane również maja strukturę zależną od funkcji.

    • Kolejki komunikatów: do wysłania i do odebrania


    Stra nik proces

    Strażnik – proces

    Odczytaj MINOR z /dev/fgu0

    Zarejestruj nazwę i obsługiwane funkcje poprzez /dev/fguMINOR

    Zamknij /dev/fgu0

    While (true) {

    odczytaj komunikat

    sprawdź typ komunikatu, wykonaj odpowiednie akcje

    wygeneruj komunikat odpowiedzi i wyślij do jądra

    }

    • Cała komunikacja odbywa się przez urządzenie /dev/fguMINOR,

      Jądro nie zaakceptuje danych od innego procesu niż ten, który otworzył urządzenie.


    Stra nik modu

    Strażnik – moduł

    Strażnik

    systemowa tablica otwartych plików

    Proces

    /dev/fguX

    STRZEŻONY PLIK

    systemowa tablica sesji

    Struktura FGU_DATA

    Wygeneruj żądanie

    Komunikaty


    Stra nik modu1

    Strażnik – moduł

    Strażnik

    systemowa tablica otwartych plików

    Proces

    /dev/fguX

    STRZEŻONY PLIK

    systemowa tablica sesji

    Struktura FGU_DATA

    Odczytaj odpowiedź

    Komunikaty


    Stra nik czego brak

    Strażnik – czego brak ?

    • Podmiany inode_operations, a przynajmniej permission()

    • W module użytkownika nie ma jak zaimplementować niektórych funkcji (mmap).

    • readv/writev – ale to nie jest brak !


    Stra nik wydajno

    Strażnik – Wydajność

    CPU = 572 743 000 Hz

    Przykładowo: 170 = 0.29 microsek, 426 = 0.74 microsek


    Stra nik wydajno1

    Strażnik – Wydajność

    170 = 0.29 microsek, 19305 = 33 microsek


    Stra nik wydajno2

    Strażnik – Wydajność


    Stra nik wydajno3

    Strażnik – Wydajność


    Stra nik dalsze plany

    Strażnik – Dalsze plany

    • Rozwijanie projektu

      • Utrzymywanie patchy

      • Może nawiązanie kontaktu z ludźmi od MonaFS

      • http://www.wijata.com/fileguard

    • Obrona pracy


    ad
  • Login