DEV Community

Cover image for Aprendizados sobre sistemas operacionais – Parte 1
Igor
Igor

Posted on

Aprendizados sobre sistemas operacionais – Parte 1

Neste artigo falarei sobre conceitos que eu aprendi lendo os livros “Modern Operating Systems” do Tanenbaum e “Understanding the Linux Kernel” de Daniel Bovet & Marco Cesati.
Vamos para o que interessa:

  • Um computador moderno consiste em um ou mais processadores, alguma quantidade de memória principal (RAM), discos rígidos (HDD/SSD), impressoras, um teclado, um mouse, um monitor, interfaces de rede e vários outros dispositivos de entrada/saída (I/O).

Imagem representando a comunicação entre software e hardware

  • O hardware consiste de chips, placas, discos, um teclado e outros objetos físicos. Em cima do hardware fica o software.
  • A maioria dos computadores possuem 2 modos de operação: o modo Kernel e o modo Usuário. O sistema operacional, a peça de software mais fundamental (como Windows, Linux, MacOS), executa no modo Kernel (ou modo de supervisor). Nesse modo, ele tem acesso completo a todo o hardware e pode executar qualquer instrução que a máquina seja capaz de executar. O resto do software roda no modo de usuário, em que somente um conjunto menor de instruções de máquina estão disponíveis. Em particular, as instruções que afetam o controle da máquina ou que realizam I/O são proibidas no modo usuário (programas de aplicações).
  • O “User Interface Program”, shell ou GUI (Graphical User Interface), é o software de modo usuário de nível mais baixo e eles permitem o usuário iniciar outros programas.
  • Uma distinção importante entre o SO e softwares normais é que se um usuário não gostar de um certo programa de email, ele é livre para usar um diferente ou escrever o seu próprio; ele não é livre para escrever o seu próprio clock interrupt handler, que faz parte do SO e é protegido pelo hardware contra tentativas do usuário de modifica-lo.
  • Alguns sistemas embarcados (embedded software) podem não conter um modo kernel.
  • Existem programas que permitem o usuário trocar de senha, ou seja, eles possuem funções privilegiadas. Eles não fazem parte do SO e não são executados no modo Kernel, portanto, devem ser protegidos de uma forma especial.
  • O código fonte de sistemas operacionais chegam a 5 milhões de linhas de código ou mais.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay