Respostas:
O OS X é o único sistema operacional restante baseado no microkernel Mach que também é ainda comercialmente relevante. Existem alguns projetos de pesquisa em andamento e sistemas operacionais obsoletos que, sem dúvida, ainda estão sendo usados em configurações de produção em máquinas antigas, mas nada que você possa comprar e comprar em uma nova máquina hoje.
O OS X possui a variedade usual de incompatibilidades de recursos do kernel que qualquer * ix possui. O maior deles eu mais recentemente teve de trabalho em torno de uma falta de filas de mensagens System V . ( msgget(2)
e amigos.) Tivemos que substituir nosso código da fila de mensagens - que foi gravado para uma variante "real" do System V e posteriormente portado para Linux - por TCP / IP para que nosso software funcionasse no OS X. Para nosso aplicativo, o as diferenças entre esses dois métodos de IPC eram importantes no momento em que optamos pelas filas de mensagens, mas devido a alterações arquiteturais posteriores, acabou não sendo muito importante mudar para o TCP / IP.
Quando se trata disso, Darwin não é apenas uma fina camada de BSD sobre o Mach 2.0?
Eu costumava usar o NeXTStep, não sei quanto MacOSX atual parte do NeXTStep, mas ...
O Mach 2.0 ofereceu um conjunto diferente de abstrações no nível do kernel:
O pessoal original do CMU Mach usou essas abstrações para emular processos BSD Unix, processos MS-DOS e, em um fabuloso ajuste de esquisitice, tarefas VMS. Cada tarefa do VMS executou 2 tarefas do Mach, além de muitos threads. Alguém costumava vender um emulador de Mac OS (pré-OSX) para o NeXTStep que usava os pagers de espaço do usuário com bons resultados.
A antiga página de publicações do CMU Mach: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html
Artigo sobre VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf
Isso não é uma resposta, mas o DTrace é uma ferramenta incrível de depuração de sistema que existe para Solaris, Darwin / OS X e * BSD, mas não para Linux.
Darwin possui um conjunto relativamente pequeno de tipos de sistemas de arquivos suportados. Além de promoções como devfs e tipos de rede como webdav, a lista é:
Dessa lista, apenas o UFS foi projetado para o Unix, embora o HFS + tenha sido atualizado para suportar todas as funcionalidades necessárias do Unix. No Mac OS X 10.6, o UFS não pode ser usado para a partição raiz, embora essa restrição provavelmente não se aplique ao Darwin. Por padrão, o HFS + não diferencia maiúsculas de minúsculas, embora a distinção entre maiúsculas e minúsculas possa ser solicitada no momento da criação. Embora o Mac OS X seja executado em uma partição que diferencia maiúsculas de minúsculas, muitos aplicativos Mac de alto perfil não o fazem (por exemplo, Adobe CS).
Por um tempo, a Apple estava planejando substituir o HFS com o ZFS e até enviou o ZFS com algumas versões do Mac OS X, mas, infelizmente, esse experimento acabou por falhar devido a problemas de licenciamento não resolvíveis .
Eu acho que é melhor descrever Darwin como apenas mais um sabor do UNIX . Solaris é um deles. HP / UX é outro. Há muito mais , talvez não tão "de alto nível", mas eles estão lá. E com todo sabor vem suas próprias especificidades. É por isso que existem sabores em primeiro lugar. Algumas empresas pensam em algo que ajudaria a vendê-lo (ou simplesmente trabalhar com ele ou até mesmo administrá-lo) e criar e dar seu próprio nome.
Se eu ouvi direito o Darwin, lançado pela Apple, não funciona mais como um sistema operacional independente, então eu apontaria que a maior diferença que ele tem é o OS X em cima dele. : D
Embora a integração entre o antigo Mac OS, o novo Mac OS X e o NeXT seja às vezes ridícula, são pequenos os utilitários como diskutil e hdiutil . Talvez sejam alguns arquitetos antigos do kernel que sobraram do NeXT que usem essas pequenas coisas e se importem com eles que também fizeram do XCode uma ferramenta tão boa.
Darwin é baseado no FreeBSD. Um recurso interessante que não está presente em outros sistemas operacionais Unix (na minha experiência) é o Berkeley Packet Filter , também conhecido como /dev/bpf
. Este é um dispositivo muito versátil que você pode usar para capturar pacotes.
O punho que me vem à mente são todas as ferramentas que o OSX possui no console. Existem muitos comandos mais úteis que o unix possui. Diskutil é como uma partição mágica no shell, esta ferramenta tem tantas opções para operações de disco que o fdisk é realmente apenas 10% do que esta besta tem ... tipos .. realmente unix tem isso? nos seus sonhos!! ; D
SystemProfiler - ótima ferramenta que exibe todos os IDs de hardware, nomes, modelos, sns e coisas assim de uma maneira MUITO confortável.
O darwin kernel não é totalmente transparente como no unix.
darwin tem killall util = P unix não, apenas habilidade
sistema de arquivos diferente também .. HFS, HFS +
talvez mais tarde eu vou lembrar mais =)