4 pontos por GN⁺ 2024-10-16 | 1 comentários | Compartilhar no WhatsApp
  • A versão de lançamento mais recente do sistema operacional da Apple é oficialmente a versão mais recente compatível com UNIX™ validada na lista do Open Group, mas isso pode não significar o que você imagina
    • o macOS não usa código-fonte da AT&T. “Unix” não tem mais esse significado desde que a Novell adquiriu o UNIX da Bell Labs em 1993
  • Observação: o OS X já é certificado como UNIX há 16 anos

O que significa a certificação UNIX™

  • Não tem relação com o código. Já é assim há mais de 30 anos
  • A certificação UNIX™ agora significa “compatível com POSIX”
  • POSIX é uma especificação de compatibilidade e um conjunto de testes: as ferramentas certas precisam estar nos lugares certos
  • O sistema operacional de mainframe z/OS da IBM também está nessa lista

Definição de um sistema operacional semelhante ao Unix

  • Deve parecer Unix, funcionar como Unix e permitir portar programas escritos para Unix sem modificações significativas
  • O núcleo do macOS atende bem a isso. Ele usa o kernel XNU e um espaço de usuário derivado principalmente de código BSD
  • O XNU é baseado no kernel Mach e também inclui um grande “servidor Unix” dentro do kernel, derivado de código BSD
  • A maior parte do espaço de usuário é open source e vem do BSD
  • A camada de GUI e as partes visíveis que o deixam bonito são proprietárias

O projeto Darwin da Apple

  • No passado, a Apple ofereceu as camadas inferiores do sistema operacional em uma versão independente por meio de um projeto chamado Darwin
  • Houve várias distribuições que tentaram completá-lo usando componentes de outros sistemas operacionais FOSS, como OpenDarwin e PureDarwin
  • O projeto NextBSD seguiu na direção oposta: manteve o kernel do FreeBSD, mas foi modificado para poder usar código de nível mais alto da Apple, como o launchd

O processo de evolução do macOS

  • No fim de 1996, a Apple anunciou a aquisição da NeXT Computer e, em outubro de 1997, lançou uma prévia do Rhapsody, seu sistema operacional de próxima geração
  • O Rhapsody era quase idêntico ao NeXTstep 5
  • Em 1999, ele se tornou o Mac OS X Server 1.0, que evoluiu para o Mac OS X 1.0 em 2000
  • A partir do 10.8 Mountain Lion, o nome foi simplificado para OS X, e a partir do 10.12 Sierra, para macOS
  • Ainda assim, continua sendo um sistema operacional reconhecivelmente semelhante ao NeXTstep 0.8 demonstrado por Steve Jobs em 1988

Opinião do GN⁺

  • O fato de o macOS ter recebido certificação UNIX talvez não tenha grande significado. Para a maioria das pessoas, isso provavelmente não terá impacto prático
  • Mas vale destacar que o Darwin, base do macOS, é open source. Isso permite que desenvolvedores entendam melhor o funcionamento interno do macOS
  • A compatibilidade com POSIX ainda tem um papel importante para garantir portabilidade entre sistemas operacionais, mas seguir os padrões mais recentes já não parece ser prioridade
  • Ao observar a evolução do NeXTSTEP até o macOS, dá para ver como a inovação na interface do usuário e na experiência do desenvolvedor foi importante para o sucesso do sistema operacional
  • No fim das contas, mais importante do que a certificação UNIX em si é o fato de o macOS ser amigável para desenvolvedores, fácil de usar e contar com um ecossistema poderoso. Ainda assim, a certificação UNIX tem um valor simbólico por mostrar a base sólida do macOS

1 comentários

 
GN⁺ 2024-10-16
Comentários do Hacker News
  • A certificação do Sequoia não é novidade. O OS X já era certificado pelo Open Group há muito tempo
  • Há quem questione por que esse tipo de certificação é importante
  • O macOS foi certificado como Unix, mas os BSDs modernos não. É curioso, porque vieram da mesma base de código
  • Importa saber se é possível chamar poll() em dispositivos de terminal
    • Esse recurso estava ausente desde os primórdios do Mac OS X
    • Softwares multiplataforma sempre precisam dar suporte tanto a select() quanto a poll()
    • No Mac OS X é preciso usar select(), enquanto em outros sistemas usa-se poll()
    • Seria bom se fosse possível padronizar tudo em poll()
  • Comparação entre as páginas de manual do macOS e os requisitos da certificação
    • A system call poll() do macOS não oferece suporte a dispositivos
    • Os requisitos da certificação dizem que as funções poll() e ppoll() devem oferecer suporte a vários dispositivos
  • Fica a dúvida se esse bug foi corrigido no macOS 15 ou se a certificação não significa muita coisa
  • Tirando a certificação, Linux e macOS são muito parecidos
    • Existem diferenças como xdg-open vs open, systemd vs launchd e sed -i vs sed -i ''
  • Não entendem por que o sistema continua sendo certificado se os semáforos POSIX não funcionam no macOS
  • Há curiosidade sobre por que a Apple busca esse tipo de certificação
    • Não parece ser uma tentativa de incentivar mais uso de servidores macOS
  • Fica a dúvida se a Apple tem algum novo plano para servidores
  • Esperam que a Apple avance para fechar as grandes lacunas de compatibilidade com Unix, especialmente implementando pipe2