• Nenhum resultado encontrado

Unidade III FUNDAMENTOS DE. Prof. Roberto Macias

N/A
N/A
Protected

Academic year: 2021

Share "Unidade III FUNDAMENTOS DE. Prof. Roberto Macias"

Copied!
72
0
0

Texto

(1)

FUNDAMENTOS DE

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS

(2)

Relembrando...

ƒ Sistema Operacional é um conjunto de

programas que se situa entre os

softwares aplicativos e o hardware.

ƒ Um SO gerencia recursos deste

hardware (CPU, memória, periféricos,

etc ) etc.).

ƒ Um SO fornece uma interface para o

usuário interagir com o sistema.

ƒ Um SO provê e executa serviços para

(3)

T di ti d Si t

Temos diversos tipos de Sistemas Operacionais, como: ƒ Em batch. ƒ De rede. ƒ Distribuídos. ƒ Multiusuário e multitarefa. ƒ Desktop / PCs. ƒ Servidor. ƒ Embarcados. ƒ Tempo real. ƒ Grande porte. ƒ Multiprocessadores. ƒ Portáteis.

(4)

Relembrando...

ƒ Podemos pautar a evolução dos

Sistemas Operacionais de acordo com a evolução dos próprios computadores (um determinado hardware necessita de um software que o gerencie e usufrua de todo o seu potencial)

todo o seu potencial).

ƒ Tivemos, principalmente a partir da 3ª

geração de computadores, diversos tipos de Sistemas Operacionais.

ƒ Vimos também aspectos dos hardwares

de computadores, que é função dos Sistemas Operacionais gerenciá-los.

(5)

Aspectos específicos de: ƒ Processadores. ƒ Processadores multithread e multinúcleo. ƒ Memória ƒ Memória. ƒ Disco. ƒ Fitas. ƒ Dispositivos de E/S. ƒ Barramento ƒ Barramento.

(6)

Plano da unidade III

Gerenciamento de processos: ƒ Introdução a processos. ƒ Processo. ƒ Criação de processos. ƒ Término de processos ƒ Término de processos.

ƒ Comunicações entre processos. ƒ Condição de corrida.

ƒ Exclusão mútua e região crítica. ƒ Exclusão mútua com espera ociosa.Exclusão mútua com espera ociosa.

ƒ Semáforos. ƒ Monitores.

ƒ Troca de mensagens. ƒ Escalonamento.

(7)

Gerenciamento de memória:

ƒ Introdução a gerenciamento de memória. ƒ Abstração – espaços de endereçamento

da memória. ƒ Permuta de memória ƒ Permuta de memória. ƒ Memória virtual. ƒ Paginação. ƒ Segmentação.

(8)

Gerenciamento de processos

ƒ Os sistemas computacionais atuais são

capazes de desenvolver uma grande variedade de tarefas simultaneamente.

ƒ Imagine o cenário: usuários fazendo

requisições simultaneamente, antivírus está varrendo tudo que entra e sai,

software de gerenciamento de redes

monitorando e solicitando dados de desempenho do servidor e diversos discos trabalhando em RAID (além de outras tarefas)

outras tarefas).

ƒ É visível a necessidade de uma

“orquestração” para todos estes processos!

(9)

Voltemos ao conceito de “processos” (como visto na unidade II):

ƒ Processo = programa que está em

execução.

ƒ Este programa em execução requerEste programa em execução requer recursos, principalmente da CPU, e

concorre com outros processos em sua execução.

(10)

Gerenciamento de processos

ƒ Em todos os sistemas com suposto

conceito de paralelismo, a CPU trabalha por algumas dezenas, centenas de

milissegundos numa única aplicação e subsequentemente na próxima até o ciclo se completar

ciclo se completar.

ƒ Esta sequência continuará até todos os

processos terminarem, mas não podemos esquecer que outros

processos entram na fila todo momento.

ƒ Devido à rapidez dos ciclos, temos a

impressão que o sistema está atendendo às diversas aplicações simultaneamente.

(11)

ƒ Somente nos casos de sistemas com

múltiplos processadores é que temos de fato múltiplos programas sendo tendidos no mesmo instante.

ƒ Controlar múltiplas atividades em

paralelo é algo que vem sendo

desenvolvido e aprimorado com base num modelo conceitual de processos sequenciais que facilita o paralelismo que estudaremos adiante.

