Czym różni się Linux od UNIX i czym jest system operacyjny podobny do systemu UNIX? Historia systemów UNIX

UNIX powstał w Bell Labs AT&T ponad 20 lat temu.

UNIX- Jest to wieloużytkownikowy, wielozadaniowy system operacyjny, zawierający dość potężne narzędzia do ochrony programów i plików różnych użytkowników. Jest napisany w języku C i jest niezależny od komputera, co zapewnia jego wysoką mobilność i łatwość przenoszenia aplikacji na komputery PC o różnych architekturach. Ważna cecha System operacyjny rodziny UNIX to jego modułowość i rozbudowany zestaw programy serwisowe, które pozwalają na stworzenie dogodnego środowiska pracy dla użytkowników-programistów.

Obsługuje hierarchiczną strukturę plików, pamięć wirtualną, interfejs wielookienkowy, systemy wieloprocesorowe, wieloużytkownikowy system zarządzania bazami danych, heterogeniczne sieci komputerowe.

System operacyjny UNIX ma następujące główne cechy:

ruchliwość;

- wielozadaniowość z wywłaszczaniem w oparciu o procesy działające w izolowanych przestrzeniach adresowych w pamięć wirtualna;

Wsparcie jednoczesna praca wielu użytkowników;

Wsparcie dla procesów asynchronicznych;

Hierarchiczny system plików;

Wsparcie dla operacji I/O niezależnych od urządzenia (poprzez specjalne pliki urządzeń);

Standardowy interfejs dla programów (kanały programów, IPC) i użytkowników (interpreter poleceń nie zawarty w jądrze systemu operacyjnego);

Korzystanie z wbudowanego systemu księgowego.

Architektura UNIX- wielopoziomowy. Działa na niższym poziomie rdzeń system operacyjny. Funkcje jądra (zarządzanie procesami, zarządzanie pamięcią, obsługa przerwań itp.) są dostępne poprzez interfejs wywołań systemowych, tworząc drugi poziom. Wywołania systemowe zapewniać interfejs oprogramowania aby uzyskać dostęp do procedur jądra. Praca na kolejnym poziomie tłumacze poleceń , komendy i narzędzia do administrowania systemem, komunikacja kierowcy I protokoły , - wszystko, co zwykle określa się jako oprogramowanie systemowe . Powstaje poziom zewnętrzny programy użytkowe usługi użytkownika, sieciowe i inne usługi komunikacyjne, DBMS i narzędzia.

System operacyjny wykonuje dwa główne zadania: manipulację danymi i przechowywanie danych. Większość programów przede wszystkim manipuluje danymi, ale ostatecznie są one gdzieś przechowywane. W systemie UNIX ta lokalizacja przechowywania to system plików. Ponadto w UNIX wszystkie urządzenia z którymi współpracuje system operacyjny, są również reprezentowane jako pliki specjalne w systemie plików.

Logiczny system plików w systemie UNIX (lub po prostu system plików ) to hierarchicznie zorganizowana struktura wszystkich katalogów i plików w systemie, zaczynając od źródło informator. System plików UNIX zapewnia ujednolicony interfejs dostępu do danych znajdujących się na różnych nośnikach i do urządzeń peryferyjnych. Logiczny system plików może składać się z jednego lub więcej fizyczne (pod)systemy plików, które są sekcjami nośników fizycznych (dysków, dysków CD-ROM lub dyskietek).


System plików kontroluje uprawnienia do plików, wykonuje operacje tworzenia i usuwania plików oraz zapisuje/odczytuje dane plików. System plików zapewnia przekierowanie żądań adresowanych do urządzeń peryferyjnych do odpowiednich modułów podsystemu I/O.

Struktura hierarchiczna System plików UNIX ułatwia nawigację. Każdy katalog, zaczynając od katalogu głównego ( / ), z kolei zawiera pliki i podkatalogi.

Nie ma teoretycznych ograniczeń liczby katalogów zagnieżdżonych w systemie UNIX, ale istnieją ograniczenia dotyczące maksymalnej długości nazwy pliku określonej w poleceniach — 1024 znaki.

W systemie UNIX istnieje kilka typów plików, które różnią się funkcjonalnością:

zwykły plik - najbardziej ogólny typ pliku zawierającego dane w jakimś formacie. Dla systemu operacyjnego takie pliki są po prostu sekwencją bajtów. Pliki te obejmują pliki tekstowe, dane binarne i programy wykonywalne.

Katalog- jest to plik zawierający nazwy plików, które zawiera, a także wskaźniki do dodatkowych informacji, które umożliwiają systemowi operacyjnemu operowanie na tych plikach. Katalogi tworzą logiczne drzewo systemu plików.

Plik urządzenia specjalnego — Zapewnia dostęp do urządzeń fizycznych. Dostęp do urządzeń uzyskuje się poprzez otwieranie, odczytywanie i zapisywanie do specjalnego pliku urządzenia.

FIFO - nazwany potok. Ten plik jest używany do komunikacji między procesami w kolejce.

gniazdo elektryczne- umożliwiają reprezentowanie połączenia sieciowego w postaci pliku.

Każdy plik w systemie operacyjnym UNIX zawiera zestaw uprawnień, które określają sposób interakcji użytkownika z danym plikiem.

Każdy dysk twardy składa się z jednej lub więcej części logicznych - sekcji. Lokalizacja i rozmiar partycji są określane podczas formatowania dysku. W systemie UNIX partycje działają jako niezależne urządzenia, do których uzyskuje się dostęp tak, jakby były różnymi nośnikami pamięci. Sekcja może zawierać tylko jeden fizyczny system plików.

Istnieje wiele typów fizycznych systemów plików, takich jak FAT16 i NTFS, o różnych strukturach. Ponadto istnieje wiele typów fizycznych systemów plików UNIX ( ufs, s5fs, ext2, vxfs, jfs, ffs itp.).

