Buscar

doc 2.inicializaþÒo visao geral(8 21)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade do Grande Rio “ Professor José de Souza Herdy”
Sistemas Operacionais Abertos
Inicialização de um Sistema LINUX
Quando um computador inicializa, a BIOS procura no hardware existente, dispositivos de onde pode carregar o sistema operacional. Após identificar o dispositivo de boot, carrega o loader, que é o programa encarregado de carregar o sistema operacional própriamente dito. Os loaders (ou bootstrap programs) mais comuns no LINUX são o LILO (/etc/lilo.conf) e o GRUB (/boot/grub/menu.lst ou grub.conf).
Após a inicialização do kernel, este inicia os dispositivos de hardware, e seguidamente inicia o processo swapper (0) e o init (1). O swapper é, na verdade, uma parte do kernel e não um processo "normal". O init é o pai de todos os processos que vão executar numa máquina LINUX.
Fonte:http://www.ibm.com/developerworks/br/library/l-linuxboot/
A partir de então, o init é o responsável pela inicialização, lendo o arquivo /etc/inittab (sistemas SysVinit) ou o diretório /etc/init (sistemas com Upstart). É também o responsável em colocar o sistema num dos vários níveis de execução, inclusive o nível de encerramento (shutdown).
A tabela que se segue apresenta os vários níveis, estando uma máquina LINUX num determinado momento, num destes níveis:
	Nível (Run Level)
	Significado
	0
	Parar a máquina
	1
	Modo de "single user". Todos os filesystems são montados, e só um pequeno número de processos do kernel estão em execução. Só o root pode faser login
	2
	Modo de "multi-user" sem utilização arquivos remotos
	3
	Modo de "multi-user" com utilização de arquivos remotos, processos e deamons
	4
	Estado nào utilizado
	5
	Estado usado para iniciar o X11 ( Interface Gráfica)
	6
	Encerramento, e Reinicialização (Shutdown e reboot)
	a b c
	Níveis (on-demand)
	S ou S
	O mesmo que o modo de "single user" mas somente é utilizado pelos scripts
Visão Geral do Linux
O Kernel
É o núcleo do sistema operacional, a parte mais próxima do hardware. É composta de chamadas ao sistema, de acessos aos dispositivos de I/O e de gerência dos recursos da máquina.
Programas Shell
São programas interpretadores de comandos, atuam como linguagem de programação (os shell scripts) no Unix e Linux, são uma interface entre o usuário e o kernel, porém não faz parte do Sistema Operacional. Os mais populares são bash, csh, ksh, sh, e tsh. O usuário pode escolher qual shell vai utilizar e o shell-padrão do Linux é o bash.
		Figura SHELL: Copyleft Julio Cesar Neves
O que é um Shell Script
É um arquivo que contém comandos de shell, mas que em uma situação normal poderiam ser executados a partir do prompt de comandos.
linux-rrv:/ # for i in a b c d e f
> do
> echo "Criando o arquivo $i."
> sleep 2
> touch $i
> echo "Arquivo $i criado com codigo $?."
> done
Criando o arquivo a.
Arquivo a criado com codigo 0.
Criando o arquivo b.
Arquivo b criado com codigo 0.
Criando o arquivo c.
Arquivo c criado com codigo 0.
Criando o arquivo d.
Arquivo d criado com codigo 0.
Criando o arquivo e.
Arquivo e criado com codigo 0.
Criando o arquivo f.
Arquivo f criado com codigo 0.
linux-rrv:/ #
O Linux como sistema operacional multitarefa e multiusuário.
Em um ambiente multitarefa os processos (programas em execução) são escalonados pelo kernel e a estes são reservados recursos do sistema. O Linux é um sistema operacional de multitarefa preemptiva, onde o kernel reserva um intervalo de tempo para cada processo ser executado (time slice). Quando este intervalo termina, o kernel suspende a execução do processo, salva o seu contexto para que este possa ser executado posteriormente. Este também determina quando cada processo será executado, a duração de sua execução e a sua prioridade sobre os outros.
Como ambiente multiusuário, este permite que mais de um usuário acesse o computador simultaneamente. Que pode ser por meio de terminais virtuais ou remotamente.
Os tipos de usuários no Linux/Unix são: o usuário “root” (ou superusuário/administrador), que pode manipular todos os recursos do sistema operacional, os usuários “comuns”, que possuem restrições se comparados com o root e os usuários do sistema, que diferente dos usuários comuns e root, não se conectam e são utilizadas para uso específico de serviços no sistema (Ex. oracle, lp, nobody, mysql, postfix, etc).
linux-rrv: #  prompt do usuário root
robson@linux-rrv:$  prompt do usuário comum
Sistema de Arquivos
Sistema de arquivos é a forma que o sistema operacional usa para organizar os dados em um espaço de armazenamento que pode ser mídia: disquetes, discos rígidos, drives em memória, cd´s, etc. Desta forma o sistema operacional pode ler e gravar os dados no dispositivo de armazenamento de massa.
Quando se prepara um disco para o trabalho através do processo de formatação física, criam-se os meios magnéticos necessários para armazenar os dados. Este processo faz uma preparação do dispositivo de armazenamento para que ele possa receber um sistema de arquivos e futuramente os dados do usuário. Um sistema de arquivos, portanto, é necessário para manter padrões, para controlar o tamanho das partições, permissões de arquivos, tamanho dos arquivos e sua organização, entre muitas outras funções.
A estrutura do sistema de arquivos é semelhante à descrita abaixo.
	
