O que é um sistema operativo?


Em qualquer sistema de computador existem: dispositivos de hardware e software de aplicação.
Se um sistema tem uma falha principal, não existe nenhum modo para software de aplicação escrito por um vendedor estar atento de software no mesmo sistema escrito por outro vendedor. Quando dois pedaços de software no mesmo sistema não estão atentos de um ao outro, é só uma questão de tempo antes de eles colidam de algum modo que resulta na operação incorreta subseqüente de um ou ambos programas. Isto não é claramente aceitável.
A solução é definir um pedaço de software que administra recursos em um sistema. Este é o sistema operativo. São escritos programas de forma que eles pede recursos do SO que concede ou nega os pedidos e recebe recursos para os programas.
O outro problema com este sistema é o potencial pilha-para cima de código redundante. O software exigido conectar dispositivos ao hardware aporta nível pode exigir para muitas instruções executar há pouco uma operação. Esta operação pode ser executada por muitas vezes um programa que é quando nós pusemos aquele código em um procedimento. Esta operação também será executada por muitos programas, mas eles não podem compartilhar um ao outro procedimentos porque eles não sabem sobre um ao outro. Ao invés eles compartilham os procedimentos de SO por ter acesso dispositivos: Um chama na introdução resulta no código que é executado para executar uma operação de alto-nível. A interface para a coleção de tais procedimentos precisa de ser segurada constante de forma que aplicações pode depender da estrutura da interface. Esta interface é um API. Há muitos benefícios a um API, todo resultando de programas de aplicação menores, tais como:
- tempo de desenvolvimento de aplicação reduzido
- menos código para escrever significa menos byte
- menos disco e espaço de memória usaram
Assim um sistema operativo é então:
- administrar recursos de sistemas em nome de entidades de software múltiplas
- fornecer uma interface de alto-nível para os dispositivos de hardware no sistema

O que deveria ser incluído em um sistema operacional?
Isto depende do propósito do SO. Um SO que é projectado para jogos de arcada pode não precisar de um GUi. Possíveis candidatos para inclusão em um sistema operativo são:
- Administração de recurso: recursos compartilhados e fechou recursos
- Proteção: O SO pode obrigar o "behaviour" de um programa e terminar/suspender qualquer programa que viola o código de conduta. Um exemplo de "behaviour" pobre é acesso sem autorização a memória que não pertence ao programa.
No interface de hardware, o código para fazer tendo acesso hardware mais fácil pode ser provido para alguns ou tudo os possíveis dispositivos de hardware que poderiam ser prendidos ao sistema.
Recursos compartilhados não exigem para permissão explícita os ter acesso, mas deve ser tido acesso por um API.
Propriedade de recursos fechados deve ser pedida pela aplicação. Desde então só uma aplicação pode ter acesso um recurso fechado a todo o tempo.