Co to jest Unix (dla początkujących)


Dmitrij J. Karpow


O czym mówię?


To dzieło nie twierdzi, że jest kompletne. Co więcej, dla uproszczenia celowo pominięto niektóre szczegóły. Początkowo cykl pomyślany był jako FAQ (FAQ - najczęściej zadawane pytania), ale podobno okaże się, że będzie to "Kurs Młodego Żołnierza" lub "Szkoła Sierżanta".

Próbowałem podać opis porównawczy różnych system operacyjny- tego moim zdaniem brakuje w większości podręczników i instrukcji technicznych.

Nie czekając na ujawnienie się ze strony doświadczonych uniksowych "oidów", składam dobrowolne wyznanie - nie mogę twierdzić, że jestem wielkim koneserem Uniksa, a moja wiedza dotyczy głównie FreeBSD. Mam nadzieję, że to nie przeszkadza.

Ten plik będzie przez długi czas w stanie „w budowie”. :-)

Co to jest Unix?


Unix to kompletny, natywnie wieloużytkownikowy, wielozadaniowy i wieloterminalowy system operacyjny. Dokładniej jest to cała rodzina systemów, które są ze sobą prawie całkowicie kompatybilne na poziomie kodów źródłowych programów.

Czym są Unix i na jakich maszynach działają?


Ta lista nie twierdzi się, że jest kompletna, ponieważ oprócz wymienionych, istnieje wiele mniej popularnych systemów uniksowych i uniksopodobnych, nie wspominając o starożytnych systemach uniksowych dla przestarzałych maszyn.

Konwencjonalnie możemy wyróżnić rodziny System V i Berkeley. System V (wymawiane jako „System Five”) ma kilka wariantów, z których najnowszy, o którym wiem, to System V Release 4. Berkeley University słynie nie tylko z rozwoju BSD, ale także z większości protokołów internetowych. Jednak wiele Uniksów łączy cechy obu systemów.

