ESTUDO DA ESTRUTURA DO SISTEMA OPERACIONAL LINUX. Bruno Peres¹, Karina Damasceno², Mariana da Costa Santos³ e Victor Amaral 4

Tamanho: px
Começar a partir da página:

Download "ESTUDO DA ESTRUTURA DO SISTEMA OPERACIONAL LINUX. Bruno Peres¹, Karina Damasceno², Mariana da Costa Santos³ e Victor Amaral 4"

Transcrição

1 ESTUDO DA ESTRUTURA DO SISTEMA OPERACIONAL LINUX Bruno Peres¹, Karina Damasceno², Mariana da Costa Santos³ e Victor Amaral 4 ¹ Bruno Peres ² Karina Damasceno ³ Mariana da Costa Santos 4 Victor Amaral Universidade Federal Fluminense UFF Escola de engenharia - Departamento de Telecomunicações (TET) Rua Passos da Pátria, 156 Bloco D 5º andar sala 504 São Domingos Niterói - RJ RESUMO: O trabalho a seguir tem como objeto o estudo do Sistema Operacional Linux, dessa forma o grupo pretende abranger de maneira clara e objetiva os principais tópicos e recursos utilizados pelo Sistema Operacional assim como os principais procedimentos de inicialização, operação e segurança. PALAVRAS-CHAVE: Linux, sistema operacional, estudo 1 INTRODUÇÃO Desde o inicio dos tempos das relações humanas a humanidade busca por algum meio de fazer mais atividade em um menor espaço de tempo. A busca por recursos que tornassem isso possível sempre foi a motivação para a evolução intelectual do planeta. Podemos citar o século XVIII como sendo um século que possivelmente representou o maior avanço, pois trouxe a idéia de colocar máquinas para executar tarefas antes feitas por homens, o que gerou uma verdadeira reformulação no processo de produção. Com o passar do tempo a necessidade de resolução de problemas aumentou cada vez mais e a aplicação das máquinas a essas resoluções passou a ser utilizada em maior escala. As primeiras máquinas de calcular são consideradas computadores cujo objetivo é a execução de cálculos matemáticos. O primeiro computador aplicando um sistema operacional destinado à comercialização foi o UNIVAC e a partir dele o desenvolvimento tanto do hardware como do software aplicado aos computadores só cresceu. O sistema operacional Linux, foco do trabalho, começou a ser desenvolvido em 1991 e, nos dias atuais, é um dos sistemas mais conhecidos, além de possuir diversas e diferentes distribuições. 2 MOTIVAÇÃO Com o objetivo de agregar valores a nossa formação acadêmica e enriquecer o conhecimento sobre sistemas operacionais, a professora Natalia Castro Fernandes passou um trabalho de pesquisa para a turma da disciplina de Sistemas de Computação para Telecomunicações TET O grupo, dos sistemas operacionais disponíveis, optou pela escolha do Sistema Linux, pois avaliou que este sistema é largamente

2 utilizado nas empresas não só de Telecomunicações, mas também em grande parte das empresas de outros ramos. Por isso, acreditamos que o estudo desse sistema possa ser um diferencial não só para nossa formação, mas também para qualquer aluno que possa vir a ler este trabalho. 3 OBJETIVO Apresentar de forma clara os principais recursos do sistema operacional Linux assim como fazer a correlação dos termos e conhecimentos adquiridos em sala de aula. 4 RELAÇÃO ENTRE LINUX E UNIX É muito comum no meio da computação a interligação entre os Sistemas Linux com os Sistemas Unix. O sistema Linux foi criado como uma nova elaboração e implementação do sistema UNIX. O Linux segue o padrão POSIX e pode ser executado em diversas plataformas de hardware, além de ser compatível com a maioria dos softwares UNIX disponíveis. De todas as diversas variantes do UNIX, o Linux se difere pelo fato de ser gratuito e possuir o seu código-fonte aberto, isso possibilita um desenvolvimento de maneira cooperativa, ou seja, vários indivíduos e corporações podem colaborar em seu desenvolvimento. Há autores que afirmam que o Linux não pode ser denominado como um UNIX pelo fato de incorporar alguns refinamentos técnicos que não existem em versões originais UNIX, dessa forma caracterizando-se por uma entidade juridicamente distinta. Como exemplos de outros sistemas operacionais baseados no sistema UNIX temos: OpenBSD, FreeBSD e o NetBSD. Vale ressaltar que todos os três citados são ramificações do Berkey Software Distribution da UC Berkley. Esses sistemas podem-se comparar ao Linux em termos de recursos e confiabilidade, porém possuem menos suporte por parte de fornecedores de software independentes. Devido ao Projeto GNU, a maioria dos principais programas e aplicativos, que dão aos sistemas UNIX seu valor, foi desenvolvida em alguma forma de modelo de código-fonte aberto. Dessa forma, sob o aspecto dos aplicativos, o sistema Linux é uma das variantes do UNIX mais bem compatíveis. Um exemplo típico é o servidor Web Apache, que quando está em operação, não faz muita distinção entre o sistema Linux ou sobre qualquer uma das variantes do sistema UNIX. 4.1 HISTÓRICO DO LINUX Pelo fato do sistema Linux estar diretamente relacionado ao UNIX, impossível não levar em consideração primeiramente a história deste para só assim chegarmos ao Linux. Em 1969, o UNIX se iniciou como um projeto de pesquisa no AT&T Bell Labs, porém foi em 1976 que o UNIX se tornou gratuitamente disponível nas universidades e, dessa forma, tornando-se a base de vários cursos de sistemas operacionais e de projetos científicos e de pesquisa acadêmicos. O Berkley UNIX iniciou-se em 1977 quando o Computer Systems Research Group (CSRG) na Universidade de California licenciou o código da AT&T. As versões do Berkeley começaram com o 1BSD para o PDP-11 e resultaram no 4.4BSD, em 1993.

3 À medida que o UNIX ganhava popularidade e aceitação comercial, o preço de suas licenças crescia mais rapidamente. A Berkley estabeleceu como objetivo à longo prazo, eliminar do BDS o código pertencente à AT&T, porém antes que o trabalho pudesse ser completado, Berkeley perdeu as verbas para suas pesquisas e o CSRG foi abandonado. A 4.4BSD-Lite foi a versão final lançada pelo CSRG, antes de sua dissociação. Esta versão saiu sem o código da AT&T. A maioria das versões do BSD UNIX, disponíveis no mercado atualmente afirmam ter, como seu antepassado, o pacote 4.4BSD-Lite. O Linux propriamente dito acabou se originando em 1991, como um projeto pessoal de um universitário finlandês chamado Linus Torvalds. Ele concebeu originalmente seu projeto como uma pequena ramificação de um sistema operacional escrito por Andrew S. Tannenbaum, o Minix. Porém, o Linux acabou gerando um interesse substancial no mundo todo. Linus foi capaz de empreender uma tarefa muito mais ambiciosa explorando o poder do desenvolvimento cooperativo. Segundo as referências [1] e [2], a versão 1.0 do kernel foi lançado em 1994, o bloco de versões mais estáveis do Linux atualmente é o 2.6, variando seu uso entre até O Linux difere das outras versões do sistema UNIX pelo fato de que o projeto de seu kernel básico define apenas um kernel de Sistema Operacional. Dessa forma, este deve ser empacotado com comandos, daemons e outros softwares para formar um sistema operacional devidamente completo e utilizável. Tal forma de fornecer o sistema Linux é caracterizado por Distribuição. Todas as distribuições do Linux compartilham da mesma linhagem do kernel, porém vale ressaltar que o que pode variar nelas são os materiais auxiliares que vêm junto com esse kernel. Sendo assim, as distribuições do Linux variam em seu objetivo, suporte popularidade. Abaixo, na tabela 1 explicitamos cinco das principais distribuições de uso geral. Tabela 1: Distribuições do Sistema Linux. 4.2 SISTEMA LINUX O sistema Linux é mantido por uma rede de desenvolvedores livres que colaboram através da Internet, porém essa comunidade Linux deve manter o

4 documento Padrão da Hierarquia do Sistema de Arquivos (File System Hierarchy Satandard). Onde é especificado um formato geral de arquivos-padrão (como nomes de diretórios, bibliotecas, os binários de sistema e os arquivos de dados de tempo de execução) COMPONENTES DO SISTEMA LINUX O sistema Linux é composto por três partes principais: Kernel: É o responsável por dar suporte a diferentes periféricos. Bibliotecas de sistema: Definem um conjunto-padrão de funções através das quais as aplicações podem interagir com o kernel. Utilitários do sistema: São programas que executam tarefas de gerenciamento individuais e especializadas. Figura 1: Diagrama do sistema do Linux Na modalidade de kernel, o código de kernel executa em modalidade privilegiada do processador, com acesso pleno a todos os recursos físicos do computador. Os códigos em modalidade de usuário não são inseridos no kernel. Os códigos de suporte que não precisam executar na modalidade de kernel são colocados nas bibliotecas do sistema. O Linux manteve o modelo do Unix em que o kernel é criado como um binário monolítico, ou seja, executa em um único espaço de endereçamento inteiramente no modo kernel. Também possui um microkernel: possui um projeto modular com kernel preemptivo, suporte a threads de kernel e a capacidade de carregar dinamicamente as bibliotecas separadas do kernel MÓDULOS DO KERNEL Como o Linux tem o código fonte livre, ao escrever um código no kernel é necessário executar uma reinicialização para carregar uma nova funcionalidade. Esse processo pode ser incomodo e trabalhoso. Como solução podemos utilizar os módulos do kernel, pois o driver pode ser compilado sozinho e carregado no kernel já em execução. Assim pode ser distribuído como um módulo e os que se interessarem por ele não terão que reconstruir o kernel. Um kernel padrão mínimo pode ser configurado por causa dos módulos de kernel sem que drivers de dispositivos adicionais sejam embutidos. Existem três componentes de suporte de Linux:

5 Gerenciamento de módulo: permite que os módulos sejam carregados na memória e conversem com o restante do kernel O registro de drivers: permite que os módulos informem ao restante do kernel que um novo driver está disponível. Um mecanismo de resolução de conflitos: proteção de recursos do driver por uso acidental de outros drives reservando recursos de hardware LICENCIAMENTO DO LINUX Há uma idéia equivocada quanto ao licenciamento do Linux, pois ele não é um software de domínio público. Domínio público significa que os autores abriram mão dos seus direitos autorais, mas os direitos autorais sobre o código do Linux são mantidos por vários autores do código. O kernel do Linux é um software aberto, o que proporciona às pessoas a possibilidade de modificação, utilização e distribuição de suas cópias, sem quaisquer restrições. O Linux é licenciado sob a GNU General Public License (GPL). No entanto, ele possui algumas intervenções que implicam que nenhum criador pode tornar-se proprietário do produto customizado. Se o desenvolvedor criar um software qualquer com algum componente protegido pela GPL, então o código-fonte deve ser disponível. Ou seja, você pode alterar qualquer parte do Linux, modificá-lo e até comercializá-lo, mas você não pode fechá-lo (não permitir que outros usuários o modifiquem) e vendê-lo. 4.3 INSTALAÇÃO DO LINUX Todas as distribuições do Linux possuem facilidades na instalação, pois são bem diretas e simples. Contamos também com uma série de possibilidades de instalação. O Linux pode ser instalado pela rede, total ou parcialmente, através de um Live CD/DVD, um Live USB ou instalando no HD. Nas formas ditas Live, podemos usá-lo sem mexer nos dados do computador, bastando apenas que o dispositivo de boot seja um CD/DVD ou um pendrive (USB). Pode ainda ser instalado sozinho (sistema operacional único), junto com o Windows, mas em partições separadas do HD (o que se costuma chamar de "dual boot"), dentro do Windows (funciona como um programa do Windows) ou junto com outro Linux (distribuições diferentes), também em partições separadas do HD INSTALANDO PROGRAMAS NO LINUX Uma das grandes dificuldades que usuários Linux possuem é a instalação de novos programas em seu sistema. Inicialmente, é altamente recomendável a leitura do arquivo de texto Readme ou Install após a descompactação do arquivo (comando TAR), pois ele pode ter observações especiais ou comando diferentes para a instalação, mas de um modo geral funciona da seguinte forma: 1 ) Para iniciar a instalação é necessário descompactar o arquivo utilizando os seguintes comandos de acordo com o formato do arquivo: Arquivos tar.bz2: tar -jxvf nomedoprograma.tar.bz2

6 Arquivos tar.gz: tar -zxvf nomedoprograma.tar.gz Arquivos tar: tar -zxvf nomedoprograma.tar.gz Arquivos tar.z: tar -Zxvf nomedoprograma.tar.z Arquivos zip: unzip nomedoprograma.zip Arquivos tgz: tar -zxvf nomedoprograma.tgz 2 ) Utilizando o comando su, que serve para logar como SuperUsuário, mas é necessário colocar a senha cadastrada durante a instalação do sistema. 3 ) Utiliza-se : pasta_criada_pelo_tar. 4 ) Leitura do arquivo Readme ou Install para verificar se o processo deve ser diferente. 5 ) Utiliza-se:./configure (O configure é de extrema importância e pode ser utilizado com diversas opções como: onde você quer instalar o programa, onde estão suas bibliotecas, se você quer ativar determinados recursos, etc.). make (O make faz a compilação do código utilizando o Makefile criado pelo configure como referência e, finalmente, o make install faz a instalação do programa.) Caso aconteça algum problema por falta de dependências, devemos instalar todas as dependência requeridas, antes de instalarmos o programa DESINSTALANDO PROGRAMAS NO LINUX Alguns programas são acompanhados da opção make uninstall, mas para utilizálo é necessário que você tenha guardado o código-fonte. Para não ficar dependendo dessas coisas, o melhor é fazer um pacote de instalação, assim é possível instalar e desinstalar quantas vezes quiser e ainda distribuir para outros usuários que possuam o mesmo sistema. Existem diversas opções para isso, como rpmrebuild, Debian-builder e o CheckInstall. Todos são bastante simples de usar. Para utilizar o CheckInstall por exemplo, ao invés de dar o comando make install no final, é só usar checkinstall e responder algumas perguntas. Ele pode criar pacotes para o Slackware, Debian ou Fedora.

7 5 INICIALIZAÇÃO DO LINUX A realização dos procedimentos necessários para a inicialização do sistema operacional é feita pelo próprio computador para que só assim os recursos normais do sistema operacionais estejam disponíveis. O kernel, durante essa inicialização, é carregado na memória para que, dessa forma, possa começar a ser executado. No mesmo momento, é executado também um conjunto de tarefas de inicialização e, assim, o sistema passa estar disponível aos usuários. É comum que sistemas de arquivos danificados, equipamentos faltantes ou não confiáveis e erros em arquivos de configuração impeçam que o computador inicie seu processo de funcionamento. Dessa forma, podemos concluir que o momento de inicialização do sistema é um período de certa vulnerabilidade, logo é possível perceber que a configuração de inicialização é a primeira das tarefas que o administrador de sistema tem que levar em consideração. 5.1 INICIALIZAÇÃO AUTOMÁTICA E MANUAL Existem dois modos de se inicializar o sistema Linux, o modo manual e o modo automático, porém o mais utilizado é o modo automático. Nele, o sistema executa, sem qualquer ajuda externa, o procedimento de inicialização por completo. Como exemplo prático, temos a maioria dos nossos computadores pessoais que, quando inicializados, executam todo o procedimento até que o usuário possa utilizá-lo. No modo de inicialização manual, o sistema segue o procedimento automático até um determinado ponto antes da maioria dos scripts de inicialização ter sido executada, só aí é passado o controle a um operador. Quando isso ocorre, o sistema é caracterizado operando em modo monousuário, como é citado na referência [1]. De forma resumida, podemos descrever o processo de inicialização do Linux em etapas, sendo elas: carregamento e inicialização do kernel, detecção e configuração de dispositivos, criação de threads do kernel para processos de sistema espontâneos, intervenção do operador, execução dos scripts de inicialização do sistema e por fim, a operação multiusuário. Vale ressaltar que essas etapas serão descritas de forma geral. 5.2 A INICIALIZAÇÃO DO KERNEL Segundo o livro de referência [1], o kernel do Linux por si só já é um programa, e a primeira tarefa de inicialização é carregar esse programa na memória de forma que ele possa ser executado. O processo de carregamento no Linux ocorre em duas etapas distintas. Na primeira etapa, é preparado o ambiente para que o kernel seja carregado. Isso é feito pelo carregamento de um pequeno programa de inicialização a partir do disco. Após isto, o kernel passa a fazer testes na memória para determinar o quanto de memória RAM está disponível. Os testes de memória servem para que o kernel separe uma quantidade fixa de memória real para seu uso próprio, não estando disponível para os processos a nível de

8 usuário. Ao final dessa etapa, é mostrada na tela a quantidade de memória física e a quantidade de memória disponível. 5.3 CONFIGURAÇÃO DO HARDWARE Após o preparo do ambiente para o carregamento do kernel, é feita uma verificação do ambiente da máquina para saber os dispositivos físicos (hardware) que estão presentes. Quando o kernel começa sua execução, ele tenta localizar e inicializar cada dispositivo necessário para seu funcionamento. Na maioria dos casos, essas informações não são especificadas completamente durante o tempo de configuração do kernel sendo assim, o próprio kernel as busca sondando o barramento a procura dos dispositivos consultando os drives apropriados. Os drives que não estão relacionados a algum dispositivo ou então não responderem a essa busca serão desativados. Vale ressaltar que é comum e muito possível que o usuário ou administrador queira conectar algum dispositivo após o sistema estar carregado. Caso isso ocorra, é possível carregar um driver para este novo dispositivo. 5.4 THREADS DO KERNEL Após o termino da inicialização básica do sistema, o kernel começa a criar vários processos filhos, porém a nível de usuário. Esses processos filhos são considerados espontâneos por não serem criados por mecanismo normais de criação de processos, ou seja, utilizando o comando fork() convencional. Vale ressaltar que a quantidade e finalidade dos processos criados irão variar de acordo com o sistema a ser utilizado. De todos os processos criados nessa etapa, somente o init é considerado um processo completo. Os demais são partes do kernel arrumados para parecerem processos devido a escalonamento e arquitetura adotada. Assim que os processos filhos, anteriormente citados, forem criados, o papel do kernel na inicialização estará terminado e a maioria das tarefas de execução de funções básicas após essa etapa, ficam a cargo do processo init. 5.5 INTERVENÇÃO DO OPERADOR A intervenção do operador, como dito anteriormente, só ocorre para inicialização manual e, como o livro de referência [1] diz, se o sistema for executado no modo monousuário, um flag de linha de comando passado para o kernel notifica o init desse fato quando ele inicializa. O processo init passa, então, o controle para sulogin, uma versão de login que solicita a senha da conta root.. Depois de se fazer isto, o sistema gera um shell de root. A partir do Shell monousuário, é possível a execução de comandos de forma muito similar quando se está conectado num sistema completamente inicializado. É importante ressaltar que, nos ambientes de monousuário que montam o diretório-raiz como sendo de leitura, os comandos que utilizam arquivos que estão dentro das pastas inseridas no diretório-raiz não irão funcionar. A solução para isso está na tarefa de iniciar a sessão monousuário remontando o diretório-raiz no modo leitura/gravação.

9 Nos sistemas Red Hat e Fedora, o modo monousuário é um pouco mais complicado de ser acessado comparado aos outros sistemas. Quando se conseguir acessar o prompt de Shell dessas duas distribuições, os sistemas de arquivos locais já terão sido montados. De certa forma, isso pode até ser um ponto positivo, porém representa um problema quando se tem um sistema de arquivos falho. 5.6 EXECUÇÃO DE SCRIPTS DE INICIALIZAÇÃO O processo init é o primeiro processo a ser inicializado em sistemas Linux, logo após o carregamento do kernel na memória. Além de ser responsável por dar continuidade ao carregamento do sistema, ele define sete níveis de execução. Cada nível carrega consigo um determinado complemento de serviços que o sistema deve executar. Os níveis juntamente com seus complementos são mostrados na tabela 2. Tabela 2: Níveis de execução e sua representação Os scripts de inicialização são scripts comuns e são selecionados e executados pelo processo init de acordo com um algoritmo, relativamente compreensível e exclusivo para executar essa função. 5.7 OPERAÇÃO MULTIUSUÁRIO Após a execução dos scripts de inicialização, o sistema está, teoricamente, pronto para receber o login de algum usuário. O processo getty é o responsável por habilitar o login de um usuário. Eles são gerados diretamente pelo processo init completando assim o processo de inicialização do sistema. Além disso, se o sistema estiver configurado para isso, o init gera sistemas de login gráficos. Temos como exemplo o xdm e o gdm. Após o término do processo de inicialização, o processo init continua a atuar na execução de outros processos. Na maioria dos sistemas, ele possui somente um modo monousuário e vários níveis de multiusuário, porém, em sistemas baseados em BSD, o init possui dois estados, um a nível de monousuário e outro a nível de multiusuário. 6 SISTEMA DE ARQUIVOS No sistema de arquivos do Linux, que mantém o modelo do sistema de arquivos padrão do UNIX, podemos encontrar: processos, portas seriais, estruturas de dados do kernel e parâmetros de configuração e canais de comunicação entre processos. Um

