Sistemas Operativos
Sistema operativo
Um sistema operativo (português europeu) ou sistema operacional (português brasileiro) é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, etc.), além de fornecer uma interface entre o computador e o usuário. É o primeiro programa que a máquina executa no momento em que é ligada (num processo chamado de bootstrapping) e, a partir de então, não deixa de funcionar até que o computador seja desligado. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional.
Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem dois modos distintos de conceituar um sistema operacional:
- pela perspectiva do usuário ou programador (visão top-down): é uma abstração do hardware, fazendo o papel de intermediário entre o aplicativo (programa) e os componentes físicos do computador (hardware); ou
- numa visão bottom-up, de baixo para cima: é um gerenciador de recursos, i.e., controla quais aplicações (processos) podem ser executadas, quando, que recursos (memória, disco, periféricos) podem ser utilizados.
A sigla usual para designar esta classe de programas é SO (em português) ou OS (do inglês Operating System).
Os sistemas operacionais fornecem abstração de hardware para que seus recursos possam ser usados de maneira correta e padronizada, mas para ser possível operar um computador, é necessário fornecer também uma interface para que o usuário possa desfrutar dos recursos do sistema. Atualmente existem três tipos de interface: GUI (graphical user interface) ou interface gráfica, TUI (text user interface) ou interface textual, e CUI (command-line user interface) ou interface de linha de comando.
GUI (Graphical user interface)
Nesse tipo de interface, o usuário tem à disposição um ambiente de trabalho composto por menus, ícones, janelas e outros itens. O usuário interage com esse tipo de interface usando o mouse, podendo também usar o teclado e teclas de atalho. É possível fazer todo tipo de tarefa usando interface gráfica, como edição de vídeos e imagens, sendo somente alguns tipos muito específicos de tarefas que se saem melhor em linha de comando. Acrescentar facilidade de uso e agilidade é o objetivo da GUI, tendo a desvantagem de consumir muito mais memória que interfaces de linha de comando. Em sistemas unix-likes, existe a possibilidade de escolher o gerenciador de janelas a utilizar, aumentando em muito a liberdade de escolha do ambiente.
TUI (Text user interface)
Assim como na GUI, a TUI também tem à disposição um ambiente de trabalho composto por menus, janelas e botões, porém essas interfaces não têm a capacidade de reproduzir figuras, salvo as que são tratadas como caracteres ASCII. Essa interface, antes da popularização da GUI, tinha um uso difundido em aplicações baseadas no MS-DOS, que, aliás, nas versões mais recentes contava com um gerenciador de programas e arquivos baseado em TUI (o DOS Shell). As TUIs, ao contrário das GUIs, não dependem de um gerenciador de janelas específico para funcionar, podendo mesmo serem inicializadas a partir da linha de comando. Atualmente essa interface é muito rara, praticamente restrita a sistemas implementados na década de 1980 e início da década de 1990.
CUI (Command-line user interface)
Além da interface gráfica, existe a interface de linha de comando, que funciona basicamente com a digitação de comandos, sendo nesse relativamente pouco interativa. Os comandos digitados são interpretados por um interpretador de comandos, conhecidos também por shells, bastante comuns em sistemas unix-likes. Um exemplo de interpretador de comandos seria o Bash. Usada geralmente por usuários avançados e em atividades específicas, como gerenciamento remoto, utiliza poucos recursos de hardware em comparação a interface gráfica. Nesse tipo de ambiente, raramente se usa o mouse, embora seja possível através do uso da biblioteca ncurses no desenvolvimento dos softwares.
Em relação ao seu projeto (arquitetura), segundo Tanenbaum (1999):
- Núcleo monolítico ou monobloco: o núcleo consiste em um único processo executando numa memória protegida (espaço de núcleo) executando as principais funções. Ex.: MAC OS X, OS/2, Windows, Linux, FreeBSD.
- Micronúcleo ou modelo cliente-servidor: o núcleo consiste de funções mínimas (comunicação e gerenciamento de processos), e outras funções, como sistemas de arquivos e gerenciamento de memória, são executadas no espaço do usuário como serviços; as aplicações (programas) são os clientes. Ex.: GNU Hurd, Mach.
- Sistema em camadas: funções do núcleo irão executar em camadas distintas, de acordo com seu nível de privilégio. Ex.: Multics.
- Monitor de máquinas virtuais: fornece uma abstração do hardware para vários sistemas operacionais. Ex.: VM/370, VMware, Xen.
Quanto ao gerenciamento de processos, pode-se usar a seguinte classificação:
- Monotarefa: pode-se executar apenas um processo de cada vez Ex.: MS-DOS.
- Multitarefa: além do próprio SO, vários processos de utilizador (tarefas) estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é feito de modo que o usuário tenha a impressão que vários processos estão sendo executados simultaneamente. Cada processo recebe um tempo para ser executado. Ao final desse tempo, outro processo é executado. Essa alternância de processos chama-se concorrência.
- Multitarefa cooperativa: Executa dois ou mais programas em simultâneo mas o programa que está em primeiro plano tem controlo sobre o processador. Neste caso se este programa falhar bloqueia o computador e tem que ser reiniciado. Exempo de SO: Windows 3.x e versões anteriores ao Mac OS 8.
- Multitarefa preempetiva: É o processador que controla a execução dos programas, desta forma permite ao sistema operativo recuperar o controlo caso um programa bloqueie. O utilizador perde os trabalhos do programa que falhou mas os restantes programas continuam a trabalhar. Exemplo de SO: Unix; Linux; Windows 95 e superiores; MAC OS 8 e superiores; etc.
- Elemento de lista com marcas:
Ex: OS/2, Windows, Linux, FreeBSD e o Mac OS X. Cabe destacar que processos só podem estar executando simultaneamente caso o sistema seja multiprocessado, já que, em que cada instante de tempo, apenas um processo está em execução em um processador ou núcleo de processamento (core).
- Multiprocessamento: o SO distribui as tarefas entre dois ou mais processadores. Se os processadores estivem na mesma máquina fisica, o sistema é chamado de Sistema Multiprocessado Fortemente Acoplado. Caso esteja em máquinas diferentes, trata-se de um Sistema Multiprocessado Fracamente Acoplado.
Quanto à quantidade de usuários que podem utilizar o sistema concorrentemente:
- Monousuário: apenas um usuário por vez (apesar de poder suportar recursos como troca de usuário). Ex.: Windows. Esse também pode ser acessado por terminais e conexão remota.
- Multiusuário: vários usuários usam o computador ao mesmo tempo, seja por diversos terminais, seja por conexão remota como o SSH. Ex.: Linux, Unix.
Exemplos de sistemas operacionais ativos
Para desktop
Para dispositivos móveis (tablets e smartphones)
Unix foi o primeiro sistema operacional moderno
Visando o problema da incompatibilidade de SOs de máquinas distintas, um grupo de desenvolvedores da AT&T criaram o Unix em 1969, sendo o primeiro sistema operacional moderno da computação. É possível afirmar que mais de 90 por cento dos SOs atuais foram influenciados de alguma maneira pelo Unix.
Sua primeira versão foi escrita em linguagem Assembly, sendo posteriormente reescrita em C no ano de 1973, linguagem que é utilizada até os dias de hoje. Este sistema introduziu conceitos muito importantes para a computação: portabilidade, multi-usuário, multi-tarefas e compartilhamento de tarefas.
Durante a década de 70, o Unix foi distribuído gratuitamente (incluindo seu código fonte) para universidades e órgãos governamentais norte-americanos, o que conferiu muita popularidade a este sistema. Sua interface era totalmente em modo texto sem interface gráfica.
Em 1977 foi lançado o BSD, sistema operacional fortemente baseado no Unix, focado principalmente para a execução em máquinas específicas de alto desempenho, como o famoso computador VAX, o qual foi uma referência de hardware na época.
Exemplos de sistemas operacionais importantes que foram descontinuados
Referências
- ↑ https://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
- ↑ https://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
- ↑ https://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
- ↑ https://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
- ↑ https://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
- ↑ https://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
- ↑ Andrew s. tanenbaum,sistemas operacionais modernos, Pearson
- ↑ J. GLENN BROOKSHEAR,CIENCIA DA COMPUTAÇAO: UMA VISAO ABRANGENTE, Bookman, 2005
- ↑ F. B. Machado; L. P. Maia, Arquitetura de Sistemas Operacionais, LTC, 2007
- ↑ (Sistemas Operacionais - Rômulo Silva de Oliveria, Alexandre Carissimi e Simão Toscani - Série Livros Didáticos - No 11 - Editora Sagra Luzzatto - UFRGS)
- ↑ F. B. Machado; L. P. Maia, Arquitetura de Sistemas Operacionais, LTC, 2007
- BACH, Maurice J. The design of the Unix operating system. Upper Saddle River: Prentice Hall. 1990.
- BOVET Daniel P.; CESATI, Marco. Understanding de Linux kernel. 3.ed. Sebastopol: O'Reilly. 2005.
- MCKUSICK, Marshall K.; NEVILLE-NEIL, George V. The design and implementation of the FreeBSD operating system. Upper Saddle River: Addison-Wesley. 2004.
- RUSSINOVITCH, Mark E.; SOLOMON, David A. Microsoft Windows internals. 4.ed. Redmond: Microsoft Press. 2005.
- SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005.
- STALLINGS, William. Operating systems: internals and design principles. 5.ed. Upper Saddle River: Pearson Prentice Hall. 2004.
- TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999.
Mais uma vez informar que todos estes dados foram retirados do wikipédia e ao mesmo tempo abreviados, apenas para se ter uma noção do vasto leque de sistemas operativos existentes assim como alguns já extintos ou obsoletos.