Skąd wziąć darmowy Unix?


  • Rodzina BSD: FreeBSD, NetBSD, OpenBSD.
  • Rodzina Linux: RedHat, SlackWare, Debian, Caldera,
  • SCO i Solaris są dostępne bezpłatnie do użytku niekomercyjnego (głównie dla instytucji edukacyjnych).

    Jakie są główne różnice między Uniksem a innymi systemami operacyjnymi?


    Unix składa się z jądra z dołączonymi sterownikami i narzędziami (programy zewnętrzne w stosunku do jądra). Jeśli potrzebujesz zmienić konfigurację (dodać urządzenie, zmienić port lub przerwanie), to jądro jest przebudowywane (ponownie łączone) z modułów obiektowych lub (na przykład we FreeBSD) ze źródeł. /* To nie do końca prawda. Niektóre parametry można poprawić bez przebudowy. Istnieją również ładowalne moduły jądra. */

    W przeciwieństwie do Uniksa, w systemie Windows (jeśli nie określono który, to mamy na myśli 3.11, 95 i NT) i OS/2, podczas ładowania faktycznie łączą sterowniki w ruchu. zmontowane jądro i ponowne użycie wspólnego kodu są o rząd wielkości mniejsze niż Ponadto, jeśli konfiguracja systemu pozostaje niezmieniona, jądro Unixa można zapisać do ROMu i wykonać _nie_uruchomione_ do pamięci RAM bez modyfikacji (konieczna będzie zmiana tylko początkowego część systemu BIOS). pamięć nie jest zamieniana na dysk.

    Unix to najbardziej wieloplatformowy system operacyjny. WindowsNT stara się go naśladować, ale jak dotąd nie udało się to - po rezygnacji z MIPS i POWER-PC W"NT pozostał na tylko dwóch platformach - tradycyjnej i*86 i DEC Alpha. Oczywiście przenośność programów z jednej wersji Uniksa do drugiej jest ograniczony.Niechlujny program napisany, który nie bierze pod uwagę różnic w implementacjach Uniksa, przyjmując nierozsądne założenia, takie jak „zmienna całkowita powinna zajmować cztery bajty”, może wymagać poważnych przeróbek, ale wciąż jest to wiele rzędów ogrom łatwiej niż na przykład przenoszenie z OS/2 na NT.

    Dlaczego Unix?


    Unix jest używany zarówno jako serwer, jak i stacja robocza. W nominacji serwerów konkurują z nim systemy operacyjne MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS i mainframe. Każdy system ma swój obszar zastosowania, w którym jest lepszy od innych.

  • WindowsNT jest dla administratorów, którzy preferują znajomy interfejs od oszczędności i wysokiej wydajności.
  • Netware — dla sieci tam, gdzie jest to potrzebne wysoka wydajność usługi plików i drukarek oraz inne usługi nie są tak ważne. Główna wada- Trudno jest uruchamiać aplikacje na serwerze Netware.
  • OS / 2 jest dobry tam, gdzie potrzebujesz „lekkiego” serwera aplikacji. Wymaga mniej zasobów niż NT, jest bardziej elastyczny w zarządzaniu (chociaż może być trudniejszy do skonfigurowania), a wielozadaniowość jest bardzo dobra. Autoryzacja i różnicowanie praw dostępu nie są realizowane na poziomie systemu operacyjnego, co z nawiązką opłaca się implementacją na poziomie serwerów aplikacji. (Jednak często inne systemy operacyjne robią to samo). Wiele stacji FIDOnet i BBS jest opartych na OS/2.
  • VMS jest potężnym, w niczym nie ustępującym Uniksowi (i pod wieloma względami lepszym od niego) serwerem aplikacji, ale tylko dla platform VAX i Alpha firmy DEC.
  • Mainframe - do obsługi bardzo dużej liczby użytkowników (rzędu kilku tysięcy). Ale praca tych użytkowników jest zwykle zorganizowana nie w formie interakcji klient-serwer, ale w formie host-terminal. Terminal w tej parze nie jest raczej klientem, lecz serwerem (Internet World, N3 za 1996 rok). Zaletami komputerów typu mainframe są większe bezpieczeństwo i odporność na awarie, a wadami odpowiadająca tym cechom cena.

    Unix jest dobry dla wprawnego (lub chętnego do bycia) administratorem, ponieważ wymaga znajomości zasad funkcjonowania zachodzących w nim procesów. Prawdziwa wielozadaniowość i współdzielenie twardej pamięci zapewniają wysoką niezawodność systemu, chociaż wydajność usług plików i drukowania w systemie Unix jest gorsza niż w Netware.

    Brak elastyczności w przyznawaniu użytkownikom praw dostępu do plików w porównaniu do WindowsNT utrudnia organizowanie grupowego dostępu do danych (a dokładniej do plików) na poziomie _na_systemie_plików_, co moim zdaniem rekompensuje łatwość implementacji, czyli mniej sprzętu wymagania. Jednak aplikacje takie jak SQL Server same rozwiązują problem grupowego dostępu do danych, więc brak uniksowej możliwości odmowy dostępu do _pliku_ konkretnemu użytkownikowi jest moim zdaniem wyraźnie zbędny.

    Prawie wszystkie protokoły, na których oparty jest Internet, zostały opracowane pod Uniksem, w szczególności stos protokołów TCP/IP został wynaleziony na Uniwersytecie Berkeley.

    Bezpieczeństwo Uniksa, gdy jest właściwie administrowane (a kiedy nie jest?), w niczym nie ustępuje ani Novellowi, ani WindowsNT.

    Ważną właściwością Uniksa, która zbliża go do komputerów mainframe, jest jego wieloterminalowość, wielu użytkowników może jednocześnie uruchamiać programy na tej samej maszynie Unix. Jeśli nie musisz używać grafiki, możesz sobie poradzić z tanimi terminalami tekstowymi (specjalistycznymi lub opartymi na tanich komputerach PC) połączonymi wolnymi liniami. W tym konkuruje z nim tylko VMS. Graficzne terminale X mogą być również używane, gdy okna procesów uruchomionych na różnych komputerach znajdują się na tym samym ekranie.

    W nominacji stacji roboczej Unix konkuruje z MS Windows*, IBM OS/2, Macintosh i Acorn RISC-OS.

  • Windows - dla tych, którzy cenią kompatybilność nad wydajność; dla chętnych do zakupu duża liczba pamięć, miejsce na dysku i megaherce; dla tych, którzy lubią nie zagłębiać się w esencję, kliknij przyciski w oknie. To prawda, prędzej czy później trzeba jeszcze przestudiować zasady systemu i protokoły, ale wtedy będzie za późno - wybór został dokonany. Ważną zaletą systemu Windows musi być również możliwość kradzieży kilku oprogramowanie.
  • OS/2 - dla fanów OS/2. :-) Chociaż, według niektórych raportów, OS/2 lepiej niż inne współdziała z komputerami mainframe i sieciami IBM.
  • Macintosh - dla prac graficznych, wydawniczych i muzycznych, a także dla tych, którzy kochają przejrzysty, piękny interfejs i nie chcą (nie potrafią) zrozumieć szczegółów systemu.
  • RISC-OS, flashowany w pamięci ROM, pozwala nie tracić czasu na instalowanie systemu operacyjnego i przywracanie go po awariach. Ponadto prawie wszystkie programy w ramach tego programu wykorzystują zasoby bardzo ekonomicznie, dzięki czemu nie wymagają wymiany i działają bardzo szybko.

    Unix działa zarówno na komputerach PC, jak i na potężnych stacjach roboczych z procesorami RISC, pod Uniksem napisane są naprawdę potężne systemy CAD i systemy informacji geograficznej. Skalowalność Unixa, ze względu na jego wieloplatformową naturę, jest o rząd wielkości przewyższająca jakikolwiek inny znany mi system operacyjny.

    Podstawowe koncepcje uniksowe


    Unix opiera się na dwóch podstawowych pojęciach: „proces” i „plik”. Procesy są dynamiczną stroną systemu, są podmiotami; oraz pliki - statyczne, są to obiekty procesów. Prawie cały interfejs między procesami oddziałującymi z jądrem i między sobą wygląda jak zapisywanie/odczytywanie plików. /* Chociaż musimy dodać takie rzeczy jak sygnały, pamięć współdzielona i semafory. */

    Procesów nie należy mylić z programami - jeden program (zazwyczaj z różnymi danymi) może być wykonywany w różnych procesach. Procesy można z grubsza podzielić na dwa typy - zadania i demony. Zadanie to proces, który wykonuje swoją pracę, starając się go jak najszybciej zakończyć i zakończyć. Demon czeka na zdarzenia, które musi przetworzyć, przetwarza zdarzenia, które wystąpiły, i czeka ponownie; zwykle kończy się na zlecenie innego procesu, najczęściej jest zabijany przez użytkownika, wydając polecenie „kill process_number”. /* W tym sensie okazuje się, że interaktywne zadanie przetwarzające dane wejściowe użytkownika przypomina bardziej demona niż zadanie. :-) */

    System plików


    W starych Uniksach do nazwy przypisano 14 liter, w nowych usunięto to ograniczenie. Oprócz nazwy pliku katalog zawiera jego identyfikator i-węzła - liczbę całkowitą określającą numer bloku, w którym znajduje się rejestrowane są atrybuty pliku, wśród nich: numer użytkownika - właściciel pliku; grupy numerów Liczba odniesień do pliku (patrz niżej) Data i czas utworzenia, ostatniej modyfikacji i ostatniego dostępu do pliku Atrybuty dostępu Atrybuty dostępu zawierają plik typ (patrz poniżej), atrybuty zmiany uprawnień podczas uruchamiania (patrz poniżej) oraz uprawnienia dostępu do niego dla właściciela, kolegi z klasy i innych osób do czytania, pisania i wykonywania. Prawo do usunięcia pliku jest określone przez prawo do zapisu do nadrzędnego informator.

    Każdy plik (ale nie katalog) może być znany pod kilkoma nazwami, ale muszą znajdować się na tej samej partycji. Wszystkie linki do pliku są równe; plik jest usuwany po usunięciu ostatniego łącza do pliku. Jeśli plik jest otwarty (do odczytu i/lub zapisu), to liczba linków do niego zwiększa się o jeden; tak wiele programów, które otwierają plik tymczasowy, natychmiast go usuwa, więc kiedy rozbić się gdy system operacyjny zamyka pliki otwarte przez proces, ten plik tymczasowy został usunięty przez system operacyjny.

    Jest jeszcze inna ciekawa cecha systemu plików: jeśli po utworzeniu pliku zapis do niego nie odbywał się w jednym rzędzie, ale w dużych odstępach czasu, to na te odstępy nie jest przydzielane miejsce na dysku. W ten sposób całkowita objętość plików na partycji może być większa niż objętość partycji, a po usunięciu takiego pliku zwalnia się mniej miejsca niż jego rozmiar.

    Pliki są następujących typów:

    • regularny plik z bezpośrednim dostępem;
    • katalog (plik zawierający nazwy i identyfikatory innych plików);
    • dowiązanie symboliczne (ciąg z nazwą innego pliku);
    • urządzenie blokowe (dysk lub taśma magnetyczna);
    • urządzenie szeregowe (terminale, porty szeregowe i równoległe; dyski i taśmy mają również interfejs urządzenia szeregowego)
    • nazwany kanał.

    Specjalne pliki do pracy z urządzeniami znajdują się zwykle w katalogu /dev. Oto niektóre z nich (w nominacji FreeBSD):

    • tty* - terminale, w tym:
      • ttyv - konsola wirtualna;
      • ttyd - terminal DialIn (zwykle port szeregowy);
      • cuaa — linia telefoniczna
      • ttyp - pseudoterminal sieciowy;
      • tty - terminal, z którym powiązane jest zadanie;
    • wd*- dyski twarde oraz ich podsekcje, w tym:
      • wd - dysk twardy;
      • wds - partycja tego dysku (tu zwana „plasterkiem”);
      • wds - sekcja partycji;
    • fd - dyskietka;
    • rwd*, rfd* - to samo co wd* i fd*, ale z dostępem sekwencyjnym;

    Czasami wymagane jest, aby program uruchomiony przez użytkownika nie posiadał praw użytkownika, który go uruchomił, ale jakieś inne. W tym przypadku atrybut uprawnień do zmiany jest ustawiony na uprawnienia użytkownika - właściciela programu. (Jako przykład podam program, który odczytuje plik z pytaniami i odpowiedziami i na podstawie tego, co przeczytał, testuje ucznia, który uruchomił ten program. Program musi mieć prawo do odczytania pliku z odpowiedziami, ale uczeń kto go uruchomił, nie powinien.) Na przykład działa program passwd, za pomocą którego użytkownik może zmienić swoje hasło. Użytkownik może uruchomić program passwd, może dokonywać zmian w bazie danych systemu - ale użytkownik nie może.

    W przeciwieństwie do DOS, gdzie pełna nazwa pliku wygląda jak „dysk:\ścieżka\nazwa” i RISC-OS, gdzie wygląda jak „-file_system-drive:$.ścieżka.nazwa” (co generalnie ma swoje zalety), Unix używa przezroczystego Notacja „/ścieżka/nazwa”. Korzeń jest mierzony od partycji, z której załadowano jądro Unix. Jeśli zamierzamy użyć innej partycji (a partycja rozruchowa zwykle zawiera tylko niezbędne elementy do rozruchu), używane jest polecenie `mount /dev/partitionfile dir`. Jednocześnie pliki i podkatalogi, które wcześniej znajdowały się w tym katalogu, stają się niedostępne, dopóki partycja nie zostanie odmontowana (oczywiście wszyscy normalni ludzie używają pustych katalogów do montowania partycji). Tylko przełożony ma prawo do wsiadania i zdejmowania.

    Podczas uruchamiania każdy proces może oczekiwać otwarcia trzech plików, które zna jako standardowe wejście wejściowe pod deskryptorem 0; standardowe wyjście standardowe na deskryptorze 1; i standardowe wyjście stderr na deskryptorze 2. Po zalogowaniu, gdy użytkownik wprowadza nazwę użytkownika i hasło, a powłoka jest uruchamiana, wszystkie trzy są kierowane do /dev/tty; później każdy z nich może zostać przekierowany do dowolnego pliku.

    tłumacz poleceń


    Unix prawie zawsze ma dwie powłoki, sh (powłoka) i csh (powłoka podobna do C). Oprócz nich istnieją również bash (Bourne), ksh (Korn) i inne. Nie wchodząc w szczegóły, oto ogólne zasady:

    Wszystkie polecenia, z wyjątkiem zmiany bieżącego katalogu, ustawiania zmiennych środowiskowych (środowiska) i instrukcji programowania strukturalnego - programy zewnętrzne. Programy te zwykle znajdują się w katalogach /bin i /usr/bin. Programy do administrowania systemem - w katalogach /sbin i /usr/sbin.

    Polecenie składa się z nazwy programu, który ma zostać uruchomiony oraz argumentów. Argumenty są oddzielone od nazwy polecenia i od siebie spacjami i tabulatorami. Niektóre znaki specjalne są interpretowane przez samą powłokę.Znaki specjalne to " " ` \ ! $ ^ * ? | & ; (co jeszcze?).

    Jeden wiersz poleceń można podać wiele poleceń. Zespoły można dzielić; (sekwencyjne wykonywanie poleceń), & (asynchroniczne jednoczesne wykonywanie poleceń), | (wykonywanie synchroniczne, standardowe wyjście pierwszego polecenia zostanie podane na standardowe wejście drugiego).

    Możesz także pobrać standardowe wejście z pliku, dołączając „<файл" (без кавычек); можно направить стандартный вывод в файл, используя ">plik" (plik zostanie wyzerowany) lub ">>plik" (zapis zostanie dokonany na końcu pliku). Sam program nie otrzyma tego argumentu; aby wiedzieć, że wejście lub wyjście zostało zmienione, program sama musi wykonać kilka bardzo nietrywialnych gestów.

    Podręczniki - mężczyzna


    Jeśli potrzebujesz informacji o jakimkolwiek poleceniu, wydaj polecenie "man nazwa_komendy". Zostanie to wyświetlone na ekranie za pomocą programu "more" - zobacz, jak zarządzać tym na swoim Uniksie za pomocą polecenia `man more`.

    Dodatkowa dokumentacja

  • ), trzecie (GNU/Linux) i wiele kolejnych.

    Systemy UNIX mają ogromne znaczenie historyczne, ponieważ rozpowszechniły niektóre koncepcje i podejścia, które są dziś popularne w dziedzinie systemów operacyjnych i oprogramowania. Również podczas rozwoju systemów Unix powstał język C.

    Przykłady znanych systemów operacyjnych typu UNIX to: BSD, Solaris, Linux, Android, MeeGo, NeXTSTEP, Mac OS X, Apple iOS.

    Historia

    przodkowie

    Pierwsze wersje systemu UNIX zostały napisane w języku asemblerowym i nie miały wbudowanego kompilatora języka wysokiego poziomu. Około 1969 roku Ken Thompson z pomocą Dennisa Ritchie opracował i zaimplementował język B (B), który był uproszczoną (do implementacji na minikomputerach) wersją języka BCPL opracowanego w tym języku. Bi, podobnie jak BCPL, był językiem interpretowanym. W 1972 ukazała się druga edycja UNIXa, przepisana w języku B. W latach 1969-1973 opracowano kompilowany język oparty na B, nazwany C (C).

    Rozdzielać

    Ważnym powodem podziału w systemie UNIX było wdrożenie w 1980 stosu protokołów TCP/IP. Wcześniej komunikacja maszyna-maszyna w systemie UNIX była w powijakach - najważniejszą metodą komunikacji był UUCP (środek kopiowania plików z jednego systemu UNIX do drugiego, pierwotnie działający w sieciach telefonicznych za pomocą modemów).

    Zaproponowano dwa sieciowe interfejsy programowania aplikacji: gniazda Berkley oraz interfejs warstwy transportowej TLI. Interfejs warstwy transportowej).

    Interfejs gniazd Berkley został opracowany na Uniwersytecie Berkeley i wykorzystywał opracowany tam stos protokołów TCP/IP. TLI zostało stworzone przez AT&T zgodnie z definicją warstwy transportowej modelu OSI i po raz pierwszy pojawiło się w System V w wersji 3. Chociaż ta wersja zawierała TLI i strumienie, pierwotnie nie implementowała protokołu TCP/IP ani innych protokołów sieciowych, ale takie implementacje zostały dostarczone przez osoby trzecie.

    Implementacja TCP/IP została oficjalnie i definitywnie włączona do podstawowej dystrybucji Systemu V w wersji 4. To, wraz z innymi (głównie rynkowymi) względami, spowodowało ostateczne rozgraniczenie między dwiema gałęziami UNIX - BSD (Uniwersytet Berkeley) i System V (wersja komercyjna firmy AT&T). Następnie wiele firm, posiadających licencję na System V od AT&T, opracowało własne komercyjne wersje systemu UNIX, takie jak AIX, CLIX, HP-UX, IRIX, Solaris.

    Współczesne implementacje UNIXa nie są generalnie czystymi systemami V lub BSD. Wdrażają funkcje zarówno z Systemu V, jak i BSD.

    Darmowe systemy operacyjne typu UNIX

    W obecnie GNU/Linux i członkowie rodziny BSD szybko przejmują rynek od komercyjnych systemów UNIX i jednocześnie infiltrują oba komputery osobiste użytkowników końcowych oraz systemów mobilnych i wbudowanych.

    Systemy zastrzeżone

    Wpływ UNIX-a na ewolucję systemów operacyjnych

    Idee stojące za UNIX miały ogromny wpływ na rozwój komputerowych systemów operacyjnych. Systemy UNIX są obecnie uznawane za jeden z najważniejszych historycznie systemów operacyjnych.

    Szeroko stosowany w programowaniu systemowym język C, pierwotnie stworzony do rozwoju systemu UNIX, prześcignął UNIX pod względem popularności. Język C był pierwszym „tolerancyjnym” językiem, który nie próbował narzucać programiście stylu programowania. C był pierwszym językiem wysokiego poziomu, który zapewniał dostęp do wszystkich funkcji procesora, takich jak referencje, tabele, przesunięcia bitowe, przyrosty itd. Z drugiej strony swoboda języka C prowadziła do błędów przepełnienia bufora w standardowych funkcjach biblioteki C, takich jak gets i scanf. Powstało wiele niesławnych luk w zabezpieczeniach, takich jak ta wykorzystana w słynnym robaku Morris.

    Pierwsi programiści systemu UNIX przyczynili się do wprowadzenia zasad programowania modułowego i ponownego wykorzystania do praktyki inżynierskiej.

    UNIX zapewnił możliwość korzystania z protokołów TCP/IP na stosunkowo niedrogie komputery, co doprowadziło do szybkiego rozwoju Internetu. To z kolei przyczyniło się do szybkiego odkrycia kilku głównych luk w zabezpieczeniach systemu, architektury i narzędzia systemowe UNIX.

    Z biegiem czasu wiodący programiści UNIX opracowali kulturowe normy tworzenia oprogramowania, które stały się równie ważne jak sam UNIX. ( )

    Rola społeczna w środowisku specjalistów IT i rola historyczna

    Oryginalny UNIX działał na dużych komputerach z wieloma użytkownikami, które oferowały również zastrzeżone systemy operacyjne producenta sprzętu, takie jak RSX-11 i jego następca VMS. Pomimo tego, że według wielu opinii ówczesny UNIX miał wady w porównaniu z tymi systemami operacyjnymi (m.in. brak poważnych silników bazodanowych), to był a) tańszy, a czasem darmowy dla instytucji akademickich, b) był przenośny ze sprzętu na sprzęt i opracowany w przenośnym języku C, który „oddzielił” tworzenie programów od określonego sprzętu. Dodatkowo wrażenia użytkownika okazały się „niezwiązane” ze sprzętem i producentem – osoba, która pracowała z UNIXem na VAX-ie, bez problemu pracowała z nim na 68xxx i tak dalej.

    Producenci sprzętu w tamtych czasach często fajnie podchodzili do UNIXa, uważając go za zabawkę i oferując swój autorski system operacyjny do poważnej pracy - przede wszystkim DBMS i oparte na nich aplikacje biznesowe w komercyjnych strukturach. Znane są komentarze na ten temat z DEC dotyczące jego VMS. Korporacje tego słuchały, ale nie środowisko akademickie, które w UNIX-ie miało wszystko dla siebie, często nie wymagało oficjalnego wsparcia producenta, radziło sobie samodzielnie i doceniało taniość i przenośność UNIX-a.

    W ten sposób UNIX był prawdopodobnie pierwszym systemem operacyjnym, który można przenosić na inny sprzęt.

    Drugim ważnym wzrostem UNIXa było wprowadzenie procesorów RISC około 1989 roku. Jeszcze wcześniej istniały tzw. Stacje robocze to komputery osobiste o dużej mocy przeznaczone dla jednego użytkownika, z wystarczającą ilością pamięci, dyskiem twardym i wystarczająco zaawansowanym systemem operacyjnym (wielozadaniowość, ochrona pamięci) do pracy z poważnymi aplikacjami, takimi jak CAD. Wśród producentów takich maszyn wyróżniał się Sun Microsystems, który wyrobił sobie na nich markę.

    Przed pojawieniem się procesorów RISC stacje te zwykle używały procesora Motorola 68xxx, takiego samego jak w komputerach Apple (choć pod bardziej zaawansowanym systemem operacyjnym niż Apple).

    Około 1989 roku na rynku pojawiły się komercyjne wdrożenia procesorów architektury RISC. Logiczną decyzją wielu firm (Sun i innych) było przeniesienie UNIXa na te architektury, co natychmiast doprowadziło do przeniesienia całego ekosystemu oprogramowania UNIX.

    Własne poważne systemy operacyjne, takie jak VMS, od tego momentu zaczęły swój upadek (nawet jeśli można było przenieść sam system operacyjny na RISC, to wszystko było znacznie bardziej skomplikowane z aplikacjami do niego, które w tych ekosystemach były często rozwijane w asemblerze lub w zastrzeżonych językach, takich jak BLISS), a UNIX stał się systemem operacyjnym dla większości potężne komputery na świecie.

    Jednak w tym czasie ekosystem PC zaczął przenosić się na GUI w obliczu Windows 3.0. Ogromne zalety GUI, a także np. zunifikowane wsparcie dla wszystkich typów drukarek, zostały docenione zarówno przez deweloperów, jak i użytkowników. To mocno nadszarpnęło pozycję UNIX-a na rynku - wdrożenia takie jak SCO i Interactive UNIX nie radziły sobie ze wsparciem dla aplikacji Windows. Jeśli chodzi o GUI dla UNIXa, o nazwie X11 (były inne implementacje, znacznie mniej popularne), nie mógł on w pełni działać na komputerze zwykłego użytkownika ze względu na wymagania dotyczące pamięci - X11 wymagał 16 MB do normalnego działania, podczas gdy Windows 3.1 z wystarczającą wydajnością do uruchamiaj jednocześnie Worda i Excela w 8 MB (stało się to wtedy standardowym rozmiarem pamięci komputera). Na wysokie ceny w pamięci był to czynnik ograniczający.

    Sukces Windows dał impuls wewnętrznemu projektowi Microsoft pod Nazwa systemu Windows NT, który był kompatybilny z Windows przez API, ale jednocześnie miał te same cechy architektury poważnego systemu operacyjnego co UNIX - wielozadaniowość, pełna ochrona pamięci, obsługa maszyn wieloprocesorowych, uprawnienia do plików i katalogów, dziennik systemowy. Windows NT wprowadził również plik dziennika System NTFS, które pod względem możliwości w tamtym czasie przewyższały wszystkie systemy plików dostarczane standardowo z UNIX - analogi dla UNIX były tylko oddzielnymi produktami komercyjnymi od Veritas i innych.

    Chociaż Windows NT nie był początkowo popularny ze względu na wysokie wymagania pamięciowe (te same 16 MB), umożliwił Microsoftowi wejście na rynek rozwiązań serwerowych, takich jak DBMS. Wielu w tamtym czasie nie wierzyło w zdolność Microsoftu, tradycyjnie specjalizującego się w oprogramowaniu desktopowym, do bycia graczem na rynku oprogramowania dla przedsiębiorstw, który miał już wielkie nazwiska, takie jak Oracle i Sun. Wątpliwości pogłębiał fakt, że baza danych Microsoft SQL Server zaczynała jako uproszczona wersja Sybase SQL Server, licencjonowana przez Sybase i zgodna w 99% we wszystkich aspektach pracy z nią.

    W drugiej połowie lat 90. Microsoft zaczął wprowadzać UNIX również na rynek serwerów korporacyjnych.

    Połączenie powyższych czynników, a także ogromny spadek cen procesorów wideo 3D, które zmieniły się ze sprzętu profesjonalnego w sprzęt domowy, w zasadzie zabiły samą koncepcję stacji roboczej na początku 2000 roku.

    Ponadto systemy firmy Microsoft są łatwiejsze w zarządzaniu, zwłaszcza w typowych przypadkach użycia.

    Ale w ten moment rozpoczął się trzeci gwałtowny wzrost UNIX-a.

    Ponadto Stallman i jego towarzysze, doskonale zdając sobie sprawę, że niezastrzeżone narzędzia programistyczne są potrzebne do sukcesu oprogramowania niekorporacyjnego, opracowali zestaw kompilatorów dla różnych języków programowania (gcc), które wraz z opracowanym wcześniej GNU media (zamiennik standardowe narzędzia UNIX) stanowił niezbędny i dość potężny pakiet oprogramowania dla programisty.

    W rzeczywistości do stworzenia całkowicie darmowego systemu UNIX brakowało tylko jądra systemu operacyjnego. Został opracowany przez fińskiego studenta Linusa Torvaldsa. Jądro zostało opracowane od zera i nie jest pochodną ani BSD, ani Systemu V pod względem kodu źródłowego (choć koncepcje wciąż były zapożyczone, np. Linux miał funkcje namei i bread), ale w szeregu niuansów (system wywołania, rich / proc, brak sysctk) - skłania się bardziej do tych ostatnich.

    • POSIX 1003.2-1992, określający zachowanie narzędzi, w tym powłoki;
    • POSIX 1003.1b-1993, uzupełniający POSIX 1003.1-1988, określa obsługę systemów czasu rzeczywistego;
    • POSIX 1003.1c-1995, uzupełniając POSIX 1003.1-1988, definiuje wątki, znane również jako pthreads.

    Wszystkie standardy POSIX są skonsolidowane w dokumencie IEEE 1003.

    Ze względu na kompatybilność kilku producentów systemów UNIX zasugerowało użycie ELF, formatu systemów SVR4 dla plików binarnych i obiektowych. Pojedynczy format zapewnia pełną spójność plików binarnych w ramach tej samej architektury komputera.

    Struktura katalogów niektórych systemów, zwłaszcza GNU/Linux, jest zdefiniowana w standardzie Filesystem Hierarchy Standard. Jednak pod wieloma względami ten typ standardu jest kontrowersyjny i nawet w społeczności GNU/Linuksa jest daleki od uniwersalnego.

    Standardowe polecenia UNIX

    • Tworzenie i przeglądanie plików i katalogów: dotknij , , , , , , pwd , , mkdir , rmdir , find , ;
    • Przeglądanie i edycja plików: more , less , , ex, , emacs ;
    • Przetwarzanie tekstu: echo , cat , grep , sort , uniq , sed , awk , tee , head , tail , cut , , split , printf ;
    • Porównanie plików: comm , cmp , diff , patch ;
    • Różne narzędzia powłoki: yes , test , xargs , expr ;
    • Administracja systemem: chmod , chown , , , , who , , mount , umount ;
    • Komunikacja: poczta, telnet, ftp, finger, rsh, ssh;
    • Powłoki : , bash , csh , ksh , tcsh , zsh ;
    • Pracuj z kod źródłowy oraz kod wynikowy: cc, gcc , ld, , yacc , bison , lex , flex , ar, ranlib, make ;
    • Kompresja i archiwizacja: kompresuj, dekompresuj, gzip , gunzip , tar
    • Praca z plikami binarnymi: , stringi

    Poniżej znajduje się lista 60 poleceń z sekcji 1 pierwszej wersji systemu UNIX:

    • b, bas , bcd, boot
    • kot , chdir , check , chmod , chown , cmp ,
    • data , db, dbppt, , , dsw, dtf,
    • poczta , wiadomość , mkdir , mkfs, mocowanie ,
    • rew, rkd, rkf, rkl, , rmdir , roff

    Uwagi

    Zobacz też

    mistrz sylaby 19 marca 2011 o 23:16

    Czym różni się Linux od UNIX i czym jest system operacyjny podobny do systemu UNIX?

    • Rupieciarnia *
    UNIX
    UNIX (nie warte tego mylić z definicją „systemu operacyjnego podobnego do UNIX”) - rodziny systemów operacyjnych (Mac OS X, GNU / Linux).
    Pierwszy system został opracowany w 1969 roku w Bell Laboratories, dawnej amerykańskiej korporacji.

    Charakterystyczne cechy UNIX:

    1. Łatwa konfiguracja systemu za pomocą prostych, zwykle plików tekstowych.
    2. Szerokie wykorzystanie wiersza poleceń.
    3. Korzystanie z przenośników.
    Obecnie UNIX jest używany głównie na serwerach oraz jako system dla sprzętu.
    Nie sposób nie zauważyć ogromnego historycznego znaczenia systemów UNIX. Obecnie są uznawane za jeden z najważniejszych historycznie systemów operacyjnych. Podczas rozwoju systemów UNIX powstał język C.

    Warianty UNIX według roku

    System operacyjny podobny do systemu UNIX
    System operacyjny podobny do systemu UNIX (czasem użyj skrótu *nix) - system powstały pod wpływem UNIXa.

    Słowo UNIX jest używane zarówno jako znak zgodności, jak i znak towarowy.

    Konsorcjum Open Group jest właścicielem znaku towarowego „UNIX”, ale jest najbardziej znane jako instytucja certyfikująca znak towarowy UNIX. Open Group niedawno rzuciła światło na publikację „Single UNIX Specification”, standardów, które system operacyjny musi spełnić, aby mógł być z dumą nazywany Unixem.

    Możesz rzucić okiem na drzewo genealogiczne systemów operacyjnych typu UNIX.

    linux
    linux- ogólna nazwa systemów operacyjnych opartych na UNIX, które są opracowywane w ramach projektu GNU (projekt rozwoju oprogramowania open source). Linux działa na wielu różnych architekturach procesorów, od ARM do Intel x86.

    Najbardziej znane i popularne dystrybucje to Arch Linux, CentOS, Debian. Istnieje również wiele "krajowych", rosyjskich dystrybucji - ALT Linux, ASPLinux i inne.

    Istnieje sporo kontrowersji dotyczących nazewnictwa GNU/Linuksa.
    Zwolennicy „open source” używają terminu „Linux”, podczas gdy zwolennicy „wolnego oprogramowania” używają terminu „GNU/Linux”. Wolę pierwszą opcję. Czasami, dla wygody reprezentowania terminu GNU/Linux, używa się pisowni „GNU+Linux”, „GNU-Linux”, „GNU Linux”.

    W przeciwieństwie do systemów komercyjnych (MS Windows, Mac OS X), Linux nie posiada geograficznego centrum rozwoju i konkretnej organizacji, która byłaby właścicielem systemu. Sam system i programy do niego to efekt pracy ogromnych społeczności, tysięcy projektów. Każdy może dołączyć do projektu lub stworzyć własny!

    Wyjście
    W ten sposób łańcuch nauczył się od nas: UNIX -> UNIX-like OS -> Linux.

    Podsumowując, mogę powiedzieć, że różnice między Linuksem a UNIXem są oczywiste. UNIX to znacznie szersza koncepcja, podstawa budowania i certyfikacji wszystkich systemów uniksopodobnych, a Linux jest szczególny przypadek UNIX.

    Tagi: unix, linux, nix, linux, unix

    UNIX (nie warte tego mylić z definicją „systemu operacyjnego podobnego do UNIX”) - rodziny systemów operacyjnych (Mac OS X, GNU / Linux).
    Pierwszy system został opracowany w 1969 roku w Bell Laboratories, dawnej amerykańskiej korporacji.

    Charakterystyczne cechy UNIX:

    1. Łatwa konfiguracja systemu za pomocą prostych, zwykle plików tekstowych.
    2. Szerokie wykorzystanie wiersza poleceń.
    3. Korzystanie z przenośników.
    Obecnie UNIX jest używany głównie na serwerach oraz jako system dla sprzętu.
    Nie sposób nie zauważyć ogromnego historycznego znaczenia systemów UNIX. Obecnie są uznawane za jeden z najważniejszych historycznie systemów operacyjnych. Podczas rozwoju systemów UNIX powstał język C.

    Warianty UNIX według roku

    System operacyjny podobny do systemu UNIX
    System operacyjny podobny do systemu UNIX (czasem użyj skrótu *nix) - system powstały pod wpływem UNIXa.

    Słowo UNIX jest używane zarówno jako znak zgodności, jak i znak towarowy.

    Konsorcjum Open Group jest właścicielem znaku towarowego „UNIX”, ale jest najbardziej znane jako instytucja certyfikująca znak towarowy UNIX. Open Group niedawno rzuciła światło na publikację „Single UNIX Specification”, standardów, które system operacyjny musi spełnić, aby mógł być z dumą nazywany Unixem.

    Możesz rzucić okiem na drzewo genealogiczne systemów operacyjnych typu UNIX.

    linux
    linux- ogólna nazwa systemów operacyjnych opartych na UNIX, które są opracowywane w ramach projektu GNU (projekt rozwoju oprogramowania open source). Linux działa na wielu różnych architekturach procesorów, od ARM do Intel x86.

    Najbardziej znane i popularne dystrybucje to Arch Linux, CentOS, Debian. Istnieje również wiele "krajowych", rosyjskich dystrybucji - ALT Linux, ASPLinux i inne.

    Istnieje sporo kontrowersji dotyczących nazewnictwa GNU/Linuksa.
    Zwolennicy „open source” używają terminu „Linux”, podczas gdy zwolennicy „wolnego oprogramowania” używają terminu „GNU/Linux”. Wolę pierwszą opcję. Czasami, dla wygody reprezentowania terminu GNU/Linux, używa się pisowni „GNU+Linux”, „GNU-Linux”, „GNU Linux”.

    W przeciwieństwie do systemów komercyjnych (MS Windows, Mac OS X), Linux nie posiada geograficznego centrum rozwoju i konkretnej organizacji, która byłaby właścicielem systemu. Sam system i programy do niego to efekt pracy ogromnych społeczności, tysięcy projektów. Każdy może dołączyć do projektu lub stworzyć własny!

    Wyjście
    W ten sposób łańcuch nauczył się od nas: UNIX -> UNIX-like OS -> Linux.

    Podsumowując, mogę powiedzieć, że różnice między Linuksem a UNIXem są oczywiste. UNIX to znacznie szersza koncepcja, podstawa budowania i certyfikacji wszystkich systemów podobnych do UNIX, a Linux jest szczególnym przypadkiem UNIX.

    Tagi: unix, linux, nix, linux, unix