Introdução aos Sistemas Operacionais
Aula 1
Introdução aos Sistemas Operacionais
Introdução aos sistemas operacionais
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender conteúdos importantes para a sua formação profissional. Vamos assisti-la?
Ponto de Partida
Olá, estudante! Nesta unidade veremos as diferentes aplicações dos sistemas operacionais e como seus diferentes tipos são utilizados em diversas situações, adequando-se às necessidades dos usuários.
Os sistemas operacionais evoluíram com o advento dos computadores. No começo, eles não existiam e os computadores eram controlados manualmente. Atualmente, executam diversas funções e oferecem serviços que auxiliam o usuário e os programadores na execução do trabalho, tomando como principal atribuição a função de controlar o hardware disponível.
Nesta aula, teremos acesso aos conceitos e à história dos sistemas operacionais, bem como às suas particularidades, além de iniciar o aprendizado sobre as funções e os serviços oferecidos por eles.
Esse estudo será importante para que ao final da aula possamos responder aos questionamentos da seguinte situação: Pedro é um dos alunos que participa de um curso de sistemas operacionais ministrado por você durante um simpósio chamado “Informática para todos” e é um técnico de suporte em uma pequena empresa de marketing. Os funcionários da empresa dele compartilham a impressora e arquivos de dados que contêm informações para o trabalho de cada setor. A empresa possui os setores de análise de mercado, desenvolvimento do produto, comercial e vendas, com duas ou no máximo três pessoas envolvidas nas atividades em cada departamento. O setor comercial relatou ao Pedro que algumas análises de mercado realizadas há dois meses não estavam aparecendo nas pastas de sua área. Pedro identificou que os arquivos citados pelo comercial foram deletados pelos funcionários de outros departamentos. Desta forma, Pedro questiona a você sobre qual seria a solução a ser adotada para solucionar o compartilhamento destes recursos. Outra dúvida levantada pelos alunos foi que, mesmo que o sistema operacional gerencie de forma eficaz o compartilhamento de recursos das máquinas, que é uma das suas funções, por que alguns usuários conseguem apagar arquivos importantes da empresa?
Aprender sobre os sistemas operacionais proporcionará um conhecimento que envolve várias áreas da computação.
Bons estudos!
Vamos Começar!
Definição e conceitos dos sistemas operacionais
Segundo Tanenbaum (2003), o sistema operacional é parte essencial de qualquer sistema computacional. Se eles não existissem, os sistemas computacionais funcionariam, porém, o usuário teria que saber os detalhes de hardware para utilizá-los, o que seria bem complexo.
Um sistema computacional é composto por hardware e software. Os hardwares são os componentes físicos do computador, como a CPU (unidade central de processamento), o processador, memória, mouse, teclado, monitor, entre outros. Já os softwares são programas (conjunto de instruções) instalados no hardware para executar uma determinada tarefa.
O sistema operacional é um software responsável por controlar o computador e tem por objetivo gerenciar os recursos de hardware (processador, memória, periféricos do computador como teclado, mouse e impressora, dados, dentre outros) e fazer a interação entre o hardware e o software, além de ser o responsável por conectar o hardware e o usuário do computador, conforme apresentado na Figura 1.
Segundo Machado (1997), quando o computador é ligado, o sistema operacional é o primeiro programa a ser executado e permanece gerenciando os recursos de hardware e software até o computador ser desligado. O sistema operacional tem o objetivo de gerenciar o computador de forma eficiente e produtiva facilitando o seu uso, além de garantir a integridade e a segurança dos dados durante o processamento e na memória.
Breve histórico dos sistemas operacionais
Segundo Tanenbaum (2003), a evolução dos sistemas operacionais caminhou em conjunto com a evolução da arquitetura dos computadores. A primeira geração de computadores se deu entre 1945 a 1955 (válvulas e painéis de programação). As máquinas eram enormes, lentas e compostas por válvulas, ocupando salas inteiras, e as atividades eram realizadas por uma pessoa por meio de painéis de programação.
Naquela época, não existiam sistemas operacionais e nem linguagens de programação, e as máquinas basicamente realizavam cálculos matemáticos como logaritmos, sendo usadas para fins militares.
Caso houvesse um erro durando o processamento de cálculo, deveria recomeçar do início e, com isso, perdia-se muito tempo. Ainda, se uma válvula queimasse, todo o processamento estava perdido. A Figura 2 apresenta as máquinas da primeira geração de computadores.
Segundo Tanenbaum (2003), a segunda geração de computadores foi entre 1955 a 1965 (Transistores e sistema em Lote, ou Batch, em inglês). Nessa época, surgiram os computadores de grande porte, os mainframes, porém somente grandes instituições como bancos e universidades tinham acesso, devido ao alto custo. Os computadores eram utilizados para cálculos científicos como equações diferenciais presentes na física e na engenharia. A Figura 3 apresenta as máquinas da segunda geração de computadores. Outro fato é o surgimento das primeiras linguagens de programação Fortran e Assembly.
Os mainframes possuíam sistemas operacionais e operavam através de Jobs (programa ou conjunto de programas). Os programas eram escritos em papel e depois passados para os cartões perfurados. O processamento dos cartões até se obter uma saída era muito demorado e, com isso, surgiu outra solução: o sistema de lote (batch), cujo objetivo era gravar vários jobs em fita magnética usando um computador relativamente mais barato, bom para ler cartões, copiar fitas e imprimir saídas (TANENBAUM, 2003).
Segundo Tanenbaum (2003), a terceira geração de computadores compreendeu o período entre 1965 a 1980 (Circuitos Integrados e Multiprogramação). Nesta geração, os fabricantes de computadores ofereciam duas linhas de produtos: os computadores científicos de grande escala orientados a palavras, usados para cálculos numéricos na ciência e na engenharia, e os computadores comerciais orientados a caracteres, usados por bancos e companhia de seguros.
A quarta geração de computadores compreende desde de 1980 até a presente data (computadores pessoais). Com o desenvolvimento acelerado dos circuitos integrados ou microchip (circuito eletrônico), foi iniciada a era dos computadores de uso pessoal. Desde então, eles tiveram uma grande evolução em agilidade e praticidade, tornaram-se menores, mais rápidos e mais baratos.
Os sistemas operacionais usados nesta geração foram o MS-DOS e o Unix, quando se iniciou a interface gráfica, sendo o MS-DOS a base da evolução para o conhecido Windows. Com o desenvolvimento das redes de computadores pessoais, surgiram os sistemas operacionais de rede que permitem conectar-se a máquinas remotas e copiar arquivos de uma máquina para outra, e os sistemas operacionais distribuídos, que possuem múltiplos processadores.
Hoje, os sistemas operacionais gerenciam redes, aplicações para redes, sistemas operacionais de servidores, sistemas operacionais em tempo real, além dos sistemas operacionais para celulares.
Siga em Frente...
Principais funções dos sistemas operacionais
Entre as principais funções dos sistemas operacionais estão: estender a máquina e gerenciar os recursos (TANENBAUM, 2003).
Estender a máquina (ou máquina virtual)
A função do sistema operacional como uma máquina estendida é esconder a complexidade do hardware do programador, conhecida também como abstração. Por exemplo, o sistema operacional trata cada dispositivo físico como um arquivo e esses arquivos, ao serem manipulados emitindo os comandos de leitura/escrita ou de abrir/ fechar, muito complexos devido à quantidade de parâmetros que recebem, ficam a cargo do sistema operacional controlar esse dispositivo diretamente com o hardware.
Gerenciar os recursos
Essa função dos sistemas operacionais compreende:
- Controlar de forma ordenada e compartilhada os recursos do computador, como a memória, o processador e os dispositivos de E/S para os processos (programas) que estão aguardando por eles.
- Controlar quem está usando qual recurso, garantindo suas requisições de recursos e mediando os conflitos entre programas e usuário.
O gerenciamento de recursos controla o compartilhamento de recursos de duas formas: no tempo e no espaço. Quando um recurso é compartilhado no tempo, vários programas aguardam a sua vez de usá-lo. O sistema operacional é quem decide qual programa irá utilizar o recurso e por quanto tempo. Outro tipo de compartilhamento é o de espaço, no qual vários programas utilizam uma parte do recurso. Por exemplo, a memória principal é dividida entre vários programas em execução, permitindo assim que cada programa execute ao mesmo tempo, sendo mais eficiente.
Principais serviços dos sistemas operacionais
O sistema operacional oferece os seguintes serviços para os aplicativos dos usuários e também ao próprio sistema (MACHADO, 1997):
- Meios para que um programa seja carregado em memória e executado.
- Um sistema de arquivos, permitindo criar, ler, escrever e excluir arquivos.
- Uma interface de acesso aos periféricos (impressoras, scanner, câmera, pen drive etc.).
- Mecanismos de monitoração de recursos, capazes de identificar possíveis gargalos no sistema.
- Meios para armazenar/manter o estado do sistema.
Vamos Exercitar?
Funções dos sistemas operacionais – compartilhamento de recursos
Como você deve se lembrar, no começo da aula você foi convidado a imaginar que está ministrando um curso de sistemas operacionais. Pedro, um dos alunos, relatou que na empresa de marketing em que trabalha arquivos do comercial foram deletados por outros departamentos. Você precisa responder aos alunos por que isso ocorreu e qual seria a solução? Vamos às respostas:
Os funcionários da empresa tinham acesso às pastas e diretórios como administrador e foi por isso que aconteceu de arquivos de outros setores serem deletados. Neste caso, muitos sistemas operacionais permitem o controle de acesso para as pastas e arquivos de dados dos diretórios.
Como exemplo de controle de acesso para a empresa de marketing, somente os funcionários da área comercial poderão alterar ou modificar os arquivos e os demais funcionários terão acesso somente para leitura.
Pedro poderia configurar as pastas de uso comum somente para leitura, o que garantiria a permanência dos arquivos na pasta. Além disso, ele poderia recorrer à cópia (backup) dos arquivos para voltar os arquivos que foram apagados das pastas.
Saiba Mais
Para saber mais sobre outros sistemas operacionais, acesse o artigo Conheça outros Sistemas Operacionais.
Referências Bibliográficas
MACHADO, F. B. Arquitetura de sistemas operacionais. 2. ed. Rio de Janeiro: LTC, 1997.
MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais. 5. ed. Rio de Janeiro: LTC, 2017.
TANENBAUM, A. S. Sistemas Operacionais Modernos. 2. ed. São Paulo: Pearson, 2003.
Aula 2
Evolução dos Sistemas Operacionais
Evolução dos sistemas operacionais
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender conteúdos importantes para a sua formação profissional. Vamos assisti-la?
Ponto de Partida
Olá, estudante! Os sistemas operacionais conseguem gerenciar diversos programas e aplicativos do usuário e do sistema sem comprometer a performance do computador.
Quando um computador está ligado, além dos seus aplicativos que estão sendo executados (como editor de textos, internet, aplicativos de música, entre outros), outros programas estão rodando em paralelo, como o antivírus (rastreando as possíveis ameaças que poderiam danificar o sistema operacional), atualização de versões de aplicativos instalados etc. Esse gerenciamento eficaz somente é possível pelo fato de os sistemas operacionais atuais serem multitarefa.
Nesta aula, aprenderemos sobre os sistemas operacionais monoprogramáveis, multiprogramáveis e com múltiplos processadores. Verificaremos cada classificação dos sistemas quanto à sua capacidade de controlar mais de uma tarefa ao mesmo tempo (monotarefa, multitarefa e multiprocessamento) e sua performance durante este controle.
Desta forma, vamos responder: quais as principais estruturas dos sistemas operacionais? Como os sistemas operacionais da atualidade, como Windows e Linux, conseguem realizar diversas tarefas ao mesmo tempo sem prejudicar o desempenho do computador? Quais as principais características e aplicações dos sistemas operacionais multiprogramáveis/multitarefa? Qual a principal diferença entre os sistemas multiprogramáveis? Para os sistemas operacionais multiusuários, o Linux e Windows oferecem suporte?
A fim de colocarmos esse conteúdo em prática, ao final da aula responderemos aos questionamentos da seguinte situação:
Cláudio, um dos alunos que participam de um curso de sistemas operacionais ministrado por você, sugeriu ao tio dele, dono de uma empresa prestadora de serviços de impressão, a instalação de máquinas virtuais.
Nessa empresa, os clientes solicitam a impressão de arquivos de imagem, documentos de texto e apostilas utilizando um pen drive ou pelo celular. Isso gera a infecção das máquinas por vírus, mesmo usando um antivírus eficiente, sendo constantemente necessário formatar as máquinas que fazem a impressão. Os sistemas operacionais utilizados nelas é Windows e através da máquina virtual foi instalado o sistema operacional Linux.
O tio de Cláudio utilizou o MVM (Microsoft Virtual Machine) para realizar a instalação. Ao final, o proprietário identificou que o mouse e o teclado não estavam funcionando. Desta forma, Cláudio questiona a você sobre qual seria a solução a ser adotada para solucionar o problema. Além disso, outro aluno pergunta se com a instalação da máquina virtual não haverá mais vírus.
Prossiga com seus estudos para se preparar para esse desafio!
Bons estudos!
Vamos Começar!
Os sistemas operacionais podem ser classificados em duas categorias principais com base na maneira como gerenciam a execução de programas: monoprogramáveis (ou monoprocesso) e multiprogramáveis (ou multiprocessos). Além disso, aqueles que suportam hardware com múltiplos processadores são conhecidos como sistemas operacionais com múltiplos processadores.
Segundo Machado e Maia (2007), os sistemas operacionais podem ser classificados em: Monoprogramáveis/monotarefa, multiprogramáveis/multitarefa, sistemas com múltiplos processadores.
Sistemas monoprogramáveis/monotarefa
Segundo Machado e Maia (2007), os sistemas operacionais monoprogramáveis/monotarefa se referem aos primeiros computadores pessoais criados em 1960. Eles executam um único programa por vez e todos os recursos da máquina são alocados exclusivamente para o programa em execução, mesmo que não esteja utilizando o recurso. Um exemplo pode ser ao atualizar uma planilha eletrônica e editar um texto: ou atualiza a planilha eletrônica e fecha o editor de textos ou edita o texto e fecha a planilha eletrônica.
A implementação de sistemas monoprogramáveis/monotarefa é simples porque não é necessário se preocupar com a concorrência de recurso. Um exemplo de monoprogramáveis/monotarefa foi o MS-DOS.
Sistemas multiprogramáveis/multitarefa
Os sistemas operacionais multiprogramáveis/multitarefa dividem os recursos do computador com os demais programas e, com isso, a CPU não fica ociosa como no caso de sistemas operacionais monoprogramáveis/monotarefa (MACHADO; MAIA, 2007).
Por exemplo, é possível atualizar uma planilha eletrônica e utilizar um editor texto ao mesmo tempo. Os sistemas multiprogramáveis podem ser classificados pela maneira com que as aplicações são gerenciadas e pelo número de usuários que utilizam o sistema. Os sistemas multiprogramáveis em relação ao número de usuários que os utilizam são:
- Monousuários: somente um usuário utilizando os recursos da máquina.
- Multiusuários: vários usuários logados utilizando os recursos da máquina.
Os sistemas multiprogramáveis, em relação à maneira com que as aplicações são gerenciadas, podem ser classificados como batch, de tempo compartilhado ou de tempo real. Os sistemas batch foram os primeiros sistemas operacionais multiprogramáveis e o processamento era realizado por meio de grupos de registros (lote).
Siga em Frente...
Sistemas com múltiplos processadores
Segundo Machado e Maia (2007), os sistemas com múltiplos processadores possuem duas ou mais CPUs interligadas e permitem que vários programas sejam executados ao mesmo tempo. Os sistemas com múltiplos processadores permitem que um programa seja subdividido e executado ao mesmo tempo em mais de um processador. Com isso, além desses sistemas serem rápidos, possuem uma maior capacidade de processamento e controle da CPU.
Os sistemas com múltiplos processadores são complexos, gastam uma parte do tempo gerenciando a CPU e estão presentes nas aplicações de simulações e prospecção de petróleo. Os sistemas com múltiplos processadores podem ser classificados em:
Sistemas fortemente acoplados
Possuem dois ou mais processadores, compartilham a mesma memória e os dispositivos de entrada/saída são controlados por um único sistema operacional. São utilizados em sistemas que usam intensivamente a CPU, voltando-se à solução de apenas um problema.
Os sistemas fortemente acoplados são classificados em:
- Simétricos: nos sistemas simétricos os processadores compartilham uma única memória e utilizam o mesmo sistema operacional. Usam a técnica de paralelismo em que os programas podem ser divididos em partes, podendo rodar concorrentemente em processadores que estejam disponíveis.
Com o processamento paralelo, há um aumento do processamento e caso haja uma falha em um dos processadores, não impacta na performance do sistema. O Windows e o Linux suportam os sistemas simétricos.
- Assimétricos: nos sistemas assimétricos existe um processador principal (mestre) que controla o sistema e delega atividades para os demais processadores. Se acontecer algum problema com o processador principal, os demais não continuam o processamento.
Sistemas fracamente acoplados
Eles funcionam de forma independente, possuindo seu sistema operacional e gerenciando seus próprios recursos como memória, CPU e dispositivos de entrada e saída. O sistema é fracamente acoplado por depender de uma rede para distribuir as atividades do processamento (MACHADO; MAIA, 2007).
Os sistemas fortemente acoplados são classificados em:
- Operacionais de rede: os sistemas operacionais de rede são independentes e estão conectados por meio de uma rede. Nela, cada estação de trabalho ou nó possui um sistema operacional próprio e tem a capacidade de processamento das suas aplicações (MACHADO; MAIA, 2007). Eles também permitem o compartilhamento de recursos como impressora, diretórios, cópia de arquivos, entre outros.
- Operacionais distribuídos: os sistemas operacionais distribuídos permitem que um programa seja dividido em partes e que cada parte seja executada em nós diferentes da rede. Os usuários do sistema veem como um sistema centralizado e não como um sistema em rede (MACHADO; MAIA, 2007).
Vamos Exercitar?
Estrutura dos sistemas operacionais - máquina virtual
Lembre-se de que, como apresentado anteriormente, você está ministrando um curso de sistemas operacionais e precisa responder a questionamentos de seus alunos. Um deles, Cláudio, relatou que, quando seu tio instalou uma máquina virtual, o teclado e mouse pararam de funcionar. Como isso pode ser solucionado? As máquinas virtuais são imunes a vírus? Vamos às respostas:
Para um bom funcionamento dos dispositivos de entrada e saída conectados ao computador, é necessário que os drivers (softwares que permitem a comunicação do sistema operacional e do computador) estejam instalados corretamente. As máquinas virtuais suportam todos os drivers de entrada e saída. Em alguns casos, reiniciando as máquinas virtuais resolve-se o problema do não funcionamento deles.
O problema relatado por Cláudio acontece quando não existem os drives para fazer interface entre a máquina virtual e a máquina real. Neste caso, é necessário instalá-los manualmente ou reinstalar a máquina virtual, a qual não é imune a vírus, mas não compromete o hardware.
Além disso, não é necessária a formatação constante da máquina, sendo necessária apenas a desinstalação da máquina virtual.
Saiba Mais
Você sabia que um sistema operacional pode “rodar” dentro de outro? Para saber mais sobre máquina virtual acesse o artigo: O que são máquinas virtuais?
Referências Bibliográficas
MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Aula 3
Características dos Sistemas Operacionais
Características dos sistemas operacionais
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender conteúdos importantes para a sua formação profissional. Vamos assisti-la?
Ponto de Partida
Olá, estudante! Boas-vindas a mais uma seção de estudo. Uma das maiores discussões na área de tecnologia está relacionada a qual o melhor sistema operacional: Linux, Windows, Mac OS, Android, iOS, Solaris ou outros que possam existir no mercado?
As comparações acontecem a exemplo de tanto o Windows quanto o Linux possuem características próprias e, em determinados momentos, é aconselhável usar o Linux ao invés do Windows e vice-versa. Mas uma das questões indiscutíveis é que o Linux é gratuito e possui o código aberto, enquanto o Windows é pago e gerenciável pela Microsoft.
Nesta aula vamos aprender as características dos sistemas operacionais. Serão apresentados exemplos de sistemas operacionais Mobile e na Nuvem, além das características e propriedades do Unix, do Linux e do Windows.
Para aprimorar seus estudos vamos analisar o seguinte caso: Daniel, um dos alunos do curso de sistemas operacionais ministrado por você durante o simpósio “Informática para todos” participa como desenvolvedor contribuinte de uma comunidade de software livre. Nela, participam desenvolvedores de softwares, empresários do ramo de tecnologia, estudantes e pessoas que queiram contribuir com novas ideias. Anualmente, eles se reúnem no Fórum Internacional de Software Livre para discutir inovações e novas técnicas do mundo do software livre.
Durante um dos fóruns on-line da comunidade de software livre, um dos assuntos apresentados foi o motivo de ainda existirem aplicativos que não estão disponíveis para o software livre. Assim, um dos alunos questiona por que ainda existem aplicativos não disponíveis para o software livre. Outro aluno questiona sobre qual a diferença de software livre e software de código aberto (open source).
Bons estudos!
Vamos Começar!
Com a evolução dos computadores inserindo em sua arquitetura mais eficiência e praticidade, os sistemas operacionais estão vindo mais poderosos e com funções cada vez mais avançadas. Existem vários tipos de sistemas operacionais para gostos e necessidades diferentes, descritos a seguir.
- Sistemas operacionais embarcados (TANENBAUM, 2003): são usados para computadores de mão, podendo ser utilizados em celulares, aparelhos de TV e forno micro-ondas. Esses sistemas possuem características dos sistemas operacionais de tempo real, mas possuem limitações de memória e consumo de energia. São exemplos tvOS (Apple), WebOS (LG) e Tizen (Samsung).
- Sistemas operacionais mobile: os sistemas operacionais mobile são encontrados em celulares, tablets e MP3 players. São mais simples e permitem a comunicação de dados sem fio por bluetooth e wi-fi. Ainda permitem a utilização de rádio, câmera, gravador de voz, entre outros. São exemplos Android, Windows Phone, iOS, entre outros (GCFAPRENDELIVRE, 2018).
- Sistemas operacionais na nuvem: os sistemas operacionais na nuvem utilizam os conceitos (todos os serviços oferecidos como banco de dados, redes etc. feitos pela internet) com base na computação na nuvem. Todos os dados do usuário e aplicativos ficam na nuvem (armazenamento de dados através da web) e o acesso é via internet. A Google lançou em 2009 o sistema operacional Chrome OS, que utiliza recursos armazenados on-line (TERRA, 2018).
- Sistemas operacionais de cartões inteligentes (smart cards) (TANENBAUM, 2003): os cartões inteligentes são os menores sistemas operacionais, são dispositivos do tamanho de cartões de crédito e contêm um chip de CPU. Esses sistemas têm restrições severas de memória e de energia e são limitados a pagamentos eletrônicos e a saques.
Sistema Unix
Ao se tratar do Sistema Unix, Tanenbaum (2003) diz que a história começou como um projeto de um pesquisador e se tornou uma indústria milionária, envolvendo diversas instituições como universidades, governos e outras corporações.
Em 1960, o foco era desenvolver um sistema operacional de tempo compartilhado, então foi projetado o sistema operacional MULTICS (Multiplexed Information and Computing Service). Posteriormente, um dos projetistas abandonou o projeto e os desenvolvedores que permaneceram criaram sua própria versão do sistema operacional, chamada UNICS e, logo em seguida, chamada de Unix (MACHADO; MAIA, 2007). O Unix foi desenvolvido em assembly, mas, para ser adaptado a outras plataformas, ele foi reescrito em linguagem C.
De acordo com Machado e Maia (2007), o Unix é um sistema multiprogramável e multiusuário, que suporta múltiplos processadores e implementa memória virtual. A seguir serão apresentadas algumas características dele:
- Escrito em linguagem de alto nível, o que facilita a compreensão e a portabilidade para outras plataformas.
- Flexibilidade, sendo usado em diversas aplicações.
- Suporte a protocolos de rede.
- Possui um sistema de arquivos com uma estrutura simples.
- Possui uma interface simples e uniforme com os dispositivos de entrada/saída.
O Unix se baseia em uma estrutura monolítica, ou seja, as funções são executadas em modo núcleo, e é composto por:
- O kernel: núcleo do sistema operacional. Ele pode ser dividido em duas partes (MACHADO; MAIA, 2007):
- Dependente do hardware: é composta por rotinas de tratamento de interrupções e exceções e deve ser reescrita quando se está instalando o sistema Unix em outra plataforma.
- Independente do hardware: não existe vínculo com outra plataforma onde está sendo executada, sendo responsável pelo tratamento de system call, gerência de processos, gerência de memórias, entre outras.
- O shell: é o responsável pela conexão dos usuários com os sistemas operacionais através da linha de comando. Sua função é ler e interpretar os comandos e criar processos à medida que são requisitados. Os interpretadores de shell mais populares são Bourne Shell (sh), C Shell (csh) e Korn Shell (ksh).
- Sistemas de arquivos: responsáveis pela organização dos dados armazenados no Unix através de arquivos e diretórios.
- Aplicações: são as aplicações do usuário, como editores de texto, browser de navegação web e compiladores.
Linux
Já o sistema Linux foi desenvolvido por um estudante finlandês, Linus Torvalds, com base nas características do Minix (um sistema desenvolvido por Andrew Tanenbaum com objetivos educacionais),em 1991. O termo Linux refere-se ao kernel do sistema operacional (MACHADO; MAIA, 2007).
Os programas que interagem com o kernel foram desenvolvidos pela fundação GNU. O Linux em si é somente o kernel e, para que ele funcione, são necessárias ferramentas como o compilador do código-fonte. Por isso, o correto é chamar GNU/Linux (VIVAOLINUX, 2018).
O Linux cresceu rapidamente com a ajuda de vários colaboradores espalhados pelo mundo, contribuindo no desenvolvimento do kernel, utilitários e aplicativos. Atualmente, o sistema é usado tanto para fins acadêmicos, quanto para fins comerciais, podendo ser obtido sem custos, juntamente com seu código-fonte.
Por ser um sistema operacional de código-fonte aberto, é flexível e adaptável às necessidades do usuário, além da sua compatibilidade com outros hardwares, possuindo uma alta performance e estabilidade. O fato de o código-fonte do Linux ser aberto permite que as pessoas vejam seu funcionamento e que sejam realizadas alterações e sugestões de melhoria (SILVA, 2018).
A estrutura do Linux é baseada no modelo monolítico, possuindo as mesmas características e composição do Unix: kernel, shell, sistemas de arquivos e aplicações, citados acima.
Vejamos alguns pontos importantes em relação ao Linux:
- É licenciado pela GNU Public License (GPL) e o usuário pode baixar e usar em quantas máquinas quiser.
- O seu código-fonte é aberto e todos os usuários têm acesso e podem modificá-lo.
- Um dos pontos fortes do Linux é a linha de comando que permite uma administração efetiva do sistema operacional.
- Ele permite que o usuário adeque o sistema operacional do jeito que ele desejar em relação ao ambiente gráfico.
- Ele é gratuito e possui suporte em diversos fóruns e sites de ajuda, além de o usuário ter a opção de contratar o suporte de grandes empresas.
- A cada dia cresce a popularidade do Linux e mais pessoas conhecem e aprendem sobre as vantagens de seu uso.
Para instalar e executá-lo, é necessária uma configuração mínima de hardware para que o sistema operacional rode “confortavelmente”, além de ser fundamental ter uma máquina com no mínimo 2 Gb de memória RAM, um processador Dual Core e um HD com 250 Gb.
Siga em Frente...
Windows
Segundo Machado e Maia (2007), o primeiro sistema operacional lançado pela Microsoft, em 1981, foi o MS-DOS. O MS-DOS foi criado com a interface em linha de comando e tinha as características de ser monoprogramável e monousuário.
A Microsoft, então, decidiu dar ao MS-DOS uma interface gráfica com o usuário chamada Windows. As versões de 3.0 até 3.11 do Windows não eram sistemas operacionais, e sim interfaces gráficas com o usuário executando sobre o MS-DOS (TANENBAUM, 2003).
O Windows 95 foi lançado e quase todas as características da parte MS-DOS foram transferidas para a parte Windows, porém o MS-DOS ainda não havia sido totalmente eliminado. Logo após, foi lançada a versão do Windows 98 que tinha poucas diferenças em relação ao 95. A palavra Windows traduzida significa janela, e o sistema foi desenvolvido para competir com a interface gráfica da Macintosh.
Em função das limitações e deficiências do MS-DOS, a Microsoft idealizou o Windows NT (New Technology). Esse projeto foi realizado pela DEC (Digital Equipment Corporation), responsável pelo desenvolvimento de vários sistemas operacionais como o PDP/RSX e o VAX/VMS.
Em 1993, a Microsoft lançou o Windows NT nas versões para desktops e servidores, cujo objetivo era desenvolver um sistema operacional multitarefa para executar em ambientes monousuário e multiusuário (TANENBAUM, 2003).
O Windows 2000 é uma evolução do Windows NT e a principal diferença entre eles está na oferta de serviços orientados a ambientes distribuídos e de rede. O Windows 2000 foi escrito em linguagem C.
A arquitetura do Windows 2000 foi baseada em micronúcleo, ou seja, cada funcionalidade é gerenciada por um único componente do sistema operacional. Cada módulo pode ser removido, atualizado ou substituído sem precisar de alterar todo o sistema.
Depois do Windows 2000, vieram as seguintes versões do Windows (HARADA, 2018):
- Windows XP: tornou-se uma das melhores versões de sistema operacional da Microsoft, devido à mudança no visual e à estabilidade do sistema.
- Windows Vista: esta versão teve muitas críticas dos usuários e apresentou muitos problemas, como a transparência e os recursos visuais chamativos, deixando o hardware mais lento.
- Windows 7: tornou-se o sistema operacional mais utilizado no mercado, sendo rápido, estável e fácil de usar.
- Windows 8: esta versão foi um fracasso em função da mudança no visual e da chegada dos dispositivos sensíveis ao toque.
- Windows 10: é a versão mais recente e tem algumas vantagens como leveza, uma adaptação de tela sensível ao toque, uma plataforma unificada aproximando os aplicativos para as plataformas existentes, entre outras.
Pontos importantes em relação ao Windows:
- Para usar o Windows, é necessário adquirir a licença da Microsoft, que é paga por computador que vai utilizá-la.
- O código-fonte do Windows é restrito apenas aos desenvolvedores do sistema operacional.
- O Windows também possui linha de comando, mas não é tão efetiva quanto a do Linux, porque quase todas as configurações são realizadas pela interface gráfica.
- O ambiente gráfico é padronizado pela Microsoft e o usuário não possui autonomia de alteração.
- Quanto ao suporte, o usuário do Windows pode contratar o pago da Microsoft ou utilizar os fóruns de ajuda pela internet.
- O que tornou o Windows um padrão de uso foi o acordo feito entre a Microsoft e os fabricantes de computadores. Eles já saíam de fábrica juntamente com o sistema operacional da Microsoft e, devido à popularidade dos computadores, a Microsoft conseguiu atingir um grande número de usuários.
Para instalar e executar o Windows, é necessária uma configuração mínima de hardware para que o sistema operacional rode “confortavelmente”, sendo necessário ter uma máquina com no mínimo 4 Gb de memória RAM, um processador Core 2 Duo e um HD com 250 Gb.
Vamos Exercitar?
Software Livre
Vamos retomar o caso apresentado no início da aula: Daniel, um dos alunos do curso de sistemas operacionais ministrado por você durante o simpósio “Informática para todos” participa como desenvolvedor contribuinte de uma comunidade de software livre. Nela, participam desenvolvedores de softwares, empresários do ramo de tecnologia, estudantes e pessoas que queiram contribuir com novas ideias. Anualmente, eles se reúnem no Fórum Internacional de Software Livre para discutir inovações e novas técnicas do mundo do software livre. Durante um dos fóruns on-line da comunidade de software livre, um dos assuntos apresentados foi o motivo de ainda existirem aplicativos que não estão disponíveis para o software livre. Assim, um dos alunos questiona por que ainda existem aplicativos não disponíveis para o software livre. Outro aluno questiona sobre qual a diferença de software livre e software de código aberto (open source). Vamos à resolução?
O Linux possui diversos aplicativos compatíveis com ele, porém, ainda há outros que não possuem versão para o sistema. Por exemplo, quando falamos em editor de textos, o LibreOffice do Linux substitui o Microsoft Word. Agora, quando se trata de jogos, o Linux não possui uma interface gráfica que atenda aos padrões de qualidade. Isso porque a placa gráfica é dependente das APIs (Interface de Programação de Aplicações) do Windows, e o Linux ainda não conseguiu chegar a uma qualidade que atenda aos seus usuários.
Porém, a cada dia essa incompatibilidade se reduz e aplicativos que antes não rodavam em software livre agora estão disponíveis. Em alguns casos, é possível emular o Windows no Linux, ou seja, traduzir as bibliotecas do Windows quando um programa é executado para poder rodar os aplicativos no software livre.
A diferença entre o software livre e software de código aberto é que mesmo que o software possua o código aberto, ele não é livre. O software livre pode ser usado, modificado e redistribuído, desde que seja livre para outras pessoas poderem modificar.
O usuário pode modificar o código do software de código aberto, mas quem o desenvolveu poderá determinar como esse software será usado e redistribuído. Um dos exemplos é o navegador Firefox.
Saiba Mais
O YouOs é um sistema operacional on-line que roda pela internet, cuja característica é ser leve e personalizável. Para saber mais sobre ele, acesse: Wikipedia.
Referências Bibliográficas
GCFAPRENDELIVRE. Os sistemas operacionais para dispositivos móveis. Disponível em: https://www.gcfaprendelivre.org/tecnologia/curso/informatica_basica/ sistemas_operacionais/5.do. Acesso em: 24 maio 2018.
HARADA, E. Do Windows 1 ao Windows 10: os 29 anos de evolução do SO da Microsoft. TecMundo, 2014. Disponível em: https://www.tecmundo.com.br/ windows-10/64136-windows-1-windows-10-29-anos-evolucao-do-so-microsoft.htm. Acesso em: 24 maio 2018.
MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
SILVA, J. E. Entendendo a estrutura do Linux. Viva o Linux, 2003. Disponível em: https://www.vivaolinux.com.br/artigo/Entendendo-a-estrutura-do-Linux. Acesso em: 24 maio 2018.
TANENBAUM, A. S. Sistemas Operacionais Modernos. 2. ed. São Paulo: Pearson, 2003.
TERRA. Sistemas operacionais na nuvem são opção barata e segura. 2012. Disponível em: https://www.terra.com.br/noticias/tecnologia/sistemas-operacionais-nanuvem-sao-opcao-barata-e-segura,b1e8201fd70ea310VgnCLD200000bbcceb0aRC RD.html. Acesso em: 24 maio 2018.
VIVA O LINUX. O que é GNU/Linux. [s.d.]. Disponível em: https://www.vivaolinux. com.br/linux/. Acesso em: 24 maio 2018.
Aula 4
Composição dos Sistemas Operacionais
Composição dos sistemas operacionais
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender conteúdos importantes para a sua formação profissional. Vamos assisti-la?
Ponto de Partida
Olá, estudante! Os sistemas operacionais são compostos por várias camadas e componentes que trabalham juntos para gerenciar os recursos de hardware e fornecer serviços aos aplicativos.
A composição típica de um sistema operacional se refere à estrutura e aos principais componentes que compõem um sistema operacional padrão. Esses componentes desempenham funções específicas para gerenciar hardware, fornecer serviços aos aplicativos e permitir a interação do usuário com o computador.
Os principais componentes da arquitetura de um sistema operacional incluem o núcleo (kernel), utilitários, sistema de arquivos, drivers de dispositivos, interfaces com o usuário e assim por diante. Cada um desses componentes desempenha um papel fundamental no funcionamento do sistema operacional.
Nesta aula vamos aprender a composição dos sistemas operacionais. Serão apresentados os principais componentes que compõem uma composição típica de um sistema operacional.
E para aprimorar seus estudos vamos analisar o seguinte caso: suponha que você seja o administrador de um sistema de arquivos de rede em uma empresa com vários departamentos. Cada departamento possui seu próprio diretório compartilhado no sistema de arquivos central. Cada diretório contém arquivos e pastas que são acessados e modificados regularmente pelos funcionários do departamento correspondente.Recentemente, a empresa enfrentou os seguintes problemas relacionados ao gerenciamento de arquivos:
- Conflitos de acesso: vários funcionários de diferentes departamentos tentaram acessar e modificar um arquivo ao mesmo tempo, resultando em conflitos de acesso e perda de dados.
- Política de armazenamento inadequada: alguns departamentos armazenaram grandes quantidades de arquivos não essenciais em seus diretórios compartilhados, ocupando espaço valioso no sistema de arquivos.
- Perda de arquivos: alguns arquivos importantes foram excluídos acidentalmente por funcionários e não havia um sistema de recuperação de arquivos eficaz em vigor.
- Permissões inadequadas: houve casos em que funcionários tiveram acesso não autorizado a arquivos confidenciais de outros departamentos devido a configurações inadequadas de permissões.
- Desorganização geral: a estrutura de diretórios compartilhados se tornou caótica com o tempo, dificultando a localização de arquivos específicos e a manutenção.
Bons estudos!
Vamos Começar!
No sistema operacional Unix, a relação entre o kernel e os utilitários é fundamental para o funcionamento do sistema.
A composição de um sistema operacional envolve vários componentes inter-relacionados que trabalham juntos para fornecer funcionalidades essenciais para o computador. Aqui estão os principais componentes de um sistema operacional:
- Núcleo (Kernel): o núcleo é a parte central do sistema operacional e é responsável por gerenciar recursos do hardware, como CPU, memória, dispositivos de E/S (entrada/saída) e gerenciamento de processos. Ele também fornece uma interface para que os programas possam interagir com os recursos do sistema. O núcleo é essencial para o funcionamento do sistema operacional e é responsável pelo agendamento de tarefas, gerenciamento de memória e comunicação com dispositivos de hardware.
- Drivers de Dispositivos: os drivers de dispositivos são programas ou módulos que permitem que o sistema operacional se comunique com dispositivos de hardware específicos, como placas de vídeo, impressoras, discos rígidos etc. Eles traduzem comandos do sistema operacional em instruções compreensíveis pelo hardware.
- Shell: o shell é a interface que permite que os usuários interajam com o sistema operacional. Pode ser uma interface de linha de comando (CLI) ou uma interface gráfica de usuário (GUI). O shell interpreta comandos ou ações do usuário e os encaminha para o núcleo para execução.
- Bibliotecas de Sistema: As bibliotecas de sistema são coleções de funções que são usadas por aplicativos para realizar tarefas comuns, como entrada/saída, manipulação de arquivos e comunicação com o sistema operacional. Isso permite que os desenvolvedores de software reutilizem código e simplifiquem o desenvolvimento de aplicativos.
Siga em Frente...
- Utilitários do sistema: os utilitários do sistema são programas que auxiliam na administração e manutenção do sistema. Isso inclui utilitários de gerenciamento de disco, utilitários de diagnóstico, ferramentas de segurança, entre outros.
- Aplicativos: os aplicativos são programas que os usuários executam para realizar tarefas específicas. Isso inclui aplicativos de produtividade, jogos, navegadores da web e qualquer software que não seja parte essencial do sistema operacional.
- Sistema de arquivos: o sistema de arquivos é responsável por organizar, armazenar e recuperar dados em dispositivos de armazenamento, como discos rígidos e SSDs. Ele determina a estrutura dos diretórios, a forma como os arquivos são nomeados e como os dados são organizados no armazenamento.
- Serviços de rede: Em sistemas operacionais de rede, há componentes para gerenciar a conectividade de rede, incluindo configurações de rede, protocolos de comunicação, serviços de compartilhamento de arquivos e serviços web.
Esses componentes trabalham juntos para fornecer um ambiente operacional completo para o usuário, permitindo a execução de programas, a interação com dispositivos de hardware e a gestão eficiente dos recursos do sistema. A composição exata pode variar dependendo do sistema operacional, mas esses são elementos comuns encontrados em sistemas operacionais modernos.
Vamos Exercitar?
Gerenciamento de arquivos em um ambiente de Sistema Operacional
Vamos relembrar o caso apresentado no início da aula, onde você é o administrador de um sistema de arquivos de rede em uma empresa com vários departamentos. Cada departamento possui seu próprio diretório compartilhado no sistema de arquivos central. Cada diretório contém arquivos e pastas que são acessados e modificados regularmente pelos funcionários do departamento correspondente. Recentemente, a empresa enfrentou os seguintes problemas relacionados ao gerenciamento de arquivos:
- Conflitos de acesso: vários funcionários de diferentes departamentos tentaram acessar e modificar um arquivo ao mesmo tempo, resultando em conflitos de acesso e perda de dados.
- Política de armazenamento inadequada: alguns departamentos armazenaram grandes quantidades de arquivos não essenciais em seus diretórios compartilhados, ocupando espaço valioso no sistema de arquivos.
- Perda de arquivos: alguns arquivos importantes foram excluídos acidentalmente por funcionários e não havia um sistema de recuperação de arquivos eficaz em vigor.
- Permissões inadequadas: houve casos em que funcionários tiveram acesso não autorizado a arquivos confidenciais de outros departamentos devido a configurações inadequadas de permissões.
- Desorganização geral: a estrutura de diretórios compartilhados se tornou caótica com o tempo, dificultando a localização de arquivos específicos e a manutenção.
Para resolver esses problemas, você pode considerar as seguintes soluções:
- Implementar controle de concorrência: utilize mecanismos de controle de concorrência para evitar conflitos de acesso. Isso pode incluir o bloqueio de arquivos enquanto estão sendo modificados e a implementação de um sistema de controle de versão para rastrear alterações.
- Políticas de retenção de dados: implemente políticas de retenção de dados para limitar o armazenamento de arquivos não essenciais. Configure prazos para a exclusão automática de arquivos obsoletos.
- Backup e recuperação: implemente um sistema de backup regular para proteger contra a perda de dados. Isso pode envolver backups diários ou semanais e, também, a configuração de um sistema de recuperação de arquivos.
- Gerenciamento de permissões: revise e atualize as permissões de acesso aos diretórios compartilhados para garantir que apenas funcionários autorizados possam acessar determinados arquivos. Considere a implementação de grupos de segurança para simplificar o gerenciamento de permissões.
- Reorganização da estrutura de diretórios: redefina a estrutura de diretórios compartilhados para torná-la mais organizada e intuitiva. Mantenha uma política rigorosa de organização para manter a ordem no sistema de arquivos.
- Treinamento dos usuários: ofereça treinamento aos funcionários sobre as melhores práticas de gerenciamento de arquivos, incluindo como evitar conflitos de acesso e como usar eficazmente o sistema de arquivos compartilhado.
Ao abordar esses problemas e implementar soluções adequadas, você pode melhorar significativamente o gerenciamento de arquivos em um ambiente de sistema operacional e aumentar a eficiência e a segurança no compartilhamento de documentos e dados entre departamentos.
Saiba Mais
O kernel é uma parte fundamental de um sistema operacional e desempenha um papel crítico no gerenciamento dos recursos de hardware e na execução de tarefas essenciais. Para saber mais sobre ele, acesse o artigo Núcleo (sistema operacional).
Referências Bibliográficas
MACHADO, F. B. Arquitetura de sistemas operacionais. 2. ed. Rio de Janeiro: LTC, 1997.
MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais. 5. ed. Rio de Janeiro: LTC, 2017.
TANENBAUM, A. S. Sistemas Operacionais Modernos. 2. ed. São Paulo: Pearson, 2003.
Encerramento da Unidade
Introdução aos Sistemas Operacionais
Videoaula de Encerramento
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender conteúdos importantes para a sua formação profissional. Vamos assisti-la?
Ponto de Chegada
Olá, estudante! Para desenvolver a competência desta Unidade, que é conhecer e ser capaz de utilizar os recursos essenciais dos principais sistemas operacionais, conhecemos os conceitos fundamentais de Sistemas Operacionais, evolução, características e as composições dos Sistemas Operacionais.
O sistema operacional controla de forma ordenada e compartilhada os recursos do computador. Por exemplo, ao modificar um texto num editor de textos e gravando uma mídia de dados, o Sistema Operacional não permite que esses programas acessem ao mesmo tempo a memória principal, pois isso causaria a perda dos dados salvos durante a edição do arquivo e ao acessar os dados da mídia, os arquivos teriam sido apagados.
Uma das funções do sistema operacional é estender a máquina. O sistema operacional como uma máquina estendida ou máquina virtual esconde do programador a complexidade do hardware, apresentando uma interface amigável e gerenciável do sistema.
Para conhecer e ser capaz de utilizar os recursos essenciais dos principais sistemas operacionais é importante estar familiarizado com os sistemas operacionais mais comuns como Windows e Linux. Alguns conceitos e habilidades essenciais para cada um deles:
- Windows:
- Interface do usuário: aprenda a navegar no ambiente de trabalho, usar a barra de tarefas e o menu Iniciar.
- Gestão de arquivos: saiba como criar, renomear, copiar, mover e excluir arquivos e pastas.
- Instalação de software: instale programas e aplicativos no Windows.
- Configurações do sistema: familiarize-se com o painel de controle e o aplicativo configurações para personalizar o sistema operacional.
- Atualizações: entenda como realizar atualizações do Windows para manter o sistema seguro e atualizado.
- Linux:
- Linhas de comando: aprenda a usar o terminal (bash ou outro shell) para executar comandos.
- Gestão de pacotes: saiba como instalar, atualizar e remover programas usando o gerenciador de pacotes do seu sistema (APT, YUM ou Pacman).
- Permissões de arquivos: compreenda as permissões de arquivo e como modificá-las.
- Configurações de rede: configure redes e conexões de internet no Linux.
- Administração de usuários e grupos: crie, modifique e gerencie contas de usuário e grupos.
Lembrando que existem outras opções de sistemas operacionais, como Android, macOS, iOS e sistemas Unix, que podem ser importantes.
É Hora de Praticar!
Utilização dos recursos principais dos Sistemas Operacionais
Descrição da situação-problema
Você é um novo funcionário em uma empresa de TI e foi designado para lidar com diferentes sistemas operacionais em computadores de funcionários. Sua tarefa é se familiarizar com os recursos essenciais dos sistemas operacionais Windows e Linux para fornecer suporte técnico eficiente.
Objetivos:
- Dominar a navegação e a interface dos dois sistemas operacionais.
- Realizar tarefas comuns, como gerenciamento de arquivos, instalação de software e configurações do sistema em cada sistema operacional.
- Solucionar problemas comuns encontrados em cada sistema operacional.
Reflita
- Seria possível operar um computador sem sistema operacional?
- Qual a principal diferença quanto ao acesso do código fonte do Windows e do Linux?
- Você já pensou sobre como os sistemas operacionais conseguem gerenciar diversos programas e aplicativos do usuário e do sistema sem comprometer a performance do computador?
Resolução do estudo de caso
Resolução da situação-problema
Para realizar a atividade, certifique-se de entender os conceitos subjacentes a cada tarefa e como aplicá-los em situações do mundo real:
- Windows:
- Explore a área de trabalho, a barra de tarefas e o menu Iniciar.
- Crie, renomeie, copie, mova e exclua arquivos e pastas no Explorador de Arquivos.
- Instale um software a partir da web.
- Personalize as configurações do sistema, como papel de parede e configurações de exibição.
- Resolva problemas comuns, como atualização do sistema e solução de problemas de rede.
- Linux:
- Use o terminal para executar comandos básicos.
- Instale um programa usando o gerenciador de pacotes (APT ou YUM).
- Configure permissões de arquivo em um arquivo ou pasta.
- Configure uma conexão de rede.
- Crie uma conta de usuário e atribua-a a um grupo.
- Solucione problemas, como erros de permissão ou problemas de inicialização.
Esse estudo de caso permitirá que você pratique utilizando os recursos dos sistemas operacionais Windows e Linux.
Dê o play!
Assimile
Os sistemas operacionais oferecem uma variedade de recursos essenciais para gerenciar hardware, software e recursos do sistema.
Vejamos na Figura a Introdução dos Sistemas Operacionais.
Referências
TANENBAUM, A. S.; WOODHULL, A. S. Sistemas operacionais. Porto Alegre: Grupo A, 2008.
MACEDO, G. Dicas para Linux: 10 distribuições Linux para você. Guia do PC, 2013. Disponível em: https://www.guiadopc.com.br/dicas/33798/10-distribuicoes-linux- voce.html. Acesso em: 16 out. 2023.
OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas Operacionais. 4. ed. Porto Alegre: Bookman, 2010.