Izolacja procesu
Izolacja procesów to zestaw różnych technologii sprzętowych i programowych zaprojektowanych w celu ochrony każdego procesu przed innymi procesami w systemie operacyjnym . Robi to, uniemożliwiając procesowi A zapisywanie do procesu B.
Izolację procesów można zaimplementować za pomocą wirtualnej przestrzeni adresowej , w której przestrzeń adresowa procesu A różni się od przestrzeni adresowej procesu B – uniemożliwiając A zapis na B.
Bezpieczeństwo jest łatwiejsze do wyegzekwowania poprzez uniemożliwienie dostępu do pamięci międzyprocesowej, w przeciwieństwie do mniej bezpiecznych architektur, takich jak DOS , w których każdy proces może zapisywać w dowolnej pamięci w dowolnym innym procesie.
Ograniczona komunikacja między procesami
W systemie z izolacją procesów ograniczona (kontrolowana) interakcja między procesami może być nadal dozwolona za pośrednictwem kanałów komunikacji międzyprocesowej (IPC), takich jak pamięć współdzielona , gniazda lokalne lub gniazda internetowe . W tym schemacie cała pamięć procesu jest odizolowana od innych procesów, z wyjątkiem sytuacji, gdy proces zezwala na wprowadzanie danych przez procesy współpracujące.
Zasady systemowe mogą uniemożliwić IPC w pewnych okolicznościach. Na przykład w obowiązkowych systemach kontroli dostępu osoby o różnych poziomach czułości mogą nie mieć możliwości komunikowania się ze sobą. Konsekwencje dla bezpieczeństwa w tych okolicznościach obejmują szerokie zastosowania w systematyce szyfrowania kluczy sieciowych, a także rozproszone algorytmy buforowania. Podobnie wpływa to na protokoły zdefiniowane przez interfejs, takie jak podstawowa architektura dostępu do chmury i udostępnianie sieci.
System operacyjny
Wybitne systemy operacyjne obsługujące izolację procesów:
- Unix , Linux , OS X
- VMS
- Microsoft Windows od Windows NT 3.1
Przeglądarki internetowe
Internet Explorer 4 wykorzystywał izolację procesów, aby umożliwić osobnym oknom instancjom przeglądarki własne procesy; jednak u szczytu wojen przeglądarek zostało to porzucone w kolejnych wersjach, aby konkurować z Netscape Navigator (który starał się skoncentrować na jednym procesie dla całego pakietu internetowego). Ta idea procesu na instancję nie została ponownie rozpatrzona aż do dekady później, kiedy przeglądanie w kartach stało się bardziej powszechne.
W „ Multi-Process Architecture ” Google Chrome i „ Loosely Coupled IE (LCIE) ” Internet Explorera 8 zakładki zawierające strony internetowe są zawarte w ich własnych częściowo oddzielnych procesach na poziomie systemu operacyjnego, które są odizolowane od podstawowego procesu przeglądarki tak, aby awaria jednej karty/strony nie spowodowała awarii całej przeglądarki. Ta metoda (znana popularnie jako multiprocess lub process-per-tab ) ma na celu zarówno zarządzanie pamięcią, jak i przetwarzaniem, umożliwiając awarię obraźliwych kart niezależnie od przeglądarki i innych kart oraz zarządzanie bezpieczeństwem.
Przeglądarki z izolacją procesów
- Google Chrome
- Internet Explorer 8 i nowsze
- Safari
- Mozilla Firefox (domyślnie od 57)
- Maxthon
Języki programowania
Erlang (język programowania) zapewnia podobną koncepcję w przestrzeni użytkownika, realizując ściśle oddzielone lekkie procesy.
Powiązane technologie
- Pamięć wirtualna i wirtualna przestrzeń adresowa umożliwiają izolację przestrzeni pamięci.
- Wieloinstancjacja umożliwia tworzenie kopii lustrzanych współdzielonych zasobów, w których zmiany dokonane przez proces A nie będą widoczne dla procesu B.