(12)

Gerenciamento de processos

Conforme demonstrado na figura abaixo, uma CPU pode executar um processo por vez:

(13)

Em sistemas com dois cores (equivalente a termos duas CPUs), ainda temos a mesma afirmativa – todas as CPUs podem executar um processo por vez cada uma:

(14)

Gerenciamento de processos

ƒ No núcleo dos sistemas operacionais,

temos o PCBs (Process Control Blocks) que armazenam informações referentes aos processos ativos no ambiente.

ƒ Cada processo possui um identificador

único no sistema, o PID (Process

Identifier).

ƒ Criação de processos: Processos são

criados e destruídos constantemente nos sistemas. Essas operações

disponibilizam aplicações por meio de chamadas de sistema que diferem entre sistemas operacionais.

(15)

ƒ Ao iniciar o sistema operacional,

tipicamente vários processos são

criados. Entre esses processos, temos os que estão em primeiro plano e

interagindo com o usuário e outros que estão em segundo plano portanto não estão em segundo plano, portanto não estão diretamente interagindo com o usuário.

ƒ Um exemplo é uma tarefa de

transferência de um arquivo via servidor de FTP onde este fica inativo durante de FTP, onde este fica inativo durante parte do tempo, sendo ativo somente quando um cliente FTP solicita a

(16)

Gerenciamento de processos

ƒ Usamos o termo daemons para

descrever processos que ficam em segundo plano com finalidade de lidar com alguma atividade como esta.

ƒ Processos que estão em execução

podem fazer chamadas de sistema (system calls) para criar um ou mais

novos processos. Criar novos processos é indicado quando a tarefa a ser

executada puder ser facilmente dividida em vários processos relacionados

em vários processos relacionados, interagindo, entretanto, de maneira independente.

(17)

processo principal (“pai”) são chamados de processos “filhos”, réplica do primeiro,

(18)

Gerenciamento de processos

Término de processos - Após o término, o processo é finalizado com base em quatro condições típicas:

ƒ Encerramento Normal (voluntário) –

ao término da execução e liberação dos recursos.

ƒ Por erro (voluntário) – por parâmetros

errados fornecidos por outros processos, aplicações ou pelo usuário.

ƒ Erro fatal (involuntário) – é um erro

causado pelo processo e normalmente por um erro de programa.

(19)

ƒ Cancelado por terceiros (involuntário) –

O cancelamento por outro processo

ocorre quando um processo “x” executa uma chamada de sistema determinando que o sistema operacional cancele

outro(s) processo(s) “y” outro(s) processo(s) “y”.

ƒ Processos terminados de forma

involuntária não são comuns num sistema em perfeito funcionamento!

(20)

Interatividade

O que os Sistemas Operacionais utilizam para identificar os seus processos?

a) PID. b) PCB. c) Daemons c) Daemons. d) System Calls. e) Forks.

(21)

ƒ A comunicação entre processos é algo

frequente nos sistemas atuais, havendo a necessidade de se obter uma

comunicação estruturada e sem

interrupções acontecendo entre eles.

ƒ Em linhas gerais, temos três tópicos

importantes na comunicação entre

processos: como um processo passa a informação para outro; como garantir que múltiplos processos não entrem em conflito; e como haverá uma sequência conflito; e como haverá uma sequência adequada quando existirem

(22)

Gerenciamento de processos

Condição de corrida:

ƒ Processos que trabalham juntos podem

compartilhar algum armazenamento comum e serem capazes de ler e escrever. O armazenamento

compartilhado pode estar na memória principal ou em um arquivo

compartilhado.

ƒ Condição de corrida é uma situação

onde dois ou mais processos querem partilhar um recurso (escrever e ler dados compartilhados) e o resultado final depende de quem executou quando (ordem de escalonamento).

(23)

Exclusão mútua e região crítica:

ƒ Exclusão mútua (mutual exclusion) é o

modo de assegurar que processos sejam impedidos de usar uma variável ou um arquivo compartilhado que já estiver em uso por outro processo. Pode-se evitar a condição de corrida apresentada

anteriormente aplicando a exclusão mútua ou evitando que os programas usem a região crítica simultaneamente.

(24)

Gerenciamento de processos

Exclusão mútua e região crítica:

ƒ Entende-se por região crítica a parte dos

programas em que há acesso à memória ou arquivo compartilhado.

(25)

Exclusão mútua com espera ociosa:

ƒ Em sistemas mais antigos que possuíam

somente uma CPU com um único core, a forma mais trivial e segura para evitar que mais de um processo entrem na região crítica é aplicada com a

desativação das interrupções assim que o primeiro processo entrar na região crítica e consecutivamente reabilitá-las assim que sair desta região.

(26)

Gerenciamento de processos

Exclusão mútua com espera ociosa:

ƒ Entretanto, caso tenhamos um problema

num processo que desative as

interrupções e nunca mais as reative, certamente, teremos um problema maior para lidar do que a situação decorrida, ou seja, teremos o sistema literalmente parado.

ƒ Com as novas arquiteturas de chips com

múltiplos processadores, esta técnica de desabilitar interrupções torna-se

(27)

ƒ Semáforos: Como visto anteriormente,

quando um processo está ativo e executando tarefas na região crítica,

então outros devem ficar “dormindo” até o término dessa tarefa. O semáforo é o conceito proposto por E W Dijkstra para conceito proposto por E. W. Dijkstra para um tipo de variável inteira, objetivando contar o número de sinais de “acordar” salvos para o uso futuro. Um semáforo poderia conter o valor 0, indicando que nenhum sinal de acordar foi salvo, ou nenhum sinal de acordar foi salvo, ou algum valor positivo, sinalizando que um ou mais sinais de acordar estivessem pendentes.

(28)

Gerenciamento de processos

ƒ Semáforos: Dijkstra propôs a existência

de duas operações para os semáforos: P (down) e V (up), que são mnemônicos e fazem alusão a sleep e wake up (dormir e acordar).

ƒ Simplificando = Semáforo é uma variável

especial protegida (ou tipo abstrato de dados) que tem como função o controle de acesso a recursos compartilhados (por exemplo, um espaço de

armazenamento) num ambiente armazenamento) num ambiente multitarefa.

(29)

ƒ Monitores: Podemos definir monitor

como uma coleção de rotinas, variáveis e estruturas de dados, todos agrupados em um tipo especial de pacote.

ƒ O monitor tem um papel fundamental

para realizar a exclusão mútua pelo fato de que somente um processo pode estar ativo em um monitor num determinado tempo x.

(30)

Gerenciamento de processos

ƒ Monitores: Tipicamente, quando um

processo executa uma chamada a uma determinada rotina do monitor, algumas das primeiras instruções da rotina

deverão verificar se existe outro

processo ativo dentro do monitor Caso processo ativo dentro do monitor. Caso confirme que outro processo encontra-se ativo dentro do monitor, então o

processo que realizou a chamada ficará suspenso até que o processo que estava ativo saia do monitor.

ativo saia do monitor.

ƒ Um processo que executar uma chamada

ao monitor poderá entrar somente se não houver nenhum outro ativo.

(31)

ƒ Troca de mensagens: semáforos e

monitores não permitem troca de informações entre máquinas, que é primordial no mundo dos sistemas

distribuídos. Para essa condição temos o

message passing (troca de mensagens) message passing (troca de mensagens),

que usa dois instrumentos: send e

receive (envio e recebimento).

ƒ No caso da troca de mensagens entre

máquinas, isso se dá por meio da rede e essa mensagem pode ser extraviada ao essa mensagem pode ser extraviada ao longo do percurso. Portanto, uma troca de mensagem usa o mecanismo similar ao usado no protocolo TCP.

(32)

Gerenciamento de processos

ƒ No protocolo TCP, a mensagem enviada

requer um sinal de acknowledge, ou seja, se quem enviou não receber a

confirmação, então uma nova mensagem será reenviada.

ƒ Este funcionamento do protocolo TCP é

similar ao recurso de troca de mensagem nos Sistemas Operacionais em sua

tarefa de gerenciar processos concorrentes.

(33)

ƒ Escalonamento: quando temos uma

única CPU, ou uma única CPU disponível entre as diversas existentes no sistema, e mais de um processo estiver

competindo para ser executado, então caberá ao sistema operacional escolher caberá ao sistema operacional escolher qual dos processos será privilegiado e essa escolha chama-se algoritmo de escalonamento.