boot block 
	
super block
	
i-nodes
	
bloco de dados
 
	Estrutura
	Descrição
	boot block
	se utilizado serve para carga do sistema (boot)
	super block
	possui informações sobre a estrutura do sistema de arquivos. Contém informações como seu tamanho em blocos, o nome do sistema de arquivos, número de blocos reservados para i-nodes, a lista de i-nodes livres e o começo da cadeia de blocos livres. Sempre reside em um bloco de 512 bytes.
	i-node
	descreve um único arquivo, como seus atributos (dono, grupo, proteção, permissão de acesso, tipo e localização dos blocos de dados no disco).
	bloco de dados
	dados propriamente ditos de arquivos e diretórios.
Os conceitos de partição e sistema de arquivos são normalmente confundidos, quando na verdade são conceitos totalmente diferentes. As partições são áreas de armazenamento criadas durante o processo de particionamento, sendo que cada partição funciona como se fosse um disco rígido (ou dispositivo avulso). O utilitário que cria as partições é chamado particionador e, os mais comuns são o cfdisk e o fdisk. Abaixo temos a exibição do comando fdisk.
 # fdisk –l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x2e222e21
 Device Boot Start End Blocks Id System
/dev/sda1 1 1275 10241406 7 HPFS/NTFS
/dev/sda2 * 1276 6658 43238947+ f W95 Ext'd (LBA)
/dev/sda3 6659 9728 24659775 7 HPFS/NTFS
/dev/sda5 1276 2550 10241406 7 HPFS/NTFS
/dev/sda6 2551 3825 10241406 83 Linux
/dev/sda7 3826 3960 1084356 82 Linux swap / Solaris
/dev/sda8 3961 6658 21671653+ 7 HPFS/NTFS
Disk /dev/sdb: 80.0 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x8042a603
 Device Boot Start End Blocks Id System
/dev/sdb1 1 974 7823654+ 83 Linux
Para se utilizar uma partição, entretanto, deve-se criar um sistema de arquivos, ou seja, um sistema que organize e controle os arquivos e diretórios desta partição. 
Observações: 
Uma partição só pode ter apenas um único sistema de arquivo.
Podemos teraté 4 partições primárias.
Apenas uma partição estendida pode existir em um mesmo disco físico.
As partições lógicas existem dentro da partição estendida e são numeradas a partir de 5.
			
