Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade III FUNDAMENTOS DE SISTEMAS OPERACIONAISSISTEMAS OPERACIONAIS Prof. Roberto Macias 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 programas aplicativos. Relembrando... T di ti d Si tTemos 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. 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. Relembrando... Aspectos específicos de: Processadores. Processadores multithread e multinúcleo. Memória Memória. Disco. Fitas. Dispositivos de E/S. Barramento Barramento. 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. Plano da unidade III 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. 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! Gerenciamento de processos 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. 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 completarciclo 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. Gerenciamento de processos 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. Gerenciamento de processos Conforme demonstrado na figura abaixo, uma CPU pode executar um processo por vez: Gerenciamento de processos 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: 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. Gerenciamento de processos 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ãoestã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 durantede FTP, onde este fica inativo durante parte do tempo, sendo ativo somente quando um cliente FTP solicita a abertura de uma conexão. 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 relacionadosem vários processos relacionados, interagindo, entretanto, de maneira independente. Gerenciamento de processos No os processos criados a partir de mNovos processos criados a partir de um processo principal (“pai”) são chamados de processos “filhos”, réplica do primeiro, conforme ilustra a figura que segue: 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. Gerenciamento de processos 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! Interatividade O que os Sistemas Operacionais utilizam para identificar os seus processos? a) PID. b) PCB. c) Daemonsc) Daemons. d) System Calls. e) Forks. Gerenciamento de processos 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ênciaconflito; e como haverá uma sequência adequada quando existirem dependências. 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) eo resultado final depende de quem executou quando (ordem de escalonamento). Gerenciamento de processos 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. 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. Gerenciamento de processos 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. 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 inadequada. Gerenciamento de processos 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 paraconceito 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, ounenhum sinal de acordar foi salvo, ou algum valor positivo, sinalizando que um ou mais sinais de acordar estivessem pendentes. 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 ambientearmazenamento) num ambiente multitarefa. Gerenciamento de processos 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. 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 Casoprocesso 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. Gerenciamento de processos 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 aoessa mensagem pode ser extraviada ao longo do percurso. Portanto, uma troca de mensagem usa o mecanismo similar ao usado no protocolo TCP. 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. Gerenciamento de processos 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 escolhercaberá 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 quedentre vários processos, é saudável que o sistema priorize aqueles que vão gerar mais impacto ao ambiente e seus usuários. 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. Gerenciamento de processos 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. 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. e) Enfileiramento. Gerenciamento de memória 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 domemó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. 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ãoalocar para os processos que estão necessitando e liberar as partes que não estão mais em uso pelos processos. Gerenciamento de memória 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. Performance. 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. Gerenciamento de memória Reciclagem: Quando um bloco de memóriafoi 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 podeprograma, esse bloco é liberado e pode ser reutilizado para outra requisição. 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 swapping são necessárias. Gerenciamento de memória 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óriade 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 discolo para um arquivo na memória em disco rígido e, subsequentemente, liberar a memória para o próximo processo. Gerenciamento de memória Swapping. Vantagens: Maior compartilhamento da memória. Maior throughput. Eficiência. Desvantagens: Elevados custos das operações de entrada e saída. Gerenciamento de memória 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ívelfisicamente. 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 quedisco rígido. Quando é necessário que outra parte, que está no disco, seja carregada, então haverá o processo de swapping. 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). Gerenciamento de memória 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. Gerenciamento de memória Memória virtual – MMU Gerenciamento de memória 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. 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óriafísicos das frames de memória respectivas. Gerenciamento de memória 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 daelimina a fragmentação externa da memória. 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. Interatividade 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 inativosd) Liberar a memória de processos inativos. e) Informar ao programador endereços de alocação da memória. 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. Conteúdo complementar – Sistemas baseados em UNIX 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. 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 Unixdifusã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 eBerkeley na Califórnia) e os System III e System V (nos Bell Labs). Conteúdo complementar – Sistemas baseados em UNIX 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. 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 desupercomputadores, de relógios de pulso a sistemas de grande porte. Conteúdo complementar – Sistemas baseados em UNIX Conteúdo complementar – Sistemasbaseados 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 namuito caro também, e o Windows, que na verdade era a opção pra quem não podia comprar um computador da Apple. Conteúdo complementar – Sistemas baseados em UNIX 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. 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 derivadospara criar projetos derivados. Conteúdo complementar – Sistemas baseados em UNIX 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 MINIXindependente 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 todospara o uso e melhoria por todos, inspirados por Richard Stallman e seu projeto GNU. 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 usável, formam um SO. Conteúdo complementar – Sistemas baseados em UNIX 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 Internetespé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 desenvolvedoresde diversos desenvolvedores espalhados pelo mundo, o Linux foi evoluindo e fora adotado pelo projeto GNU como seu Kernel. 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 Linux e não somente o Kernel. Conteúdo complementar – Sistemas baseados em UNIX 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. 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 sitedistribuições Linux no site DistroWatch.com Conteúdo complementar – Sistemas baseados em UNIX 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: 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). Interatividade 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. e) Primeira versão de Unix. ATÉ A PRÓXIMA!
Compartilhar