fileguards czyli implementacja operacji na plikach przez u ytkownika
Download
Skip this Video
Download Presentation
FileGuards czyli implementacja operacji na plikach przez użytkownika

Loading in 2 Seconds...

play fullscreen
1 / 16

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


  • 128 Views
  • Uploaded on

FileGuards czyli implementacja operacji na plikach przez użytkownika. [email protected] 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 Presentation

PowerPoint Slideshow about ' FileGuards czyli implementacja operacji na plikach przez użytkownika' - base


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
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 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