Funkcje i struktura systemów Windows i Linux

Z systemowego punktu widzenia architektura systemu operacyjnego zapewnia alokację zasobów, zarządza współdzielonymi napędami, sieciami i procesorami, zapewniając wspólne usługi wymagane przez wiele różnych programów konserwacji plików, zarządzanie procesami, dostęp do drukarki i ochronę antywirusową dla poszczególnych aplikacji.

Zasada działania systemu

Większość struktur systemu operacyjnego używa partycjonowania do warstw każdego zadania, w tym systemów plików. Każdy poziom odpowiada za określone działania. Gdy aplikacja wyświetla monit, pierwsze żądanie jest wysyłane do logicznego systemu plików. Zawiera metadane dla struktur plików i katalogów. Jeśli aplikacja nie ma wymaganych uprawnień dostępu do pliku, ta warstwa generuje błąd.


Logiczne systemy plików również sprawdzają ścieżkę do pliku. Z reguły są one podzielone na różne bloki logiczne, które są przechowywane na dysku twardym i wyodrębniane z dysku twardego. Ten ostatni jest podzielony na różne ścieżki i sektory. Dlatego, aby przechowywać i wyodrębniać pliki, bloki logiczne struktury systemu operacyjnego muszą być odwzorowane na bloki fizyczne. To odwzorowanie jest wykonywane przez moduł organizacji plików. Jest również odpowiedzialny za zarządzanie wolną przestrzenią.
Gdy moduł zarządzania plikami zdecyduje, który blok fizyczny wymaga aplikacji, przesyła te informacje do podstawowego systemu plików. Ten podstawowy system jest odpowiedzialny za wydawanie poleceń zarządzania we /wy w celu usunięcia tych bloków. SterowanieI /O zawiera kody, które pozwalają na dostęp do dysku twardego. Te kody są znane jako sterowniki urządzeń. Kontrolki I /O są również odpowiedzialne za przetwarzanie przerwań.


Typy

Istniejące systemy operacyjne i struktura systemu umożliwiają aplikacjom użytkowym współdziałanie ze sprzętem systemowym. Ponieważ system operacyjny jest złożoną strukturą, powinien być tworzony z maksymalną starannością, aby mógł być łatwo wykorzystany i zmodyfikowany. Łatwym sposobem na to jest utworzenie go w częściach. Każda z tych części powinna być jasno zdefiniowana dzięki dopracowanym wejściom, wyjściom i funkcjom. Istnieje wiele systemów operacyjnych, które mają dość prostą strukturę. Zaczynali jako małe systemy i szybko rozszerzyli się daleko poza ich oryginalne projekty. Typowym tego przykładem jest MS-DOS.
W przeciwieństwie do MS-DOS nowoczesne systemy muszą mieć modułową strukturę i funkcje systemu operacyjnego. Prowadzi to do większej kontroli nad systemem komputerowym i jego aplikacjami. Modułowa struktura pozwoli również programistom ukryć informacje w razie potrzeby i wdrożyć wewnętrzne procedury zgodnie z ich potrzebami, bez zmiany zewnętrznych specyfikacji. Jednym ze sposobów osiągnięcia modułowości w systemie operacyjnym jest podejście wielopoziomowe lub tworzenie warstwowej struktury. Dolna warstwa to sprzęt, a górna warstwa to interfejs użytkownika. Warstwy mogą ukrywać niektóre struktury i operacje na ich wyższych warstwach. Jeden problemprzy wielopoziomowej strukturze każda warstwa musi być starannie zdefiniowana, ponieważ górne warstwy mogą wykorzystywać tylko funkcjonalność niższej.

Projektowanie architektury OS

Projekt jest tradycyjnie zgodny z zasadą podziału interesów. Ta zasada dotyczy struktury systemu operacyjnego w stosunkowo niezależnych częściach, które zapewniają proste indywidualne funkcje, przy jednoczesnym zachowaniu złożoności projektu kontrolera. Oprócz kontrolowania złożoności systemu operacyjnego, może wpływać na kluczowe funkcje, takie jak niezawodność lub wydajność. System operacyjny ma różne uprawnienia, które pozwalają mu uzyskać dostęp do innych chronionych zasobów, takich jak urządzenia fizyczne lub pamięć programu. Kiedy te przywileje są dostarczane poszczególnym częściom, których potrzebują, a nie w całości, zmniejsza się potencjał nadużywania zarówno przypadkowych, jak i szkodliwych programów. Nieprzestrzeganie systemu może negatywnie wpłynąć na efektywność kosztów ogólnych związanych z wymianą danych między poszczególnymi częściami. Te koszty ogólne można zwiększyć w połączeniu z mechanizmami sprzętowymi wykorzystywanymi do zapewniania przywilejów.

Nowoczesne konstrukcje monolityczne