ƒ O escalonamento é importante porque,

dentre vários processos é saudável que dentre vários processos, é saudável que o sistema priorize aqueles que vão gerar mais impacto ao ambiente e seus

(34)

Gerenciamento de processos

Escalonamento: processos são escalonados em quatro situações:

ƒ Quando temos os processos pai e

filho para serem executados. A

definição de qual deve ser priorizado, em muitos casos, é essencial para o perfeito funcionamento das tarefas e resultado correto.

ƒ Quando temos um processo que

terminou e já não está mais no

sistema, havendo a necessidade da escolha de um novo processo.

(35)

Escalonamento:

ƒ Quando um processo é bloqueado por

alguma razão, então outro processo deve ser selecionado para ser executado.

Processos predecessores podem ser priorizados, pois, se forem executados os sucessores, pode haver

dependências que irão gerar resultados inconsistentes.

ƒ Ao ocorrer uma interrupção de E/S, pode

ser necessário uma decisão de escalonamento.

(36)

Interatividade

Uma das funções de um Sistema Operacional é o gerenciamento de

processos. Qual das opções abaixo não é uma técnica deste tipo de gerenciamento? a) Troca de mensagens.

b) Escalonamento. c) Exclusão mútua. d) Semáforos.

(37)

ƒ A memória é um grande vetor de

palavras ou bytes (o tamanho de um palavra depende de cada máquina), cada qual com seu próprio endereço. A CPU busca instruções do programa em

memória de acordo com o valor do memória de acordo com o valor do registrador contador de programas. Estas instruções podem causar a busca ou o armazenamento adicionais para endereços específicos de memória.

(38)

Gerenciamento de memória

ƒ Nos sistemas operacionais, a parte

parcialmente responsável por gerenciar a hierarquia de memória é o gerenciador de memória, que tem como tarefa

conhecer todo espaço de memória, alocar para os processos que estão alocar para os processos que estão

necessitando e liberar as partes que não estão mais em uso pelos processos.

(39)

ƒ Contemporaneamente, programadores

necessitam de mais memória e mais programas rodando simultaneamente para que consigam tratar cada vez mais informações.

No tratamento de memória, alguns

requisitos devem ser observados para o correto funcionamento:

ƒ Segurança. ƒ Isolamento.Isolamento.

(40)

Gerenciamento de memória

ƒ Por conta dos requisitos, a tarefa de

gerenciar memória passa a ser do sistema operacional, não mais dos aplicativos.

O gerenciamento de memória baseia-se basicamente em duas tarefas essenciais:

ƒ Alocação: quando o programa requisita

um bloco de memória, o gerenciador o disponibiliza para a alocação.

(41)

ƒ Reciclagem: Quando um bloco de

memória foi alocado, mas os dados não foram requisitados por um determinado número de ciclos ou não há nenhum tipo de referência a este bloco pelo

programa esse bloco é liberado e pode programa, esse bloco é liberado e pode ser reutilizado para outra requisição.

(42)

Gerenciamento de memória

Swapping:

ƒ O swapping, é um dos métodos mais

triviais para gerir a sobrecarga de memória. Esse método vem sofrendo modificações ao longo dos anos. Ele faz a cópia completa do conteúdo da

memória (que geralmente são processos ociosos) para um arquivo no disco rígido e libera a memória para outro processo ocupá-la.

ƒ Sistemas e aplicativos atuais demandam

uma grande quantidade de memória, por conta disto, técnicas como a de

(43)

ƒ Swapping: quando os recursos de

memória estão esgotados, como por exemplo, quando uma aplicação faz uso de toda a memória RAM de um

computador e outro processo necessita de uma área nesta mesma memória

de uma área nesta mesma memória,

entre em ação a técnica de swapping, ou seja, troca de processos. Isso consiste em o sistema operacional pegar o

conteúdo completo da memória e movê-lo para um arquivo na memória em disco lo para um arquivo na memória em disco rígido e, subsequentemente, liberar a memória para o próximo processo.

(44)

Gerenciamento de memória

Swapping.

ƒ Vantagens:

ƒ Maior compartilhamento da memória. ƒ Maior throughput.

ƒ Eficiência. ƒ Desvantagens:

ƒ Elevados custos das operações de

(45)

ƒ Memória virtual: Em 1961, um método

