Czym w ogóle jest UNIX?
Krótka odpowiedź: UNIX jest obecnie specyfikacją / standardem.
W momencie pisania, aby zacytować oficjalne źródła , „UNIX® jest zastrzeżonym znakiem towarowym The Open Group”, firmy, która między innymi zapewnia certyfikację UNIX :
„UNIX®, otwarty standard będący własnością i zarządzany przez The Open Group, umożliwia kluczowe technologie i zapewnia obniżony całkowity koszt posiadania, zwiększoną elastyczność IT, stabilność i interoperacyjność w heterogenicznych środowiskach, umożliwiając innowacje biznesowe i rynkowe na całym świecie . ”
Ta sama strona wyraźnie określa, która specyfikacja definiuje UNIX:
Najnowsza wersja standardu certyfikacji to UNIX V7, dostosowany do specyfikacji Single UNIX Wersja 4, wydanie 2013
Szczegóły tych specyfikacji można znaleźć tutaj . Co ciekawe, najnowszym standardem wymienionym na ich stronie jest UNIX 03, a cytując inne źródło , „UNIX® 03 - znak dla systemów zgodnych z wersją 3 specyfikacji Single UNIX”.
Cytując stronę O nas z wyróżnieniem pogrubioną czcionką:
Sukces podejścia UNIX doprowadził do powstania dużej liczby „podobnych” systemów operacyjnych, często rozbieżnych pod względem kompatybilności i interoperacyjności. Aby rozwiązać ten problem, dostawcy i użytkownicy połączyli się w latach 80., aby stworzyć standard POSIX®, a później specyfikację Single UNIX .
Sugeruje to (a przynajmniej taka jest moja interpretacja), że gdy system operacyjny jest zgodny ze standardem POSIX i specyfikacjami pojedynczego systemu UNIX, jest zgodny z zachowaniem systemu Unix jako systemu operacyjnego, który kiedyś istniał w pewnym momencie historii. Zauważ, że nie wspomina to o obecności jakichkolwiek śladów oryginalnego kodu źródłowego Uniksa, ani nie wspomina w żaden sposób o jądrze (stanie się to ważne później).
Jeśli chodzi o AT&T i System V Unix opracowane przez Ritchie i Thompson, dziś możemy powiedzieć, że przestało istnieć. Na podstawie powyższych źródeł wydaje się, że obecnie UNIX nie jest tym konkretnym systemem operacyjnym, ale raczej standardem opartym na najlepszym możliwym uogólnieniu na zachowanie systemów operacyjnych z rodziny Unix .
Gdzie stoi macOS X w świecie * nix?
W bardzo szczegółowej definicji, macOS w wersji 10.13 High Sierra na sprzęcie z procesorami Intela jest zgodny ze standardem UNIX 03 i cytując certyfikat pdf , „Apple Inc. zawarło umowę licencyjną na znak towarowy z X / Open Company Limited”. Uwaga dodatkowa: waham się zapytać, co by to znaczyło dla macOS 10.13 na sprzęcie innym niż Intel, ale należy pamiętać, że biorąc pod uwagę, że wspomniano o innym systemie operacyjnym, sprzęt jest znaczący. Przykład: „Hewlett Packard Enterprise: HP-UX 11i V3 wersja B.11.31 lub nowsza na serwerach HP 9000 z architekturą precyzyjną” (ze strony rejestru ).
Wróćmy do poprzedniej części mojej odpowiedzi. Ponieważ ta konkretna wersja systemu operacyjnego jest zgodna ze standardem interoperacyjności i kompatybilności, oznacza to, że system operacyjny zachowuje się jak najbliżej oryginalnego Uniksa jako system operacyjny. Przynajmniej będzie blisko w zachowaniu i środowisku. Im bardziej zbliża się do poziomu systemu i poziomu jądra, tym bardziej konkretny i cieńszy będzie obszar, ale przynajmniej podstawowa mechanika i zachowanie, które były obecne w Uniksie, powinny być obecne w systemie operacyjnym, który ma być kompatybilny. macOS X powinien być bardzo blisko tego celu.
Co to jest dystrybucja?
Cytując Wikipedię :
Dystrybucja Linuksa (często w skrócie distro) to system operacyjny wykonany z kolekcji oprogramowania opartej na jądrze Linuksa i często systemie zarządzania pakietami.
Pamiętajmy przez chwilę, że Linux, podobnie jak w jądrze Linuksa, ma być oprogramowaniem do dystrybucji , z modyfikacjami lub przynajmniej zgodnie z GPL v2 . Jeśli weźmiemy pod uwagę menedżera pakietów i jądro, to dystrybucje Ubuntu i Red Hat mają sens. macOS X ma inne jądro niż oryginalny AT&T Unix - dlatego nazwanie macOS X dystrybucją Uniksa nie ma sensu. Ludzie sugerują, że jądro macOS X jest oparte na FreeBSD, ale cytując Wiki FreeBSD :
Jądro XNU używane w systemie OS X zawiera kilka podsystemów (starszych wersji) FreeBSD, ale w większości jest niezależną implementacją
Niektórzy ludzie błędnie nazywają jądro OS X Darwin. Cytując Przewodnik Apple dotyczący programowania jądra :
Jądro, podobnie jak inne podstawowe części OS X, są wspólnie nazywane Darwin. Darwin to kompletny system operacyjny oparty na wielu tych samych technologiach, które leżą u podstaw systemu OS X.
Cytując tę samą stronę:
Technologia Darwin oparta jest na technologiach BSD, Mach 3.0 i Apple.
W oparciu o wszystko powyżej możemy śmiało powiedzieć, że OS X nie jest dystrybucją w sensie dystrybucji Linuksa. Podobnie, inne wymienione systemy operacyjne są zgodne z POSIX i są certyfikowanymi systemami uniksowymi, ale znów różnią się jądrem i odmianami wywołań systemowych (dlatego istnieją książki na temat programowania systemu Solaris i jest to godny osobny temat). Dlatego nie są to dystrybucje w sensie dystrybucji Linuksa - wspólny rdzeń z odmianami narzędzi. W przypadku Linuksa widzisz książki na temat programowania systemu Linux lub programowania jądra Linux, a nie programowania systemowego specyficznego dla dystrybucji, ponieważ nie ma nic specyficznego dla systemu w konkretnej dystrybucji.
Potwierdzenie tego, co tu widzimy, można znaleźć w oficjalnej dokumentacji. Na przykład artykuł o developerWorks firmy IBM, który dotyczył różnicy między typami systemów UNIX i stanami dystrybucji Linux (wyróżnienie dodane):
Większość znanych obecnie wariantów UNIX to licencjonowane wersje jednej z oryginalnych wersji UNIX . Systemy Solaris firmy Sun, systemy HP-UX firmy Hewlett-Packard i systemy AIX® firmy IBM są odmianami systemu UNIX, które mają własne unikalne elementy i podstawy .
Innymi słowy, są oparte na tej samej podstawie, ale nie dzielą dokładnie tej samej w tym sensie, że dystrybucje Linuksa współużytkują jądro.
Uwagi
Zauważ, że dystrybucja słów wydaje się być najczęściej używana w odniesieniu do systemów operacyjnych, które mają jądro Linux. Weźmy na przykład systemy operacyjne typu BSD: istnieje GhostBSD , który jest oparty na jądrze i korzysta z niektórych narzędzi FreeBSD , ale nigdy nie widziałem, aby był nazywany dystrybucją BSD; każdy system operacyjny BSD wspomina tylko o tym, na czym jest oparty, i zwykle system operacyjny jest wymieniany jako system operacyjny sam w sobie. Jasne, BSD oznacza Berkeley Software Distribution, ale ... to wszystko.
Aby zacytować tę odpowiedź na naszej stronie w odpowiedzi na pytanie, czy różne wersje BSD używają tych samych jąder:
Nie, chociaż istnieją podobieństwa ze względu na historyczne widelce. Każdy projekt ewoluował osobno.
Nie są to dystrybucje w rozumieniu dystrybucji Linuksa. Rozważ informację o prawach autorskich z tego dokumentu :
Części tego produktu mogą pochodzić z systemów BSD UNIX® i Berkeley 4.3
Uwagi
Podsumowując:
- macOS X może być nazywany systemem operacyjnym uniksopodobnym, systemem uniksopodobnym, implementacją systemu uniksowego, systemem operacyjnym zgodnym z POSIX-em, gdy chcesz powiązać go z oryginalnym systemem AT&T Unix;
- „Wersja uniksowa” nie byłaby odpowiednim terminem, ponieważ macOS X różni się znacznie od oryginalnego AT&T Unixa, a jak wspomniano wcześniej, nie ma już Uniksa w sensie oprogramowania, a teraz jest bardziej standardem branżowym;
- Prawdopodobnie słowo „dystrybucja” pasuje tylko do świata Linuksa.
- Prawdziwy problem polega na tym, że ty (czytelnik) i ja mam zbyt dużo czasu, aby spierać się na temat, o który prawnicy powinni się kłócić. Być może powinniśmy być jak Linux Torvalds i używać terminologii i systemów operacyjnych, które pozwalają nam żyć życiem i robić rzeczy, na których szczerze nam zależy i na których powinniśmy się troszczyć.