it-swarm-pt.tech

Quais recursos Darwin tem que outros Unix não têm, ou vice-versa?

Darwin tem alguma característica específica para ele? Outros Unixe (s) têm recursos que faltam em Darwin?

19
Am1rr3zA

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 sair e comprar em uma máquina nova hoje.

OS X tem a variedade usual de incompatibilidades de recursos do kernel que qualquer * ix tem. O maior problema que tive de contornar recentemente foi a falta de filas de mensagens do System V . (msgget(2) and friends.) Tivemos que substituir nosso código de fila de mensagens - que foi escrito para uma variante "real" do System V e posteriormente transferido para Linux - por TCP/IP para fazer nosso software rodar no sistema operacional X. Para a nossa aplicação, as diferenças entre estes dois métodos IPC métodos importavam no momento em que escolhemos ir com as filas de mensagens, mas devido a alterações arquitetônicas posteriores, acabou não sendo um grande acordo para mudar para TCP/IP.

20
Warren Young

No final das contas, Darwin não é apenas uma fina camada BSD em cima do Mach 2.0?

Eu costumava usar o NeXTSTEP, não sei quanto o MacOSX atual se afasta do NeXTSTEP, mas ...

Mach 2.0 ofereceu um conjunto diferente de abstrações no nível do kernel:

  1. Uma "tarefa": é um espaço de endereço + um conjunto de "portas", possivelmente com uma thread em execução.
  2. Tópicos. Esta era a unidade de execução programada. Uma tarefa (espaço de endereço) pode ter mais de 1 em execução. Eu acredito que os arquivos Mach-O (formato de arquivo executável do Mach) podem especificar mais de um thread no tempo de execução do processo: nenhuma função main () que inicie mais Cthreads, o sistema operacional iniciará um.
  3. Portas. Eles não são como TCP ou UDP. Eles eram fluxos de mensagens digitados e ordenados. Em vez disso, como RPC. Você criou um arquivo de especificações de protocolo e o executou por meio de um compilador para obter o servidor e stubs do lado do cliente, rotinas de marshalling e unmarshalling, etc.
  4. Pagers de memória de nível de usuário. Você pode configurar uma tarefa + thread para lidar com a paginação de espaços de endereço de outras tarefas.

O pessoal do CMU Mach original usava essas abstrações para emular processos BSD Unix, processos MS-DOS e, em um fabuloso ajuste de esquisitices, tarefas VMS. Cada tarefa VMS levou 2 tarefas Mach, além de muitos threads. Alguém costumava vender um emulador Mac OS (pré-OSX) para NeXTSTEP que usava os pagers do 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

O papel VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf

11
Bruce Ediger

Esta não é bem uma resposta, mas DTrace é uma ferramenta de depuração de sistema incrível que existe para Solaris, Darwin/OS X e * BSD, mas não para Linux.

5
kbyrd

Darwin tem um conjunto relativamente pequeno de tipos de sistemas de arquivos suportados. Além de especiais como devfs e tipos de rede como webdav, a lista é:

  • HFS/HFS +
  • UFS/FFS
  • ISO-9660/UDF/CDDA
  • NTFS
  • GORDURA

Desta lista, apenas UFS foi projetado para Unix, embora o HFS + tenha sido atualizado para suportar todas as funcionalidades Unix necessárias. A partir do 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 faz distinção entre maiúsculas e 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, Apple estava planejando substituir HFS com ZFS , e até mesmo distribuiu ZFS com algumas versões do Mac OS X , mas infelizmente esta experiência falhou devido a problemas de licenciamento não resolvidos .

4
Neil Mayhew

Acho que é melhor descrever Darwin como apenas mais um sabor do UNIX . Solaris é um. HP/UX é outro. Existem muitos mais , talvez não tão "alto nível", mas eles estão lá. E com cada sabor vêm suas especificidades. É por isso que existem sabores em primeiro lugar. Alguma empresa pensa em algo que ajudaria a vendê-lo (ou simplesmente trabalhar com ele ou mesmo administrá-lo) e o cria e lhe dá um nome.

3
reiche

Se eu ouvi direito, Darwin, conforme lançado pela Apple, não funciona mais como um sistema operacional independente, então eu diria que a maior diferença é 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, pequenos utilitários como diskutil e hdiutil são ótimos. Talvez sejam alguns arquitetos antigos do kernel Mach que sobraram da NeXT que usam essas pequenas coisas e se preocupam com elas que fizeram do XCode uma ferramenta tão boa também.

0
Kevin Cantu