O Linux possui um sistema de arquivos hierárquico. Os arquivos não estão armazenados em um nível, mas em níveis múltiplos e o sistema de arquivos apoia a ilusão de "lugares" dentro do sistema, considera todos os dispositivos, discos, arquivos e diretórios como um todo, alocando-os na mesma árvore do sistema de arquivos. Assim, o usuário não precisa especificar o disco ou dispositivo onde está um arquivo, somente o diretório onde ele está armazenado. O próprio sistema operacional se encarrega de mapear o acesso ao disco ou dispositivo correspondente.
O sistema de arquivo do Linux, igualmente ao do UNIX, é baseado em uma estrutura de diretórios em árvore, sendo o diretório raiz (root) representado pela “/”.
Entretanto, os diretórios são apenas arquivos que podem ser lidos por qualquer programa, e embora o diretório seja a estrutura visível do sistema de arquivos, eles não são o depósito de todas as informações sobre os arquivos. Os diretórios contêm apenas duas partes de informações para cada arquivo: o nome do arquivo e um número (inode=index-node) usado pelo kernel para acessar as estruturas ocultas do sistema de arquivos.
O inode é uma estrutura de dados em disco que descreve e armazena os atributos do arquivo, que são informações sobre: a localização no disco, o tamanho, o modo de acesso, as datas relevantes (criação, último acesso, etc.), tipo do arquivo (ou 0 se inode não usado), número de links, o proprietário e similares. Existe um inode para cada arquivo. 
Quando uma partição de disco é inicializada, ou seja, formatada e nela definida um sistema de arquivos, um número específico de inodes é criado. Este número de inodes se torna o número máximo de arquivos de todos os tipos, incluindo diretórios, arquivos especiais e links que podem existir na partição que foi inicializada. 
Entendendo a estrutura de diretórios do Linux
Fonte: http://www.thegeekstuff.com/2010/09/linux-file-system-structure/
Descrição da Estrutura de Diretórios
1. / – Root
Todos os arquivos e diretórios começam a partir da raiz. 
Somente o usuário root tem permissão de gravar neste diretório. 
O diretório /root é o diretório de trabalho do usuário root e não é o mesmo que /. 
2. /bin – User Binaries
Contém arquivos executáveis (programas). 
Comandos utilizados no modo monousuário estão nesse diretório.
Comandos usados por todos os usuários estão nesse diretório. 
Exemplos: ps, ls, ping, grep, cp. 
3. /sbin – System Binaries
Assim como o /bin, /sbin também contém binários executáveis. 
Os comandos localizados aqui geralmente são utilizados pelo Administrador para manutenção do sistema. 
Exemplos: iptables, reboot, fdisk, ifconfig, swapon 
4. /etc – Configuration Files
Contem arquivos de configuração exigidos por todos os programas. 
Isso também inclui os scripts de inicialização e término para programas (serviços) individuais. 
Exemplo: /etc/resolv.conf, /etc/logrotate.conf 
5. /dev – Device Files
Contém arquivos para dispositivos. 
Que inclui: dispositivos de terminal, usb, ou qualquer dispositivo conectado ao sistema. 
Exemplo: /dev/tty1, /dev/usbmon0 
6. /proc – Process Information
Contém informações sobre processo do sistema.. 
É um pseudo sistema de arquivos e contém informações sobre processos executando. 
Exemplo: /proc/{pid}, esse diretório contém informações sobre o processo com o PID em referência. 
 
7. /var – Variable Files
Padrão para arquivos/diretórios variáveis. 
Isso inclui: arquivos de log do sistema (/var/log); arquivos de pacotes e base de dados (/var/lib); correio (/var/mail); filas de impressão (/var/spool); 
8. /tmp – Temporary Files
Esse diretórios contém arquivos temporário criados por usuários e pelo sistema. 
Em alguns sistemas esses arquivos são removidos durante o boot do sistema. 
 
9. /usr – User Programs
Contém binários, bibliotecas, documentação e etc. 
/usr/bin contém arquivos binários para usuários. Se você não encontra o binário em /bin, verifique se está em /usr/bin. Exemplo: at, awk, cc, less, scp 
/usr/sbin contém arquivos binários para o adminsitrador. Se não encontrar em /sbin, olhe para /usr/sbin. Exemplo: atd, cron, sshd, useradd, userdel 
/usr/lib contém as bibliotecas para os comandos em /usr/bin e /usr/sbin 
/usr/local contém programas instalados do fontes. Por exemplo, quando você instala o apache do fonte, os arquivos dele irão para /usr/local/apache2 
10. /home – Home Directories
Local para armazenamento de arquivos de todos os usuários. 
Possui um sub-diretório para cada usuário (não para usuário de serviço) criado no sistema.
Exemplo: /home/robson, /home/suporte
 
11. /boot – Boot Loader Files
Contém arquivos relacionados ao carregador de boot do sistema. 
Kernel initrd, vmlinux, arquivos do grub estão localizados em /boot.
Por exemplo: initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic 
12. /lib – System Libraries
Contém as bibliotecas para os executáveis em /bin e /sbin. 
Nomes de bibliotecas são ld* ou lib*.so.* 
Por exemplo: ld-2.11.1.so, libncurses.so.5.7 
13. /opt – Optional add-on Applications
opt significa opcional. 
Contém aplicações de fornecedores. 
14. /mnt – Mount Directory
Diretório utilizado para montagem temporária de sistemas de arquivos. 
15. /media – Removable Media Devices
Diretório para montagem temporária de dispositivos removíveis. 
Exemplos: /media/cdrom para CD-ROM; /media/floppy para disquetes.
 
