Jakie cechy ma Darwin, czego nie mają inne Uniksy, i odwrotnie?


19

Czy Darwin ma jakieś cechy charakterystyczne dla niego? Czy inne Uniksy mają funkcje, których brakuje Darwinowi?

Odpowiedzi:


20

OS X jest jedynym pozostałym systemem operacyjnym opartym na mikrojądrze Macha, który również jest nadal istotny z handlowego punktu widzenia. Trwa kilka projektów badawczych i przestarzałe systemy operacyjne, które bez wątpienia są nadal używane w ustawieniach produkcyjnych na starych komputerach, ale dziś nic nie można wyjść i kupić na nowej maszynie.

OS X ma zwykły asortyment niezgodności funkcji jądra, który ma każdy * ix. Największym ja ostatnio mieliśmy do pracy wokół jest brak kolejek komunikatów System V . ( msgget(2)i przyjaciele.) Musieliśmy zastąpić nasz kod kolejki komunikatów - który został napisany dla „prawdziwego” wariantu Systemu V, a później przeniesiony do Linuksa - na TCP / IP, aby nasze oprogramowanie działało w systemie OS X. Dla naszej aplikacji różnice między tymi dwiema metodami IPC miały znaczenie w momencie, gdy wybieraliśmy kolejki wiadomości, ale z powodu późniejszych zmian architektonicznych przejście na TCP / IP nie było wielkim problemem.


11

Jeśli chodzi o to, czy Darwin nie jest cienką warstwą BSD na Machu 2.0?

Kiedyś korzystałem z NeXTStep, nie wiem, ile obecnie MacOSX odbiega od NeXTStep, ale ...

Mach 2.0 oferował inny zestaw abstrakcji na poziomie jądra:

  1. „Zadanie”: jest to przestrzeń adresowa + zestaw „portów”, prawdopodobnie z uruchomionym wątkiem.
  2. Wątki To była planowa jednostka egzekucyjna. W zadaniu (przestrzeni adresowej) może być uruchomionych więcej niż 1. Uważam, że pliki Mach-O (format pliku wykonywalnego Macha) mogą określać więcej niż jeden wątek w czasie wykonywania procesu: brak funkcji main (), która uruchamiałaby więcej wątków, system operacyjny by ją uruchomił.
  3. Porty Nie są to porty TCP ani UDP. Zostały wpisane, uporządkowane strumienie wiadomości. Raczej przypomina RPC. Utworzyłeś plik specyfikacji protokołu, a następnie przepuściłeś go przez kompilator, aby uzyskać kody pośredniczące po stronie serwera i klienta, procedury zestawiania i odbierania itp.
  4. Pager na poziomie użytkownika. Możesz skonfigurować zadanie + wątek do obsługi stronicowania przestrzeni adresowej innych zadań.

Oryginalni ludzie z CMU Mach używali tych abstrakcji do emulacji procesów Uniksa BSD, procesów MS-DOS oraz w fantastycznym połączeniu dziwactwa zadań VMS. Każde zadanie VMS wymagało 2 zadań Macha i wielu wątków. Ktoś kiedyś sprzedawał emulator Mac OS (wcześniejszy niż OSX) dla NeXTStep, który korzystał z pagerów przestrzeni użytkownika.

Stara strona publikacji CMU Mach: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html

Artykuł VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf


2
Mac OS X (a tym samym Darwin) korzysta z Mach 3.0.
bahamat

5

To nie do końca odpowiedź, ale DTrace to niesamowite narzędzie do debugowania systemu, które istnieje dla systemów Solaris, Darwin / OS X i * BSD, ale nie dla Linuksa.


3
Oracle przeniósł DTrace na Linuksa w 2011 roku.
MattBianco

1
W październiku 2011 r. Oracle ogłosiło przeniesienie DTrace z Solaris na Linux, ale od 13 października 2014 r. Pozostaje oficjalnie niedostępny. ( slideshare.net/brendangregg/from-dtrace-to-linux )
scravy

4

Darwin ma stosunkowo niewielki zestaw obsługiwanych typów systemów plików. Oprócz ofert specjalnych, takich jak devfs i typów sieci, takich jak webdav, lista jest następująca:

  • HFS / HFS +
  • UFS / FFS
  • ISO-9660 / UDF / CDDA
  • NTFS
  • TŁUSZCZ

Z tej listy tylko UFS został zaprojektowany dla Unixa, chociaż HFS + został zaktualizowany do obsługi wszystkich niezbędnych funkcji Unixa. Począwszy od Mac OS X 10.6, UFS nie może być używany do partycji root, chociaż to ograniczenie prawdopodobnie nie dotyczy Darwina. Domyślnie w HFS + nie rozróżniana jest wielkość liter, chociaż w momencie tworzenia można zażądać rozróżnienia wielkości liter. Chociaż system Mac OS X będzie działał na partycji, w której rozróżniana jest wielkość liter, wiele głośnych aplikacji na komputery Mac nie będzie działać (np. Adobe CS).