10 benefício que o Linux tem é o fato de suportar mais do que um sistema de arquivos baseado em disco. Entre um dos melhores e mais modernos, é o sistema de arquivos ext4fs (extended file system) que serve como padrão para a maioria das distribuições. O ext2fs, mais antigo, precursor do ext3fs, ainda é suportado por todas as distribuições. Características do ext2fs: 1. Nomes de arquivos não podem exceder 255 caracteres. 2. O tamanho máximo de um único arquivo varia entre 16GB e 2TB (dependendo do tamanho dos blocos). 3. O tamanho máximo de uma partição pode ser entre 2 e 32TB. O ext3fs é baseado em journaling, o que permite que o aumento de confiabilidade do sistema de arquivos e permite que o sistema se recupere mais rapidamente após um desligamento incorreto. No ext2fs, após um desligamento incorreto, era necessário um utilitário que verificava todos os blocos do sistema de arquivos procurando por inconsistências. Oferece 3 níveis de journaling (journal, writeback e ordered). O modo default é o modo ordered, onde o journal é atualizado no final de cada operação. As desvantagens do ext3fs são as seguintes: 1. Limite de subdiretórios por diretórios; 2. Não há suporte para recuperação de arquivos deletados; 3. Ausência do checksum no journaling. O sucessor do ext3fs é o ext4fs, adotado como padrão na versão do kernel do Linux. Algumas características do ext4fs: 1. Suporta até 16TB por arquivo; 2. O ext4fs é totalmente compatível com as versões anteriores, ext3fs e ext2fs; 3. Permite a pré-alocação de espaço no disco para um arquivo; 4. Limite de subdiretórios que um diretório pode conter; 5. Journal checksumming; Também há muitas implementações de sistemas de arquivos de diferentes extensões, como os sistemas de arquivos NTFS e FAT, utilizado pelo Microsoft Windows. O Linux suporta mais tipos de sistemas de arquivos do que qualquer outra variante do UNIX, nos dando mais flexibilidade e tornando mais fácil o compartilhamento de arquivos entre sistemas. 6.1 NOMES DE CAMINHOS O sistema de arquivos do Linux é apresentado com uma única hierarquia unificada, que inicia no diretório / e continua descendo por um número arbitrário de subdiretórios. O diretório / também é chamado de diretório raiz. O sistema de arquivos pode ser arbitrariamente profundo. Entretanto, cada componente de um nome de caminho tem de ter um nome que não supere 255 caracteres, e um caminho único não pode conter mais do que caracteres. Para acessar um arquivo com um nome de caminho superior a isso, você tem de mudar de

11 diretório com o comando cd para um diretório intermediário e utilizar um nome de caminho relativo. A nomeação de arquivos e diretórios é essencialmente irrestrita, exceto que os nomes têm comprimento limitado e não devem conter o caractere de barra ou nulos. Em particular, os espaços são permitidos. Infelizmente, o UNIX tem uma longa tradição de separar argumentos de linha de comando com espaços em branco, de modo que softwares mais antigos tendem a parar quando encontram espaços dentro de nomes de arquivos. É possível escapar espaços individuais com uma barra invertida. O recurso de complemento de nome de arquivo de shells comuns (normalmente a tecla TAB) faz isso para você. 6.2 ORGANIZAÇÃO DA ÁRVORE DE ARQUIVOS Os sistemas de arquivos na família UNIX nunca foram muito organizados. Várias convenções de nomes incompatíveis são utilizadas ao mesmo tempo e diferentes tipos de arquivos estão espalhados aleatoriamente pelo espaço de nomes. Em muitos casos, os arquivos são divididos pela função e não pela probabilidade com que eles mudam, dificultando a atualização do sistema operacional. Há um local culturalmente correto para tudo. É particularmente importante não bagunçar a estrutura padrão da árvore de arquivos sob o Linux, pois os pacotes de software e suas ferramentas de instalação normalmente fazem suposições abrangentes em relação à localização de arquivos. O sistema de arquivos-raiz inclui o diretório-raiz e um conjunto mínimo de arquivos e subdiretórios. O arquivo que contém o kernel reside dentro do sistema de arquivos-raiz no diretório /boot, seu nome normalmente inicia com vmlinuz. Também fazem parte do sistema de arquivos-raiz os /dev para arquivos de dispositivos, /etc para arquivos de sistema críticos, /sbin e /bin para utilitários importantes e, às vezes, /tmp para arquivos temporários. Os diretórios /usr e /var são também de grande importância. /usr é onde a maioria de programas padrão é mantida, junto com vários outros materiais sobre inicialização, como manuais on-line e a maioria das bibliotecas. Não é estritamente necessário que /usr seja um sistema de arquivos separado, mas, para conveniência administrativa, geralmente é. Tanto /usr quanto /var tem de estar disponíveis para ativar o sistema a trilhar todo o caminho até o modo multiusuário.

12 Alguns diretórios padrões mais importantes são listados na Tabela 3 a seguir: Tabela 3: Diretórios padrões e seus conteúdos. 6.3 TIPOS DE ARQUIVOS O Linux define sete tipos de arquivos. Mesmo quando os desenvolvedores adicionam alguma coisa nova, ela ainda tem de ser feita de maneira a se encaixar como um dos sete tipos a seguir: Arquivos regulares; Diretórios; Arquivos de dispositivo de caracteres; Arquivos de dispositivo de blocos; Sockets de domínio local; Pipes identificados (FIFOs); Links simbólicos.

13 É possível determinar o tipo de um arquivo existente com o comando ls l. O primeiro caractere do relatório de saída do ls codifica o tipo. A tabela 4 mostra os códigos usados pelo ls para representar os vários tipos de arquivos. Tabela 4: Codificação de tipos de arquivos utilizados por ls ARQUIVOS REGULARES Os arquivos de texto, arquivos de dados, programas executáveis e bibliotecas compartilhadas são armazenados como arquivos regulares. Tanto o acesso sequencial como o aleatório são permitidos DIRETÓRIOS Um diretório contém referências com nomes para outros arquivos. Você pode criar diretórios com mkdir e excluí-los com rmdir se estiverem vazios. Você pode excluir diretórios não vazios com rm r ARQUIVOS DE DISPOSITIVO DE BLOCOS Os arquivos de dispositivo permitem que os programas se comuniquem com o hardware e periféricos do sistema. Quando o kernel é configurado, os módulos que sabem como se comunicar com cada um dos dispositivos do sistema são associados. O módulo para um determinado dispositivo, chamado de driver de dispositivo, cuida dos confusos detalhes do gerenciamento de dispositivos. Os drivers de dispositivo apresentam uma interface de comunicação padrão que se parece com um arquivo regular. Quando o kernel recebe uma requisição que se refere a um arquivo de dispositivo de blocos ou caracteres, ele simplesmente passa a requisição ao driver de dispositivo apropriado SOCKETS DE DOMÍNIO LOCAL Sockets são conexões entre processos que permitem que comunicação hierarquica. O Linux fornece vários tipos de sockets, a maioria dos quais envolve o uso de uma rede. Sockets de domínio local são acessíveis somente a partir do host local e são referenciados por meio de um objeto do sistema de arquivos em vez de uma porta de rede. Embora os arquivos de socket sejam visíveis para outros processos na forma de entradas de diretório eles não podem ser lidos ou gravados por processos não envolvidos na conexão.

14 6.3.5 PIPES IDENTIFICADOS Os pipes identificados permitem a comunicação entre dois processos sendo executados no mesmo host. Eles também são conhecidos como arquivos FIFO (FIFO é a abreviatura para first in, first out, isto é, o primeiro a entrar é o primeiro a sair ) LINKS SIMBÓLICOS Um link simbólico ou soft link aponta para um arquivo pelo nome. Quando o kernel se depara com um link simbólico no curso de uma pesquisa de um nome de caminho, ele redireciona sua atenção para o nome de caminho armazenado como conteúdo do link. A diferença entre links físicos e links simbólicos é que o link físico é uma referência direta enquanto um link simbólico é uma referência por nome; links simbólicos são distintos dos arquivos para os quais eles apontam. Como os links simbólicos podem conter caminhos arbitrários, eles podem referenciar arquivos em outros sistemas de arquivos ou arquivos inexistentes. Links simbólicos múltiplos também podem formar um loop. 6.4 ATRIBUTOS DE ARQUIVO Sob o modelo de sistema de arquivos UNIX e Linux tradicional, todo arquivo tem um conjunto de nove bits de permissão que controlam quem pode ler, gravar e executar o conteúdo do arquivo. Junto com três outros bits que afetam primariamente a operação dos programas executáveis, esses bits constituem o modo do arquivo. Os 12 bits de modo são armazenados juntos com quatro bits de informações sobre o tipo de arquivo. Os quatro bits de tipo de arquivo são configurados quando o arquivo é criado pela primeira vez e não podem ser modificados, mas o proprietário do arquivo e o super-usuário (root) podem modificar os 12 bits de modo usando o comando chmod (change mode). Utilizamos o comando ls l (ou ls ld para um diretório) para inspecionar os valores desses bits. 7 GERENCIAMENTO DE MEMÓRIA A memória de um sistema de computação consiste em um grande array de bytes ou palavras, cada um contendo o seu próprio endereço. A interação é feita através de uma sequência de leituras e escritas a endereços de memória específicos. Um programa para ser executado deve ser carregado na memória e ser inserido no processo. Esse processo é movimentado durante a sua execução entre a memória e o disco. O gerenciamento de memória é responsável pelo controle de quais partes da memória estão em uso e quais não estão, a fim de alocar os processos na memória, liberar a memória que estava sendo ocupada por um processo que terminou e tratar do problema de swapping entre a memória principal e o disco, quando a memória principal não tiver espaço suficiente para suportar vários processos e diversos outros aspectos. O gerenciamento de memória no Linux possui dois componentes: o primeiro lida com a liberação e alocação da memória páginas, grupos de páginas e pequenos blocos de memória. Já o segundo gerencia a memória virtual, na qual a memória é mapeada no espaço de endereçamento de processos em execução, o que possibilita a execução de vários processos que não estejam necessariamente armazenados na memória principal.

15 7.1 GERENCIAMENTO DE MEMÓRIA FÍSICA O kernel trata a página física como unidade básica para gerência de memória. Quando aparece uma solicitação de memória física, o kernel atende a solicitação utilizando uma zona apropriada. No Linux, a memória física é dividida em três zonas: ZONE_DMA, ZONE_NORMAL e ZONE_HIGHMEM. Essas zonas variam com a arquitetura do computador. Por exemplo, na arquitetura Intel de 32 bits, o kernel é mapeado nos primeiros 896 MB do espaço de endereçamento; a memória restante é chamada de memória alta e é alocada a partir da ZONE_HIGHMEM. O alocador de páginas é o gerenciador principal da memória física. Ele é responsável por alocar e liberar todas as páginas físicas para a zona e é capaz de alocar intervalos de páginas fisicamente contíguas sob demanda. O alocador utiliza um algoritmo de agrupamento de parceiros ou mais conhecido como sistema de pares para gerenciar páginas físicas disponíveis, na qual as unidades adjacentes de memória alocável são reunidas em duas a duas. Sempre que duas regiões parceiras alocadas forem liberadas, elas serão combinadas para formar uma região maior, região essa que também tem um par, com a qual ela pode combinar para a formação de uma região maior ainda. Se por exemplo, tivermos uma solicitação de pouca memória, e não tivermos uma pequena região livre, devemos subdividir a região maior em dois parceiros para atender tal solicitação. Todas as alocações de memória no kernel ocorrem tanto de forma estática, na qual é feita por drives que reservam uma área de memória adjacente em tempo de inicialização do sistema,como também de forma dinâmica feita pelo alocador de páginas. A gerência de memória possui subsistemas importantes do kernel: o alocador de tamanho variável kmalloc, e os dois caches de dados persistentes do kernel, o cache de páginas e o cache-buffer. O kmalloc aloca páginas inteiras sob demanda, mas depois divide em partes menores. Este serviço tem utilidade para solicitações de diferentes tamanhos, onde o tamanho não é conhecido com antecedência e pode corresponder a poucos bytes e não a uma página inteira. Uma função que queira alocar memória deve passar uma prioridade de solicitação para a função alocação. As regiões das memórias solicitadas pelo sistema de kmalloc ficam permanentemente alocadas até que sejam explicitamente liberadas. Outra forma de alocar memória no Linux é a alocação de placas. Uma placa é utilizada para alocar a memória para estruturas de dados do kernel e é composta por uma ou mais páginas fisicamente contínuas. Um cache é formado por uma ou mais placas e existe um para cada estrutura de dados. Quando um cache é criado, um determinado número de objetos é alocado a ele e o algoritmo de alocação de placas utiliza caches para armazenar esses objetos do kernel. No Linux, uma placa pode estar em um dos três estados possíveis: Cheia: todos os objetos na placa estão marcados como utilizados; Vazia: todos os objetos na placa estão marcados como livres; Parcial: A placa consiste tanto em objetos livres como objetos utilizados.

