p. 1
evolução histórica dos sistemas operacionais a evolução dos sistemas operacionais foi uma conseqüência dos avanços ocorridos no hardware dos computadores temos três níveis de gerações de sistemas operacionais o primeiro nível integrado pelos sistemas operacionais básicos surgidos nos anos cinqüenta limitava-se a auxiliar os programas nas operações de entrada e saída e na tradução nos programas fonte escritos em linguagem pouco evoluídas o segundo nível esteve disponível na década de 60 e a sua ajuda à programação foi mais decisiva proporcionando tradutores simbólicos mais evoluídos programas de serviços para transferência de informação entre periféricos e programas de controle de entrada e saída ou seja os famosos iocs input output control system o terceiro nível de sistemas operacionais surgiu na década de 70 a contribuição destes sistemas à programação foi tão grande que foram rompidas as normas clássicas do processo informático os tradutores de altíssimo rendimento então incorporados têm permitido hoje em dia a utilização de linguagem de programação simbólica quase idênticas à linguagem utilizada pelo homem reduzindo sensivelmente o tempo gasto na produção bem como o tempo de aprendizagem de novas linguagens estrutura do sistema operacional pode-se criar um sistema tão grande e complexo como um sistema operacional somente dividindo-o em pequenas partes cada uma dessas partes deve ser uma porção bem delineada do sistema com entradas saídas e funções cuidadosamente definidas logicamente nem todos os sistemas têm a mesma estrutura ou seja não apresentam a mesma forma de ligação entre as partes contudo os sistemas operacionais modernos geralmente possuem as seguintes partes i gerenciamento de processos criar e eliminar suspender e retomar sincronismo e comunicação entre processos ii gerenciamento da memória principal manter o controle das partes da memória que estão sendo usadas e por quem decidir que processos serão carregados para memória quando houver espaço disponível alocar e desalocar espaço de memória quando necessário iii gerenciamento de memória secundária o so é responsável pelas atividades de alocação de espaço livre iv gerenciamento de entrada/saída manter os device drivers para comunicação com os deferentes dispositivos um buffer-caching para o sistema v gerenciamento de arquivos criar e eliminar arquivos e diretórios manter mapeamento dos arquivos em disco 1
[close]
p. 2
vi proteção do sistema se um sistema é multiusuário e permite múltiplos processos concorrentes estes processos devem ser protegidos de outras atividades vii networking em um sistema distribuído fracamente acoplado cada processador tem sua própria memória e seus processadores que se comunicam através do so a comunicação entre eles deve considerar roteamento e estratégias de conexão viii interpretador de comandos um dos mais importantes programas do so é o interpretador de comandos que serve de interface entre o usuário e o so alguns so s incluem este programa no próprio núcleo kernel já outros sistemas como o dos e o unix tratam o interpretador de comandos como um programa especial que é executado quando uma sessão é iniciada com isso um sistema operacional fornece um ambiente para execução melhor dizendo fornece serviços para os programas e também para os usuários desses programas a história do sistema operacional linux o sistema operacional linux foi originalmente criado por linus torvalds na universidade de helsinki na finlândia ele foi desenvolvido com a ajuda de vários programadores através da internet linus teve seu projeto inspirado pelo seu interesse em minix um pequeno sistema unix desenvolvido por andy tannenbaum no dia cinco de outubro de 1991 linus anunciou a primeira versão oficial de linux versão 0.02 desde então vários programadores responderam à sua chamada e haviam ajudado a tornar linux o completo sistema operacional que ele é hoje conceito de linux linux é um sistema operacional unix independente largamente distribuído para máquinas x86 motorola 68k digital alpha e motorola powerpc ele é uma implementação da especificação do posix com a qual todas as verdadeiras versões de unix consentem o núcleo de linux não usa códigos de at&t ou qualquer outra fonte de proprietário e muitos dos softwares disponíveis para linux são desenvolvidos pelo projeto free software foundation s gnu enfim é uma completa implementação do sistema operacional unix como unix linux é um multi-tarefa robusto multi-usuário sistema operacional de rede que ostenta uma longa lista de padrões aceitáveis possui suporte completo para ambas plataformas de 32 e 64-bits múltiplas cpus e alta performance para redes e outros periféricos ele suporta uma vasta variedade de softwares incluindo x windows emacs e redes tcp/ip incluindo slip/ppp/isdn muitas pessoas já executaram marcas de nível em sistemas 80486 linux e acharam elas comparáveis com estações de trabalho médias da sun e digital o sistema operacional linux está disponível na internet em diversos sites e também com várias versões em disquetes ou cd-rom a parte central de linux é coberta 2
[close]
p. 3
pela gnu public license gpl e é geralmente empacotada com vários binários que consistem em um sistema operacional trabalhando em unix esses pacotes de softwares são chamados distribuições e chegam em muitos tamanhos e estruturas linux está sendo usado hoje por milhões de pessoas em todo o mundo ele é usado para desenvolvimento de software rede intra-office e internet e como plataforma para usuário linux tornou-se uma alternativa barata para os caros sistemas unix gerenciamento de memória a execução do lmm linux memory manager exige uma estratégia de paginação com uma copy-on-write copiado e marcado confiando nas 386 páginas auxiliares um processo alcança suas tabelas de páginas de seu parent durante um fork com as entradas marcadas como read-only ou trocado então se o processo tenta escrever para este espaço de memória e a página é uma copy on write page isto é copiado e a página marcada readwrite um exec resulta na leitura de uma página ou mais do executável o processo então erra em qualquer outra página que precisar cada processo tem uma tabela de página que significa que pode acessar 1 kb de tabela de página indicando para 1 kb de 4 kb páginas que é 4 gb de memória um diretório de página do processo é iniciado durante um fork por copy-page-tables o processo inativo tem seu diretório de página inicializado durante a sequência de inicialização cada processo usuário tem uma tabela descritória local que contém um código de segmento e um segmento de dados estes segmentos usuários extendem de 0 para 3 gb 0 x c 0000000 nos espaços usuários endereços lineares e endereços lógicos são idênticos no 80386 endereços lineares vão de 0 gb para 4 gb um endereço linear indica uma posição particular de memória dentro deste espaço um endereço linear não é um endereço físico isto é um endereço virtual um endereço lógico consiste de um seletor e um offset o seletor indica para um segmento e o offset diz que distância na seção o endereço é localizado o código kernel e o segmento de dados são seções privilegiados definidos na tabela descritora global e extende de 3gb para 4gb o swapper page dir é organizado para que estes endereços lógicos e físicos sejam idênticos no espaço kernel escalonamento o escalonador linux é baseado em time-sharing ou seja atua na divisão do tempo de processador entre os processos o scheduler é o programa encarregado de agendar os processos isto é ele deve escolher o próximo processo que vai rodar deve decidir quando o tempo de um processo terminou o que fazer com um processo quando ele requisita i/o e assim por diante ele é chamado de vários pontos do programa como após colocar o processo corrente em uma fila de espera no final de uma chamada de sistema ou qualquer 3
[close]
p. 4
outro momento em que se faz necessário escalonar os processos ao ser chamado o scheduler tem uma seqüência de ações que devem ser tomadas para que seu trabalho possa ser feito essas ações se dividem em kernel work o scheduler deve realizar uma série de rotinas especificas do kernel como o bottom half handlers que será tratado mais adiante e deve tratar da gila de esperas de tarefas do scheduler seleção de processo o scheduler deve escolher o processo que irá rodar a prioridade é o meio pelo qual ele escolhe troca de processos o scheduler salva as condições que o processo atual apresenta contexto específico do processo e carrega o contexto do novo processo que irá rodar em ambientes multiprocesados smp simultaneous multi processing cada processador tem um scheduler para tratar separadamente quais processos irão rodar nele dessa forma cada processo guarda informação sobre o processador atual e o último processador em que rodou processos que já tenham rodado em um processador tem preferência em relação aqueles que não tenham rodado ali ainda essa implementação permite um ligeiro acréscimo de ganho no desempenho do sistema políticas de escalonamento existem critérios para o escalonamento dos processos em linux policy pode haver duas políticas de escalonamento round-robin e first-in-first-out fifo priority a prioridade do processo é dada de acordo com o tempo que ele gastou para executar em jiffies jiffies é uma variável que indica a quantidade de tempo que um processo pode ser executado onde cada valor atribuído depende de cada máquina quanto maior o tempo em uma execução anterior menor a prioridade do processo real time priority esse recurso é usado para processo de tempo real através disso os processos de tempo real podem ter prioridade relativa dentro desse conjunto a prioridade pode ser alterada através de chamadas do sistema counter É a quantidade de tempo em jiffies que os processos têm permissão para rodar É setada a prioridade quando o processo é rodado pela primeira vez e decrementada a cada tick do clock sistemas de arquivos visão geral sobre sistema de arquivos 4
[close]
p. 5
conceitualmente arquivos são mecanismos de abstração que fornecem uma forma de armazenar e recuperar informações em disco a características mais importante de qualquer mecanismo abstração é a forma de identificar os objetos como os quais o mecanismo trata quando um processo cria um arquivo é preciso que tal arquivo receba um nome normalmente dado pelo processo quando tal processo termina sua execução o arquivo continua a existir podendo ser acessado por outros processos usando para tanto o nome atribuído ao arquivo o sistema de arquivos é a parte mais visível do sistema operacional a maioria dos programas lêem e escrevem em pelo menos um arquivo o sistema de arquivos encara o disco como se este fosse composto simplesmente por uma seqüência de blocos de tamanho fixo cada bloco pode ser composto por 1 2 4 ou mais setores físicos desta forma tamanhos possíveis de blocos ou clusters são 512 bytes 1 kb 2kb e assim por diante sistema de arquivos unificado o sistema de arquivos unificado está presente em todas as variantes unix.ao contrário da grande maioria dos sistemas operacionais unidades de armazenamento distintas são enxergadas como parte de um único e imenso diretório de forma que quando estamos acessando um arquivo por exemplo no diretório /etc podemos estar acessando uma unidade de disco rígido enquanto o arquivo que estamos lendo na outra janela pode estar num cd-rom conceitos fundamentais o linux organiza o seu sistema de arquivos em uma árvore hierarquizada resultando em uma estrutura única que agrega todas as informações relativas ao sistema de arquivos cada nodo da árvore pode representar um arquivo um dispositivo de entrada e saída ou ainda um diretório o linux faz distinção entre nome maiúsculos e minúsculos normalmente um nome de arquivo é composto de nome e uma extensão separada por ponto no linux o tamanho da extensão se houver fica a critério do usuário e um arquivo pode até ter duas ou mais extensões ex prog.c.z não há limite de números de caracteres utilizados para dar nome a arquivos o sistema operacional linux olha o arquivo como uma sequência de byte sem nenhuma estrutura isto dá uma flexibilidade espantosa ao sistema de arquivo os programas de usuários podem colocar o que desejarem nos arquivos e identificá-los da forma que lhe for mais conveniente o unix não influência em nada nesta processo de identificação 5
[close]
p. 6
tipos de arquivos o linux suporta arquivos regulares arquivos de diretório arquivos especiais de caracteres e arquivos especiais blocados os arquivos regulares são aqueles que contém informações de usuários por exemplos tipo ascii arquivos diretórios são arquivos usado na manutenção do sistema de arquivo arquivos especiais de caracteres estão diretamente ligado à entrada/saída e são usados para dispositivos seriais de entrada/saída tais como terminais impressoras e rede os arquivos especiais blocados são usado modelar dispositivos diretórios para tratar dos arquivos o sistema operacional normalmente lança mão do diretórios no caso do linux diretórios hierárquico os diretórios são um tipo de arquivo no linux todos os arquivos fazem parte de um diretório assim eles são mantidos e organizados os diretórios são meios de oferecer endereços dos arquivos de maneira que o so possa acessá-los rapidamente e facilmente ao entra pela primeira vez em sua conta o usuário já esta em um subdiretório denominado subdiretório de entrada conta É uma senha que é aberta pelo administrador do sistema denominado de root onde o usuário indentifica-se para o computador que então dá acesso ao seu diretório de entrada onde você pode executar os comandos permitidos a sua senha nos so padrão unix a conta é obrigatória para todos acesso a arquivos o sistema operacional linux bem como os demais so trata o acesso a arquivos de forma randômica ou seja seus byte ou registros podem ser lidos em qualquer ordem operações sobre arquivos os arquivos existem para armazenar informações e permitir a sua recuperação as chamadas de sistemas mais comum relacionadas ao sistema de arquivo linux são chamadas que operam sobre arquivos individuais ou envolvendo diretórios e sistema de arquivos como um todo a chamada creat não só cria um arquivo mas também abre esta arquivo para escrita independente do modo de proteção especificado para ele o descritor de arquivo que a chama retorna fd pode ser usado para escrever no arquivo se a chamada creat for executada sobre um arquivo existente esta arquivo será truncado para o comprimento 0 desde que os direitos do arquivos assim o permitam para que um arquivo 6
[close]
p. 7
existente possa ser lido ou escrito é necessário que ele seja primeiramente aberto e se ele esta aberto para leitura escrita ou para ambas as operações várias opções podem ser especificadas o descritor de arquivo que a chamada retorna pode então ser usado para leitura ou escrita posteriormente o arquivo deve ser fechado através da chamada close cuja execução torna o descritor de arquivo disponível para ser novamente utilizado numa chamada creat ou open subseqüente a chamada read é utilizada para ler o arquivo os bytes lidos vêm em posição corrente de leitura o processo que faz a chamada deve indicar a quantidade de informação a ser lida e providenciar um buffer para possibilitar a leitura a chamada write os dados são escritos no arquivo geralmente a partir da posição corrente se tal posição for a de final de arquivo o tamanho do mesmo cresce se a posição corrente no momento da escrita estiver no meio do arquivo os dados existente nesta posição estarão perdidos para sempre pois a operação de write escreve os novos dados em cima dos antigos apesar da maioria dos programas ler e escrever arquivos sequencialmente em algumas aplicações os programas devem ser capaz de acessar randomicamente qualquer parte do arquivo associado a cada arquivo existe um ponteiro que indica a posição corrente do arquivo quando a leitura ou escrita for seqüencial em geral ele aponta para o próximo byte a ser lido ou a ser escrito a chamada lseek têm três parâmetros o primeiro do descritor de área para o arquivo o segundo é a posição do arquivo o terceiro informa se a posição é relativa ao inicio do arquivo à posição corrente ou final do arquivo o valor que o lseek retorna é a posição absoluta no arquivo após a mudança no ponteiro para cada arquivo o linux mantêm o modo do arquivo regular diretório ou arquivo especial seu tamanho o instante da última modificação e outra informações pertinentes os programas podem verificar estas informações usando a chamada stat seu primeiro parâmetro é o nome do arquivo o segundo é um ponteiro para a estrutura onde a informação solicitada deve ser colocada as chamadas do sistema relacionadas com os diretórios ou com o sistema de arquivo como um todo em vez de um arquivo específicos os diretórios são criados utilizando as chamadas mkdir e rmdir respectivamente um diretórios o pode ser removido se estiver vazio a ligação de um arquivo cria uma nova entrada no diretório que aponta para um arquivo existente a chamada link cria esta ligação os seus parâmetros especificam os nome originais e novo respectivamente as entrada do diretórios são removidas via unlink quando a última ligação para um arquivo é removida é automaticamente apagada para um arquivo que nunca foi ligado o primeiro unlink faz com que ele desapareça os diretórios de trabalho é especificado pela chamada chdir sua execução faz com que haja mudança na interpretação dos nome dos caminhos relativos a chamada chmode torne possível a mudança do modo um arquivo ou seja de seus bits de proteção 7
[close]
p. 8
arquivos compartilhados quando vários usuários estão trabalhando juntos em um projeto ele comumente precisam compartilhar arquivos em decorrência disto muitas vezes é conveniente que um arquivo compartilhado apareça simultaneamente em diretórios diferentes que pertençam a diferentes usuários a conecção entre um diretório e um arquivo compartilhado é chamada de ligação link o próprio sistema de arquivo é um gráfico acíclico dirigido ou dag em vez de árvore no linux os blocos do disco não são listados no diretório mas numa estrutura de dados associada ao próprio arquivo esta estrutura é chamada nó-i é a forma como o linux implementa compartilhamento arquivo sistema de arquivos no linux descrição o sistema de arquivos do linux é estrutura de organização de arquivos em formato de árvore que permite · · · hierarquia de diretórios e arquivos proteção das informações compartilhamento dos arquivos todos os arquivos linux estão arranjados em uma única árvore hierárquica em linux o usuário não precisa se preocupar com discos específicos como c d etc na verdade o usuário não necessita saber como os arquivos estão arranjados fisicamente em um ou mais discos o linux suporta diversos sistemas de arquivos estes não são acessados via identificadores e sim combinados numa estrutura hierárquica em árvore que representa o sistema de arquivos como uma entidade única cada partição do disco pode conter um sistema de arquivos dentre esses sistemas destacamos minix mais antigo e presumivelmente o mais confiável mas bastante limitado em características algumas datas não aparecem máximo de 30 caracteres para nome de arquivos etc e restrito em armazenamento no máximo 64 mb por sistema de arquivos xia ma versão modificada do sistema de arquivos minix o qual aumenta os limite de nomes de arquivos e de sistemas de arquivos mas não introduz novas facilidades não é muito popular mas comenta-se que funcione muito bem ext2 mais poderoso e popular sistema de arquivos nativo do linux desenhado para ser facilmente compatível com os avanços das novas versões sem a necessidade de criar novamente os sistemas de arquivos já existentes ext uma versão antiga do ext2 que não é mais compatível com versões atuais É raro vê-la 8
[close]
p. 9
instalada em sistemas novos e mesmo os mais antigos têm sido convertidos para ext2 adicionalmente há o suporte a diversos outros sistemas de arquivos para simplificar a troca de informações com outros sistemas operacionais estes sistemas de arquivos funcionam como se fossem nativos exceto pela perda de algumas facilidades presentes no unix ou apresentam algumas particularidades msdos compatibilidade com ms-dos e os/2 e windows nt através de sistemas de arquivos fat/fat32 umsdos sistemas de arquivos ms-dos estendidos para suportar nomes longos donos permissões links e arquivos de dispositivos do linux isso permite que um sistema de arquivos msdos possa ser usado como se fosse um sistema linux removendo a necessidade de uma partição distinta para o linux iso9660 o sistema de arquivos padrão do cd-rom a extensão rock ridge que permite nomes longos também é suportada automaticamente nfs sistemas de arquivos em redes que permitem o compartilhamento e o fácil acesso aos arquivos entre diversos computadores da rede hpfs o sistema de arquivos do os/2 sysv sistema de arquivos do system v/386 coherent e xenix sistema de arquivos second extended file systemext2 atualmente o sistema de arquivos mais utilizado pelo linux é o ext2 second extended file system nele os arquivos são guardados em blocos de mesmo tamanho determinado durante a criação do sistema de arquivos a partição lógica que ele ocupa é dividida em block groups cada um contendo informações críticas para a integridade do sistema de arquivos além de conter arquivos e diretórios cada block group contém um superblock que contém informações sobre o sistema de arquivos normalmente só o superblock do primeiro block group é lido os demais são utilizados caso haja corrupção do sistema de arquivos um arquivo qualquer no linux é composto por uma quantidade inteira de blocos assim cada arquivo tem seu tamanho arredondado de forma a ocupar um número inteiro de blocos por exemplo se considerarmos blocos de tamanho de 1024 byes um arquivo de 1025 bytes ocupará dois blocos ou seja 2048 bytes essa política de alocação implica que se desperdice metade do tamanho de um bloco por arquivo esse desperdício é na verdade resultante de um compromisso entre desempenho e economia de espaço em disco a organização de blocos da partição em grupos de blocos também está relacionado com 9
[close]
p. 10
um problema de desempenho tendo como principal objetivo evitar a disperção de arquivos no disco dessa forma o núcleo tenta alocar para um arquivo os blocos pentencentes a um mesmo grupo reduzindo os movimentos de seek no momento de acess a esse arquivo cada grupo é composto por seis elementos distintos superbloco descritor do grupo bitmap de inodos tabela de i-nodos e bloco de dados a estrutura básica de construção de arquivos ext2 é o i-nodo cada arquivo ou diretório no sistema de arquivo ext2 é descrito por um único i-nodo cada grupo de blocos possui um bitmap de i-nodos e uma tabela que contém ponteiros para i-nodos de cada arquivo ou diretório pertencente ao grupo um i-nodo descreve quais blocos compões um arquivo e também armazena uma série de informações relativas a esse arquivo todos os i-nodos de uma partição ext2 têm o mesmo tamanho 128 bytes modo esse campo armazena informações relacionadas com os direitos de acesso ao objeto que o i-nodo referencia informações fornece os direitos de acesso leitura e escrita associando o arquivo a um usuário e/ou a um grupo de usuários tamanho o tamanho do arquivo em bytes ou seja o tamanho real do arquivo e não a quantidade de blocos que ele ocupa timestamps datahora dia mês ano em que o i-nodo foi criado ou modificado apontadores para blocos valores que indicam quais blocos compõem o arquivo esses apontadores são empregados em 4 níveis apontadores diretos 12 apontador de indireção simples1 apontador de dupla indireção1 e apontador de tripla indireção1 nas versões atuais do linux o tamanho máximo de um arquivo é limitado a 2 gigabytes o que não explora toda a capacidade de endereçamento fornecida pela tripla indireção diretórios ext2 o sistema de arquivo ext2 implementa diretórios como um tipo de arquivo o conteúdo desse arquivo é uma sequência de registros na qual cada registro corresponde a um arquivo pertencente ao diretório qualquer diretório quando criado é inicializado com dois arquivos com nomes especiais o arquivo ponto e o arquivo ponto-ponto o primeiro arquivo ponto serve para fazer referência ao próprio diretório diretório corrente o segundo arquivo ponto-ponto referencia o diretório imediatamente superior na hierarquia ou seja o diretório pai do diretório corrente os diferentes campos que compõem cada um dos registros são i-nodo é o i-nodo que descreve a localização dos blocos que compõem o arquivo 10
[close]
p. 11
tamanho da entrada tamanho em bytes da entrada do diretório tamanho do nome do arquivo quantidade de caracteres que formam o nome do arquivo tipo do arquivo o ext2 posssui uma série de tipos para arquivos arquivos regulares pipes diretórios links simbólicos dispositivos de entrada/saída e sockets cada um desses arquivos utiliza blocos de dados de diferentes formas já que alguns arquivos armazenam dados arquivos regulares e diretórios e outros não dispositivos entrada/saída nome um string que fornece o nome do arquivo essa string possui um caracter escepical como marca de fim 0 e deve sempre ocupar por questões de desempenho um tamanho múltiplo de 4 bytes o tamanho do string é limitado em 256 caracteres no ext2 um arquivo é localizado através de um caminhopath o caminho é uma seqüência de diretórios separados pelo caractere barra e terminado pelo nome do arquivo o caminho pode ser relativo ou absoluto no caminho relativo o sistema inicia a pesquisa pelo nome do arquivo a partir do diretório corrente no caminho absoluto a localização do arquivo é feita a partir do diretório raiz para encontrar o i-nodo que representa um arquivo no sistema ext2 o linux necessita realizar um parsing no caminho para encontrar a hierarquia dos diretórios e finalmente acessar o arquivo o ponto inicial para essa pesquisa é o primeiro i-nodo do super-bloco do sistema já que nele estão armazenadas as informações relativas ao tamanho e ao formato do sistema de arquivos de posse dessas informações é então possível calcular qual grupo de blocos mantém o i-nodo referente a cada uma das entradas do caminho para em seguida localizar o bloco correspondente no diretório e acessá-lo para ler o i-nodo do próximo diretório na seqüência do caminho ou o i-nodo relativo ao próprio arquivo i/o no sistema de arquivos do linux um dos objetivos de um sistema operacional é esconder dos usuários as peculiaridades de um determinado hardware a gerência de i/o realiza um papel análogo ou seja fornece uma interface uniforme para acesso a um determinado dispositivo independente de sua tecnologia um exemplo bastante comum são os discos rígidos nós encontramos discos ide eide scsi entre outros os quais possuem geometria funcionalidades e capacidades diferentes entretando eles são vistos de forma genérica como discos rígidos esse é o 11
[close]
p. 12
objetivo da gerência da entrada e saída criar uma camada de software que esconda através de uma interface comum os detalhes específicos de cada dispositivo o processador não é o único dispositivo inteligente de um hardware cada dispositivo físico de entrada e saída possui um controlador um controlador nada mais é que um processador projetado para realizar uma determinada função específica assim teclado mouse e portas seriais são normalmente vinculados a um controlador serial discos ide a um controlador ide discos scsi a um controlador scsi interface de rede a controladores de redes etc cada controlador possui um conjunto próprio de registradores de controle e estadocsr control and status registers os quais diferem de controlador para controlador os csr são utilizados para inicializar encerrar diagnosticar e realizar operações em um controlador ou seja em um dispositivo ao invés de cada aplicação codificar a seqüência de comandos csr esses estão concentrados no núcleo do sistema operacional já que por exemplo ler e escrever são operações comuns a todas as aplicações o software que implementa no núcleo do sistema operacional essas operações é conhecido como driver de dispositivos device drivers device drives drivers de dispositivos um driver de dispositivo é composto por um conjunto de funções e de estruturas de dados que controlam um ou mais periféricos tais como discos rígidos teclados mouse monitores interfaces de redes etc cada driver interage com as diferentes partes do sistema operacional através de uma interface de programaçãoapi bem definida arquivos de dispositivos os arquivos de dispositivos são os arquivos especiais empregados para representar os dispositivos de entrada e saída além de um nome cada um desses arquivos possui três atributos tipo número maior número menor o tipo do dispositivo indica se ele é um dispositivo orientado a caractere ou a bloco o número maior é um número na faixa de 1 a 255 que serve para identificar uma classe de dispositivos todos os arquivos de dispositivos que possuem o mesmo número maior e o mesmo tipo dividem o mesmo device driver pois isso representa que eles são da mesma classe o número menor identifica um dispositivo específico entre um grupo de dispositivos de uma mesma categoria ou seja de um mesmo número maior normalmente cada arquivo de dispositivo é associado a um dispositivo físico de entrada e saída ou a uma partição lógica de um disco segurança o sistema operacional linux é o segundo sistema operacional mais seguro do mundo seu pai o unix é o único que o supera este é um dos motivos mais favoráveis a sua utilização 12
[close]
p. 13
principalmente em servidores outro fato que comprova esta segurança é que das invasões realizadas com sucesso apenas 1 está relacionado com linux como alvo ainda esta invasão a ele ocorre por dois motivos falha humana 99,5 dos casos e falha do sistema0,5 dos casos porém segurança não é apenas relacionada à invasão mas também a vírus trojans worms e todos aqueles softwares mal intencionados a cada 1000 pragas virtuais lançadas 1 é para linux o mais incrível é que qualquer falha ou praga é eliminada em questão de pouquíssimas horas devido ao grande número de programadores que o linux possui diferente dos demais sistemas operacionais o linux fecha todas as portas por padrão ou seja mantém abertas somente as que realmente precisam estar são justamente estas portas abertas que devem ser filtradas protegidas sem as fechar utilizando um firewall portão muro parede de fogo ele tem a função de liberar ou não o acesso as requisições feitas por endereços da internet ips através de regras definidas pelo administrador do sistema não existe um padrão de regras que venham juntamente com o pacote padrão de instalação se não for especificado o sistema operacional não vai filtrar outro ponto interessante de ressaltar é que todas configurações de firewall realizadas no linux ou em qualquer outro sistema operacional devem ser tanto para meios externos internet quanto meios internos intranet nem mesmo os usuários internos estão livres da maldade o linux utiliza como firewall o iptables que também pode ser chamado de ipchains ou ipfwadm depende da versão do kernel núcleo do sistema como mostra o quadro abaixo versão do kernel 2.0.x 2.2.x 2.4.x ou superior sistema utilizado ipfwadm ipchains iptables segurança interna samba compartilhamento de arquivos apesar de praticamente não existir pragas para linux eles existem em massa para o sistema operacional da microsoft isto representa perigo se você estiver em uma rede com 13
[close]
p. 14
estações de trabalho windows por conseqüência utiliza-se o samba para liberar acesso a arquivos no servidor linux este compartilhamento criado entre o servidor e estação pode permitir que um vírus ou trojan apague os arquivos lá encontrados isto requer que você possua um bom antivírus instalado em cada estação e mantenha-o bem atualizado porém não basta apenas isso mas deve-se tomar as seguintes precauções não utilizar login único para toda a rede mesmo que seja uma rede pequena cada login deve ter acesso restrito somente ao que realmente precisa contas de usuários visitantes devem ser evitadas e se existirem deve ter o acesso mais restrito possível não permitir que o usuários alterem as permissões de arquivo não criar a conta root ou administrador não compartilhar jamais a raiz do sistema parece obvio mais já algumas pessoas o fazerem squid acesso à internet o squid é proxydistribuidor de internet tem a função de liberar e controlar o acesso a internet em uma rede para que ele seja um aliado e ajudante no dia-a-dia é necessário bloquear além de sites e portas as extensões executáveis e de arquivos compactados também devem se restringir o horário de acesso à internet cuidados especiais senha e usuário root o ideal é que apenas que uma pessoa saiba esta senha o usuário root não deve ser usado no cotidiano apenas na instalação e manutenção dos serviços e usuários do servidor ssh acesso remoto este serviço permite o acesso à linha de comando do linux de qualquer outro local porém ao habilitar este serviço não deve-se liberar acesso ao usuário root telnet protocolo e serviço muito conhecido nos ambientes windows não é recomendado o uso em hipótese alguma no linux pois sua segurança já foi posta em cheque inúmeras vezes 14
[close]
p. 15
windows 2000 a arquitetura do windows 2000 é fortemente inspirada no princípio de micronúcleo pois cada funcionalidade do sistema é oferecida e gerenciada por um único componente do sistema operacional todavia módulos fora do micronúcleo executam operações em modo protegido modo kernel por isso não é puramente micronúcleo o windows 2000 também segue uma organização em camadas e explora o modelo orientado a objetos foi projetado de modo a permitir a execução de aplicações escritas para outros sistemas operacionais a estrutura pode ser dividida em duas partes modo usuário onde estão localizados os sistemas protegidos e o modo kernel o executivo o executivo constitui o núcleo do windows 2000 exportando funções para serem utilizadas no modo usuário e funções que só são acessíveis por componentes módulos pertencentes ao próprio núcleo os principais componentes do executivo são · gerência de objetos · gerência de processos · gerencia de memória virtual · monitor de segurança · módulo de suporte · gerência de e/s o núcleo do windows 2000 foi projetado de forma a dar suporte ao multiprocessamento simétrico quando executado em máquinas multiprocessadas o multiprocessamento assimétrico na presença de n processadores um processador é pré-selecionado e dedicado a execução do sistema operacional deixando para os processos de usuários os n-1 processadores restantes já o multiprocessamento simétrico o sistema operacional pode ser executado em qualquer processador que esteja livre ou ainda em todos os processadores simultaneamente explorando melhor o potencial dos vários processadores existentes gerência de memória o windows 2000 implementa um sistema de memória virtual baseado em um espaço de endereçamento linear plano de 32 bits o que oferece até 4 gbytes de memória virtual esse espaço de endereçamento é normalmente dividido em duas partes de igual tamanho 2 gbytes uma destinada ao processo usuário parte inferior e outra destinada ao sistema operacional parte superior em outros termos uma aplicação processo usuário possui no máximo um tamanho de 2 gbytes na realidade o windows 2000 oferece a opção de 15
[close]