Kernel Minix
Trabalho Escolar: Kernel Minix. Pesquise 861.000+ trabalhos acadêmicosPor: euaquieagora • 11/10/2013 • 3.213 Palavras (13 Páginas) • 653 Visualizações
MINIX 3 Kernel API
Stale page
O counteúdo desse texto deve ser revisado afim de refletir o atual estado do MINIX3.
2012-03-31 note: com o sys_vumap, foi dado o primeiro passo para começar a documentar chamadas de API ao invés de protocolos
Geralmente as chamadas de kernell permitem os processos do sistema para solicitar serviços do kernell, fazer operações privilegiadas por exemplo. Esse document brevemente discute a organização das chamadas de kernell no MINIX 3 e providencia uma visão geral de todas as chamadas de kernell.
Esse document visa descrever o Kernel API do MINIX 3 git-trunk. Mesmo sendo um trabalho em constante progresso , qualquer incompatibilidade entre esse documento e SVN-current são não intencionais.
1. Organização das chamadas de kernell
Uma chamada de kernell significa que um requerimento é enviado a um kernell onde é manuseado por uma das tarefas de kernell. Os detalhes da montagem de uma chamada de requerimento, mandando ela para o kernell e esperando pela resposta estão convenientemente escondidas numa biblioteca do sistema.
O arquivo de cabeçalho dessa biblioteca é src/include/minix/syslib.h e a sua implementação é encontrada em src/lib/syslib.
A implementação real das chamadas de kernell são definidas no SYSTEM kernel task. Suponha que um programa faça uma sys_call() (chamada de sistema).Por convenção , essa chamada é transformada numa mensagem de requerimento com o tipo de SYS_CALL que é mandada para a tarefa de kernell SYSTEM.
A tarefa SYSTEM cuida do requerimento numa função chamada do_call() e retorna o resultado.
O mapeamento dos numerous de chamadas de kernell e funções do manipulador é feito durante a Resposta de inicialização da tarefa SYSTEM. src/kernel/system.c. Os protótipos das funções de manipulador são declarados em src/kernel/system.h. A sua aplicação está contida em arquivos separados no diretório src/kernel/system/. Esses arquivos são compilados na biblioteca /src/kernel/system/system.a que esta ligada ao kernell.
Os números de chamada do kernel eo seu pedido e parâmetros de resposta são definidos no src/include/minix/com.h. Todas as chamadas de kernell são iniciadas com SYS_ e todos os parametros que pertencem a mesma chamada de kernell dividem um prefixo em comum.
2. Visão por cima de chamadas de kernel MINIX 3
Table 1:Esta tabela fornece uma visão geral das chamadas do kernel no MINIX 3
Chamada de kernell Propósito
Gestão de Recursos
SYS_FORK
Deslocar um processo; copiar processo parecido.
SYS_EXEC
Executar um processo; iniciar registradores.
SYS_EXIT
Sair de um processo de usuário; liberar vaga de processo
SYS_NICE
Mudar a prioridade de um processo de usuário
SYS_PRIVCTL
Alterar os privilégios de processo do sistema
SYS_TRACE
Rastrear ou controlar de execução do processo
SYS_SETGRANT
Dizer ao kernel sobre a tabela de subsídio
SYS_RUNCTL
Definer\liberar marcação de um processo
MANIPULAÇÃO DE SINAL
SYS_KILL
Enviar um sinal a um processo
SYS_GETKSIG
Verifique se há sinais de kernel pendentes
SYS_ENDKSIG
Dizer que o sinal de kernel foi processado
SYS_SIGSEND
Começar o POSIX-style (manipulador de sinal)
SYS_SIGRETURN
Retornar o sinal do POSIX-style
GESTÃO DE MEMÓRIA
SYS_NEWMAP
Instalar mapa novo ou atualizado na memória
SYS_MEMSET
Encher uma área de memória física com um byte de padrão constante
SYS_VMCTL
(a ser documentado)
Copiar dados
SYS_UMAP
Mapear do virtual para endereço físico
SYS_VUMAP
Batch mapas do virtual para endereço físico
SYS_VIRCOPY
Copiar dados utilizando endereçamento virtual
SYS_PHYSCOPY
Copiar dados utilizando endereçamento físico
SYS_SAFECOPYFROM
Copiar de um subsídio no espaço de endereço próprio
SYS_SAFECOPYTO
Copie o endereço do espaço próprio para a concessão
SYS_VSAFECOPY
Manusear vetor com solicitações de cópia de segurança
SYS_SAFEMEMSET
Encher uma concessão com um byte padrão constante
MEMÓRIA DE COMPARTILHAMENTO
SYS_SAFEMAP
Mapear uma área de concessão como memória compartilhada
SYS_SAFEREVMAP
Revogar a concessão de memória compartilhada
SYS_SAFEUNMAP
Tirar do mapa uma memória compartilhada
APARELHOS DE I/O
SYS_DEVIO
Ler ou escrever um único registrador de dispositivo
SYS_SDEVIO
Entrada
...