16 O alocador age primeiro tentando atender a solicitação com o objeto livre de uma placa parcial. Se não existir qualquer objeto, é atribuído um objeto livre a partir de uma placa vazia. Se não existirem placas vazias disponíveis, uma nova placa é alocada a partir das páginas físicas contíguas e atribuída a um cache. O cache-buffer e o sistema de memória virtual também fazem seu próprio gerenciamento de memória. O cache-buffer é o principal cache do kernel para dispositivos orientados a blocos e é o mecanismo principal através do qual é realizado I/O para estes dispositivos. Este mecanismo aloca páginas inteiras de conteúdo de arquivos em caches e não é limitado aos dispositivos de blocos. Ele também pode alocar em caches os dados da rede. Já o sistema de memória virtual gerencia o conteúdo do espaço de endereçamento virtual de cada processo. Esses dois sistemas interagem fortemente uns com os outros. 7.2 MEMÓRIA VIRTUAL A técnica de memória virtual foi criada para permitir a execução de vários processos que não estejam necessariamente armazenados por inteiro na memória principal, aumentando a capacidade de multiprocessamento de um sistema de computação. A implementação é feita de duas formas: com paginação sob demanda ou com segmentação sob demanda. As versões mais modernas do UNIX, baseiam-se na paginação, que é a transferência de páginas individuais de memória virtual entre memória física e o disco. O kernel do Linux gerencia sua própria memória e, também, o espaço de endereçamento do usuário, mantendo o espaço de endereços visível para cada processo. As páginas de memória virtual são criadas sob demanda (paginação sob demanda). O gerenciador de memória virtual possui duas visões separadas do espaço de endereços de um processo: como um conjunto de regiões separadas e como um conjunto de páginas. A primeira, do espaço de endereços de um processo como um conjunto de regiões separadas, é uma visão lógica. Ela descreve as instruções que o sistema de memória virtual recebeu em relação ao formato do espaço de endereços. Esse espaço de endereços é composto de um conjunto de regiões não sobrepostas. Cada região é descrita por uma única estrutura vm_area_struct que define as propriedades da região, incluindo permissões de leitura, gravação e execução na região. A outra visão é a do espaço de endereços como um conjunto de páginas que armazena as páginas em tabela. As entradas de tais tabelas definem a localização exata corrente de cada página da memória virtual. A visão física é gerenciada por um conjunto de rotinas invocadas a partir dos manipuladores de interrupções de software do kernel sempre que um processo tentar acessar a página que no momento não esteja presente na tabela de páginas. O Linux implementa diferentes tipos de regiões de memória virtual. A memória da retaguarda (memória secundária) descreve de onde provém as páginas para uma região. As regiões da memória costumam ser reservadas tanto por um arquivo como por nada. A região reservada por nada são conhecidas como memória de demanda zero, ou seja, quando um processo tenta ler uma página em tal região, é retornada uma página de memória preenchida de zeros. Já uma região reservada por um arquivo atua como uma

17 porta de visualização para uma seção de arquivo. Por exemplo, quando um processo tentar acessar uma página dentro da região, a tabela de páginas será ocupada com o endereço de uma página dentro do cache de páginas do kernel, correspondente ao deslocamento apropriado do arquivo. A região é também definida por sua reação às gravações. O mapeamento de uma região no espaço de endereçamento do processo pode ser compartilhado ou privado. Se um processo gravar de forma privada em região mapeada, o paginador verá que é necessária uma operação de cópia-após-gravação, para manter as alterações na estrutura do processo. Já as gravações de modo compartilhado resultam na atualização do objeto mapeado nessa região, fazendo com que a alteração possa ser vista por qualquer outro processo que estiver mapeando o objeto TEMPO DE VIDA DE UM ESPAÇO DE ENDEREÇAMENTO VIRTUAL Para a criação de um novo espaço de endereçamento virtual, o kernel tem duas opções: quando um processo executa um novo programa com a chamada de sistema exec( ) e quando é criado um novo processo a partir da chamada de sistema fork ( ). O primeiro caso é simples, pois quando um novo programa é executado, o processo recebe um espaço de endereçamento de memória virtual vazio e é tarefa das rotinas carregarem o programa para popularem o espaço. No segundo caso é mais complexo, pois tem a necessidade de criação de uma cópia completa do espaço de endereçamento virtual do processo já existente. O kernel copia do processo pai, seus descritores vm_area_struct, ocasionando a criação de um novo conjunto de tabelas de páginas para o filho. Essas tabelas são copiadas diretamente nas tabelas do filho, incrementando-se o contador de referência de cada página. Após o fork( ), pai e filho compartilham as mesmas páginas físicas de memória nos seus espaços de endereços PERMUTA E PAGINAÇÃO Um sistema de memória virtual possui a tarefa importante de definir a expulsão de páginas da memória física para o disco, quando a memória for necessária. O mecanismo utilizado é o de paginação. Nele, o algoritmo decide que páginas gravar no disco e quando gravá-las. Logo depois, a paginação realiza a transferência e pagina os dados de volta na memória física quando forem necessários novamente. A política de expulsão utiliza uma versão modificada do algoritmo-padrão do relógio. No entanto, o Linux utiliza um relógio de passos múltiplos e toda página possui uma idade que é ajustada a cada passo do relógio. A idade mede a juventude da página ou quanto a página realizou recentemente. Quando as páginas forem mais acessadas elas terão uma maior idade, mas enquanto as páginas forem pouco acessadas a idade tenderá a zero. Esse mecanismo de contagem da idade permite ao paginador expulsar páginas que são freqüentemente menos utilizadas.

18 7.3 MAPEAMENTO DE PROGRAMAS NA MEMÓRIA A chamada de sistema exec ( ) faz a execução de programas do usuário pelo kernel. Ela ordena ao kernel que execute um novo programa dentro do processo corrente, superpondo o contexto de execução corrente com o contexto inicial do novo programa. O primeiro job deste serviço do sistema é verificar se o processo que invocou o novo programa possui direitos de permissão para o arquivo que está sendo executado e depois o kernel invoca uma rotina de carga para começar a execução do programa. As páginas do arquivo binário são mapeadas em regiões de memória virtual. Quando o programa tentar acessar uma página, irá ocorrer um erro de página com o objetivo de carregar a página desejada na memória física. A figura 7.3, apresenta o formato típico das regiões de memória estabelecidas pelo carregador ELF. Um arquivo binário no formato ELF, consiste em um cabeçalho seguido por diversas seções de páginas alinhadas. O carregador ELF funciona lendo o cabeçalho e mapeando as seções do arquivo em regiões separadas da memória virtual. O kernel permanece em uma região reservada numa das extremidades do espaço de endereços. Os programas em modalidade usuário não podem acessar a memória virtual do kernel. O restante da memória virtual é disponibilizado às aplicações que podem utilizar as funções de mapeamento em memória do kernel para criar regiões que mapeiam uma parte do arquivo ou que ficam disponíveis para os dados das aplicações. A função do carregador é estabelecer o mapeamento inicial na memória para permitir o início da execução do programa. As regiões que precisam ser inicializadas são a pilha e o texto do programa e suas regiões de dados. A pilha é criada no topo da memória virtual de modalidade usuário e cresce para baixo em direção aos endereços de numeração mais baixa. Na pilha, encontramos cópias das variáveis de argumentos e do ambiente, que são fornecidas pela chamada de sistema exec( ). As outras regiões são criadas perto da extremidade da base da memória virtual. Logo após, são mapeadas as seções de arquivo binário que contêm texto de programa ou dados de leitura. Depois das regiões de tamanho fixo, fica uma região de tamanho variável que os programas podem expandir conforme o necessário para manter dados alocados em tempo de execução. Após realizados todos os mapeamentos,o carregador inicializa o registrador contador de programas do processo com o ponto de início registrado no cabeçalho do ELF e o processo pode ser submetido ao escalonador. Quando o programa inicia sua execução, todos os conteúdos do arquivo binário já estão no espaço de endereços virtuais do processo.

19 Figura 2: Formato de memória para programas ELF 8 GERENCIAMENTO DE PROCESSOS Processo é definido por um programa em execução. Podemos dizer de uma maneira mais abrangente que é, na verdade, um programa ativo com seus recursos relacionados. Para o kernel o objetivo do processo é atuar como uma entidade para a qual os recursos de sistema (como tempo de CPU, memória e etc) são alocados. 8.1 CRIAÇÃO DE PROCESSO No Linux a criação do processo é feita pela chamada fork(). O processo-pai chama fork() e o processo filho é criado. O processo-pai segue sua execução e o processo-filho começa a partir de sua criação. O processo-pai e o processo-filho têm o PID, que é o identificador do processo único de cada processo, diferentes. Um programa é executado em seguida da chamada fork(), para isso a família exec() de chamada de função é usada para assim criar um novo espaço de endereço e carregar um novo programa nele. A chamada exit() é usada quando um programa termina sua execução ou seja o processo é encerrado e são liberados seus recursos. A chamada wait() informa ao processo-pai sobre o estado do processo-filho terminado. Quando um processo termina, ele é posto no estado Zumbi que representa que o processo filho terminou até que o processo-pai chame wait() ou waitpid(). A chamada fork() é implementada via chamada clone() no Linux, que possui uma série de flags que especificam que recursos devem ser compartilhados entre o processo-pai e o processo-filho. A chamada clone() é invocada através das chamadas

20 fork(), vfork() e clone(). A chamada clone(), por sua vez, chama a do_fork() que é definida em <kernel/fork.c>. E em seguida é chamada a função copy_process() e é iniciada a execução dos processos. 8.2 DESCRITOR DE PROCESSO E A ESTRUTURA DE TAREFAS Uma lista de tarefas (encadeada e duplamente circular) é armazenada no kernel onde cada elemento é um descritor de processo do tipo struct_task_struct que é definido em <linux/sched.h> e contém todas as informações sobre um processo específico. O bloco de processo é implementado nesta estrutura. Na figura 3 abaixo temos o descritor de processo e a lista de tarefas: Figura 3: Descritores. Os estados dos processos no kernel do Linux podem ser vistos na figura 4 a seguir: Figura 4: Estados dos processos. Para mudar de estado o mecanismo que o kernel utiliza é a função set_task_state(task_state), que seta a tarefa para o estado task_state.