desenvolvido por John Fotheringham ficou conhecido como memória virtual, permitindo que programas usem mais RAM do que realmente está disponível fisicamente Esse processo é possível fisicamente. Esse processo é possível porque o sistema operacional mantém rodando na memória principal somente as partes necessárias do programa e as outras, que não estão em uso, ficam no disco rígido. Quando é necessário que disco rígido. Quando é necessário que outra parte, que está no disco, seja carregada, então haverá o processo de

(46)

Gerenciamento de memória

Memória virtual:

ƒ A memória virtual possui dois aspectos

importantes: o primeiro é a quantidade de memória fisicamente instalada no equipamento, que chamamos de

memória real. O outro tem muito mais capacidade que o primeiro e chamamos de espaço de memória virtual.

ƒ No hardware, temos um componente de

extrema importância que é a Unidade de Gerenciamento de Memória (MMU).

(47)

Memória virtual:

ƒ O MMU suporta o sistema operacional na

execução do mapeamento dos endereços da memória física e endereços da memória virtual,

permitindo, assim, a eficaz maestria de mover as partes dos programas da memória virtual para o disco ou vice-versa.

(48)

Gerenciamento de memória

(49)

Paginação:

ƒ A técnica chamada paginação é usada na

maioria dos sistemas de memória virtual. A memória virtual é dividida em unidades de espaçamento de endereços

adjacentes chamadas de páginas. Estas correspondem a unidades das memórias chamadas de frames.

(50)

Gerenciamento de memória

Paginação:

ƒ A paginação é implementada

normalmente por unidades dedicadas de

hardware integradas nos processadores.

No caso dos processadores da família

Intel x86, esta funcionalidade está

atribuída à MMU. A paginação é obtida através de consulta a tabelas que

relacionam os endereços lineares das páginas de memória com os endereços físicos das frames de memória

físicos das frames de memória respectivas.

(51)

Paginação:

ƒ Neste sistema, cada processo no

computador tem a sua própria tabela de páginas, em que a cada endereço virtual corresponde o endereço físico em que a informação está efetivamente

armazenada. Visto que a informação está dividida em pequenas unidades, o seu armazenamento não tem de ser

necessariamente sequencial, o que elimina a fragmentação externa da elimina a fragmentação externa da memória.

(52)

Gerenciamento de memória

Segmentação:

ƒ Qualquer programa de computador está

dividido em secções, como as

declarações de variáveis e declarações de sub-rotinas (principalmente se ele foi escrito numa linguagem de alto nível). Em termos de execução, cada uma

dessas secções vai ocupar um segmento da memória.

ƒ O sistema operacional que suporta

segmentação possui uma tabela com os tamanhos e endereços de memória dos vários segmentos de um programa para saber onde estão.

(53)

Na tarefa de gerenciamento de memória, qual a função da MMU?

a) Manter rodando na memória principal somente as partes necessárias de um programa.

b) Definir o tamanho máximo de uma área de swapping.

c) Traduzir endereços virtuais em endereços físicos.

d) Liberar a memória de processos inativos d) Liberar a memória de processos inativos. e) Informar ao programador endereços de

(54)

Conteúdo complementar –

Sistemas baseados em UNIX

ƒ Na primeira unidade da disciplina, vimos

uma breve evolução dos sistemas operacionais Windows.

ƒ Esta parte visa complementar o assunto

com os sistemas baseados em Unix.

ƒ Unix é um sistema operacional portátil,

multitarefa e multiusuário, originalmente criado por Ken Thompson, Dennis

Ritchie, Douglas McIlroy e Peter Weiner, que trabalhavam nos Laboratórios Bell (Bell Labs) da AT&T – final da década de 60.

(55)

ƒ Em 1969, Ken Thompson, usando um

ocioso computador PDP-7, começou a reescrever o embrião do Unix (o Multics) num conceito menos ambicioso,

batizado de Unics, usando linguagem de montagem (assembly)

montagem (assembly).

ƒ Mais tarde, Brian Kernighan rebatizou o

novo sistema de Unix.

ƒ Um marco importante foi estabelecido

em 1973, quando Dennis Ritchie e Ken Thompson reescreveram o Unix, usando a linguagem C, para um computador PDP-11.

(56)

Conteúdo complementar –

Sistemas baseados em UNIX