16. /srv – Service Data
srv significa serviço. 
Diretório para dados de serviços fornecidos pelo sistema e, cuja aplicação é de alcance geral, ou seja, os dados não são específicos de um usuário. 
For example, /srv/www (servidor web), srv/ftp (servidor ftp)
Fonte: http://www.thegeekstuff.com/2010/09/linux-file-system-structure/
Principais tipos de sistemas de arquivos que existem e que são criados em um processo de formatação:
Ext: sistema de arquivos estendido (extended filesystem). Era o sistema de arquivos mais utilizado no Linux. Existem ramificações (ext2, ext3 e ext4). 
VFAt/NTFS: Virtual File Allocation Table, este é o sistema de arquivos FAT16/32, incluída a partir do Win95 e suportado pelo Linux. O NTFS, New Technology File System, foi desenvolvido pela Microsoft a partir da criação do Windows NT e atende às diversas plataformas MS Windows (2000, XP, 2003, Vista, Windows 7 e Windows 2008, etc), superando as limitações do FAT.
NFS: sistema de arquivos de rede, utilizado para acessar diretórios de máquinas remotas, que permite o compartilhamento de dados na rede.
Reiserfs: sistema de arquivos com suporte a características mais avançadas, como por exemplo melhor performance para diretórios muito grandes e suporte a transações (journalling).
iso9660: sistema de arquivos do CD-ROM.
HPFS: sistema de arquivos do OS/2 da IBM.
 
Tabela de identificação de discos rígidos feita pelo Linux:
/dev/sda1
 | | |
 | | |_Número que identifica o número da partição no disco rígido.
 | |
 | |_Letra que identifica o disco rígido (a=primeiro, b=segundo, etc).
 | 
 | 
 |
 |_Diretório onde são armazenados os dispositivos existentes no sistema.
 Abaixo algumas identificações de discos e partições em sistemas Linux:
 /dev/fd0 - Primeira unidade de disquetes.
 /dev/fd1 - Segunda unidade de disquetes.
 /dev/sda - Primeiro disco rígido na primeira controladora IDE
 do micro (primary master) ou primeiro disco na primeira controladora SCSI,
 SATA.
 /dev/sr0 – Primeira unidadede CD-ROM.
 /dev/sr1 – Segunda unidade de CD-ROM.