21 8.3 CONTEXTO DO PROCESSO No momento que um programa executa uma chamada de sistema ou dispara uma execução ele entra no espaço do kernel, dessa forma, o kernel é dito operando em contexto do processo. Chamas de sistema e tratadores de execução são interfaces do kernel. Através de um desses dois recursos pode-se dar início a uma execução de processo. 8.4 ÁRVORE DA FAMÍLIA DE PROCESSOS No Linux, os processos são descendentes do processo init que possui PID=1. O init é inicializado no kernel no último passo do processo boot, que, em seguida, lê os scripts de inicialização e executa mais programas completando o processo de boot. O relacionamento entre processos é armazenado no descritor de processo. Cada task_struct tem um ponteiro para a task_struct do pai denominado parent e uma lista de filhos denominada children. É possível seguir a hierarquia de qualquer processo no sistema já que a lista de tarefa é uma lista duplamente encadeada circular. 8.5 IMPLEMENTAÇÃO DE THREADS No Linux não há conceito de threads, os threads são uma forma de compartilhar recursos entre processos. Nas chamadas de sistema clone() são passadas flags correspondentes aos recursos específicos a sempre compartilhados: clone(clone_vm CLONE_FS CLONE_SIGHAND); CLONE_VM: pai e filho compartilham o espaço de endereçamento; CLONE_FS: pai e filho compartilham informações do sistema de arquivos; CLONE_FILES: pai e filho compartilham arquivos abertos; CLONE_SIGHAND: pai e filho compartilham tratadores de sinais bloqueados. 8.5 COMUNICAÇÃO INTERPROCESSO O mecanismo padrão que o Linux utiliza para informar a um processo que ocorreu um evento é o sinal. Para se comunicar com processos em execução o kernel utiliza a comunicação sobre eventos assíncronos recebidos através de estado de scheduling e de estruturas wait_queue. É o que permite que processos em modalidade de kernel informem uns aos outros sobre eventos relevantes e também permitem que eventos sejam gerados por drivers de dispositivos ou pelo sistema de rede. O mecanismo de pipe do Unix permite que um processo filho herde um canal de comunicação de seu processo-pai. No Linux, cada pipe tem um par de filas de espera para sincronizar o leitor e gravador. Um conjunto de recursos de rede também é definido pelo Unix que podem enviar fluxos de dados para processos locais e remotos. A memória compartilhada é outro método de comunicação entre processos que oferece uma maneira rápida de comunicar grandes ou pequenas quantidades de dados.

22 A principal desvantagem da memória compartilhada é que não oferece sincronização sozinha. Os processos podem criar ou remover uma região compartilhada vista como objeto pelo Linux. É tratado como espaço de endereçamento independente. 9 ESCALONAMENTO DE PROCESSO O escalonador é o mecanismo que define qual processo será executado. Ao fazer isso o escalonador é responsável pelo melhor desempenho do sistema. O sistema Linux é multitarefa e preemptivo. Ou seja, decide quando um processo deve interromper a execução e um novo processo será escalonado para retomar a execução. O timeslice é o tempo que o processo executa antes de ser interrompido. Ele concede a cada processo pronto para ser executado fatias de tempo do processador. Para realizar o escalonamento é necessário algumas políticas: Política de escalonamento: É o procedimento usado para otimizar a utilização do tempo do escalonador. Existem duas classificações para o processo: Processo I/O-bound: utilizam a maior parte do tempo submetendo e esperando por requisições de I/O. Processo CPU-bound: utilizam a maior parte do tempo executando códigos. O Linux favorece mais os processos I/O-bound do que o CPU-bound. Para o Linux, existem dois algoritmos separados de scheduling de processo. Um algoritmo de compartilhamento de tempo, afim de ter um scheduling justo e preemptivo entre múltiplos processos, e outro que é projetado para tarefas de tempo real. 9.1 ALGORITMO DE COMPARTILHAMENTO DE TEMPO É baseado em prioridade com prioridades de dois intervalos de prioridade separados: intervalo de tempo real (0-99) e um intervalo de valor de ajuste ( ). Os valores numericamente mais baixos indicam prioridades mais altas. Neste caso, atribuem parcelas de tempo mais longas a tarefas de prioridade mais alta e parcelas de tempo mais curtas a tarefas de prioridade mais baixa. Em virtude de o sistema operacional Linux ser preemptivo, ao entrar no estado task_running, o kernel verifica se a sua prioridade é maior que a prioridade do processo que está atualmente executando. Caso esteja, o escalonador é invocado para interromper o processo em execução e colocar para executar um novo processo que estiver pronto para executar. No momento que o timeslice chegar a 0 ele será interrompido e o escalonador é novamente invocado para selecionar o novo processo. A estrutura de dados básica no escalonador está na fila de execução que é definida como struct runqueue. Cada fila de execução contém dois vetores de prioridade (ativo e expirado). Estes vetores são definidos em kernel/sched.c com struct prio_array. Cada um desses arrays incluem uma lista de tarefas indexadas de acordo com a prioridade, ou seja, o scheduling seleciona a tarefa que tem a maior prioridade no array ativo para que passe para o estado de execução da CPU. O ativo contém todas as tarefas com tempo

23 remanescente em suas parcelas de tempo e o expirado contém todas as tarefas expiradas. Quando o array ativo estiver vazio, o de menor prioridade toma o seu lugar. A troca de contexto no Linux é realizada pela função context_switch() definida em kernel/sched.c. 9.2 ALGORITMO PROJETADO DE TEMPO REAL Neste caso, são implementadas duas classes de scheduling requeridas pelo POSIX: o primeiro a chegar é o primeiro a ser servido (FCFS) e round-robin. Cada processo tem prioridade e classe de scheduling. O algoritmo sempre executa os processos respeitando suas prioridades, ou seja, o processo de maior prioridade é executado primeiro que o processo de menor prioridade. O scheduling oferece garantias estritas quanto às prioridades relativas dos processos de tempo real, mas o kernel não oferece qualquer garantia quanto a rapidez com que um processo de tempo real será alocado ao scheduling uma vez que se torne executável. No Linux, existe uma família de chamadas de sistema para gerenciar os parâmetros do escalonador, algumas delas estão na tabela 5. Tabela 5: Algumas chamadas do sistema relacionadas ao escalonador. 9.3 SICRONIZAÇÃO DO KERNEL A sincronização do Kernel requer uma estrutura de que permita que as tarefas do kernel sejam executadas sem violar a integridade dos dados compartilhados. O Linux fornece spinlock e semáforos (bem como versões de leitor e gravador) para fechamento do kernel. O spinlock é usado para períodos curtos. Para as máquinas com um único processador é usada a habilitação e desabilitação da preempção do kernel. O kernel não é suscetível a sofrer com preempção se estiver mantendo um lock. Cada tarefa do sistema tem uma estrutura thread-info que inclui o campo preempt_count que é o contador indicando o número de locks sendo mantidos pela tarefa. Se for maior que zero não é seguro fazer preempção e se for igual o kernel pode ser interrompido tendo em vista que não existe chamadas pendentes para preempt_disable(). Os semáforos são utilizados quando um lock for mantido por longos períodos.

24 As seções críticas são outra técnica de proteção que ocorrem em rotinas de serviço de interrupção. Para isto utilizamos o hardware de controle de interrupções do processador. Ao desabilitar interrupções ou utilizar spinlocks durante a seção critica, o kernel garante seu prosseguimento sem correr o risco de acesso simultâneo às estruturas de dados compartilhadas. Possuem a desvantagem de serem dispendiosas. A arquitetura de sincronização usada pelo kernel do Linux permite a execução de seções criticas longas sem que as interrupções sejam desabilitadas durante toda a seção critica. O que é útil no código de conexão de rede. Para o perfeito funcionamento do sistema, temos ainda as rotinas de serviços. As rotinas de serviços são separadas em duas seções: Metade do topo: é executada com instruções recursivas desabilitadas. As instruções de mais altas prioridades podem interromper a rotina e as de mesma prioridade ou de baixa prioridade são desabilitadas. Metade da base: uma rotina de serviço é executada, com todas as interrupções habilitadas por um scheduler miniatura que garante que essas metades da base nunca interromperam a si mesmas. O scheduler da base é invocado automaticamente sempre que uma rotina de serviço de interrupção é encerrada. Isto garante que o kernel pode concluir qualquer processamento complexo que precise ser executado em resposta a uma interrupção sem preocupações quanto a ser interrompido. A arquitetura é completada com o mecanismo para desabilitar metade das bases selecionadas enquanto o código normal do kernel estiver em execução em foreground. 10 API DE CHAMADAS DO SISTEMA Chamadas do sistema fornecem uma interface de programação para os serviços fornecidos pelo SO. São acessadas pelos programas por meio de uma interface de programação de aplicações (Application Program Interface - API), ao invés de uma chamada direta do sistema. A API especifica um conjunto de funções que estão disponíveis para o programador de aplicações, inclusive os parâmetros que são passados para cada função e os valores de retorno que o programador pode esperar. Praticamente todas as versões do UNIX utilizam uma API denominada POSIX (Portable Operating System Interface). Um dos benefícios de se programar de acordo com as funções de uma API é a portabilidade do programa. Quando um programador projeta um programa usando uma API ele espera que seu programa seja compilado e executado em qualquer sistema que utilize aquela mesma API sem nenhum problema. Outro fato importante é que as chamadas de sistemas originais normalmente são mais detalhadas e difíceis de manipular do que através das funções disponíveis em uma API.

25 Figura 5: Exemplo de chamadas de sistema para copiar o conteúdo de um arquivo para outro. A lista das chamadas de sistema do Linux pode ser encontrada no arquivo /usr/include/asm/unistd.h ou pode ser obtida com o comando "man syscalls" OS TIPOS DE CHAMADAS DE SISTEMA As chamadas de sistemas podem ser divididas em seis categorias: Controle de processo; Manipulação de arquivo; Manipulação de dispositivo; Manutenção de informação; Comunicações; Proteção. Cada um dos tipos de chamadass de sistema dá suporte a um tipo especifico de funções CONTROLE DE PROCESSO As funções de chamadas de sistema do tipo controle de processos servem para dar suporte à manipulação de processos. Normalmente, neste tipo de chamadas de sistema, estão funções do tipo: end, abort, load, execute, create process, terminate process, etc MANIPULAÇÃO DE ARQUIVOS Funções deste tipo dão suporte à manipulação de arquivos. Como por exemplo: open, read, write, close, create file, delete file, etc.

26 MANIPULAÇÃO DE DISPOSITIVOS São as funções que gerenciam o uso de dispositivos pelos processos. Exemplo: request device, release device, read, write, reposition MANUTENÇÃO DE INFORMAÇÃO As funções que fazem parte deste tipo de chamadas de sistema se encarregam de manipular informações entre os processos, o sistema operacional e o usuário. São funções do tipo: getpid, alarm, sleep COMUNICAÇÕES São funções que tratam das comunicações entre processos, através de memória compartilhada e/ou transmissão de mensagens. Entre estas funções, estão funções como: send, receive, pipe, shmget, mmap, etc PROTEÇÃO As funções de proteção criam um mecanismo de política de controle de acesso à recursos. Por exemplo: chmod, umask chown. Na tabela 6 temos vários exemplos de chamadas de sistemas usadas nos sistemas Windows e UNIX, vale ressaltar que as utilizadas pelo Linux são as mesmas utilizadas pelo UNIX. Tabela 6: Tipos de chamadas de sistema.

