Czy macOS jest dystrybucją Uniksa?

19

Wiem, że macOS jest systemem operacyjnym UNIX , ale nie wiem, czy macOS można nazwać dystrybucją UNIX w ten sam sposób, w jaki Gentoo lub Debian są dystrybucjami GNU / Linux .

Czy macOS jest dystrybucją UNIX? Jeśli tak nie jest, w jaki sposób można prawidłowo odnosić się do członkostwa MacOS”w rodzinie systemów operacyjnych UNIX i zgodności z Single Unix Specification (czyli jest to wariant Unix , A wersja Unix , o smaku Unix , itd.)? To pytanie dotyczy również systemów Solaris, HP-UX i innych urządzeń unikatowych (czy wszystkie są dystrybucjami UNIX?).

Ponadto, czy słowo „dystrybucja” jest ograniczone do systemów operacyjnych GNU (/ Linux, / Hurd, / kFreeBSD, / itp.), Czy może być używane w innych przypadkach?

EDYCJA: Zdałem sobie sprawę, że oficjalna strona UNIX używa „implementacji UNIX” i „systemów operacyjnych UNIX” w odniesieniu do rodziny systemów operacyjnych Unix, tj. Tych, które implementują standard Single Unix.

Seninha
źródło
Jak definiujesz „dystrybucję uniksową” i co rozumiesz przez „bycie dystrybucją uniksową”?
Jörg W Mittag
@ JörgWMittag Nie mam na to żadnej definicji. Myślę, że sens dystrybucji GNU jako zestawu systemów operacyjnych, które współużytkują to samo podstawowe oprogramowanie, jak zdefiniowano w odpowiedzi, jest właściwy.
Seninha
2
UNIX to marka. Unix to system operacyjny. To są dwie różne rzeczy.
fpmurphy,
1
Ściśle mówiąc, Debian i Gentoo nie są dystrybucjami Uniksa, są dystrybucjami Linuksa. Linux nie jest Uniksem, po prostu działa jak Unix. Ani AFAIK nie są dystrybucjami GNU: narzędzia GNU są częścią każdej dystrybucji Linuksa, ale nie jedyną.
jamesqf
1
Jeśli opublikujesz swoją zmianę jako odpowiedź, uzyska ona moje poparcie.
dcorking

Odpowiedzi:

32

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ć.
Sergiy Kolodyazhnyy
źródło
15
Przed stwierdzeniem, że słowo „dystrybucja” nie jest tam używane, możesz sprawdzić, co właściwie oznacza BSD ;-).
Stephen Kitt,
2
Przepraszam za wiele edycji, brak „a” i „s” utrudniły mi śledzenie całego tekstu. POSIX jest nowszy niż starsze Unices i nie jestem pewien, czy odpowiedź jest mieszana w obu przypadkach; Myślę też, że robisz krzywdę charakteryzującą świat BSD, który jest znacznie bliższy Unixowi niż Linuxowi. Certyfikacja sama w sobie również nie oznacza dużo więcej, że ktoś miał czas i pieniądze, aby przejść proces certyfikacji, i należy to zrobić w każdej wersji. IMO, przerabiając nieco tekst, może to być bardzo dobra odpowiedź.
Rui F Ribeiro
1
@Matthew Jednak nie ręczyłbym za jakość ziemi użytkownika BSD OS / X / Mac OS. Często narzędzia są bardzo starymi wersjami w porównaniu z wersjami FreeBSD, a nawet właściwa i niedawna implementacja IPv6 zajęła dużo czasu, zanim pojawiły się tylko w najnowszych wersjach.
Rui F Ribeiro
3
W Unix standardową stronę internetową zastosowania „implementacje UNIX” odnieść się do uniksach. Więc tego słowa szukałem: wdrożenie.
Seninha,
3
@Sergiy Kolodyazhnyy. Zgodność z POSIX nie oznacza, że ​​wersja systemu operacyjnego to as close to original Unix as possibleIstnieje wiele systemów operacyjnych innych niż Unix, które są zgodne z POSIX.
fpmurphy,
4

