GNU/ Linux O Linux é um sistema operacional criado em 1991 por Linus Torvalds na universidade de...
48
Alunos: Elton Alexandre Gomes e osival Silva Professor: Hugo Vieira L. de Souza Disciplina: Sistemas Operacionais Descrição: Seminário de avaliação – Unidade II
GNU/ Linux O Linux é um sistema operacional criado em 1991 por Linus Torvalds na universidade de Helsinki na Finlândia. É um sistema Operacional de código
O Linux um sistema operacional criado em 1991 por Linus
Torvalds na universidade de Helsinki na Finlndia. um sistema
Operacional de cdigo aberto distribudo gratuitamente pela Internet.
Seu cdigo fonte liberado como Free Software (software livre), sob
licena GPL, o aviso de copyright do kernel feito por Linus descreve
detalhadamente isto e mesmo ele no pode fechar o sistema para que
seja usado apenas comercialmente. Isto quer dizer que voc no
precisa pagar nada para usar o Linux, e no crime fazer cpias para
instalar em outros computadores, inclusive a incentivo para que
isso seja feito. Ser um sistema de cdigo aberto pode explicar a
performance, estabilidade e velocidade em que novos recursos so
adicionados ao sistema. O requisito mnimo para rodar o Linux
depende do kernel que ser usado.
Slide 4
Para espao em disco requerido 500MB para uma instalao bsica
usando modo texto com suporte a rede. O sistema segue o padro POSIX
que o mesmo usado por sistemas UNIX e suas variantes. Assim,
aprendendo o Linux voc no encontrar muita dificuldade em operar um
sistema do tipo UNIX, FreeBSD, HPUX, SunOS, etc., bastando apenas
aprender alguns detalhes encontrados em cada sistema. O Linux
desenvolvido por milhares de pessoas espalhadas pelo mundo, cada
uma fazendo sua contribuio ou mantendo alguma parte do kernel
gratuitamente. Linus Torvalds ainda trabalha em seu desenvolvimento
e na coordenao dos grupos de trabalho do kernel. O suporte ao
sistema tambm se destaca como sendo o mais eficiente e rpido do que
qualquer programa comercial disponvel no mercado. Existem milhares
de consultores e empresas especializadas no suporte e treinamento
espalhados ao redor do mundo.
Slide 5
O kernel o corao do Sistema Operacional Linux. Ele o responsvel
por garantir que todos os programas tero acesso aos recursos de que
necessitam (memria RAM, por exemplo) simultaneamente, fazendo com
que haja um compartilhamento concorrente mas sem oferecer riscos
integridade da mquina. O conjunto de um kernel e demais programas
responsveis pela comunicao com este o que denominamos sistema
operacional Kernel monoltico ou mono-bloco um kernel que implementa
uma interface de alto nvel para possibilitar chamadas de sistema
especficas para gesto de processos, concorrncia e gesto de memria
por parte de mdulos dedicados que so executados com privilgios
especiais. Desenvolvido por diversos programadores ao redor do
mundo, no se pode ter um controle fino do que implementado no
kernel, com isso no e comum se descobrir falhas graves de
segurana.
Slide 6
Convivem sem nenhum tipo de conflito com outros sistemas
operacionais. Multitarefa real. Multiusurio. Suporte a nomes
extensos de arquivos e diretrios (255 caracteres). Conectividade
com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc,
Alpha, PowerPc, ARM, Unix, Windows, DOS, etc. Utiliza permisses de
acesso a arquivos, diretrios e programas em execuo na memria RAM.
Proteo entre processos executados na memria RAM. Suporte a mais de
63 terminais virtuais (consoles). Modularizao - O Linux somente
carrega para a memria o que usado durante o processamento,
liberando totalmente a memria assim que o programa/dispositivo
finalizado.
Slide 7
ARQUITETURA LINUX
Slide 8
Slide 9
Micro-kernel: uma poro mnima de cdigo responsvel por atividades
bsicas, sendo os demais recursos providos por servidores
localizados em espao de usurio; facilita a programao e aumenta a
segurana, uma vez que ha menos cdigo dependente de hardware e em
modo kernel. Monoltico: todas as atividades bsicas so executadas em
modo kernel, sendo que novas funcionalidades so providas como
mdulos de kernel, ao invs de servidores em espao de usurio; busca
maior eficincia ao evitar trocas de contexto.
Slide 10
Sistema operacional composto de dois nveis.
Slide 11
Em uma viso mais rpida, o Linux pode ser dividido em alguns
subsistemas principais:
Slide 12
PROCESSAMENTO LINUX
Slide 13
Na fase de inicializao do Linux a funo start_kernel responsvel
por criar um thread, este o processo de nmero zero, o primeiro e o
ascendente de todos os outros processos. Depois de inicializar toda
a estrutura de dados para este processo, esta mesma funo responsvel
por chamar a funo init que por sua vez utiliza a chamada de sistema
execve para rodar o executvel init, que ser o processo nmero 1,
mais conhecido como init. Estados : Uma das coisas que o
escalonador precisa ter cincia em qual estado est cada processo, na
estrutura que armazena os dados de cada processo temos um array de
possveis estados onde apenas uma das opes abaixo estar ativa.
Slide 14
TASK_RUNNING Em execuo ou aguardando para ser executado.
TASK_INTERRUPTIBLE O processo est suspenso at que determinada
condio se torne verdadeira. TASK_STOPPED Execuo do processo foi
parada. TASK_ZOMBIE O processo est terminado, mas o processo pai
ainda no executou uma chamada de sistema para retornar informaes
sobre o processo morto wait, as informaes no so descartadas pois
ainda podem ser utilizadas.
Slide 15
LIMITE (recurso de processo) Por padro o Linux limita os
recursos que cada processo pode ter. Isto , quanto de recursos do
sistema ele pode utilizar. Isso uma proteo para que caso o usurio
faa algo errado, no prejudique a estabilidade do sistema. VAMOS
ANALISAR ALGUNS DESSES LIMITES RLIMIT_AS O tamanho mximo que um
processo pode ter em bytes RLIMIT_CORE Quando um processo abortado,
o kernel pode gerar um arquivo core contendo as informaes desse
aborto.
Slide 16
RLIMIT_CPU O tempo mximo em segundos que um processo pode ser
executado. RLIMIT_DATA O tamanho mximo do heap ou memria de dados
em bytes. RLIMIT_FSIZE O tamanho mximo em bytes permitido para um
arquivo. RLIMIT_NOFILE O nmero mximo de descritores de arquivos
abertos. RLIMIT_NPROC O nmero mximo de processos que um usurio pode
ter. RLIMIT_RSS A quantidade mxima de memria fsica que um processo
pode ter.
Slide 17
Os processos do Linux so preemptivos, isso significa que quando
um processo entra no estado TASK_RUNNING o kernel vai checar se
existe alguma prioridade maior do que o processo corrente. Caso
exista, o processo corrente interrompido e o que tem prioridade
maior comea a rodar.
Slide 18
A prioridade de um processo no Linux est em constante alterao,
o escalonador se mantm informado sobre o que os processos esto
fazendo e assim torna-se possvel ajustar a prioridade. Dessa
maneira os processos que ficaram proibidos de utilizar o CPU por um
longo intervalo de tempo, tem sua prioridade incrementada
automaticamente, contrariamente os processos que passaram um longo
perodo dentro do CPU so penalizados tendo sua prioridade
decrementada. Quando tocamos no assunto escalonamento importante
notar que os processos so classificados como da Forma E/S e Forma
CPU. O primeiro faz uso extenso dos recursos de entrada e sada,
isso significa que grande parte do seu tempo utilizado no aguardo
da concluso das operaes de Entrada e Sada, j o segundo so processos
que necessitam de um longo tempo dentro do CPU.
Slide 19
Veremos 3 classes de processos de Classificao Alternativa:
Processos Interativos - Os processos que esto em constante interao
com o usurio, sendo assim eles perdem grande parte do tempo
esperando uma atividade do usurio, como um clique do mouse ou o
aperto de uma tecla. Quando qualquer dessas aes for recebida o
sistema precisa responder de forma gil suspendendo qualquer
processo que estiver rodando e colocar o processo interativo no CPU
para processar a requisio solicitada pelo usurio, caso contrrio ele
pode pensar que o sistema no est respondendo. Um bom tempo de
resposta em torno de 50 e 150 ms.
Slide 20
Processos em Lote - No necessitam de nenhuma interao do usurio
e por isso muitas vezes rodam em background. Como so processos de
baixa prioridade, so freqentemente penalizados pelo escalonador.
Programas de processamento em lote comuns so editores de texto,
compiladores e programas grficos. Processos em Tempo Real - Esses
processos nunca devem ser bloqueados por processos de baixa
prioridade, precisam de um tempo de resposta super rpido e com uma
variao bastante baixa. Alguns aplicativos que fazem uso do tempo
real so som, vdeo, controladores de robs e equipamentos que
envolvem a segurana humana.
Slide 21
O algoritmo de escalonamento do Linux funciona dividindo o
tempo do CPU em fatias. Prioridade Esttica Definido pelo usurio
para processos que necessitam de tempo real, os valores variam de 1
at 99 que nunca so modificados pelo escalonador. Prioridade Dinmica
Esta aplicada para os processos convencionais. A prioridade dinmica
dos processos convencionais sempre inferior aos processos com
prioridade esttica. Se existir um processo com prioridade esttica
no estado TASK_RUNNING nenhum processo dinmico ir rodar at que ele
pare de executar.
Slide 22
MEMRIA
Slide 23
Cada processo no Linux possui prioridades com relao alocao de
memria. O Linux tambm possui uma caracterstica de alocar
determinados recursos dos processos que foram executados para
garantir que estes retornem de maneira mais eficiente quando estes
forem requisitados novamente. Caso a memria fsica (memria RAM)
esteja totalmente carregada, iniciado um processo de operao com a
memria virtual, a memria SWAP medida que mais processos vo sendo
executados, e como estes tem preferncia de alocao na memria fsica,
o Linux comea a jogar estes recursos alocados para a memria
SWAP.
Slide 24
Somente os dados na memria RAM so processados pelo processador,
por ser mais rpida. Desta forma quando voc est executando um
programa e a memria RAM comea a encher, o GNU/Linux move
automaticamente os dados que no esto sendo usados para a partio
Swap e libera a memria RAM para a continuar carregando os dados
necessrios. Quando os dados movidos para a partio Swap so
solicitados, o GNU/Linux move os dados da partio Swap para a
Memria. Por este motivo a partio Swap tambm chamada de Troca ou
memria virtual. Esse sistema de paginao dividido em duas sees: o
algoritmo de polticas, o qual responsvel por decidir qual pgina
dever ser transferida para o disco e quando esta pgina deve ser
transferida; e o sistema de paginao, o qual transfere os dados
novamente para a memria fsica quando estes se tornam necessrios
novamente
Slide 25
O Linux decide qual das pginas deve sofrer swapping atravs de
um algoritmo chamado LFU, ou Least Frequently Used. Nesse
algoritmo, as pginas com menor frequncia de utilizao so
selecionadas para a realizao da operao de swapping, com intuito de
realizar o menor nmero possvel de trocas de pginas.
Slide 26
ARQUIVOS
Slide 27
criado durante a formatao da partio de disco (quando se usa o
comando mkfs.ext3). Aps a formatao toda a estrutura para leitura,
gravao, permisses de arquivos e diretrios pelo sistema operacional
estar pronta para ser usada. Normalmente este passo feito durante a
instalao de sua distribuio GNU/Linux. Cada sistema de arquivos tem
uma caracterstica em particular mas seu propsito o mesmo: Oferecer
ao sistema operacional a estrutura necessria para ler/gravar os
arquivos/diretrios. Entre os sistemas de arquivos existentes posso
citar: EXT2; EXT3; EXT4.
Slide 28
Ext2 - Usado em parties Linux Nativas para o armazenamento de
arquivos. identificado pelo cdigo 83. Seu tamanho deve ser o
suficiente para acomodar todo os arquivos e programas que deseja
instalar no GNU/Linux (voc encontra isto no manual de sua
distribuio). Voc dever usar preferencialmente o ext3 para a
instalao de seu sistema operacional. Ext3 - Este sistema de
arquivos possui melhorias em relao ao ext2, como destaque o recurso
de jornaling e suporte a arquivos de at 16Gb. Ele tambm
identificado pelo tipo 83 e totalmente compatvel com o ext2 em
estrutura. O journal mantm um log de todas as operaes no sistema de
arquivos, caso acontea uma queda de energia eltrica (ou qualquer
outra anormalidade que interrompa o funcionamento do sistema), o
fsck verifica o sistema de arquivos no ponto em que estava quando
houve a interrupo, evitando a demora para checar todo um sistema de
arquivos.
Slide 29
Reiserfs - Possui os mesmos recursos do ext3, mas seu design
bastante diferente. Bastante recomendvel para sistemas que possuem
muitos arquivos pequenos (servidor web, etc). Possui o tempo de
recuperao em caso de queda de energia menor que o ext3. Swap -
Usado em parties Linux Swap para oferecer memria virtual ao
sistema. Note que altamente recomendado o uso de uma partio Swap no
sistema. proc - Sistema de arquivos do kernel.
Slide 30
FAT12 - Usado em disquetes no DOS. No possui suporte a
permisses, journaling. FAT16 - Usado no DOS e oferece suporte at
discos de 2GB. No possui suporte a permisses e journaling. FAT32 -
Tambm usado no DOS e oferece suporte a discos de at 2 Terabytes. No
possui suporte a permisses e journaling. NTFS - Formato nativo de
discos de sistemas operacionais Windows XP e superiores. Possui
suporte a permisses de acesso e compactao nativa.
Slide 31
A partio EXT2 o tipo usado para criar o sistema de arquivos
Linux Native usado para armazenar o sistema de arquivos EXT2 (aps a
formatao) e permitir o armazenamento de dados. Este tipo de partio
normalmente identificado pelo cdigo 83 nos programas de
particionamento de disco. Note que tambm possvel criar um sistema
de arquivos EXT2 em um arquivo (ao invs de uma partio) que poder
ser montado e acessado normalmente pelo sistema de arquivos. Logo
que foi inventado, o GNU/Linux utilizava o sistema de arquivos
Minix (e consequentemente uma partio Minix) para o armazenamento de
arquivos. Com a evoluo do desenvolvimento, foi criado o padro EXT
(Extended Filesystem) e logo evoluiu para o EXT2 (Second Extended
Filesystem). O padro mais usado nos dias de hoje o EXT3 devido ao
Journaling.
Slide 32
O sistema de journaling grava qualquer operao que ser feita no
disco em uma rea especial chamada journal, assim se acontecer algum
problema durante alteraes no disco, ele pode voltar ao estado
anterior do arquivo, ou finalizar a operao. Desta forma, o journal
acrescenta ao sistema de arquivos o suporte a alta disponibilidade
e maior tolerncia a falhas. Aps uma falha de energia, por exemplo,
o journal analisado durante a montagem do sistema de arquivos e
todas as operaes que estavam sendo feitas no disco so verificadas.
Dependendo do estado da operao, elas podem ser desfeitas ou
finalizadas. O retorno do servidor praticamente imediato (sem
precisar a enorme espera da execuo do fsck em parties maiores que
10Gb), garantindo o rpido retorno dos servios da mquina.
Slide 33
O sistema de arquivos ext3 faz parte da nova gerao extended
file system do Linux, sendo o padro atual e tem como seu maior
benefcio o suporte a journaling e armazenamento eficiente de
arquivos com at 16Gb de tamanho. O uso deste sistema de arquivos
comparado ao ext2, na maioria dos casos, melhora o desempenho do
sistema de arquivos atravs da gravao seqencial dos dados na rea de
metadados e acesso mhash a sua rvore de diretrios. Mas pode trazer
impactos na performance no caso de dispositivos de memria flash e
quando utiliza arquivos para armazenar o sistema de arquivos. A
estrutura da partio ext3 semelhante a ext2, o journaling feito em
um arquivo chamado.journal que fica oculto pelo cdigo ext3 na raiz
da partio (desta forma ele no poder ser apagado, comprometendo o
funcionamento do sistema).
Slide 34
Diretrio /etc/alternatives Este diretrio contm links para
diversos aplicativos padres utilizados pelo sistema. Dentre eles so
encontrados links para o editor do sistema e o xterm padro usado
pelo sistema. Arquivo /etc/default/devpts Este arquivo contm
algumas configuraes para os pseudo terminais em /dev/pts. Arquivo
/etc/default/rcS Contm variveis padres que alteram o comportamento
de inicializao dos scripts em /etc/rcS.d Arquivo
/etc/console-tools/config Este arquivo contm configuraes padres do
pacote console-tools para as fontes de tela e mapas de teclado
usados pelo sistema. A fonte de tela especificada neste arquivo (as
fontes disponveis no sistema esto localizadas em
/usr/share/consolefonts
Slide 35
Journal: os metadados e os dados (contedo) dos arquivos so
escritos no journal antes de serem de fato escritos no sistema de
arquivos principal. Isso aumenta a confiabilidade do sistema com
uma perda de desempenho, devido a necessidade de todos os dados
serem escritos no disco duas vezes. Writeback: os metadados so
escritos no journal mas no o contedo dos arquivos. Essa opo permite
um melhor desempenho em relao ao modo journal, porm introduz o
risco de escrita fora de ordem onde, por exemplo, arquivos que so
apensados durante um crash podem ter adicionados a eles trechos de
lixo na prxima montagem Ordered: como o writeback, mas fora que a
escrita do contedo dos arquivos seja feita aps a marcao de seus
metadados como escritos no journal. Esse considerado um meio-termo
aceitvel entre confiabilidade e performance, sendo, portanto, o
nvel padro.
Slide 36
Ext4 a evoluo do sistema de arquivos mais usados no Linux, o
Ext3. De muitas maneiras, Ext4 uma profunda melhoria sobre o Ext3,
sendo o Ext3, com muitas melhorias frente o Ext2. No Ext3 foi
principalmente a adio de Journaling sobre o Ext2, mas Ext4 teve
mudanas importantes na estrutura do sistema de arquivos destinado
ao armazenamento de dados. O resultado um sistema de arquivos com
um design aperfeioado, melhor performance, confivel e com muitos
recursos. Um sistema de arquivos Ext3 existente, pode ser migrado
para Ext4 com um procedimento fcil, onde consiste a execuo de um
casal de comandos em modo read-only. Por meio disto voc melhora a
performance, limites de armazenamentos e recursos do sistema de
arquivos corrente, com ou sem a reformatao e/ou reinstalao do SO e
softwares environment.
Slide 37 DIR >PRN: para imprimir a sada de um comando. A
sintaxe dos shells unix a mesma (na verdade o msdos herdou-a do
unix): hal:~$ ls -l >/dev/lp1">
Processos unix habitualmente possuem trs dispositivos de I/O
padres, a "sada padro", a "entrada padro" e a "sada de erros". O
sistema unix permite que esses dispositivos sejam definidos no
momento da execuo, podendo ser o console, um "pipe", a impressora,
um circuito virtual de rede conectando duas mquinas, uma linha
fsica serial ou outras coisas para as quais haja suporte no
sistema. Usurios de msdos talvez estejam habituados a fazer coisas
como: C> DIR >PRN: para imprimir a sada de um comando. A
sintaxe dos shells unix a mesma (na verdade o msdos herdou-a do
unix): hal:~$ ls -l >/dev/lp1
Slide 38 /tmp/error A entrad"> /tmp/error A entrada pode ser
redirecionada de forma semelhante: hal:~$ wc
Shells do estilo "bourne" como o bash permitem redirecionamento
da sada de erros atravs da seguinte sintaxe: hal:~$ rm /bin/ls
2>/tmp/error A entrada pode ser redirecionada de forma
semelhante: hal:~$ wc
Slide 39
SEGURANA
Slide 40
O kernel Linux por ser descendente da filosofia Unix pode ser
considerado seguro. Porm como o projeto do kernel descentralizado e
seu foco obter um grande suporte a hardware novos, no incomum se
descobrir falhas do tipo buffer overflow, negao de servio (DOS) e
alguns que levam at a privilgios de super usurio (root). Quando uma
falha desses encontrada rapidamente liberado um patch para correo.
O kernel do linux possui o firewall a nvel de pacotes Iptables. Ele
bastante sofisticado e robusto. Possui filtro a nvel de pacotes,
marcao de pacotes, nat, port redirection, ip redirection, source
nat, destination nat entre muitas outras features.
Slide 41
BENEFCIOS
Slide 42
Custo baixo e gratuito Por serem baseadas em software livre, as
distribuies Linux podem ser encontradas gratuitamente. Algumas
distribuies, como o Ubuntu, disponibilizam em seus sites oficiais
links de download das imagens dos CDs de instalao ou at mesmo
disponibilizam um formulrio onde voc pode solicitar a entrega de
mdias de instalao atravs do correio. Verses mais elaboradas, como
aquelas dedicadas exclusivamente a servidores, podem apresentar um
pequeno custo por causa da licena, mas esse custo ainda muito menor
do que licenas de outros sistemas operacionais, como os sistemas da
famlia Windows.
Slide 43
SEGURANA E ESTABILIDADE: Os sistemas Linux so mais estveis,
pois conseguem gerenciar de maneira mais eficiente os recursos de
hardware. Isso permite que at mquinas mais antigas possam rodar
verses mais novas das distribuies. Alm disso, so mais seguros, pois
o nmero de pragas virtuais para sistemas Linux ainda muito
reduzido, alm de que cdigos que modifiquem qualquer parte do
sistema sempre so interceptados com a autenticao obrigatria o
superusurio (root). Esse recurso inclusive comeou a ser incorporado
de maneira similar a partir do Windows Vista na famlia Windows,
atravs do Controle de Conta de Usurio. COMUNIDADE EXTENSA: A
comunidade Linux muito ativa. Manifesta-se atravs de fruns, listas
de discusso e outros meios atravs da internet, meios de fcil
acesso. Isso garante suporte quando necessrio, inclusive em
portugus. Voc pode obter auxlio para problemas bem bsicos como para
problemas mais complexos.
Slide 44
LIMITAES
Slide 45
INCOMPATIBILIDADE (equipamentos): Alguns fabricantes de
equipamentos no escrevem drivers para o sistema Linux para seus
equipamentos, como o caso de algumas impressoras da HP. Existem
alternativas para estes casos, porm geralmente so tortuosas de
serem implementadas e podem desencorajar os usurios a utilizarem as
distribuies Linux. INCOMPATIBILIDADE (formatos de arquivos): Alguns
formatos de arquivos, principalmente os proprietrios da Microsoft,
no so executados com toda a fidelidade, como o caso do formato de
vdeo WMV. Existem plug-ins para execut-los, mas estes no acabam
oferecendo a mesma qualidade que se o arquivo estivesse sendo
executado no Windows Media Player.
Slide 46
DIFICULDADE NO USO (usurio): Mesmo com o MODO esforo de algumas
distribuies como o Ubuntu, o Linux no consegue oferecer a mesma
facilidade de uso que o Windows. Isso talvez se deva mais a um
fator cultural, mas o fato que se voc entregar um computador com
Linux pra algum que trabalha com Windows, este certamente sentir um
pouco de dificuldade, o que no acontece geralmente ao
contrrio.
Slide 47
Conclumos que o sistema operacional Linux tem evoludo muito em
suas funes, com muitas melhorias. Por ser um software livre,
gratuito, no quer dizer que o sistema de m qualidade como muitas
pessoas pensam. Com diversas distribuies, o Linux usado em varias
empresas como: Banco do Brasil, Petrobrs, Casas Bahia, Lojas
Colombo, Lojas Renner, Governo Federal, etc. O sistema roda
tranquilamente com outros sistemas, isso quer dizer que a pessoa
poder usar o Linux, sem trocar o seu sistema atual que sempre usa
(Dual Boot).
Slide 48
www.ime.usp.br/~ueda/ldoc/es.htmlwww.ime.usp.br/~ueda/ldoc/es.html,
guiaFoca + iniciante + intermediario, pdf Gonalves, A., Luvizotto,
D., Nascimento, H., Santos, L., Martins, L.Sistemas Linux.
Universidade Estadual de Londrina,Londrina, 2007. Jnior, J.,
Alvarez, D. Gerenciamento de memria no Linux. Instituto Tecnolgico
da Aeronutica (ITA). So Jos dos Campos.