27 11 ENTRADA E SÁIDA Do ponto de vista do usuário, o sistema de I/O é próximo do sistema Unix. Os dispositivos são divididos em três classes: dispositivos de blocos, dispositivos de caracteres e dispositivos de rede. Dispositivo de blocos: São os dispositivos que permitem o acesso aleatório a blocos de dados de tamanho fixos completamente independentes, incluindo discos rígidos, CD-ROM s e memória flash. São utilizados para armazenar sistemas de arquivos, mas em acesso direto a um dispositivo de blocos também é permitido de modo que os programas possam criar e reparar o sistema de arquivos que o dispositivo contém. Podem ser acessados aleatoriamente. Dispositivo de caracteres: Incluem dispositivos como mouses e teclados. E esses dispositivos são acessados serialmente. Dispositivo de rede: Uma conexão para o subsistema de conexão de rede do kernel será aberta para comunicação indireta, pois os usuários não podem transferir dados para dispositivo de rede. 12 SEGURANÇA NO LINUX Em termos de segurança temos dois problemas a serem considerados, são eles a autenticação e o controle de acesso. Em linhas gerais a autenticação garante que só quem possui direito de acesso ao sistema são usuários autenticados e o controle de acesso fornece um mecanismo de verificação de acesso dos usuários à determinadas partições e funções O PROBLEMA DA AUTENTICAÇÃO A autenticação no Linux utiliza o mesmo padrão de autenticação do UNIX. Que, por sua vez, consiste na execução de um arquivo de senhas publicamente legíveis. No processo de codificação e armazenamento desse arquivo de forma a garantir a segurança da senha de um usuário, combina os caracteres digitados pelo usuário, no momento do cadastramento da senha com um valor aleatório salt. O resultado dessa combinação é ainda codificado utilizando uma função unidirecional e só depois disso é armazenado num arquivo destinado ao armazenamento das senhas de usuários. Uma utilização desse mecanismo têm apresentado problemas quanto a segurança dos arquivos armazenados pois, além das senhas serem limitadas a oito caracteres, o número de valores de salt eram tão baixos que algum invasor poderia criar um algoritmo que decodificasse o arquivo de senhas com relativa facilidade apenas combinando um banco de dados com senhas comumente utilizadas com outro banco de dados com todos os valores possíveis de salt. Visando contornar essa situação, os fornecedores do UNIX criaram o PAM (em português: Módulos de Autenticação Conectáveis) que consiste num novo mecanismo de segurança que segundo o livro de referência [1], é baseado em uma biblioteca compartilhada que pode ser utilizada por qualquer componente do sistema que precise autenticar usuário. e podem especificar métodos de autenticação, restrições de contas, funções de estabelecimento de sessões e funções de mudança de senhas. O Linux faz uso do mecanismo PAM.

28 12.2 O PROBLEMA DO CONTROLE DE ACESSO Tanto nos sistemas UNIX quanto nos sistemas Linux, o controle de acessos é feito utilizando-se dois identificadores numéricos específicos, um identificador numérico destinado aos usuários (UID-user identifier) e outro destinado ao grupo (GIDgroup identifier). Devido ao fato do controle de acesso ser aplicado a diversos objetos, no sistema UNIX, podemos ter dois tipos de direitos conferidos aos processos que estão em andamento. O direito de usuário, sobre um objeto, é conferido ao processo que possuir seu UID igual ao UID do objeto. Se por outro lado, o UID não for igual e tiver algum GID do processo coincidindo com o do objeto então, é conferido o direito de grupo ao processo sobre o objeto. Caso nenhumas das duas possibilidades ocorrerem, então é dado ao processo o direito universal sobre o objeto. No caso do sistema Linux, independente dos diretos de acesso que forem atribuídos aos processos, o controle de acesso atribui, uma máscara de proteção aos objetos. Essa máscara de proteção serve para especificar as quais modalidade de acesso serão feitas, podendo ser: leitura, gravação ou execução. No caso do acesso do UID privilegiado root, seus processos têm acesso automático a qualquer objeto do sistema além de receberem permissões para execução de operações privilegiadas. Esse mecanismo impede que usuários comuns acessem determinados recursos do sistema, um exemplo são os recursos internos essenciais do kernel, pois só quem possui permissão de utilizá-los, é o UID root. O Linux implementa o mecanismo setuid padrão do UNIX, este consiste em permitir que um programa execute privilégios diferentes dos privilégios dos usuários que estão executando um programa ativo. Como implementação própria, o Linux fornece também um mecanismo para permitir uma transmissão flexível de direitos de um programa para outro, ou seja, permite que um cliente passe o acesso a um único arquivo para algum processo de servidor sem conceber ao processo qualquer outro privilégio. Esse mecanismos passou a ser implementado também em versões mais atuais do sistema UNIX. 13 PROGRAMAS UTILIZADOS NO LINUX Os programas que podem ser usados no Linux são semelhantes aos programas que se utiliza no Windows. A grande vantagem do Linux é que as distribuições vêm com uma grande quantidade de aplicativos e a dificuldade passa a ser na escolha dos programas mais usuais. A seguir apresentaremos alguns programas usados no Linux: 13.1 OPENOFFICE Ele é composto pelo Writer (editor de texto), Calc (planilha), Draw (programa de desenho vetorial), Impress (gerador de apresentações) e Math (editor de equações). Possui compatibilidade com mais formatos diferentes e também salva o arquivo em PDF.

29 Figura 6: OpenOffice. Para instalar acesse: Outros programas: Koffice: É uma estrutura alternativa mais simples que o OpenOffice. Abiword: É um dos considerados mais próximos do Word GIMP O GIMP é um editor de imagens similar ao PhotoShop. Figura 7: GIMP. Pode instalar acesse: ou QCAD É um aplicativo usando para elaboração para projetos em duas dimensões. Como desenhos técnicos como plantas de prédios, interiores, esquemas e diagramas.

30 Figura 8: QCAD. Para instalar acesse: OPERA É um navegador rápido e prático, que está integrado a todos os serviços web e tem diversas funcionalidades extras. Como além de navegar na web, bate-papo, compartilha arquivos e imagens e etc. Figura 9: Opera. Para instalar acesse: MOZILLA THUNDERBIRD É um cliente de s e notícias da Mozilla Foundation, mesma criadora do Mozilla Firefox.

31 Figura 10: Mozilla Thunderbird. Para instalar acesse: EVOLUTION O Evolution é dedicado para o público corporativo, que inclui funções de agenda, suporte a Palms e, principalmente, suporte a LDAP e servidores MS Exchange, o que permite a integração com a estrutura de e gerenciamento de tarefas usadas em muitas empresas. Figura 11: Evolution. Para instalar acesse: KAFFEINE O Kaffeine é o player de mídia padrão do KDE, com capacidade de exibir vídeos em vários formatos, música, DVDs e até TV, através de uma placa de captura.

32 Figura 12: Kaffeine. Para instalar acesse: MPLAYER Ganhou fama por ter sido o primeiro player de vídeo "completo" para Linux, capaz de exibir vídeos na maioria dos formatos e DVDs protegidos.é um dos players mais usados, ainda que não venha incluído por padrão na maioria das distribuições, que optam em usar o Kaffeine. Figura 13: Mplayer. Para instalar acesse: K3B É utilizado para gravação de CDs e DVDs no Linux.

33 Figura 14: K3B. Para instalar acesse: 14 CONCLUSÕES Diante do que foi exposto podemos observar que o Linux é uma excelente alternativa para os que desejam utilizar os recursos de um sistema operacional. Pelo fato da gratuidade de utilização e por possuir uma grande quantidade de softwares estáveis necessários para execução de tarefas e trabalhos, vem tendo grande aceitação no mercado e dessa forma vem sendo muito utilizado. 15 BIBLIOGRAFIA [1] Nemeth E. & Snyder G. & Hein T.R., Manual completo do Linux Guia do Administrador, 2 a Ed., 2004 [2] Fórum Ubuntu. <http://ubuntuforum-br.org/index.php?topic= >. Acessado em: 17 de maio de [3] <http://conectiva.com/doc/livros/online/10.0/servidor/pt_br/ch03s03.html>. Acessado em: 17 de maio [4] Silberschatz A. & Gagne G. & Galvin P.B., Fundamentos de Sistemas Operacionais, [5] <http://pt.wikipedia.org/wiki/univac_1107>. Acessado em: 15 de maio de [6] <http://www.museudocomputador.com.br/1950dc_1960dc.php>. Acessado em: 15 de maio de 2012.

Laboratório de Redes de Computadores e Sistemas Operacionais

Laboratório de Redes de Computadores e Sistemas Operacionais Laboratório de Redes de Computadores e Sistemas Operacionais O Sistema de Arquivos Fabricio Breve O que você encontra no Sistema de Arquivos do Linux... Processos Portas seriais Canais de comunicação entre

Leia mais

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Partição Partição primária: Partição estendida: Discos básicos e dinâmicos

Partição Partição primária: Partição estendida: Discos básicos e dinâmicos Partição Parte de um disco físico que funciona como se fosse um disco fisicamente separado. Depois de criar uma partição, você deve formatá-la e atribuir-lhe uma letra de unidade antes de armazenar dados

Leia mais

Gerenciamento de ES e Sistema de Arquivos do Windows 2000

Gerenciamento de ES e Sistema de Arquivos do Windows 2000 1 Gerenciamento de ES e Sistema de Arquivos do Windows 2000 Gerenciador de E/S Objetivo é fornecer uma estrutura de modo eficiente para lidar com a grande variedade de dispositivos Bastante relacionado

Leia mais

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc.

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc. 1 1.0 Kernel O kernel (núcleo) representa o coração do Sistema Operacional. Atribuições do kernel: - gerenciamento dos arquivos em disco; - inicializar programas e executá-los; - alocar e gerenciar memória

Leia mais

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux SOFTWARE LIVRE A liberdade de executar o programa, para qualquer propósito. A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades. Acesso ao código-fonte é um pré-requisito

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

16:21:50. Introdução à Informática com Software Livre

16:21:50. Introdução à Informática com Software Livre 16:21:50 Introdução à Informática com Software Livre 1 16:21:50 Hardware & Software 2 16:21:50 Hardware Hardware é a parte física de um computador, é formado pelos componentes eletrônicos, como por exemplo,

Leia mais

Campus - Cachoeiro Curso Técnico de Informática. Sistema de Arquivos. Prof. João Paulo de Brito Gonçalves

Campus - Cachoeiro Curso Técnico de Informática. Sistema de Arquivos. Prof. João Paulo de Brito Gonçalves Campus - Cachoeiro Curso Técnico de Informática Sistema de Arquivos Prof. João Paulo de Brito Gonçalves Introdução É com o sistema de arquivos que o usuário mais nota a presença do sistema operacional.

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Julgue os itens a seguir referentes a conceitos de software livre e licenças de uso, distribuição e modificação.

