Pergunta

Eu estou estudando para meus sistemas operacionais finais e queria saber se alguém poderia me dizer por que as necessidades do sistema operacional para alternar para o modo kernel para syscalls?

Foi útil?

Solução

A syscall é usado especificamente para executar uma operação no modo kernel, já que o código de utilizador habitual não tem permissão para fazer isso por razões de segurança.

Por exemplo, se você queria para alocar memória, o sistema operacional tem o privilégio de fazê-lo (uma vez que conhece as tabelas de páginas e está autorizado a memória de acesso de outros processos), mas como um programa de usuário não deve ser permitido espiada ou arruinar a memória de outros processos. É uma maneira de sandboxing você. Então você enviar um syscall solicitando o sistema operacional para alocar a memória, e isso acontece no nível do kernel.

Edit: Eu vejo agora que a Wikipedia artigo é surpreendentemente úteis sobre este

Outras dicas

Uma vez que este é marcado "dever de casa", eu não vou apenas dar a resposta longe, mas irá fornecer uma dica:

O kernel é responsável por acessar o hardware do computador e garantir que os aplicativos não pisar em um outro. O que aconteceria se qualquer aplicativo pode acessar um dispositivo de hardware (por exemplo, o disco rígido) sem a cooperação do kernel?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top