ƒ A linguagem C havia sido desenvolvida

por Ritchie para substituir e superar as limitações da linguagem B, desenvolvida por Thompson. O seu uso é considerado uma das principais razões para a rápida difusão do Unix

difusão do Unix.

ƒ Finalmente, ao longo dos anos 70 e 80

foram sendo desenvolvidas as primeiras distribuições de grande dimensão como os sistemas BSD (na Universidade de Berkeley na Califórnia) e os System III e Berkeley na Califórnia) e os System III e System V (nos Bell Labs).

(57)

ƒ Em 1983, após acrescentar vários

melhoramentos ao System III, a AT&T apresentava o novo Unix comercial, renomeando-o para System V.

ƒ Hoje, o Unix System V é o padrão

internacional de fato para o

desenvolvimento de variantes do Unix.

ƒ Atualmente, Unix (ou *nix) é o nome

dado a vários sistemas que partilham muitos dos conceitos dos Unix originais, sendo todos eles desenvolvidos em

torno de padrões como o POSIX

(Portable Operating System Interface) e outros.

(58)

Conteúdo complementar –

Sistemas baseados em UNIX

ƒ Alguns dos Sistemas Operativos

derivados do Unix são: BSD (FreeBSD, OpenBSD e NetBSD), Solaris

(anteriormente conhecido por SunOS), IRIXG, AIX, HP-UX, Tru64, SCO, Linux (nas suas centenas de distribuições) e (nas suas centenas de distribuições), e até o Mac OS X (baseado em um núcleo Mach BSD chamado Darwin). Existem mais de quarenta sistemas operacionais *nix, instalados em desde celulares a supercomputadores, de relógios de supercomputadores, de relógios de pulso a sistemas de grande porte.

(59)
(60)

Conteúdo complementar –

Sistemas baseados em UNIX

Linux:

ƒ O Linux foi criado como um projeto de

um estudante finlandês chamado Linus Torvalds. Na época os sistemas

operacionais mais populares eram o

Unix, que era muito usado em empresas, o Mac OS, da Apple, muito popular entre os usuários domésticos que tinha uma interface muito amigável e superior ao do Windows em muitos aspectos, mas muito caro também e o Windows que na muito caro também, e o Windows, que na verdade era a opção pra quem não podia comprar um computador da Apple.

(61)

Linux:

ƒ Em 1988, Linus ingressou na

Universidade de Helsinki (Finlândia) no curso de Ciências da Computação. Após montar um computador passou a usar o MINIX.

ƒ O MINIX fora desenvolvido pelo

Professor Andrew S. Tanenbaum, um renomado professor de computação que é conhecido pelos diversos livros que escreve até hoje para a área de TI.

(62)

Conteúdo complementar –

Sistemas baseados em UNIX

ƒ Tanenbaum disponibilizou o MINIX

principalmente para servir de auxílio no ensino de computação.

ƒ Dadas as suas finalidades acadêmicas,

não só o MINIX foi disponibilizado de maneira gratuita e livre, como também o seu código-fonte completo. Assim, os estudantes de computação podiam - e podem - estudá-lo inteiramente para

desenvolver suas habilidades ou mesmo para criar projetos derivados

(63)

ƒ Devido a observar as dificuldades deste

sistema (especialmente com relação ao uso de terminal para conexão), Linus resolveu criar um programa para a emulação de terminal que funcionasse independente do MINIX

independente do MINIX.

ƒ Na mesma época (1991), estudantes do

mundo todo que se interessavam por informática, e compartilhavam os ideais de que os programas deveriam ser livres para o uso e melhoria por todos

para o uso e melhoria por todos,

inspirados por Richard Stallman e seu projeto GNU.

(64)

Conteúdo complementar –

Sistemas baseados em UNIX

ƒ O projeto de Stallman (GNU), era um

movimento que visava a fornecer

software livre com qualidade.

ƒ O projeto GNU havia criado uma série de

ferramentas para programadores e estudantes, porém seu sistema

operacional propriamente dito ainda precisava de um Kernel.

ƒ Kernel é o núcleo de um SO, aquele que

faz o intermédio entre o hardware e os programas executados. Isso significa que a junção do Kernel mais os

softwares que tornam o computador

(65)

ƒ Concomitantemente com a necessidade