Obs.: Este novo padrão de identificação de disco se deu a partir da versão 2.6.19 do kernel linux.
Formatando disquetes no LINUX.
Para formatar disquetes para serem usados no LINUX utilize o comando abaixo.
# mkfs.ext2 -c /dev/fd0
Em alguns sistemas deverá ser usado mke2fs ao invés de mkfs.ext2 e, a opção –c faz com que o mkfs.ext2 procure por blocos danificados no disquete. Apenas como lembrete, /dev/fd0, faz referência à primeira unidade de disquete a ser formatada, ou seja, equivale a “A: no MS Windows”. 
Obs.: O disquete NÃO pode ser lido pelo DOS/Windows
Formatando disquetes compatíveis com o MS Windows.
Você pode usar os comandos do pacote mtools para simular os comandos usados pelo DOS no GNU/Linux, a diferença básica é que eles terão a letra “m” no inicio do nome.
O comando mformat formata um disquete em formato MS-DOS, apagando qualquer informação que lá estiver.
Ex.: mformat a: 
Montagem de Partições
O GNU/Linux acessa as partições existentes em seus discos rígidos e disquetes através de diretórios. Os diretórios que são usados para acessar (montar) partições são chamados de Pontos de Montagem.
Para acessar uma partição de disco use o comando mount. 
mount [dispositivo] [ponto de montagem] [opções] 
Onde: 
dispositivo 
Identificação da unidade de disco/partição que deseja acessar (como /dev/hda1 (disco rígido) ou /dev/fd0 (primeira unidade de disquetes). 
ponto de montagem (caminho)
Diretório de onde a unidade de disco/partição será acessado. O diretório deve estar vazio para montagem de um sistema de arquivo. Normalmente é usado o diretório /mnt para armazenamento de pontos de montagem temporários. 
-t [tipo] 
Tipo do sistema de arquivos usado pelo dispositivo. São aceitos os sistemas de arquivos: ext2, ext3, reiserfs, vfat, msdos, iso9660, ntfs.
Veja mais detalhes de utilização sobre cada opção do mount, utilizando as páginas de “manual mount”. 
-r 
Caso seja especificada, monta a partição somente para leitura. 
-w 
Caso seja especificada, monta a partição como leitura/gravação. É o padrão. 
Obs.: É necessário ter permissões de usuário root para montar partições, a não ser que se tenha especificado a opção “user” na tabela /etc/fstab.
Exemplo de Montagem: 
Montar uma partição Windows (vfat) definida em /dev/sda1 no caminho /mnt somente para leitura:
# mount /dev/sda1 /mnt -r -t vfat 
Montar a primeira unidade de disquetes /dev/fd0 em /floppy:
# mount /dev/fd0 /floppy -t vfat 
Montar uma partição DOS localizada em um segundo disco rígido /dev/sdb1 em /mnt:
# mount /dev/sdb1 /mnt -t msdos. 
O arquivo /etc/fstab
O arquivo /etc/fstab permite que as partições do sistema sejam montadas facilmente especificando somente o dispositivo ou o ponto de montagem. Este arquivo contém parâmetros sobre as partições que são lidas pelo comando mount. Cada linha deste arquivo contém a partição que desejamos montar, o ponto de montagem, o sistema de arquivos usado pela partição e outras opções. O arquivo /etc/fstab tem uma visão parecida com a imagem abaixo: 
 Arquivo Especial (bloco) Ponto_de_Montagem 	Tipo Opções		dump ordem
 /dev/sda1 		/	 ext2 defaults 		0 	1
 /dev/sda2 	 	/boot 	ext2 defaults 		 0 	2
 /dev/sda3 	 	/dos 		msdos defaults,noauto,rw	 0 	0
 /dev/cd0 		/cdrom 	iso9660 defaults,noauto 	 0 	0
Onde: 
Arquivo Especial: partição que deseja montar. 
Ponto de montagem: diretório (vazio) do GNU/Linux onde a partição montada será acessada. 
Tipo: Tipo de sistema de arquivos usado na partição que será montada. Para partições GNU/Linux use ext2/ext3, para partições DOS (sem nomes extensos de arquivos) use msdos, para partições Win 95 (com suporte a nomes extensos de arquivos) use vfat, para unidades de CD-ROM use iso9660.
 
Opções:
Especifica as opções usadas com o sistema de arquivos: 
defaults - utiliza valores padrões de montagem (rw, suid, dev, exec, auto, nouser e async). 
noauto - não monta os sistemas de arquivos durante a inicialização (útil para CD-ROMS e disquetes). 
dev – interpreta dispositivos especiais de caracteres ou bloco no sistema de arquivos.
Suid – habilita bit de suid e sgid.
ro - monta como somente leitura. 
user - permite que usuários montem o sistema de arquivos (não recomendado por motivos de segurança). 
sync é recomendado para uso com discos removíveis (disquetes, zip drives, etc) para que os dados sejam gravados imediatamente na unidade (caso não seja usada, deve-se usar o comando sync antes de retirar o disquete da unidade). 
Dump: Define se o sistema fará um dump (backup) do sistema.
Ordem:
Define a ordem que os sistemas de arquivos serão verificados na inicialização do sistema. Se usar 0, o sistema de arquivos não é verificado. O sistema de arquivos raíz que deverá ser verificado primeiro é o raíz "/" . 
Após configurar o /etc/fstab, basta digitar o comando mount /dev/cd0 ou mount /cdrom para que a unidade de CD-ROM seja montada. Neste caso não é necessário especificar o sistema de arquivos da partição pois o mount verificará se ele já existe no /etc/fstab e caso exista, usará as opções especificadas neste arquivo. Para maiores detalhes veja as páginas de manual fstab. 
Desmontagem de Partições
Para desmontar um sistema de arquivos montado com o comando “mount”, use o comando umount. Você deve ter permissões de root para desmontar uma partição. 
umount [dispositivo/ponto de montagem] 
Você pode usar tanto umount /dev/hda1 como umount /mnt para desmontar um sistema de arquivos /dev/hda1 montado em /mnt. 
Observação: O comando umount executa o sync automaticamente. Desse modo, no momento da desmontagem, garante que todos os dados ainda não gravados sejam salvos. 
�Versão 2014-1

Outros materiais