Vilka funktioner har Darwin att andra Unixer inte ' t, eller vice versa?
On februari 16, 2021 by adminHar Darwin några funktioner som är specifika för den? Har andra Unix (er) funktioner som Darwin saknar?
Svar
OS X är det enda återstående operativsystemet baserat på Mach microkernel som också fortfarande är kommersiellt relevant. Det finns några pågående forskningsprojekt och föråldrade operativsystem som utan tvekan fortfarande används i produktionsinställningar på gamla maskiner, men inget du kan gå ut och köpa på en ny maskin idag.
OS X har det vanliga sortiment av kärnfunktionskompatibiliteter som alla * ix har. Den största jag senast var tvungen att kringgå är bristen på System V-meddelandeköer . (msgget(2)
och vänner.) Vi var tvungna att ersätta vår meddelandekod — som skrevs för en ”riktig” System V-variant och senare överförd till Linux — med TCP / IP för att få vår programvara att köras på OS X. För vår applikation var skillnaderna mellan dessa två IPC-metoder viktiga när vi valde att gå med meddelandeköer, men på grund av senare arkitektoniska förändringar blev det slutligen inte en stor sak att byta till TCP / IP.
Svar
Är det inte bara ett tunt BSD-lager ovanpå Mach 2.0?
Jag brukade NeXTStep, jag vet inte hur mycket nuvarande MacOSX avviker från NeXTStep, men …
Mach 2.0 erbjöd en annan uppsättning abstraktioner på kärnnivå:
- En ”uppgift”: det är ett adressutrymme + en uppsättning av ”portar”, eventuellt med en tråd som körs i den.
- Trådar. Detta var den schemalagda exekveringsenheten. En uppgift (adressutrymme) kunde h ave mer än 1 kör i den. Jag tror att Mach-O-filer (Machs körbara filformat) kunde specificera mer än en tråd vid processkörningstiden: ingen huvudfunktion () som startade fler Cthreads, operativsystemet skulle starta en.
- Portar Dessa är inte som TCP – eller UDP – portar. De skrevs, beställde meddelandeströmmar. Snarare RPC-liknande. Du skapade en protokollspecifik fil och körde den genom en kompilator för att få server- och klientsidesstubbar, marshalling och unmarshalling-rutiner osv. Du kan skapa en uppgift + tråd för att hantera sökning av andra uppgifter ”adressutrymmen.
De ursprungliga CMU Mach-folken använde dessa abstraktioner för att emulera BSD Unix-processer, MS-DOS-processer, och i en fantastisk freakiness, VMS-uppgifter. Varje VMS-uppgift tog två Mach-uppgifter, plus många trådar. Någon brukade sälja en Mac OS (pre-OSX) emulator för NeXTStep som använde personsökare med god effekt.
Den gamla CMU Mach-publikationssidan: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html
VMS-on-Mach-papperet: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf
Kommentarer
- Mac OS X (och därmed Darwin) använder Mach 3.0.
Svar
Det här är inte riktigt ett svar, men DTrace är ett fantastiskt systemfelsökningsverktyg som finns för Solaris, Darwin / OS X och * BSD, men inte Linux.
Kommentarer
- Oracle-portad DTrace till Linux 2011.
- Från och med oktober 2011 meddelade Oracle att DTrace skulle överföras från Solaris till Linux, men från och med den 13 oktober 2014 är det fortfarande officiellt otillgängligt. ( slideshare.net/brendangregg/from-dtrace-to-linux )
Svar
Darwin har en relativt liten uppsättning filsystemstyper som stöds. Förutom specialerbjudanden som devfs och nätverkstyper som webdav är listan:
- HFS / HFS +
- UFS / FFS
- ISO-9660 / UDF / CDDA
- NTFS
- FAT
Av denna lista är endast UFS designades för Unix, även om HFS + har uppgraderats för att stödja all nödvändig Unix-funktionalitet. Från och med Mac OS X 10.6 kan UFS inte användas för rotpartitionen, även om denna begränsning troligen inte gäller Darwin. Som standard är HFS + skiftlägeskänslig, även om skiftlägeskänslighet kan begäras vid skapandet. Även om Mac OS X är körs på en skiftlägeskänslig partition, många högprofilerade Mac-applikationer kommer inte att göra det (t.ex. Adobe CS).
Under ett tag planerade Apple att ersätta HFS med ZFS och levererade till och med ZFS med vissa versioner av Mac OS X, men tyvärr misslyckades detta experiment så småningom på grund av olösliga licensproblem .
Kommentarer
- Jag tror OS X ’ s / macOS ’ s NTFS-skrivstöd är rapporterat att det fortfarande är buggy, eftersom det förblir experimentellt och aldrig stabiliserades, som jag minns.
Svar
Jag tycker att det är bäst att beskriva Darwin som bara en annan smak av UNIX . Solaris är en. HP / UX är en annan. Det finns många mer , kanske inte som ”hög- profil ”men de är där. Och med varje smak kommer sina egna detaljer. Det är därför det finns smaker i första hand. Vissa företag tänker på något som kan hjälpa till att sälja det (eller helt enkelt arbeta med det eller till och med administrera det) och skapa det och ge det ett eget namn.
Kommentarer
- UNIX (i alla bokstäver) är ett registrerat varumärke som tillhör The Open Group i många länder, för att något ska vara ” UNIX ” (i alla bokstäver), certifiering är krävs . Darwin är inte ’ t en annan ” smak av UNIX ” – men Mac OS X 10.10 på Intel x86-64 är certifierad som en annan UNIX.
Svar
Om jag har hört rätt Darwin, som släppt av Apple, fungerar inte längre som en oberoende operativsystem, så jag vill påpeka att den största skillnaden det har är OS X ovanpå det.: D
Även om integrationen mellan gamla Mac OS, nya Mac OS X och NeXT grejer är ibland skrattretande, små verktyg som diskutil och hdiutil är fantastiska. Kanske är det några gamla Mach-kärnarkitekter kvar från NeXT som använder de här små sakerna och bryr sig om dem som också har sett till att XCode är ett så bra verktyg.
Svar
Darwin är baserat på FreeBSD. En cool funktion som inte finns i andra Unix-operativsystem (enligt min erfarenhet) är Berkeley Packet Filter , aka /dev/bpf
. Detta är en mycket mångsidig enhet som du kan använda för att fånga paket.
Kommentarer
- Darwin är inte ’ är egentligen inte baserat på FreeBSD, även om det lånar några saker från användarlandet från det. Andra kommentarer här förklarar det bättre. bpf (4) är inte ’ t enbart Darwin och FreeBSD / NetBSD / OpenBSD, och jag ’ har fått en känsla av att någon kanske har implementerat det för tidigare Linux-kärnor. SCO (in-) hade det i sitt Unixware-erbjudande.
Svar
Knytnäve som jag tänker på är alla verktyg som OSX har i konsolen .. det finns massor av mer användbara kommandon som unix har. Diskutil det är som partition magi i skal, det här verktyget har så många alternativ för diskoperationer att fdisk egentligen bara är 10% av vad detta odjur har … btw osx stöder riktigt bra Software Raid support du kan ha JBOD, Strip och Mirror software raid types .. har verkligen unix detta? i dina drömmar !!; D
SystemProfiler – fantastiskt verktyg som visar alla hårdvaru-ID: s, namn, modeller, sn och sånt i en MYCKET bekvämt sätt.
darwin-kärnan är inte helt transparent som i unix.
darwin har killall util = P unix don ”t, bara skicklighet
olika filsystem också .. HFS, HFS +
kanske senare jag kommer ihåg mer =)
Kommentarer
- Menar du att Darwin har ’ killall ’ och andra Unix-varianter inte ’ t? Att ’ inte är sant.
- det här svaret är misstänkt för trolling. Det är inte nödvändigt att vara så ärekränkande i dina uttalanden om * nix annat än os X. Dessutom, förra gången jag NÅGONSIN ANVÄNDS * NIX killall var absolut närvarande i min PATH. Linux har också systemprofiler. Gör dina läxor. Don ’ t vara en d é uche. redigera: Jag använder och är väldigt förtjust i OS X.
- Jag har killall på Linux, så det är ’ inte unikt för darwin
- Detta svar är vagt och felaktigt. Vilka användbara funktioner saknar fdisk? Linux RAID (mdadm) har bland annat sammanfogning (LINEAR), striping (RAID0) och spegling (RAID1). Linux stöder också både HFS och HFS +.
- BTW: Linux-killall och Solaris-killall är helt annorlunda
Lämna ett svar