Quais recursos o Darwin possui que outros Unixes não possuem, ou vice-versa?

19

Darwin possui algum recurso específico? Outros Unixe (s) possuem recursos que Darwin não possui?

Am1rr3zA
fonte

Respostas:

20

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.

Warren Young
fonte
11

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:

  1. Uma "tarefa": é um espaço de endereço + um conjunto de "portas", possivelmente com um thread em execução.
  2. Tópicos. Esta foi a unidade de execução agendada. Uma tarefa (espaço de endereço) pode ter mais de 1 em execução. Acredito que os arquivos Mach-O (formato de arquivo executável do Mach) possam especificar mais de um thread no tempo de execução do processo: nenhuma função main () que iniciou mais Cthreads, o sistema operacional iniciaria um.
  3. Portas. Não são como portas TCP ou UDP. Eles foram digitados, ordenados fluxos de mensagens. Em vez de RPC. Você criou um arquivo de especificação de protocolo e o executou em um compilador para obter stubs do lado do servidor e do cliente, rotinas de empacotamento e descompilação, etc.
  4. Pagers de memória no nível do usuário. Você pode configurar uma tarefa + thread para lidar com a paginação dos espaços de endereço de outras tarefas.

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

Bruce Ediger
fonte
2
O Mac OS X (e, portanto, o Darwin) usa o Mach 3.0.
bahamat 5/09/11
5

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.

kbyrd
fonte
3
A Oracle portado DTrace para Linux em 2011.
Matt Bianco
1
Em outubro de 2011, a Oracle anunciou a transferência do DTrace do Solaris para o Linux, mas em 13 de outubro de 2014 ele permaneceu oficialmente indisponível. ( slideshare.net/brendangregg/from-dtrace-to-linux )
scravy
4

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 é:

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

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 .

Neil Mayhew
fonte
Eu acredito / suporte de gravação NTFS das MacOS do OS X é relatado para ainda ser buggy, uma vez que permanece experimental e nunca foi estabilizada, se bem me lembro.
RandomDSdevel
3

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.

reiche
fonte
2
UNIX (em todas as maiúsculas) é uma marca registrada do The Open Group em muitos países; para que algo seja "UNIX" (em todas as maiúsculas), é necessária certificação . Darwin não é outro "sabor do UNIX" - mas o Mac OS X 10.10 no Intel x86-64 é certificado como outro UNIX.
user314104
0

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.

Kevin Cantu
fonte
-1

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.

Bran, o Abençoado
fonte
1
Darwin não é realmente baseado no FreeBSD, apesar de emprestar algumas coisas do usuário. Outros comentários aqui explicam isso melhor. O bpf (4) não é apenas o Darwin e o FreeBSD / NetBSD / OpenBSD, e tenho a sensação de que alguém pode até implementá-lo para kernels Linux anteriores. A SCO (in) ficou famosa em sua oferta de Unixware.
jrg 2/09/10
-11

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 =)

holms
fonte
2
Você quer dizer que Darwin tem 'killall' e outras variantes do Unix não? Isso não é verdade.
precisa saber é o seguinte
2
essa resposta é suspeita de trollagem. Não é necessário ser tão difamatório em suas declarações sobre o * nix que não seja o X. Além disso, da última vez que eu usei o * NIX killall, estava absolutamente presente no meu caminho. Além disso, o linux possui perfis de sistema. Faça sua lição de casa. Não seja um déuche. edit: Eu uso e gosto muito de OS X.
Eli Frey
2
Eu tenho killall no Linux, por isso não é exclusivo para darwin
xenoterracide
2
Essa resposta é vaga e imprecisa. Quais recursos úteis faltam ao fdisk? Linux RAID (mdadm) faz tem concatenação (linear), striping (RAID0) e espelhamento (RAID1), entre outros. O Linux também suporta HFS e HFS +.
Matthew Flaschen
3
BTW: Linux-killall e Solaris-killall são bastante diferentes
EricSchaefer