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.