Przez jakiś czas Apple planowało zastąpić HFS ​​z ZFS , a nawet dostarczyło ZFS z niektórymi wersjami Mac OS X, ale niestety ten eksperyment ostatecznie zakończył się niepowodzeniem z powodu nierozwiązywalnych problemów licencyjnych .


Wierzę / NTFS wsparcie zapisu OS X MacOS jest zgłaszane do nadal być wadliwa, gdyż pozostaje eksperymentalna i nigdy nie został ustabilizowany, o ile pamiętam.
RandomDSdevel

3

Myślę, że najlepiej opisać Darwin jako kolejny smak UNIX-a . Solaris jest jeden. HP / UX to kolejna. Jest o wiele więcej , może nie tak „głośnych”, ale są one dostępne. I z każdym smakiem wiąże się jego specyfika. Właśnie dlatego są smaki. Niektóre firmy wymyślają coś, co pomogłoby je sprzedać (lub po prostu pracować z nim, a nawet administrować nim) i stworzyć i nadać mu własną nazwę.


2
UNIX (wielkimi literami) jest zastrzeżonym znakiem towarowym The Open Group w wielu krajach; aby coś było „UNIX” (wielkimi literami), wymagana jest certyfikacja . Darwin nie jest kolejnym „smakiem UNIX” - ale Mac OS X 10.10 na Intel x86-64 jest certyfikowany jako inny UNIX.
user314104

0

Jeśli dobrze usłyszałem Darwina wydanego przez Apple, nie działa on już jako niezależny system operacyjny, więc wskazałbym, że największą różnicą jest OS X na nim. :RE

Chociaż integracja starego Mac OS, nowego Mac OS X i NeXT jest czasem śmieszna, małe narzędzia takie jak diskutil i hdiutil są świetne. Być może niektórzy architekci jądra Macha pozostawieni z NeXT używają tych drobiazgów i troszczą się o nich, którzy upewnili się, że XCode jest tak dobrym narzędziem.


-1

Darwin jest oparty na FreeBSD. Jedną fajną funkcją, która nie jest obecna w innych systemach operacyjnych Unix (z mojego doświadczenia) jest Berkeley Packet Filter , alias /dev/bpf. Jest to bardzo wszechstronne urządzenie, którego można użyć do przechwytywania pakietów.


1
Darwin nie jest tak naprawdę oparty na FreeBSD, chociaż pożycza od niego pewne rzeczy związane z użytkowaniem. Inne komentarze tutaj wyjaśniają to lepiej. bpf (4) to nie tylko Darwin i FreeBSD / NetBSD / OpenBSD, i mam wrażenie, że ktoś mógł go nawet zaimplementować dla wcześniejszych jąder Linuksa. SCO (nie) słynie z tego w swojej ofercie Unixware.
jrg

-11

Pięścią, która przychodzi mi na myśl, są wszystkie narzędzia, które OSX ma w konsoli. Istnieje mnóstwo bardziej przydatnych poleceń, które posiada Unix. Diskutil to jak magia partycji w powłoce, to narzędzie ma tak wiele opcji operacji dyskowych, że fdisk to tak naprawdę zaledwie 10% tego, co ma ta bestia ... btw osx obsługuje naprawdę świetne wsparcie Software Raid, możesz mieć oprogramowanie JBOD, Strip i Mirror typy .. czy naprawdę Unix ma to? w Twoich snach!! ;RE

SystemProfiler - świetne narzędzie, które wyświetla wszystkie identyfikatory sprzętu, nazwy, modele, snów i takie tam w bardzo BARDZO wygodny sposób.

Jądro darwin nie jest całkowicie przezroczyste jak w Uniksie.

darwin have killall util = P unix nie, tylko umiejętności

inny system plików również .. HFS, HFS +

może później zapamiętam więcej =)


2
Czy masz na myśli, że Darwin ma „killall”, a inne warianty uniksowe nie? To nieprawda.
kbyrd,

2
ta odpowiedź jest podejrzana o trollowanie. Nie trzeba być tak zniesławiającymi w swoich wypowiedziach na temat * nix innych niż os X. Ponadto, kiedy ostatni raz KIEDYKOLWIEK * NIX killall był absolutnie obecny w mojej ŚCIEŻCE. Również Linux ma profilery systemowe. Odrób pracę domową. Nie bądź déuche. edycja: Używam i bardzo lubię OS X.
Eli Frey,

2
Mam killall na Linuksie, więc nie jest to unikalne dla darwin
xenoterracide

2
Ta odpowiedź jest niejasna i niedokładna. Jakich przydatnych funkcji brakuje fdisk? Linux RAID (mdadm) nie ma konkatenacji (liniowy), striping (RAID0) i mirroring (RAID1), między innymi. Linux obsługuje również HFS i HFS +.
Matthew Flaschen

3
BTW: Linux-killall i Solaris-killall są zupełnie inne
EricSchaefer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.