Sistema Operacional: Conheça a Origem e os Mais Utilizados
Fabio Haubert 16 de setembro de 2018 comentários: Tecnologia
O Sistema operacional é o primeiro sistema que entra em funcionamento quando você liga um computador, tablet smartphone, etc. Ele tem a capacidade de colocar em funcionamento o hardware, pois fornece as informações básicas para inicialização e processamento de dados necessários para início das tarefas básicas do eletroeletrônico.
O sistema operacional é o assunto deste artigo continue lendo e saiba mais sobre:
Sistemas Operacionais: O Que é Isso?
Os Sistemas Operacionais mais utilizados
Acesso ao Disco e Sistema de Arquivos
Os primeiros computadores foram construídos para realizar uma série de tarefas únicas, como uma calculadora. Na década de 1940, os sistemas digitais eletrônicos não tinham sistemas operacionais.
Os sistemas eletrônicos desta época foram programados em fileiras de chaves mecânicas ou por fios de jumper em plugues. Eram sistemas de propósito especiais que, por exemplo, geravam tabelas balísticas para os militares ou controlavam a impressão de cheques de pagamento a partir de dados em cartões de papel perfurado.
Depois que os computadores de uso geral programáveis foram inventados, foram introduzidas linguagens de máquina que aceleraram o processo de programação. Consistiam de cadeias de dígitos binários 0 e 1 em fita de papel perfurado.
Recursos básicos do sistema operacional
Os recursos básicos do sistema operacional foram desenvolvidos na década de 1950. Como as funções de monitor residentes que poderiam executar programas diferentes em sequência para acelerar o processamento.
No início dos anos 50, um computador podia executar apenas um programa por vez. Cada usuário teve uso exclusivo do computador por um período limitado. Chegaria em um horário programado com os dados em cartões de papel perfurado ou fita perfurada.
O programa seria carregado na máquina e a máquina configurada para funcionar até que o programa fosse concluído ou travasse. Os programas podiam ser depurados através de um painel frontal usando interruptores de alternância e luzes de painel.
Máquinas posteriores vieram com bibliotecas de programas, que seriam ligadas ao programa de um usuário para auxiliar em operações como entrada e saída e gerar código de computador a partir de código simbólico legível por humanos. Esta foi a gênese do sistema operacional moderno. No entanto, as máquinas ainda executavam um único trabalho de cada vez.
Sistemas operacionais nas formas mais modernas e complexas não existiam até o início dos anos 1960. Recursos de hardware foram adicionados permitindo o uso de bibliotecas de tempo de execução, interrupções e processamento paralelo.
Uma melhoria foi o Atlas Supervisor introduzido como Manchester Atlas encomendado em 1962. "Considerado por muitos o primeiro sistema operacional moderno reconhecível".
Quando os computadores pessoais se tornaram populares na década de 1980; os sistemas operacionais foram feitos para eles em conceito similar àqueles usados em computadores maiores.
Durante a década de 1950 muitos dos principais recursos foram lançados no campo de sistemas operacionais em computadores mainframe. Incluindo: processamento em lote; interrupção de entrada/saída; multitarefa; bibliotecas de tempo de execução; carregamento de links e programas para classificação de registros em arquivos.
Esses recursos foram incluídos ou não incluídos no software aplicativo por opção de programadores de aplicativos; em vez de em um sistema operacional separado usado por todos os aplicativos.
Em 1959, o sistema operacional SHARE foi lançado como um utilitário integrado para o IBM 704 e, mais tarde, nos mainframes 709 e 7090. Embora tenha sido rapidamente suplantado pelo IBSYS/IBJOB.
Durante a década de 1960, o OS/360 da IBM introduziu o conceito de um único sistema operacional abrangendo toda uma linha de produtos. O que foi crucial para o sucesso das maquias System/360. IBM sistemas operacionais de mainframe atuais são descendentes distantes deste sistema original e aplicativos escritos para OS/360 ainda podem ser executados em máquinas modernas.
O OS/360 também foi pioneiro no conceito de que o sistema operacional rastreia todos os recursos do sistema que são usados, incluindo a alocação de espaço de dados e programas na memória principal e no espaço no arquivo secundário e o bloqueio de arquivos durante a atualização.
Quando o processo é encerrado por qualquer motivo, todos esses recursos são reivindicados novamente pelo sistema operacional.
A Control Data Corporation desenvolveu o sistema operacional SCOPE na década de 1960, para processamento em lote. Em cooperação com a Universidade de Minnesota, os sistemas operacionais Kronos e, mais tarde, o NOS foram desenvolvidos durante a década de 1970. Suportavam o uso simultâneo de lotes e compartilhamento de tempo.
Como muitos sistemas comerciais de tempo compartilhado, sua interface era uma extensão dos sistemas operacionais Dartmouth Basic, um dos esforços pioneiros em compartilhamento de tempo e linguagens de programação.
No final dos anos 70, a Control Data e a University of Ilinois desenvolveram o PLATO sistema operacional, que usava telas de plasma e redes de compartilhamento de longa distância. Platão foi notavelmente inovador para a época, com bate-papo em tempo real e jogos gráficos para vários usuários.
Em 1961, a Burroughs Corporation apresentou o B5000 com o sistema operacional MCP, (Master Control Program). O B5000 era uma máquina empilhavel projetada para suportar linguagens de alto nível sem linguagem de máquina ou montador, e de fato o MCP foi o primeiro sistema operacional a ser escrito em linguagem de alto nível ­ ESPOÇ, um dialeto de ALGOL.
O MCP também introduziu muitas outras inovações, como a primeira implementação comercial de memória virtual. Durante o desenvolvimento do AS/400, a IBM fez uma abordagem ao Burroughs para licenciar o MCP para ser executado no hardware do AS/400. Esta proposta foi recusada pela administração da Burroughs para proteger sua produção de hardware existente. O MCP ainda está em uso hoje na linha de computadores Unisys Clear Path/MCP.
Como todos os sistemas de mainframe iniciais; o UNIVAC orientado para lotes gerenciava tambores magnéticos, discos, leitores de cartões e impressoras de linha. Nos anos 70, o UNIVAC produziu o sistema Real-Time Basic (RTB) para suportar o compartilhamento de tempo em larga escala, também padronizado após o sistema Dartmouth BC.
Do final da década de 1960 até o final da década de 1970, várias capacidades de hardware evoluíram; permitindo que softwares ou portados rodassem em mais de um sistema. Os sistemas antigos utilizavam a micro programação para implementar recursos em sistemas a fim de permitira que diferentes arquiteturas de computadores subjacentes parecessem ser as mesmas de outras em uma série.
O enorme investimento em software para esses sistemas feito desde a década de 1960 fez com que a maioria dos fabricantes de computadores originais continuasse a desenvolver sistemas operacionais compatíveis com o hardware.
Os primeiros microcomputadores não tinham capacidade ou necessidade para os elaborados sistemas operacionais desenvolvidos para mainframes e minis; sistemas operacionais minimalistas foram desenvolvidos, muitas vezes carregados da ROM e conhecidos como monitores.
Uma notável Disk Operating System foi CP/M que foi apoiado em muitos microcomputadores precoce e estava imitando o Microsoft MS-DOS. Tornou-se muito popular como o sistema operacional escolhido para o IBM PC. (Versão da IBM do que foi chamado IBM DOS ou PC DOS).
Nos anos 80, a Apple Computer Inc. agora Apple Inc. abandonou seu popular Apple II série de microcomputadores para introduzir o computador Apple Macintosh com uma inovadora interface gráfica do usuário (GUI) para o Mac OS.
A introdução do chip CPU Intel 80386 em outubro de 1985, com arquitetura de 32 bits e recursos de paginação, proporcionou aos computadores pessoais a capacidade de executar sistemas operacionais multitarefa como os dos microcomputadores e mainframes anteriores.
A Microsoft respondeu a esse progresso contratando Dave Cutter, que havia desenvolvido do sistema operacional VMS da digital Equipment Corporation. Ele lideraria o desenvolvimento do sistema operacional Windows NT, que continua a servir de base para a linha de sistemas operacionais da Microsoft.
Steve Jobs, co-fundador da Apple Inc. iniciou a NeXT Computer Inc. que desenvolveu o sistema operacional NEXTSTEP. A NEXTSTEP seria adquirida pela Apple Inc. e usada, com o código do FreeBSD, comoo núcleo do MAC OS X (macOS após a última mudança de nome.
O projeto GNU foi iniciado pelo ativista e programador Richard Stallman. O objetivo era criar uma substituição completa de software livre para o sistema operacional UNIX proprietário. Embora o projeto tenha obtido grande sucesso na duplicação da funcionalidade de varias partes do UNIX, o desenvolvimento do CNU Hurd provou ser improdutivo.
Em 1991, o estudante finlandês de ciência da computação Linus Torvals, com a colaboração de voluntários que colaboravam na internet, lançou a primeira versão do kermel do Linus. Logo foi fundido com os componentes do espaço do usuário GNU e com o software do sistema para formar um sistema operacional completo.
Desde então, a combinação dos dois principais componentes tem sido chamada de Linux pela indústria de software, uma convenção de nomenclatura que Stellman e a Free Software Fundation permanecem opostas conhecido como BSD, é o derivado UNIX distribuído pela Universidade da Califórnia, Berkeley, a partir da década de 1970.
Livremente distribuído e portado para muitos microcomputadores, ele acabou ganhando seguidores para uso em PCs, como; FreeBSD, NetBSD e OpenBSD.
Um sistema operacional é um software que gerencia recursos de hardware e software fornecendo serviços comuns para programas de computador.
Embora possa ser executado após a máquina ser ligada, a maioria dos computadores pessoais de hoje o executa através de outro programa armazenado em uma memória não volátil ROM chamado BIOS, num processo chamado "bootstrapping", conceito em inglês usado para designar processos aouto-sustentáveis, ou seja, capazes de prosseguirem sem ajuda externa.
Após executar testes e iniciar os componentes da máquina, o BIOS procura pelo sistema operacional em alguma "toma" o controle da máquina. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional.
Os sistemas operacionais de compartilhamento de tempo agendam tarefas para uso eficiente do sistema e também podem incluir software de contabilidade para alocação de custos de tempo do processador, armazenamento em massa, impressão e outros recursos.
Para funções de hardware como entrada e saída e alocação de memória, o sistema operacional atua como intermediário entre os programas e o hardware do computador, embora código do aplicativo seja executado pelo hardware e faça chamadas de sistema com frequência para a função do sistema operacional ou é interrompida por ele.
Os sistemas operacionais são encontrados em muitos dispositivos que contem um computador. De telefones celulares e consoles de videogame a servidores de web e supercomputadores.
Tem havido muitos sistemas operacionais como Amiga OS, Mac OS Clássico, BeOS, XTS-300, RISC OS, MorphOS, Haiku BareMetal e FreeMint que foram significativos em seu tempo, mas não são mais assim. Alguns ainda são usados em nichos de mercado e continuam a ser desenvolvidos como plataformas minoritárias para comunidades entusiastas e aplicações especializadas. Ainda existem outros sistemas operacionais como Unix e BSD, no entanto, os mais utilizados são:
O Microsoft Windows é uma família de sistemas operacionais proprietários projetados pela Microsoft Corporation e voltados para computadores baseados na arquitetura Intel.
O Microsoft Windows foi lançado em 1985, como um ambiente operacional rodando sobre o MS-DOS, que era o sistema operacional padrão na maioria dos computadores pessoais de arquitetura da Intel na época.
O Mac OS é uma linha de sistemas operacionais gráficos abertos desenvolvido, comercializado e vendidos pela Apple Inc. é pré-carregada em todos os computadores Macintosh atualmente disponíveis.
O Mac OS é um sistema operacional UNIX baseado em tecnologia desenvolvida na NeXT durante a segunda metade dos anos 80 até que a Apple comprou a empresa no início de 1997. Foi lançado em 1999 e desde então mais seis edições distintas de cliente e servidor foram lançadas, até que as duas foram mescladas no OS X 10.7 "Lion".
O kermel do Linux surgiu em 1991, como um projeto de Linus Tarvalds, enquanto estudante universitário na Finlândia. Ele postou informações sobre seu projeto em um grupo de notícias para estudantes de informática e programadores. Recebeu apoio e assistência de voluntários que conseguiram criar um kermel completo e funcional.
Devido ao seu modelo de licença aberta, o código do kermel do Linux está disponível para estudo e modificação. O que resultou em seu uso em uma ampla gama de máquinas de computação, de supercomputadores a relógios inteligentes.
Os sistemas operacionais móveis foram desenvolvidos para smartphones, tablets, PDAs ou outros dispositivos móveis. Embora alguns computadores, como um típico laptop, sejam portáteis, os sistemas operacionais usados neles não são considerados móveis. Como eles foram concebidos para computadores estacionários maiores, não tem ou não precisam de recursos específicos móveis.
Esta distinção pode ser pouco precisa para alguns sistemas operacionais mais recentes que são híbridos, feitos para ambos os usos. Sistemas operacionais móveis combinam características de um sistema operacional do computador com outros recursos úteis para uso móvel ou portátil.
O symbian OS é um sistema operacional criado para rodar nos telemóveis multimídia com suporte para câmeras fotográficas, MMS, wireless, Bluetooth, entre outras funções. Este sistema operacional é baseado em um ambiente gráfico bastante simples.
O Windows móbile é um sistema operacional compacto, desenvolvido para rodar em dispositivos móveis como Pocket PCs, Smartphones e Aparelhos de multimídia em geral. Projetado para ser capaz de realizar a maior parte do que é possível numa versão do Windows para PC.
O Windows phone 7 é um sistema operacional móvel, desenvolvido pela Microsoft, sucessor da plataforma Windows Mobile. Ao contrário deste, é focado no mercado de consumo, em vez do mercado empresarial, para o que falta muitas características fornecidas pela versão anterior.
iOS é o sistema operacional móvel da Apple. Desenvolvido para o iPhone, também é usado em iPod Touch, iPad e Apple TV. A Apple não permite o sistema operacional rodar em hardware de outras marcas.
O MeeGo é um sistema operacional móvel de código aberto, com kermel Linux. Anunciado no Mobile Word Congress em fevereiro de 2010, pela Nokia e pela Intel numa conferência conjunta à imprensa.
O bada é um sistema operacional desenvolvido pela Samsung focado no smartphones. Foi lançado em 2010, como uma alternativa da própria Samsung para concorrer com a Apple e a Blackberry RIM e transformar os consumidores Samsung em utilizadores de Smartphones.
Blackberry OS-RIM
Blackberry OS é um sistema operacional móvel, desenvolvido pela Research In Motion (RIM) para sua linha de smartphone Blackberry. É um sistema operacional multitarefas, oferece suporte a dispositivos de entrada especializados que tem sido adotados pela RIM para uso nos handhhelds, particularmente o trackwheel, TrackBall, e, mais recentemente, o rackpad e touchscreen.
HP WebOS é um sistema operacional móvel em um kermel Linux, desenvolvido pela Palm, que foi adquirida pela Hewlett-Packard (HP).
Palm OS é um sistema operacional móvel desenvolvido pela Palm, Inc., para assistentes digitais pessoais (PDAs) em 1996. Palm OS é projetado para facilidade de uso com uma interface de utilizador gráfica baseada em touchscreen. Versões posteriores do sistema tem sido estendido para suportar smartphones.
Android é um sistema operacional móvel que roda sobre o núcleo Linux, embora por enquanto seja ainda desenvolvido numa estrutura externa ao núcleo Linux. Foi desenvolvido pelo Google e depois pela Open Handset Alliance, mas a Google é a responsável pela gestão do produto e engenharia de processos. Está presente em 92,4% dos smartphones no Brasil.
Todos os componentes de um sistema operacional existem para que as diferentes partes de um computador funcionem juntas. Todo o software do usuário precisa passar pelo sistema operacional para usar qualquer hardware, seja tão simples quanto um mouse ou teclado ou tão complexo quanto um componente da internet.
Com o auxilio dos drivers de firmware e dispositivo o Kermel fornece o nível mais básico de controle sobre todos os dispositivos de hardware do computador.
Ele gerencia o acesso à memória dos programas na RAM; determina quais programas obtêm acesso a quais recursos de hardware; configura ou redefine os estados operacionais da CPU para operação ideal o tempo todo e organiza os dados para armazenamento não volátil de longo prazo, com sistemas de arquivos em mídias como discos, fitas, memória flash, etc.
O sistema operacional fornece uma interface entre um programa aplicativo e o hardware do computador, para que um programa aplicativo possa interagir com o hardware apenas obedecendo a regras e procedimentos programados no sistema operacional.
O sistema operacional também é um conjunto de serviços que simplifica o desenvolvimento e a execução de programas aplicativos.
A execução de um programa aplicativo envolve a criação de um processo pelo kermel do sistema operacional que atribui espaço à memória e outros recursos; estabelece uma prioridade para o processo em sistemas multitarefa; carrega o código binário do programa na memória e inicia a execução do programa aplicativo; então interage com o usuário e com dispositivos de hardware.
Interrupções são fundamentais para os sistemas operacionais, pois fornecem uma maneira eficiente de o sistema operacional interagir e reagir ao seu ambiente. A alternativa ter o sistema operacional vigiando as várias fontes de entrada para eventos que requerem ação ­ pode ser encontrada em sistemas mais antigos com pilhas muito pequenas (50 ou 60 bytes), mas é incomum em sistemas modernos com grandes pilhas.
A programação baseada em interrupção é suportada diretamente pela maioria das CPUs modernas. Interrupções fornecem um computador com uma maneira de salvar de forma automática os contextos de registro local e executar código especifico em resposta a eventos.
Até mesmo os computadores mais básicos suportam interrupções de hardware. Permitem que o programador especifique o código que pode ser executado quando esse evento ocorrer.
Quando uma interrupção é recebida, o hardware do computador suspende automaticamente qualquer programa que esteja sendo executado, salva seu status e executa o código do computador anteriormente associado à interrupção.
Nos sistemas operacionais modernos, as interrupções são tratadas pelo kermel do sistema operacional. Interrupções podem vir do hardware do computador ou do programa em execução.
Microprocessadores modernos (CPU ou MPU) suportam vários modos de operação. As CPUs com esse recurso oferecem pelo menos dois modos: nodo de usuário e modo de supervisor.
Em termos gerais, a operação do modo supervisor permite acesso irrestrito a todos os recursos da máquina, incluindo todas as instruções do MPU. A operação no modo de usuário define limites no uso de instruções e não permite o acesso direto aos recursos da máquina.
As CPUs também podem ter outros modos semelhantes ao modo de usuário, como; os modos virtuais para emular tipos de processadores mais antigos, como processadores de 16 bits ou processadores de 32 bits em processadores de 64 bits.
Entre outras coisas, um kermel do sistema operacional de multiprogramação deve ser responsável por gerenciar toda a memória do sistema que está em uso pelos programas. Isso garante que um programa não interfira na memória já em uso por outro programa. Desde a partilha de tempo dos programas, cada programa deve ter acesso independente à memória.
O gerenciamento de memória cooperativa, usado por muitos sistemas operacionais antigos, pressupões que todos os programas fazem uso voluntário do gerenciador de memória do kermel e não excedem a memória alocada. Esse sistema de gerenciamento de memória quase nunca é visto, já que os programas geralmente contêm bugs que podem fazer com que excedam sua memória alocada.
Se um programa falhar, isso poderá fazer com que a memória usada por um ou mais programas seja afetada ou substituída. Programas maliciosos ou vírus podem propositadamente alterar a memória de outro programa ou afetar a operação do próprio sistema operacional. Com o gerenciamento de memória cooperativa, é preciso apenas um programa mal comportado para travar o sistema.
A proteção de memória permite que o kermel limite o acesso de um processo à memória do computador. Existem vários métodos de proteção de memória, incluindo segmentação de memória e paginação. Todos os métodos requerem algum nível de suporte de hardware (como o 80286 MMU), que não existe em todos os computadores.
O uso de endereçamento de memória virtual ( como paginação ou segmentação) significa que o kermel pode escolher qual memória cada programa pode usar a qualquer momento. Permitindo que o sistema operacional use os mesmos locais de memória para várias tarefas.
Se um programa tenta acessar a memória que não esteja no seu intervalo atual de memória acessível, mas mesmo assim lhe tenha sido alocada, o kermel será interrompido da mesma forma que seria se o programa excedesse sua memória alocada.
A memória virtual fornece ao programador ou ao usuário a percepção de que há uma quantidade muito maior de RAM no computador do que realmente existe.
Multitarefa refere-se ao funcionamento de vários programas de computador independentes no mesmo computador; dando a aparência de que está executando as tarefas ao mesmo tempo.
Como a maioria dos computadores pode fazer no máximo uma ou duas coisas ao mesmo tempo, isso é feito por meio do compartilhamento de tempo. O que significa que cada programa usa uma parte do tempo de execução do computador.
Um kermel do sistema operacional contém um programa de agendamento que determina quanto tempo cada processo gasta executando e em qual ordem o controle de execução deve ser passado para os programas.
O controle é passado para um processo pelo kermel, que permite ao programa acessar a CPU e a memória. Mais tarde o controle é retornado ao kermel através de algum mecanismo, de modo que outro programa possa usar a CPU.
A filosofia que governa a multitarefa preemptiva é garantir que todos os programas recebam tempo regular na CPU. Isso implica que todos os programas devem ser limitados em quanto tempo eles podem gastar na CPU sem serem interrompidos.
Para conseguir isso, os kermels modernos do sistema operacional fazem uso de uma interrupção cronometrada. Um temporizador de modo protegido é definido pelo kermel, que aciona um retorno ao modo supervisor após o tempo especificado ter decorrido.
O acesso aos dados armazenados nos discos é um recurso central de todos os sistemas operacionais. Os computadores armazenam dados em discos usando arquivos, que são estruturados de maneiras especificas para permitir acesso mais rápido; maior confiabilidade e fazer melhor uso do espaço disponível da unidade.
A maneira especifica em que os arquivos são armazenados em um disco é chamada de sistema de arquivos. Permite que os arquivos tenham nomes e atributos. Ele também permite que eles sejam armazenados em uma hierarquia de diretórios ou pastas organizadas em uma árvore de diretórios.
Um driver de dispositivo é um tipo especifico de software desenvolvido para permitir a interação com dispositivos de hardware. Isso constitui uma interface para comunicação com o dispositivo, através do barramento de computador ou subsistema de comunicação especifico ao qual o hardware está conectado, fornecendo comandos e/ou recebendo dados dos dispositivos e, na outra extremidade, as interfaces necessárias para o funcionamento das aplicações de sistema e software.
É um programa de computador dependente de hardware especializado que também é especifico do sistema operacional que permite que outro programa normalmente um sistema operacional ou um pacote de software de aplicativos ou um programa de computador em execução no kermel do sistema operacional, interaja de forma transparente com um dispositivo de hardware.
O principal objetivo de design dos drivers de dispositivo é a abstração. Todo modelo de hardware (mesmo dentro da mesma classe) é diferente. Modelos mais novos também são lançados por fabricantes que fornecem desempenho mais confiável ou melhor que esses modelos mais novos são frequentemente controlados de forma diferente.
Não se pode esperar que os computadores e seus sistemas operacionais saibam como controlar todos os dispositivos, tanto agora quanto no futuro. Para resolver esse problema, os sistemas operacionais basicamente ditam como cada tipo de dispositivo deve ser controlado. A função do driver de dispositivo é, então, converter essas chamadas de função obrigatórias do sistema operacional em chamadas especificas do dispositivo.
Em teoria, um novo dispositivo, que é controlado de uma nova maneira, deve funcionar corretamente se houver um driver adequado disponível. Esse novo driver garante que o dispositivo pareça funcionar normalmente do ponto de vista do sistema operacional.
Atualmente, a maioria dos sistemas operacionais suporta uma variedade de programas de protocolos de rede, hardware e aplicativos para usá-los. Isso implica que os computadores que executam sistemas operacionais diferentes podem participar de uma rede comum de compartilhamento de recursos, como; computação, arquivos, impressoras e scanners usando conexões com ou sem fio.
As redes podem essencialmente permitir que o sistema operacional de um computador acesse os recursos de um computador remoto para suportar as mesmas funções que poderiam se esses recursos estivessem conectados ao computador local.
Isso inclui tudo, desde comunicações simples até sistemas de arquivos em rede ou até mesmo compartilhamento de hardware gráfico ou de som de outro computador. Alguns serviços de rede permitem que os recursos de um computador sejam acessados de forma transparente; como SSH que permite que usuários conectados em rede acessem diretamente a interface de linha de comando de um computador.
A rede cliente/servidor permite que um programa num computador, chamado cliente, se conecte via rede a outro computador, chamado servidor. Os servidores oferecem ou hospedam vários serviços a outros computadores e usuários da rede.
Esses serviços são fornecidos por meio de portas ou de acesso numerados além do endereço IP do servidor. Cada número de porta é associado a um máximo de um programa em execução, que é responsável por manipular pedidos para esta porta.
Um daemon, sendo um programa do usuário, pode, por sua vez, acessar os recursos de hardware locais desse computador; processando solicitações para o kermel do sistema operacional.
Um computador que é seguro depende de várias tecnologias que funcionam corretamente. Um sistema operacional moderno fornece acesso a recursos que estão disponíveis para o software em execução no sistema, e para dispositivos externos, como redes através do kermel.
O sistema operacional deve ser capaz de distinguir entre solicitações que devem ser processadas a outras que não devem ser processadas. Embora alguns sistemas possam simplesmente distinguir entre privilegiados e não privilegiados, os sistemas tem uma forma de identidade do solicitante, como um nome de usuário.
Para estabelecer identidade, pode haver um processo de autenticação. Geralmente, um nome de usuário deve ser citado e cada nome de usuário pode ter uma senha. Outros métodos de autenticação, como cartões magnéticos ou dados biométricos podem ser usados em seu lugar.
Em alguns casos, especialmente conexões da rede, os recursos podem ser acessados sem nenhuma autenticação. Também coberto pelo conceito de identidade do solicitante é autorização; os serviços e recursos específicos acessíveis pelo solicitante uma vez registrados em um sistema estão vinculados à conta do usuário solicitante ou aos grupos configurados de usuários aos quais o solicitante pertence.
Todo computador que deve ser operado por um individuo requer uma interface de usuário. A interface do usuário é essencial para que a interação humana seja suportada.
A interface do usuário exibe a estrutura de diretório e solicita serviços do sistema operacional que adquirem dados de dispositivo de entrada de hardware, como um teclado, mouse ou leitor de cartão de crédito, e solicita serviços do sistema operacional para exibir prompts, mensagens de status e hardware de saída de dispositivos, como um monitor de vídeo ou uma impressora.
As duas formas mais comuns de uma interface de usuário têm sido a interface de linha de comando; onde os comandos do computador são digitados linha por linha e a interface gráfica do usuário; onde um ambiente visual está presente.
A maioria dos sistemas de computador modernos suporta interfaces gráficas de usuário (GUI) e geralmente os inclui. Em alguns sistemas de computador, como a implementação original do Mac OS clássico, a GUI é integrada ao kermel.
Existem vários tipos de sistemas operacionais que podem ser:
Grande Porte: Utilizados em Main Frame, ou seja, utilizados por grandes empresas que usam grandes computadores.
Servidores: Sistemas com implementação na rede com finalidades como compartilhamento de impressoras e internet.
Multiprocessadores: Sistemas Fraca ou fortemente acoplados, que permitam vários processadores em uma única placa mãe, ou o uso de vários processadores e varias placas mãe para um único objetivo.
Pessoais: Sistemas com cunho pessoal.
Portáteis: Sistemas para aparelhos móveis.
Distribuído: gerencia um grupo de computadores distintos e faz com que eles pareçam ser um único computador. O desenvolvimento de computadores em rede que poderiam ser interligados e comunicar entre si deu origem a computação distribuída.
Templado: Em um sistema operacional, distribuição e contexto de computação em nuvem, a modelagem refere-se à criação de uma única imagem de máquina virtual como um sistema operacional convidado, salvando a como uma ferramenta para várias máquinas virtuais em execução. A técnica é usada tanto na virtualização quanto no gerenciamento de computação em nuvem, comum em grandes armazéns de servidores.
Embarcados: Sistemas com um simples objetivo e que não possuem grandes alterações. Eles são projetados para operar em máquinas pequenas, como PDAs com menos autonomia.
Tempo real: Sistemas que tem que fornecer informações precisas em tempo real com condições críticas (controle de tráfego aéreo) e não crítica (servidor de voip).
Biblioteca: Um sistema operacional de biblioteca é aquele em que os serviços típicos que ele fornece, como rede, são fornecidos na forma de bibliotecas e compostos com o código de aplicativo e configuração para construir um unikermel. Um espaço de endereço único e especializado, imagem de máquina que podem ser implantados em ambientes incorporados ou em nuvem.
Smart Cards: Sistemas operacionais que rodam a partir de pequenos cartões.
O sistema operacional organiza o acesso básico dos programas as funções básicas do computador, tais como: leitura e gravação em disco. Interpretações das informações enviadas pelo teclado ou mouse, transmissão de dados para uma impressora ou por meio de uma rede local, por exemplo. Dessa forma, o sistema operacional torna mais fácil tanto desenvolvimento quanto a execução dos programas.
Usualmente, um programa operacional não se resume a um único programa carregado na memória e que ficará monitorando funções especiais requisitadas por outros programas. Muitos sistemas operacionais são compostos por diversos programas que cuidam de funções específicas. De regra, quanto mais funções um sistema operacional possui, maior a quantidade de programas, rotinas ou bibliotecas ele irá possuir.
Wikipédia, Operating Sistem, disponível em: <https://en.wikipedia.org/wiki/Operating_system>.
Lucas, TechTube, Entenda o que é sistema operacional e sua função, disponível neste link.
Portal Educação, O que é e para que serve um sistema operacional? Disponível neste link.
Dan Atilo, Terminal de Informação, Tipos de Sistemas Operacionais, disponível em: <https://terminaldeinformacao.com/2012/12/14/tipos-de-sistemas-operacionais/>.