Mac OS X - Visão geral
Por: Ednelso245 • 19/12/2018 • 2.558 Palavras (11 Páginas) • 343 Visualizações
...
Observe que no XNU fica as bibliotecas de drivers e as APIs de programação, uma atenção especial deve ser dada para o item NKE (network kernel extensions (NKEs)). O NKE permite criar módulos de rede e pilhas de protocolo podendo ser carregados dinamicamente no kernel e descarregados a partir dele. NKE também torna possível configurar automaticamente pilhas de protocolo.
[pic 3]
Implementação
Diferentemente de muitos SOs, o MAC OS X não foi planejado e implementado a partir do zero, ele foi desenvolvido a partir da combinação de vários outros SOs. Ele é um kernel híbrido com características de microkernel e monolítica, buscando tirar proveito das vantagens de cada tecnologia.
Sistema monolítico
A organização mais comum é aquela que estrutura o sistema como um conjunto de rotinas que podem interagir livremente umas com as outras. Pode ser comparada com uma aplicação formada por vários procedimentos que são compilados separadamente e depois linkados, formando um grande e único programa executável. Vantagem: Grande desempenho. Desvantagens: uma falha pode paralisar todo o núcleo.
[pic 4]
Microkernel
Uma tendência dos sistemas operacionais é tornar o núcleo menor e mais simples possível e para implementar esta ideia, o sistema é dividido em processos. Desta forma, sempre que uma aplicação deseja algum serviço, ela solicita ao processo responsável, assim, a aplicação que solicita um serviço é chamada de cliente e o processo que responde a solicitação é chamado de servidor.
[pic 5]
Kernel hibrido
Como vimos, o XNU é um kernel hibrido porque ele inclui muitas das funções do BSD (que roda como um servidor) ao próprio kernel. Isso é feito porque um microkernel geralmente é muito lento. Isso porque toda chamada de uma aplicação de usuário requer que a mensagem seja enviada ao kernel (uma operação custosa chamada mudança de contexto), que então seria enviada à biblioteca Unix com outra mudança de contexto. Essa operação seria ainda repetida para todas as respostas.
Núcleo hibrido define um núcleo baseado em micronúcleos no qual módulos externos a ele podem executar operações em modo protegido, a fim de evitar trocas de contexto e melhorar o desempenho geral do sistema. Porém, sendo hibrido, tem a capacidade de agregar ou desagregar funcionalidade, sem perder performance ou estabilidade presentes na sua estrutura inicial, proporcionais a sua organização.
[pic 6]
Funcionalidade MACH no XNU
O componente Mach no XNU é baseado na versão 3.0 do Mach, mas não é usado como um microkernel. O Mach é um subsistema de parte do kernel como também são vários outros subsistemas que são tipicamente implementados nos sistemas microkernel. O Mach do XNU é responsável por vários aspectos de baixo nível do sistema, tais como:
- Proteção de memória
- Gerenciamento de memória virtual
- Comunicação inter-processos
- Gerenciamento de interrupção
- Suporte real-time
- Console I/O
- Multitarefa preemptiva, incluindo threads de kernel
- Suporte a depuração do kernel
Sistemas de arquivos
- HFS+ ou HFS Plus
- UFS (Unix file system)
- NFS (Network File System)
HFS – (Hierarchical File System), é um sistema de arquivos desenvolvido pela Apple Computer para uso em computadores rodando o Mac OS. Originalmente projetado para uso em floppy e disco rígidos, ele também pode ser encontrado em suporte read-only como CD-ROMs, no Mac OSX, os arquivos são gerenciados em um sistema de arquivos hierárquico. O sistema hierárquico representa uma arvore de cabeça para baixo. No Mac OSX, o diretório raiz é o disco rígido. O disco rígido é organizado por pastas, subpastas e arquivos.
[pic 7]
UFS – (Unix file system), é hierárquico, distribuindo os vários arquivos em uma árvore de diretórios. A base desta árvore é um diretório chamado diretório raiz, que possui o nome especial de “/” (o caractere barra). Enquanto outros sistemas operacionais consideram discos individualmente, cada um possuindo seu diretório raiz, arquivos e subdiretórios, o UFS considera todos os dispositivos, discos, arquivos e diretórios como um todo, alocando-os na mesma arvore do sistema de arquivos. Assim, o usuário não precisa especificar o disco ou dispositivo onde está um arquivo, somente o diretório onde ele está armazenado. O próprio sistema operacional se encarrega de mapear o acesso ao disco ou dispositivo correspondente.
[pic 8]
NFS (Network File System) é um protocolo de rede do sistema de arquivos originalmente desenvolvido pela Sun Microsystems. Seu principal uso é um cliente-servidor do sistema de arquivos distribuídos. NFS está disponível para uma ampla gama de sistemas heterogêneos, incluindo UNIX, Linux, Mac OSX e Windows da Microsoft, Novell Netware e OpenVMS. A partir de NFSv4.1, o protocolo adicionado Parallel NFS (pNFS) para dados paralelismo de acesso. Isso efetivamente fornece a opção de separar o sistema de arquivos de meta-dados a partir da localização do arquivo de dados.
No NFS se pode montar um pedaço do sistema de arquivos distribuído em algum diretório do sistema de arquivos local do cliente, de modo que a nomenclatura dos diretórios provenientes do NFS segue o mesmo padrão do sistema de arquivos local. Portanto, o NFS prove transparência no acesso, pois se o servidor onde os dados se encontram mudar de lugar, o cliente não precisa saber dessa mudança para continuar a usar o NFS.
[pic 9]
[pic 10]
Cocoa
Cocoa é uma API, ou seja, uma interface de programação de aplicativos para computadores da Apple e seu sistema operacional Mac OS X. Cocoa é a linguagem de programação nativa do Mac OS, e para se fazer aplicações em Cocoa é
...