Monolityczne projektowanie architektury nie stwarza specjalnych warunków dla natury systemu operacyjnego. Chociaż uczestniczy on w podziale problemów w pracy, nie ogranicza uprawnień przyznawanych poszczególnym częściom systemu, które są wykonywane z maksymalnymi uprawnieniami. Koszty związane z komunikacją w ramach monolitycznego systemu są takie same, jak dane usługowe w jakimkolwiek innymoprogramowanie.
CP /M i DOS są prostymi przykładami monolitycznych systemów operacyjnych. Są to systemy, które współdzielą aplikacje z jedną przestrzenią adresową. W CP /M, 16-bitowa przestrzeń adresowa zaczyna się od zmiennych systemowych i obszaru aplikacji i kończy się trzema częściami:
  • CCP - procesor poleceń konsoli;
  • BDOS jest podstawowym systemem operacyjnym;
  • BIOS - podstawowy system wejścia /wyjścia.
  • W DOS, 20-bitowa przestrzeń adresowa zaczyna się od tablicy wektorów przerwań i zmiennych systemowych, po której następuje część rezydentna i obszar aplikacji, a kończy na bloku pamięci używanym przez kartę graficzną i system BIOS. Większość nowoczesnych systemów, w tym Linux i Windows, również uważa się za monolityczne, choć z pewnością znacznie różnią się one od prostych przykładów CP /M i DOS.

    Systemy wielowarstwowe

    Wielopoziomowy projekt architektury systemu operacyjnego stara się osiągnąć niezawodność poprzez strukturę architektury na warstwy z różnymi uprawnieniami. Najbardziej uprzywilejowany poziom będzie obejmował kod związany z obsługą przerwań i przełączaniem kontekstów, poziomy powyżej będą następowały po sterownikach urządzeń, zarządzaniu pamięcią, systemach plików, interfejsie użytkownika, a na końcu, poziom najmniej uprzywilejowany zawiera aplikacje. MULTICS jest uderzającym przykładem wielopoziomowego systemu opracowanego z ośmioma warstwami uformowanymi w pierścienie ochronne, których granice można przekraczać jedynie za pomocą wyspecjalizowanych instrukcji. Jednak nowoczesne systemy nie korzystają z warstwowego projektu, ponieważjest uważany za ograniczony i wymaga specjalnego wsparcia sprzętowego.

    konstrukcja mikrojądra

    Architektura systemu projektowania Mykroyadernыy zapewnia niezawodność. Świadczeń przez poszczególnych jej części są ograniczone jak najwięcej, a relacja między nimi zależy od wyspecjalizowanych mechanizmów w celu zapewnienia zgodności z niezbędnymi uprawnieniami. Obciążenie komunikacji w systemie z mikroczipem może być wyższe niż narzut komunikacji w ramach innego oprogramowania. Badania wykazały, że te koszty ogólne są łatwe w zarządzaniu. Doświadczenie rozwojowe mikro-jądra sugeruje, że tylko nieliczne poszczególne części systemu powinny mieć więcej uprawnień niż zwykłe aplikacje. Tak więc projekt mikro-jądra prowadzi do małego rdzenia systemowego, któremu towarzyszą aplikacje zapewniające większość funkcji systemu. MACH mikrojądro jest najlepszym przykładem, który został użyty w nowoczesnych systemach, w tym systemy NextStep i OPENSTEP a konkretnie OS X. Większość systemów badawczych zakwalifikować także jako mikrojądra os.

    Wirtualne hipernadzorcy

    Próby uproszczenie konserwacji i poprawić wykorzystanie wielu niezależnych aplikacji doprowadziły do ​​idei prowadzenia wielu maszyn uruchomionych na tym samym komputerze. Podobnie jak rdzeń dostarcza wyizolowanego środowiska dla każdej aplikacji obsługiwanej, systemów zwirtualizowanych tworzyć hypervisor, która zapewnia wyizolowanego środowiska dla każdej obsługiwanej systemu. Mogą to być Hypervisorszaimplementowane w architekturze systemu na różne sposoby.
    Natywny hiperwizor działa na gołym gruczole, z umieszczonymi systemami, które są wyższe w strukturze systemu. Pozwala to na wdrożenie efektywnego schematu sprzętowego, płacąc cenę za utrzymanie określonej implementacji sprzętowej. Akceptowanie hipernadzorcy częściowo omija potrzebę określonej implementacji sprzętowej, działającej na innym systemie. Struktura systemu rozpoczyna się od dołu hosta, zawiera hiperwizor, a następnie system operacyjny gościa umieszczony nad hiperwizorem. Możliwe jest także połączenie podejść natywnych i dostosowanych. Hypervisor może implementować niektóre z jego funkcji na gołym sprzęcie i stosować go do systemów hostowanych w celu implementacji innych jego funkcji. Typowym przykładem tego podejścia jest wprowadzenie obsługi wirtualizacji procesorów na nieosłoniętym sprzęcie i użycie dedykowanego systemu operacyjnego w celu uzyskania dostępu do urządzeń, które hiperwizor wirtualizuje dla innych systemów hostowanych.

    Hybrydowe systemy operacyjne

    Większość dzisiejszych systemów operacyjnych nie stosuje się ściśle do tej samej architektury, ale są to hybrydy kilku. Architektura Max OSX opiera się na mikroukładzie Macha dla podstawowych usług zarządzania systemem oraz rdzenia BSD dla dodatkowych usług. Inną funkcjonalność systemu operacyjnego zapewniają usługi aplikacji i dynamicznie ładowane moduły (rozszerzenia jądra):
  • System operacyjny IOS został opracowany przez firmę Apple dla iPhone'a i IPADS. Działa z mniejszą pamięcią i mocą obliczeniową niż Max OS X oraz obsługuje interfejs ekranu dotykowego i grafikę dla małych ekranów.
  • System operacyjny Android byłopracowany dla smartfonów i tabletów z Androidem Open Handset Alliance, przede wszystkim Google. Android to system operacyjny typu open source, w przeciwieństwie do iOS, który doprowadził do jego popularności. Android ma strukturę Linux i wirtualną maszynę Java, zoptymalizowaną pod kątem małych platform. Aplikacje na Androida są opracowywane w niestandardowym środowisku programistycznym Java-for-Android.
  • Układy scalone i moduły

    Podstawową ideą jest to, że mikro-rdzeń ma usunąć wszystkie nieistotne usługi z jądra i zamiast tego zaimplementować je jako programy systemowe, dzięki czemu jądro jest tak małe i efektywne, jak to tylko możliwe. Mach był pierwszym i najbardziej znanym mikroukładem, a teraz jest głównym komponentem Mac OSX. Windows NT był początkowo mikroczipem, ale miał problem z wydajnością (w porównaniu do Windows 95). Poprawiona wydajność NT 4.0 poprzez przeniesienie większej liczby usług do jądra zmieniło XP na bardziej monolityczny. Kolejnym przykładem mikro-jądra jest QNX, system operacyjny czasu rzeczywistego dla systemów wbudowanych. Obecny rozwój systemu operacyjnego jest zorientowany obiektowo, ze stosunkowo małym jądrem i zestawem modułów, które mogą być dynamicznie połączone (na przykład struktura Solaris). Moduły są podobne do warstw, ponieważ każdy podsystem ma dobrze zdefiniowane zadania i interfejsy, ale każdy moduł może kontaktować się z dowolnym innym modułem, eliminując problem przechodzenia przez kilka warstw pośrednich. Jądro jest stosunkowo małe w tej architekturze, podobnie jak mikroukłady nie musi implementować transmisji komunikatów, ponieważ moduły mogą bezpośrednio komunikować się z jednym z nich.jeden po drugim.

    Manipulacja systemem plików

    Plik jest zbiorem powiązanych informacji. Komputery mogą przechowywać pliki na dysku (pamięć wtórna) do celów długoterminowego przechowywania. Przykłady nośników informacji obejmują taśmę magnetyczną, dysk magnetyczny i dyski optyczne, takie jak dyski CD, DVD. Każdy z tych nośników ma swoje własne właściwości, takie jak szybkość, pojemność, szybkość transmisji danych i metody dostępu do danych. System plików jest zwykle zorganizowany w katalogi, aby ułatwić nawigację i korzystanie z niego. Te katalogi mogą zawierać pliki i inne katalogi. Główne działania systemu operacyjnego do zarządzania plikami:
  • Czyta lub zapisuje plik.
  • Udziel zgody na program do pracy z plikiem, który zależy od czytania, pisania, odmowy.
  • Zapewnia interfejs użytkownika do tworzenia /usuwania plików.
  • ​​
  • Zapewnia interfejs do tworzenia kopii zapasowych systemu plików.
  • W przypadku systemów rozproszonych, które reprezentują zestaw procesorów i nie używają pamięci, urządzeń peryferyjnych lub zegara, system operacyjny zarządza połączeniem między wszystkimi procesami. Kilka procesów współdziała ze sobą za pośrednictwem linii komunikacyjnych w strukturze sieciowego systemu operacyjnego, routingu uchwytów i strategii połączeń, a także problemów związanych z konkurencją i bezpieczeństwem. Podstawowe czynności komunikacyjne systemu operacyjnego:
  • Dwa procesy często wymagają transferu danych między nimi.
  • Oba procesy mogą znajdować się na jednym komputerze lub na różnych komputerach, ale są połączone za pośrednictwem sieci komputerowej.
  • Komunikatmożna realizować na dwa sposoby: za pomocą pamięci współdzielonej lub wysyłając wiadomości.
  • Funkcjonalny system operacyjny Linux

    Jest to najbardziej znany i najczęściej używany system open source. Wielu programistów używa terminu Linux do oznaczania jądra systemu Linux, a także zestawu programów, narzędzi i usług, które są zwykle dostarczane z jądrem Linux. Niektórzy użytkownicy odwołują się do tej kolekcji GNU, ponieważ wiele narzędzi zawiera komponenty GNU. Chociaż nie wszystkie instalacje Linuksowe używają komponentów GNU jako części systemu. Android, na przykład, używa struktury jądra Linuxa i bardzo mało polega na narzędziach GNU. Linux różni się od innych systemów:
  • Open Source. System operacyjny jest bezpłatny i dostępny do przeglądania publicznego, edytowania użytkowników o odpowiednich umiejętnościach.
  • Istnieje wiele dystrybucji Linuksa, które zawierają różne opcje oprogramowania.
  • Unix i Linux są w dużej mierze podobne, w rzeczywistości Linux został pierwotnie stworzony w taki sam sposób jak Unix. Oba mają podobne narzędzia do interakcji z systemami, narzędziami programistycznymi, układami plików i innymi kluczowymi komponentami. Jednak Unix nie jest bezpłatny. Przez wiele lat stworzono kilka różnych systemów, które starały się być zgodne z systemami unix lub unix, ale Linux był najbardziej udany, znacznie przekraczając popularność swoich poprzedników. Większość jądra systemu Linux jest napisana w języku programowania C z niewielką liczbą kolekcji z innych języków. Każda dystrybucjazawiera setki lub tysiące programów, które można rozpowszechniać wraz z nim i dla każdego z tych programów.

    Typy systemów plików Linux

    Dystrybucja Linuksa zapewnia wybór miejsca na dysku ze strukturą plików OS, z których każda ma specjalne znaczenie. Zaawansowana wersja Extended Filesystem (ext), która została opracowana po raz pierwszy dla MINIX. Druga rozszerzona wersja (Ext2) była ulepszoną wersją. Ext3 dodał lepszą wydajność, Ext4 dostarczył jeszcze bardziej zaawansowane funkcje. System plików dzienników (JFS) został opracowany przez firmę IBM dla systemu UNIX AIX. JFS jest obecnie alternatywą dla Ext4 i jest używany tam, gdzie wymagana jest stabilna praca przy użyciu niewielkiej ilości zasobów. JFS jest odpowiedni dla przypadków, w których moc procesora jest ograniczona. ReiserFS został wprowadzony jako alternatywa dla Ext3 z ulepszoną wydajnością i zaawansowanymi funkcjami. Był czas, gdy plik SuSE Linux był domyślnie ReiserFS, ale później Reiser opuścił firmę, a SuSe nie miał innej opcji niż wrócić do Ext3. ReiserFS dynamicznie obsługuje rozszerzenia plików, co jest stosunkowo rozszerzoną funkcją, system nie ma określonego obszaru wydajności. XFS jest szybkim JFS, który został zaprojektowany do równoległego przetwarzania we /wy. NASA wcześniej używała tej struktury systemu plików na swoich 300-terabajtowych serwerach pamięci masowej. System plików B-Tree (Btrfs) koncentruje się na tolerancji na błędy, zarządzaniu rozrywką, naprawie systemu, dużej konfiguracji pamięci i jest nadal w fazie rozwoju. Btrfs nie jest zalecany do produkcji. W systemie Linux dostępnych jest wiele formatów plików, ale są one używane zpracować z innymi systemami operacyjnymi: VIS, NTFS firmy Microsoft, HFS firmy Apple. Jednak praca ze strukturą plików OS może być wykonana w systemie Linux przy użyciu pewnych narzędzi, takich jak ntfs-3g, do montowania systemów plików NTFS, które nie są uprzywilejowane w Linuksie.

    Procesor. Udostępnianie

    Proces współużytkowania procesora, gdy dwa lub więcej programów jest jednocześnie w pamięci, nazywa się multiprogramowaniem. Obejmuje użycie jednego wspólnego procesora i zwiększa liczbę pobrań poprzez organizowanie zadań. Przypisanie systemu operacyjnego, struktura systemu operacyjnego związana z multiprogramowaniem:
  • System jednocześnie przechowuje kilka zadań w pamięci.
  • Zestaw ten stanowi podzestaw zadań przechowywanych w puli.
  • System wybiera i rozpoczyna wykonywanie jednego z zadań w pamięci.
  • Systemy operacyjne wielobajtowe monitorują stan wszystkich aktywnych programów i zasobów za pomocą oprogramowania zarządzającego pamięcią, aby zapewnić, że procesor nigdy nie będzie działał bez działających procesów przetwarzania.
  • Ten schemat pracy pomaga efektywnie korzystać z procesora.

    Powiązane publikacje