Julgue os itens a seguir referentes a conceitos de software livre e licenças de uso, distribuição e modificação. Julgue os itens a seguir referentes a conceitos de software livre e licenças de uso, distribuição e modificação. 1.Todo software livre deve ser desenvolvido para uso por pessoa física em ambiente com sistema

Leia mais

7 Processos. 7.1 Introdução

7 Processos. 7.1 Introdução 1 7 Processos 7.1 Introdução O conceito de processo é a base para a implementação de um sistema multiprogramável. O processador é projetado apenas para executar instruções, não se importando com qual programa

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Aula 01 Visão Geral do Linux

Aula 01 Visão Geral do Linux Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina Administração de Redes de Computadores Aula 01 Visão Geral do Linux Prof. Gustavo Medeiros de Araujo Profa.

Leia mais

Sistema de Arquivos do Windows

Sistema de Arquivos do Windows Registro mestre de inicialização (MBR) A trilha zero do HD, onde ficam guardadas as informações sobre o(s) sistema(s) operacionais instalados. Onde começa o processo de inicialização do Sistema Operacional.

Leia mais

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar Software Livre Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar Linux Licença GPL (Licença Pública Geral) Linux Licença GPL (Licença Pública Geral) - A liberdade de executar

Leia mais

Ciclo de Vida de um Processo

Ciclo de Vida de um Processo Nas aulas anteriores Ciclo de Vida de um Processo Marcelo Johann Conceito de Processo Mecanismo de Programação em C/UNIX Continuando Interrupções TRAP Chaveamento de Contexto Chamadas de Sistema INF01142

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

Introdução a Sistemas Abertos

Introdução a Sistemas Abertos Introdução a Sistemas Abertos Apresentação filipe.raulino@ifrn.edu.br Sistemas Abertos Qualquer programa de computador que pode ser usado, copiado, estudado e redistribuído inclusive com seu código fonte

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Arquivos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Conceituação de arquivos Implementação do sistemas de arquivo Introdução Sistema de

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Objetivos do Curso. Organização do Curso. Apresentação do Curso. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Objetivos do Curso. Organização do Curso. Apresentação do Curso. Pós Graduação em Projeto e Gerencia de Redes de Computadores 1 Pós Graduação em Projeto e Gerencia de Redes de Computadores Sistemas Operacionais de Redes I - Linux Prof.: Nelson Monnerat Apresentação do Curso 1 Objetivos do Curso Sistema Operacional Unix/Linux;

Leia mais

Sistema Operacional LINUX

Sistema Operacional LINUX SISTEMA OPERACIONAL Sistema Operacional LINUX Para que o computador funcione e possibilite a execução de programas é necessária a existência de um sistema operacional. O sistema operacional é uma camada

Leia mais

Introdução ao Linux. Professor Breno Leonardo G. de M. Araújo

Introdução ao Linux. Professor Breno Leonardo G. de M. Araújo Introdução ao Linux Professor Breno Leonardo G. de M. Araújo Sistema Operacional Linux Embora o Sistema Operacional Microsoft Windows ainda seja predominante no mercado de desktops e Notebooks,já é, bastante

Leia mais

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS I N F O R M Á T I C A Sistemas Operacionais Campus Itaqui-RS Sistemas Operacionais É o software que gerencia o computador! Entre suas funções temos: inicializa o hardware do computador fornece rotinas

Leia mais

Everson Scherrer Borges João Paulo de Brito Gonçalves

Everson Scherrer Borges João Paulo de Brito Gonçalves Everson Scherrer Borges João Paulo de Brito Gonçalves 1 Introdução ao Linux e Instalação do Ubuntu Linux História Em 1973, um pesquisador da Bell Labs, Dennis Ritchie, reescreveu todo o sistema Unix numa

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Para continuar, baixe o linux-vm aqui: http://www.gdhpress.com.br/downloads/linux-vm.zip

Para continuar, baixe o linux-vm aqui: http://www.gdhpress.com.br/downloads/linux-vm.zip Se, assim como a maioria, você possui um único PC ou notebook, uma opção para testar as distribuições Linux sem precisar mexer no particionamento do HD e instalar o sistema em dualboot, é simplesmente

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Sistema Operacional Conteúdo retirado do livro Sistemas Operacionais Marcos Aurélio Pchek Laureano Diogo Roberto Olsen

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Google File System. Danilo Silva Marshall Érika R. C. de Almeida

Google File System. Danilo Silva Marshall Érika R. C. de Almeida Google File System Danilo Silva Marshall Érika R. C. de Almeida Tópicos abordados Sistemas de arquivos Sistemas de arquivos distribuídos Google File System Gmail File System Linux Windows Gspace Referências

Leia mais

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema Sistemas Operacionais I Parte III Estrutura dos SOs Prof. Gregorio Perez gregorio@uninove.br 2007 Roteiro Serviços Estrutura dos Sistemas Operacionais Funções do Sistema Operacional Chamadas do Sistema

Leia mais

Sistemas de Arquivos. Sistemas de arquivos: Mecanismos para armazenamento on-line e acesso de dados e programas.

Sistemas de Arquivos. Sistemas de arquivos: Mecanismos para armazenamento on-line e acesso de dados e programas. Sistemas de Arquivos Sistemas de arquivos: Mecanismos para armazenamento on-line e acesso de dados e programas. Sistemas de Arquivos Um sistema de arquivos implica: Conceituação de arquivos e diretórios

Leia mais

Curso Técnico de Nível Médio

Curso Técnico de Nível Médio Curso Técnico de Nível Médio Disciplina: Informática Básica 3. Software Prof. Ronaldo Software Formado por um conjunto de instruções (algoritmos) e suas representações para o

Leia mais

FACULDADE DE TECNOLOGIA SENAC GOIÁS Gestão da Tecnologia da Informação. Daniel Augusto, Rodrigo Damasceno, Andrey Castro LINUX CENTOS

FACULDADE DE TECNOLOGIA SENAC GOIÁS Gestão da Tecnologia da Informação. Daniel Augusto, Rodrigo Damasceno, Andrey Castro LINUX CENTOS FACULDADE DE TECNOLOGIA SENAC GOIÁS Gestão da Tecnologia da Informação Daniel Augusto, Rodrigo Damasceno, Andrey Castro LINUX CENTOS Lucília Gomes Ribeiro GOIÂNIA, 2015 Daniel Augusto, Rodrigo Damasceno,

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

Introdução ao Linux: Parte I

Introdução ao Linux: Parte I Data: Introdução ao Linux: Parte I Marcelo Ribeiro Xavier da Silva marceloo@inf.ufsc.br Histórico 3 Origem do GNU Linux Em 1983, Richard Stallman fundou a Free Software Foundation, com o intuito de criar

Leia mais

Nível 3 Sistema Operacional

