Sistema operativo (como é conhecido em Portugal) ou sistema operacional (como é conhecido no Brasil) é um programa (software) ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário. É comum utilizar-se a abreviatura SO (em português) ou OS (do inglês "Operating System").
Segundo Tanenbaum e Silberschatz existem dois modos distintos de conceituar um sistema operacional: (i) pela perspectiva do usuário (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); (ii) 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.
Portanto, se não existissem os sistemas operacionais, todo programa desenvolvido deveria saber como comunicar-se com os dispositivos do computador que precisasse utilizar.
História dos sistemas operacionais
No início da computação os primeiros "sistemas operacionais" eram únicos, pois cada mainframe vendido necessitava de um sistema operacional específico. Esse problema era resultado de arquiteturas diferentes e da linguagem utilizada — no caso, assembly (linguagem de baixo nível). Após essa fase, iniciou-se a pesquisa de sistemas operacionais que automatizassem a troca de tarefas (jobs), pois os sistemas eram mono-usuário e tinham cartões perfurados como entrada (eliminando, assim, o trabalho de pessoas que eram contratadas apenas para trocar os cartões perfurados).
Um dos primeiros sistemas operacionais de propósito geral foi o CTSS, desenvolvido no MIT. Após o CTSS, o MIT, os laboratórios Bell da AT&T e a General Eletric desenvolveram o Multics, cujo objetivo era suportar centenas de usuários. Apesar do fracasso comercial, o Multics serviu como base para o estudo e desenvolvimento de sistemas operacionais. Um dos desenvolvedores do Multics, que trabalhava para a Bell, Ken Thompson, começou a reescrever o Multics num conceito menos ambicioso, criando o Unics (em 1969), que mais tarde passou a chamar-se Unix. Os sistemas operacionais eram geralmente programandos em assembly, até mesmo o Unix em seu início. Então, Dennis Ritchie (também da Bell) criou a linguagem C a partir da linguagem B, que havia sido criada por Thompson. Finalmente, Thompson e Ritchie reescreveram o Unix em C. O Unix criou um ecossistema de versões, onde destacam-se: System V e derivados (HP-UX, AIX); família BSD (FreeBSD, NetBSD, OpenBSD, etc.), Linux e até o Mac OS X (que deriva do Mach e FreeBSD).
Na década de 1970, quando começaram a aparecer os computadores pessoais, houve a necessidade de um sistema operacional de utilização mais fácil. Em 1980, William (Bill) Gates e seu colega de faculdade, Paul Allen, fundadores da Microsoft, compram o sistema QDOS ("Quick and Dirty Operating System") de Tim Paterson por $50.000, batizam-no de DOS (Disk Operating System) e vendem licenças à IBM. O DOS vendeu muitas cópias, como o sistema operacional padrão para os computadores pessoais desenvolvidos pela IBM.
No começo da década de 1990, um estudante de computação finlandês postou um comentário numa lista de discussão da Usenet dizendo que estava desenvolvendo um kernel de sistema operacional e perguntou se alguém gostaria de auxiliá-lo na tarefa. Este estudante chamava-se Linus Torvalds e o primeiro passo em direção ao tão conhecido Linux foi dado naquele momento.
Sistema Operacional
Um sistema operativo pode ser visto como um programa de grande complexidade que é responsável por todo o funcionamento de uma máquina desde o software a todo hardware instalado na máquina. Todos os processos de um computador estão por de trás de uma programação complexa que comanda todas a funções que um utilizador impõe à máquina. Existem vários sistemas operativos entre eles os mais utilizados no dia a dia, normalmente os mais utilizados em computadores domésticos são o Windows, Linux e Macintosh. Num computador com o Sistema Operativo instalado poderá não dar acesso a todo o seu conteúdo dependendo do utilizador que está a utilizar. Com um Sistema Operativo, podemos estabelecer permissões a vários utilizadores que trabalham com este. Existem dois tipos de contas que podemos criar num Sistema Operativo, as contas de Administrador e as contas Limitadas. A conta Administrador, é uma conta que oferece todo o acesso à máquina, desde a gestão de pastas, ficheiros e software de trabalho ou entretenimento como também ao controlo de todo o seu Hardware instalado. A conta Limitada é uma conta que não tem permissões para aceder a algumas pastas ou instalar software que seja instalado na raiz do sistema ou então que tenha ligação com algum Hardware que altere o seu funcionamento normal ou personalizado pelo Administrador, para que este tipo de conta poderá ter acesso a outros conteúdos do disco ou de software, o administrador poderá personalizar a conta oferecendo permissões a algumas funções do sistema como também poderá retirar acessos a certas áreas do sistema. O sistema operativo funciona com a iniciação de processos que este irá precisar para funcionar correctamente, estes processos poderão ser ficheiros que necessitam de ser frequentemente actualizados, ou ficheiros que processam dados úteis para o sistema. Poderemos ter acesso a vários processos do sistema operativo a partir do gestor de tarefas, no gestor de tarefas encontramos todos os processos que estão em funcionamento desde o arranque do sistema operativo até a sua utilização actual, podemos também visualizar a utilização da memória por cada processo, no caso de o sistema operativo começar a mostrar erros ou falhas de acesso a programas tornando-se lento, podemos verificar no gestor de tarefas qual dos processos estará bloqueado ou com elevado número de processamento que está a afectar o funcionamento normal da memória.
Estrutura
Um sistema operacional (ou seu kernel), possui as seguintes funções: (i) agendamento de processos; (ii) gerenciamento de memória; (iii) sistema de arquivos; (iv) disponibilização de entrada e saída de dados.
Classificações
Em relação ao seu projeto (arquitetura), segundo Tanenbaum:
- Kernel monolítico ou monobloco: o kernel consiste em um único processo executando numa memória protegida (espaço do kernel) executando as principais funções. Ex.: Windows, Linux, FreeBSD.
- Microkernel ou modelo cliente-servidor: o kernel 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 kernel 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 à capacidade de processamento, pode-se usar a seguinte classificação:
- Monotarefa: pode-se executar apenas um processo de cada vez Ex.: 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 é distribuído de modo que o usuário tenha a impressão que vários processos estão sendo executados simultaneamente. Ex: Windows, Linux, FreeBSD e o Mac OS X.
- Multiprocessamento ou multiprogramação: o SO pode distribuir as tarefas entre vários processadores.
Referências
- TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999.
- SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005.
Predefinição:Ricardo Figueiredo=Gay
als:Betriebssystem an:Sistema operatibo ar:نظام تشغيل ast:Sistema operativu be:Аперацыйная сістэма bg:Операционна система bn:অপারেটিং সিস্টেম bs:Operativni sistem ca:Sistema operatiu cs:Operační systém csb:Òperacjowô systema da:Styresystem de:Betriebssystem el:Λειτουργικό σύστημα en:Operating system eo:Operaciumo es:Sistema operativo et:Operatsioonisüsteem eu:Sistema eragile fa:سیستم عامل fi:Käyttöjärjestelmä fr:Système d'exploitation ga:Córas oibriúcháin gl:Sistema operativo he:מערכת הפעלה hi:ऑपरेटिंग सिस्टम hr:Operacijski sustav hu:Operációs rendszer ia:Systema de operation id:Sistem operasi is:Stýrikerfi it:Sistema operativo ja:オペレーティングシステム ka:ოპერაციული სისტემა kk:Амалдық жүйе ko:운영 체제 ku:Pergala xebitandinê la:Systema operativum lt:Operacinė sistema lv:Operacionālā sistēma mg:Mpandrindra milina mk:Оперативен систем ml:ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റം ms:Sistem pengendalian nds:Bedriefssysteem nl:Besturingssysteem nn:Operativsystem no:Operativsystem pl:System operacyjny ro:Sistem de operare ru:Операционная система sh:Operativni sistem simple:Operating system sk:Operačný systém sl:Operacijski sistem sq:Sistemi operativ su:Sistim Operasi sv:Operativsystem ta:இயக்கு தளம் th:ระบบปฏิบัติการ tl:Operating system tr:İşletim sistemi uk:Операційна система ur:عملیاتی نظام vi:Hệ điều hành zh:操作系统 zh-min-nan:Chok-gia̍p hē-thóng ugdsu