Anéis e níveis de execução

7

A questão declarada abaixo pode não ser tecnicamente correta (equívoco), por isso seria sensato se o conceito errado também fosse abordado.

Que nível de anel faz o diferente * nix níveis de corrida operam em

Tag de anel não disponível.

    
por Bleeding Fingers 11.10.2013 / 20:17

3 respostas

7

Os runlevels do Unix são ortogonais (no sentido de "não relacionados" - ver comentários) aos anéis de proteção.

Runlevels são basicamente configurações / estados de tempo de execução do sistema operacional como um todo, eles descrevem quais serviços estão disponíveis ("para o usuário") - como acesso SSH, MTA, servidor de arquivos, GUI.

Os anéis são um conceito auxiliado por hardware que permite um controle mais refinado sobre o hardware (como mencionado na página da wikipedia à qual você está vinculado). Por exemplo, o código em execução no Anel superior pode não conseguir executar algumas instruções da CPU.

O Linux na arquitetura x86 geralmente usa Ring0 para kernel (incluindo drivers de dispositivo) e Ring3 para aplicativos de espaço de usuário (sem serem executados por root ou outro usuário comum ou privilegiado).

Assim, você não pode realmente dizer que um nível de execução está sendo executado em algum Ring específico - sempre há 1 aplicativos de espaço de usuário (pelo menos PID 1 - o init ) em execução no Ring3 e no kernel (Ring0).

1 Como sempre, o "sempre" significa "quase sempre", já que você pode executar programas "normais" no Ring0, mas é improvável que você veja isso na vida real (a menos que você trabalhe) no HPC).

    
por 11.10.2013 / 21:24
0

Os dois conceitos são completamente não relacionados. O nível de execução do sistema refere-se ao conjunto de serviços que estão sendo executados no sistema, como se o ambiente de área de trabalho gui esteja ou não em execução. Os níveis de toque são um mecanismo de proteção de hardware nos processadores intel x86 que separam o código em diferentes níveis de privilégio. O Linux usa apenas os toques 0 e 3 para o código do kernel e do modo de usuário, respectivamente. Assim, todos os processos do modo de usuário, rodando quando o sistema está em qualquer nível de execução, executam no anel 3, até que eles façam uma chamada no código do kernel, que faz a transição da cpu para o anel 0.

    
por 12.10.2013 / 06:07
-2

Do seu próprio link:

In a monolithic kernel, the operating system runs in supervisor mode and the applications run in user mode. Other types of operating systems, like those with an exokernel or microkernel, do not necessarily share this behavior.

Some examples from the PC world:

Linux and Windows are two operating systems that use supervisor/user-mode. To perform specialized functions, user-mode code must perform a system call into supervisor mode or even to the kernel space where trusted code of the operating system will perform the needed task and return it back to user space.

Então sua resposta seria 2. O supervisor (0) e o usuário (1).

    
por 11.10.2013 / 20:34