P: Czy macOS jest dystrybucją Uniksa? Jeśli tak nie jest, to jak można poprawnie odnieść się do bycia macOS w rodzinie systemów operacyjnych Unix (tj. Czy jest to wariant Unix, wersja Unix, smak Unix itp.)? To pytanie dotyczy również systemów Solaris, HP-UX i innych unikatów (czy wszystkie są dystrybucjami uniksowymi?).

Źródło obrazu: https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/SystemTechnology.html

Mac OS X

Źródło: https://en.m.wikipedia.org/wiki/XNU

XNU to jądro systemu operacyjnego komputera opracowane w Apple Inc. od grudnia 1996 r. Do użytku w systemie operacyjnym macOS i wydane jako bezpłatne oprogramowanie typu open source jako część systemu operacyjnego Darwin . Jest także używane jako jądro systemu iOS , tvOS i watchOS. XNU to skrót od X to Not U nix.


Źródło: https://developer.apple.com/library/content/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-CIHFEIFI

Budowanie twojego pierwszego jądra

Zanim zbudujesz jądro, musisz najpierw uzyskać kod źródłowy. Kod źródłowy jądra OS X można znaleźć w projekcie Darwin xnu na stronie http://www.opensource.apple.com . Aby sprawdzić aktualną wersję jądra, użyj polecenia uname -a. Jeśli napotkasz problemy, przeszukaj archiwa list dyskusyjnych darwin-kernel i darwin-development w celu uzyskania informacji. Jeśli to nie pomoże, poproś o pomoc na obu listach. Archiwa listy i informacje o subskrypcji można znaleźć na stronie http://www.lists.apple.com ”.


Źródło: https://developer.apple.com/library/content/documentation/Porting/Conceptual/PortingUnix/glossary/glossary.html

Cocoa - Zaawansowana zorientowana obiektowo platforma programistyczna dla OS X. Cocoa to zestaw frameworków z interfejsami programistycznymi zarówno w Javie, jak i Objective-C. Opiera się na integracji OPENSTEP, technologii Apple i Java.

Darwin - Inna nazwa rdzenia systemu operacyjnego OS X. Jądro Darwina jest równoważne jądrze OS X oraz bibliotekom BSD i poleceniom niezbędnym dla środowiska wiersza poleceń BSD . Darwin to technologia open source.

Xcode - zintegrowane graficzne środowisko programistyczne Apple. Jest dostępny bezpłatnie z pakietem narzędzi programistycznych OS X.

XNU - jądro OS X. Skrót oznacza X to nie Unix. XNU łączy funkcjonalność Macha i BSD z I / O Kit, modelem sterownika dla OS X.


  • Architektura

Źródło: https://en.wikipedia.org/wiki/MacOS#Architecture

„Podstawą macOS jest system operacyjny zgodny z POSIX, zbudowany na jądrze XNU , ze standardowymi funkcjami Unix dostępnymi z interfejsu wiersza poleceń. Apple wydało tę rodzinę oprogramowania jako darmowy i otwarty system operacyjny o nazwie Darwin . Darwin , Apple, nałożył wiele elementów, w tym interfejs Aqua i Finder, aby uzupełnić system operacyjny oparty na graficznym interfejsie użytkownika, jakim jest macOS. ”


P: Dystrybucja czy wydanie ? - Źródło: https://en.wikipedia.org/wiki/MacOS#Updating_methods

Źródło: https://en.wikipedia.org/wiki/MacOS_High_Sierra

„macOS High Sierra (wersja 10.13) to czternasta główna wersja macOS, stacjonarnego systemu operacyjnego Apple Inc. dla komputerów Macintosh. Następca macOS Sierra został ogłoszony na WWDC 2017 w dniu 5 czerwca 2017 r.”. „Typ jądra: hybrydowy (XNU)”.


Pytanie: To pytanie dotyczy także systemów Solaris, HP-UX i innych unikatów (czy wszystkie są dystrybucjami uniksowymi?).

Obrabować
źródło
3
Radziłbym spróbować przyklejenia wielokrotnego cytowania własnymi słowami.
Rui F Ribeiro
Jak wspomniano w @RuiFRibeiro, powinieneś dodać kilka wyjaśnień; nie powiedział jednak, że nie jest jasne, gdzie stoisz z tymi wszystkimi różnymi cytatami.
Paradoks