Nível 3 Sistema Operacional Nível 3 Sistema Operacional Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Organização de Computadores Prof. André Luiz 1 Nível

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias Sistemas Operacionais Microsoft Windows R Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias Histórico Início da década de 80 MS-DOS (vai evoluindo, mas sem nunca deixar de ser um SO orientado à linha

Leia mais

Informática Fácil NOÇÕES DE LINUX. Prof.: Adelson Gomes Ferraz Antonio Carlos Reis

Informática Fácil NOÇÕES DE LINUX. Prof.: Adelson Gomes Ferraz Antonio Carlos Reis Informática Fácil NOÇÕES DE LINUX Prof.: Adelson Gomes Ferraz Antonio Carlos Reis Cronologia 1. 1969 Univ Berkeley, Califórnia, cria-se o SO UNIX para uso geral em grandes computadores 1. Década de 70

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 03: Estruturas dos SOs Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com OBJETIVOS Descrever os serviços que um sistema operacional oferece aos usuários e outros sistemas

Leia mais

CESPE - 2012 - FNDE - Técnico em Financiamento e Execução de Programas e Projetos Educacionais

CESPE - 2012 - FNDE - Técnico em Financiamento e Execução de Programas e Projetos Educacionais CESPE - 2012 - FNDE - Técnico em Financiamento e Execução de Programas e Projetos Educacionais De modo semelhante ao Linux, o Windows é considerado um software microbásico. Uma característica desse tipo

Leia mais

Unix: Sistema de Arquivos. Geraldo Braz Junior

Unix: Sistema de Arquivos. Geraldo Braz Junior Unix: Sistema de Arquivos Geraldo Braz Junior 2 Arquivos Um arquivo é visto pelo SO apenas como uma seqüência de bytes: nenhuma distinção é feita entre arquivos ASCII, binários, etc.; Muitos programas

Leia mais

Estudo de Caso 2: Windows Vista

Estudo de Caso 2: Windows Vista Faculdades Integradas de Mineiros Curso de Sistemas de Informação Sistemas Operacionais II Estudo de Caso 2: Windows Vista Grupo 4 Helder / Wagner / Frantyeis Junho/2010 O Windows usa uma estratégia Just-In-Time

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

1 http://www.li.facens.br/eletronica

1 http://www.li.facens.br/eletronica UNIX...2 1. HISTÓRICO...2 2. CARACTERÍSTICAS...3 3. ESTRUTURA DO SISTEMA...4 HARDWARE...4 KERNEL...4 BIBLIOTECA...4 UTILITÁRIOS...5 4. PROCESSO...5 5. SISTEMAS DE ARQUIVOS...6 ARQUIVOS E PATHNAMES...8

Leia mais

Laboratório de Redes de Computadores e Sistemas Operacionais

Laboratório de Redes de Computadores e Sistemas Operacionais Laboratório de Redes de Computadores e Sistemas Operacionais Linux: Introdução Fabricio Breve Introdução O que é Linux? Uma versão do UNIX (re-implementação do padrão POSIX) Principais diferenciais: Gratuito

Leia mais

ENDEREÇOS DE REDE PRIVADOS. 10.0.0.0 até 10.255.255.255 172.16.0.0 até 172.31.255.255 192.168.0.0 até 192.168.255.255. Kernel

ENDEREÇOS DE REDE PRIVADOS. 10.0.0.0 até 10.255.255.255 172.16.0.0 até 172.31.255.255 192.168.0.0 até 192.168.255.255. Kernel ENDEREÇOS DE REDE PRIVADOS Foram reservados intervalos de endereços IP para serem utilizados exclusivamente em redes privadas, como é o caso das redes locais e Intranets. Esses endereços não devem ser

Leia mais

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais Vicente Amorim vicente.amorim.ufop@gmail.com Sumário

Leia mais

Faculdades Senac Pelotas

Faculdades Senac Pelotas Faculdades Senac Pelotas Curso Superior de Tecnologia em Redes de Computadores Introdução a informática Alunos Daniel Ferreira, Ícaro T. Vieira, Licurgo Nunes Atividade 4 Tipos de Arquivos Sumário 1 Tipos

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas

Tecnólogo em Análise e Desenvolvimento de Sistemas Tecnólogo em Análise e Desenvolvimento de Sistemas O conteúdo deste documento tem como objetivos geral introduzir conceitos mínimos sobre sistemas operacionais e máquinas virtuais para posteriormente utilizar

Leia mais

Sistemas Embarcados. Filesystem Hierarchy Standard (FHS) Root filesystem. Aula 06

Sistemas Embarcados. Filesystem Hierarchy Standard (FHS) Root filesystem. Aula 06 Introdução Sistemas Embarcados Root File System Linux (kernel) é apenas uma parte de um sistema embarcado Preciso executa a inicialização do sistema e de aplicações Necessário montar o sistema de arquivos

Leia mais

Sistemas Operacionais de Arquitetura Aberta

Sistemas Operacionais de Arquitetura Aberta Sistemas Operacionais de Arquitetura Aberta Dailson Fernandes www.dailson.com.br contato@dailson.com.br Facebook: dailson.fernandes Twitter: @dailson_ Habilidades Instalar o sistema operacional; Instalar

Leia mais

Sistema Operacional Unidade 2 - Estrutura, dispositivos e sistema de arquivos do Linux

Sistema Operacional Unidade 2 - Estrutura, dispositivos e sistema de arquivos do Linux Sistema Operacional Unidade 2 - Estrutura, dispositivos e sistema de arquivos do Linux Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 ESTRUTURA DE DIRETÓRIOS LINUX... 3 SISTEMA DE ARQUIVOS E PARTICIONAMENTO...

Leia mais

Sistemas de Informação. Sistemas Operacionais 4º Período

Sistemas de Informação. Sistemas Operacionais 4º Período Sistemas de Informação Sistemas Operacionais 4º Período SISTEMA DE ARQUIVOS SUMÁRIO 7. SISTEMA DE ARQUIVOS: 7.1 Introdução; 7.2 s; 7.3 Diretórios; 7.4 Gerência de Espaço Livre em Disco; 7.5 Gerência de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Software Sistema de Entrada/Saída Princípios de Software Tratadores (Manipuladores) de Interrupções Acionadores de Dispositivos (Device Drivers)

Leia mais

SISTEMAS OPERACIONAIS. Sistemas de Arquivos Apostila 09

SISTEMAS OPERACIONAIS. Sistemas de Arquivos Apostila 09 SISTEMAS OPERACIONAIS Sistemas de Arquivos Apostila 09 1.0 INTRODUÇÃO Sistema de Arquivos: conceito de arquivo, métodos de acesso, estrutura de diretório, estrutura do sistema de arquivos, métodos de alocação

Leia mais

4. Conceitos Básicos de Computação: Sistemas Operacionais

4. Conceitos Básicos de Computação: Sistemas Operacionais Introdução à Computação 5910157 4. Conceitos Básicos de Computação: Sistemas Operacionais Prof. Renato Tinós Local: Depto. de Física e Matemática (FFCLRP/USP) 1 Principais Tópicos 4.1. Introdução aos Sistemas

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional O conteúdo deste documento tem por objetivo apresentar uma visão geral

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas

Leia mais

03/11/2011. Apresentação. SA do Linux. Sistemas de Arquivos. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux

03/11/2011. Apresentação. SA do Linux. Sistemas de Arquivos. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux Apresentação Administração de Sistemas Curso Tecnologia em Telemática Disciplina Administração de Sistemas Linux Professor: Anderson Costa anderson@ifpb.edu.br Assunto da aula Aspectos do Sistema de Arquivos

Leia mais

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Sistema de Arquivos Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Gerência de Arquivos É um dos serviços mais visíveis do SO. Arquivos são normalmente

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Entrada e Saída Drivers e s Norton Trevisan Roman Marcelo Morandini Jó Ueyama Apostila baseada nos trabalhos de Kalinka Castelo Branco, Antônio Carlos Sementille, Luciana A. F. Martimiano

Leia mais

INTRODUÇÃO A LINUX. Características Sistema operacional Software livre Criado em 1991 por Linus Torvalds Dividido em duas partes principais 26/11/2013

INTRODUÇÃO A LINUX. Características Sistema operacional Software livre Criado em 1991 por Linus Torvalds Dividido em duas partes principais 26/11/2013 1 2 INTRODUÇÃO A LINUX ADRIANO SILVEIRA ADR_SILVEIRA@YAHOO.COM.BR Características Sistema operacional Software livre Criado em 1991 por Linus Torvalds Dividido em duas partes principais Kernel núcleo do

Leia mais

Sistemas Operacionais Cap 2 Estruturas de Sistemas Computacionais

Sistemas Operacionais Cap 2 Estruturas de Sistemas Computacionais Estruturas de Sistemas Computacionais Por que estudar a arquitetura de sistemas computacionais? Talvez porque o comportamento de um sistema operacional está ligado aos mecanismos de E/S de um computador.

Leia mais

Revisão Aula 3. 1. Explique a MBR(Master Boot Record)

Revisão Aula 3. 1. Explique a MBR(Master Boot Record) Revisão Aula 3 1. Explique a MBR(Master Boot Record) Revisão Aula 3 1. Explique a MBR(Master Boot Record). Master Boot Record Primeiro setor de um HD (disco rígido) Dividido em duas áreas: Boot loader

Leia mais

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção Sistemas de Arquivos Funções de um SO Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção 2 Sistemas Operacionais Necessidade de Armazenamento Grandes quantidades

Leia mais

Estrutura de um Sistema Linux Moderno Padrões de um Sistema Linux. Prof. Claudio Silva

Estrutura de um Sistema Linux Moderno Padrões de um Sistema Linux. Prof. Claudio Silva Estrutura de um Sistema Linux Moderno Padrões de um Sistema Linux Estrutura de um Sistema Linux Por ter sua origem universitária, a forma como o Linux foi concebido é de perfeito agrado para o seu estudo.

Leia mais

Máquina de estados UNIX O

Máquina de estados UNIX O Estruturas Processos de Controle (Aula 5) Aula Interrupções Profa. Patricia Gerência fluxo, execução D. O Abstração passada Criação podendo de gerar hw e transição sw (mudança de CostaLPRM/DI/UFES que

Leia mais

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de Estruturas Processos de Controle (Aula 5) Aula Interrupções Profa. Patricia Gerência fluxo, execução D. O Abstração passada Criação podendo de gerar hw e transição sw (mudança de CostaLPRM/DI/UFES que

Leia mais

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

Leia mais

Sou o professor Danilo Augusto, do TIParaConcursos.net, e lá costumo trabalhar temas relacionados a Redes de Computadores e Sistemas Operacionais.

Sou o professor Danilo Augusto, do TIParaConcursos.net, e lá costumo trabalhar temas relacionados a Redes de Computadores e Sistemas Operacionais. Olá nobre concurseiro e futuro servidor público! Sou o professor Danilo Augusto, do TIParaConcursos.net, e lá costumo trabalhar temas relacionados a Redes de Computadores e Sistemas Operacionais. Essa

Leia mais

LISTA DE COMANDOS DO LINUX 1

LISTA DE COMANDOS DO LINUX 1 LISTA DE COMANDOS DO LINUX 1 Comandos para manipulação de diretório 1. ls Lista os arquivos de um diretório. 2. cd Entra em um diretório. Você precisa ter a permissão de execução para entrar no diretório.

Leia mais

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

ROM-BIOS Inicialização Sistemas de Arquivos Formatação ROM-BIOS Inicialização Sistemas de Arquivos Formatação 1 ROM-BIOS ROM-BIOS Basic Input/Output System (Sistema Básico de Entrada/Saída). O termo é incorretamente conhecido como: Basic Integrated Operating

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 1 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

Curso GNU/Linux. Instalação do Linux...2 O HD não possui nenhuma partição...3. Existe apenas uma partição com espaço livre...3

Curso GNU/Linux. Instalação do Linux...2 O HD não possui nenhuma partição...3. Existe apenas uma partição com espaço livre...3 Cesar Kállas - cesarkallas@gmx.net Curso GNU/Linux Realização CAECOMP Puc Campinas 2004 Capítulo 3 Instalação do Linux...2 O HD não possui nenhuma partição...3 O HD tem espaço livre não particionado...3

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 9-1. O KERNEL DO LINUX Nos sistemas GNU/Linux, todas as distribuições baseadas nos sistemas GNU/Linux existentes são compatíveis, graças ao uso de um kernel único desenvolvido por uma equipe de

Leia mais

FAT32 ou NTFS, qual o melhor?

FAT32 ou NTFS, qual o melhor? FAT32 ou NTFS, qual o melhor? Entenda quais as principais diferenças entre eles e qual a melhor escolha O que é um sistema de arquivos? O conceito mais importante sobre este assunto, sem sombra de dúvidas,

Leia mais

GUIA DE INSTALAÇÃO NETDEEP SECURE COM HYPER-V

GUIA DE INSTALAÇÃO NETDEEP SECURE COM HYPER-V GUIA DE INSTALAÇÃO NETDEEP SECURE COM HYPER-V GUIA DE INSTALAÇÃO NETDEEP SECURE COM HYPER-V 1- Visão Geral Neste manual você aprenderá a instalar e fazer a configuração inicial do seu firewall Netdeep

Leia mais

Figura 01 Kernel de um Sistema Operacional

Figura 01 Kernel de um Sistema Operacional 01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

Leia mais

Linux. Wagner de Oliveira

Linux. Wagner de Oliveira Linux Wagner de Oliveira Um computador, uma mesa, um usuário. Duas pessoas não podem trabalhar em paralelo, executando o Microsoft Word na mesma máquina, simultaneamente. Windows 2003 Advanced Server +

Leia mais

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL LINUX Lapro I Profa. Fernanda Denardin Walker - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL Para que o computador funcione e possibilite a execução

Leia mais

Documento de Instalação e Configuração do InfoGrid

Documento de Instalação e Configuração do InfoGrid Documento de Instalação e Configuração do InfoGrid Tecgraf/PUC Rio infogrid@tecgraf.puc rio.br 1.Introdução O objetivo deste documento é podermos registrar em um único local todas as informações necessárias

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

>>> OBJETIVOS... === FHS - Filesystem Hierarchy Standard. === Sistemas de arquivos e Partições

>>> OBJETIVOS... === FHS - Filesystem Hierarchy Standard. === Sistemas de arquivos e Partições >>> OBJETIVOS... === FHS - Filesystem Hierarchy Standard === Sistemas de arquivos e Partições >>> FHS - Filesystem Hierarchy Standard >Padrão de organização de pastas e arquivos em Sistemas Unix-Like >organizar

Leia mais

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress. Sistemas Operacionais Aula 3 Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.com Nunca cone em um computador que você não pode jogar pela janela.

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Unix: Processos e o Kernel O Kernel É um programa especial, uma parte privilegiada do sistema operacional, que roda diretamente sobre o hardware. É ele quem implementa o modelo de processos do sistema.

Leia mais

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais. Conceitos de um Sistema Operacional Sistemas Operacionais Conceitos de um Sistema Operacional Modo usuário e Modo Kernel Como já vimos são ambientes de execução diferentes no processador Há um conjunto de funções privilegiadas acessadas

Leia mais

BC 1518 - Sistemas Operacionais

BC 1518 - Sistemas Operacionais BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 - Parte1) Prof. Marcelo Z. do Nascimento Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br 1 Introdução Arquivos Atributos de Arquivos

Leia mais