do GNU em desenvolver um Kernel, Linus Torvalds decidiu divulgar

abertamente o seu projeto. Para isso, publicou mensagens na Usenet (uma espécie de antecessora da Internet espécie de antecessora da Internet, baseada em troca de mensagens)

pedindo sugestões e colaborações para a sua iniciativa.

ƒ A partir de então, contando com o apoio

de diversos desenvolvedores de diversos desenvolvedores

espalhados pelo mundo, o Linux foi evoluindo e fora adotado pelo projeto GNU como seu Kernel.

(66)

Conteúdo complementar –

Sistemas baseados em UNIX

Linux ou GNU/Linux?

ƒ O Linux, por si só, é um Kernel. Sozinho,

um Kernel não tem muita utilidade. É necessário "juntá-lo" a um conjunto de

softwares para que tenhamos,

efetivamente, um sistema operacional em condições de uso. É aí que o projeto GNU entra.

ƒ O Linux que temos hoje é conhecido por

trabalhar em conjunto com software GNU. Por comodidade ou simplesmente desconhecimento, pessoas criaram o hábito de chamar todo o conjunto de

(67)

Distribuições Linux:

ƒ Há várias distribuições Linux, para os

mais diversos fins. Muitas, inclusive, fazem parte de negócios rentáveis, onde a empresa fornece, por exemplo, o

sistema operacional de graça, mas obtém receita a partir de serviços de suporte técnico.

(68)

Conteúdo complementar –

Sistemas baseados em UNIX

ƒ Algumas distribuições Linux:

ƒ Ubuntu; ƒ Debian;

ƒ Fedora (ligada à Red Hat); ƒ Mandriva;

ƒ CentOS; ƒ Slackware.

ƒ Dica: informações sobre estas e outras

distribuições Linux no site distribuições Linux no site

(69)

Licenças:

ƒ Uma licença é, em poucas palavras, um

documento que explica como

determinado software pode ser utilizado. No que se refere a programas de código-fonte aberto, há vários tipos de licenças disponíveis. O Linux utiliza a GPL (GNU

Public Licence).

ƒ A GPL é uma licença criada pela Free

Software Foundation (organização

fundada por Richard Stallman) baseada nas liberdades que a entidade defende:

(70)

Conteúdo complementar –

Sistemas baseados em UNIX

ƒ Liberdade de executar o programa, para

qualquer propósito (liberdade zero).

ƒ Liberdade de estudar como o programa

funciona e adaptá-lo às suas

necessidades (liberdade 1), sendo o

acesso ao código-fonte um pré-requisito para esta aspecto.

ƒ Liberdade de distribuir cópias de forma

que você possa ajudar ao seu próximo (liberdade 2).

ƒ Liberdade de melhorar o programa e

liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie (liberdade três).

(71)

Dentre as opções abaixo, qual representa a melhor definição para Kernel?

a) Ele é o elemento responsável por

controlar a distribuição da memória física do computador.

b) Parte de um Sistema Operacional que tem como tarefa o gerenciamento dos

processos.

c) Kernel é um gerenciador de distribuições Linux.

Linux.

d) Componente central de um Sistema Operacional.

(72)

Referências

Documentos relacionados

A maneira expositiva das manifestações patológicas evidencia a formação de fissuras devido a movimentação térmica das paredes, Figura 9, que não foram dimensionadas com

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

O Departamento de Compliance solicitará que todas as Pessoas com Acesso atestem no sistema de Compliance que entenderam o Código, cumprirão com suas exigências, reportarão todos

De acordo com estes resultados, e dada a reduzida explicitação, e exploração, das relações que se estabelecem entre a ciência, a tecnologia, a sociedade e o ambiente, conclui-se

Para que essa análise seja feita da maneira mais eficiente possível, é necessário criar um ambiente de estabilidade na empresa, ou seja, um ambiente que favoreça o

Através do diagnóstico ambiental realizado na granja em estudo, o principal impacto ambiental observado relacionado às atividades foi a geração de resíduos sólidos diversos, que

Por isso temos que conhecer as promessas divinas que há para este tempo final; porque essas são as que Ele cumprirá, e dessas das quais o Espírito Santo estará

  O Parque Estadual Intervales foi escolhido por estar numa região próxima a cidade de São Paulo, a qual poderíamos ir em um final de semana para o levantamento de