Aspectos do kernel Linux e Instalação

Embed Size (px)

DESCRIPTION

Palestra: Aspectos do Kernel Linux e Instalação - Prof. Mauro Tapajós Santos

Citation preview

  • 1. Aspectos do Kernel do Linux e Instalao Prof. Mauro Tapajs

2. Objetivos

  • Nivelar os participantes do projeto Itautec nos vrios aspectos do kernel do sistema Linux que ser uma das plataformas a serem analisadas sobre as mquinas Itautec

3. Levantar as questes relevantes sobre o assunto para a pesquisa em andamento do projeto 4. Investigar as dvidas que ocorrerem aos participantes e esclarec-las para que a pesquisa siga adiante 5. Kernel do Linux

  • Trata-se do componente central deste sistema operacional ( core )

6. Totalmente customizvel pode ficar pequeno e compacto 7. Monoltico ( a escolha 8. Pode rodar em hardwares modestos 9. Grande compatibilidade

  • Filesystems(Windows, OS/2, MAC OS, Solaris, SunOS, NeXTSTEP, BSD, etc)

10. Rede (Ethernet, Fast e Giga, FDDI, HIPPI, Token Ring, WaveLAN, DEC Roamabout) 11. Com as bibliotecas adequadas pode at rodar programas escritos para outros SOs 12. Caractersticas do Kernel

  • Multitarefa real - gerencia o tempo de CPU entre os vrios processos

13. Multiprocessamento pode trabalhar com vrios processadores 14. Gerenciamento otimizado de memria, com suporte a memria virtual ( swap ) 15. Faz a gesto de recursos da mquina (portas seriais, impressoras, rede, etc) 16. Continuamente atualizado (evoluo de hardware) 17. Caractersticas do Kernel

  • Controla e media o acesso ao hardware

18. Controla osfilesystems , apresentando qualquer dispositivo de armazenamento numa forma padronizada 19. Implementa e suporta abstraes fundamentais ao sistema como processos, arquivos, dispositivos, usurios, rede, filesystems 20. Controla a distribuio de recursos do sistema 21. Realiza tarefas de manuteno rotineiras 22. Modo de Operao

  • Execuo de processos em modo kernel / usurio

23. Kernel reentrante possibilidade de rodar vrios processos emkernel mode 24. No preemptivo (em sistemas monoprocessados) 25. Kernel control path sequncia de instrues executada pelo kernel em resposta a chamadas de sistema, interrupes ou excees 26. interessante se rodar com as interrupes habilitadas na maior parte do tempo 27. Plataformas Suportadas

  • alpha (HP)

28. arm 29. cris (thin servers) 30. i386 31. Ia64 itanium 32. m68k 33. mips e Mips64 34. parisc (HP) 35. ppc 36. s390 e s390x (IBM zSeries) 37. sh (superH Hitachi) 38. sparc e sparc64 (SUN) 39. Numerao dos kernels

  • Formato X.Y.Z, onde

X nmero de verso Y

      • se for par uma verso estvel
    • 40. se for mpar uma verso em desenvolvimento

Z nmero dorelease(estvel ou beta)

  • O kernel 2.4 (atual) foi lanado em jan/2001

41. Caractersticas da Verso 2.4 do kernel

  • No h mais a limitao de 1024 processos/threads

42. Melhor suporte multiprocessador (SMP) 43. Suporte USB e PCMCIA interno no kernel e no em pacotes separados 44. Suporte genrico a portas paralelas 45. Melhor suporte a filesystems e NFSv3 46. Facilidade na importao de filesystems externos (tecnologia defilesystemvirtual) 47. Melhor suporte a memria virtual 48. Novos dispositivos so suportados 49. Algumas Distribuies Linux 50. Layout Bsico dos diretrios do Linux /bin Arquivos aplicativos/utilitrios binrios executveis /sbin Arquivos binrios executveis essenciais ao sistema /etc Arquivos de inicializao, configurao e administrao do sistema /root Diretrio pessoal do usurio root /dev Arquivos de dispositivos /lib Bibliotecas /lib/modules Mdulos que podem ser carregados no kernel /mnt Ponto de montagem de filesystems temporrios /var Arquivos permanentemente atualizados e que mudam muito de tamanho como, por exemplo, logs e spools de impresso /usr Arquivos de aplicaes do sistema /usr/src/linux Arquivos de cdigo-fonte do kernel do Linux /usr/doc Alguns arquivos com documentao especfica /boot Arquivos usados na inicializao (boot) /tmp Arquivos temporrios /home Arquivos locais dos usurios /opt Arquivos de instalao de aplicaes /lost+found Blocos de filesystem encontrados perdidos pelo comando fsck /proc Informaes do sistema: processos, dispositivos, memria, filesystems, etc. 51. Diretrio /proc

  • Diretrio especial ilusrio criado pelo kernel em memria para disponibilizar informaes online sobre o sistema

52. Permite acesso vrias informaes sobre o que est acontecendo na mquina Exemplos: /proc/x informaes do processo de nmero x /proc/cpuinfo processador, tipo, modelo, etc /proc/devices lista de dispositivos no kernel atual /proc/modules lista os mdulos carregados no momento 53. Arquitetura do Kernel Applications System Libraries (libc) System Call Interface Hardware Architecture-Dependent Code I/O Related Process Related Scheduler Memory Management IPC File Systems Networking Device Drivers 54. Arquitetura do Kernel 55. Kernel Isola o hardware das aplicaes (intermedirio) 56. Memria

  • Memria usada pelos processos (Texto, dados e pilha)

57. Gerenciamento de Memria

  • Parte da memria fsica de um sistema alocada para o kernel e suas estruturas de dados estticas

58. A outra parte gerenciada pelo sistema de memria virtual, atendendo ao kernel, processos e caches de dispositivos de I/O 59. Cada processo ter sua rea de endereamento privativa 60. Vrias cpias do mesmo processo podem compartilhar sua execuo, separando apenas as reas de dados 61.

  • Usada para disponibilizar memria virtual etask swapping

62. Vantagens

  • Rodar processos que exigem mais memria que a fisicamente instalada no sistema

63. Somente parte do cdigo de um programa armazenada na memria fsisca 64. Pode-se realocar programas para qualquer rea da memria fsica do sistema O kernel cria um espao de endereamento virtual nico de forma que memria fsica e memria virtual se tornam transparente para processos 65. Um mapeamento automtico traduz endereos de memria em endereos fsicos Memria Virtual 66.

  • Swapping cpia de todo o escopo de um processo para o disco

67. Paginao cpia de partes (pginas) para o disco (4 kb) 68. Dependendo da aplicao, velocidade desejada e tamanho da RAM, o espao de memria virtual pode ter de 1 a 3 vezes o tamanho da RAM 69. Pode-se ter 16 reas de swap em disco, inclusive em discos diferentes! 70. Alguns comandos envolvidos: mkswap swapon / swapoff free Memria Virtual 71. Interao com o Kernel

  • Chamadas de Sistema - normalmente exigem endereos de memria como parmetros

72. Endereos errados podem causarcrash 73. O kernel deve checar se os endereos esto coerentes antes de realizar a chamada (atravs de funes especficas) ou apenas tratar as falha a nvel de kernel mode 74. Neste caso enviado um sinal para o processo falho (SIGSEGV) 75. Interrupes

  • Possibilidade do hardware se comunicar com o sistema

76. Usadas pelosdevice drivers 77. Nmeros de interrupes

  • Primeiro conjunto : 0-7

78. Segundo conjunto : 8-15 Em placas SMP

  • irq13 para interrupes Interprocessador

79. irq16 para SMP reschedule 80. Chamadas de Sistema Exemplos: kill () sigaction () sigprocmask () sigpending () ssetmask() sigsuspend() settimer fork 81. Interao com o Kernel

  • Excees falha de hardware ou instruo falha

82. Processos podem criar seus timers para controle temporizado de eventos 83. Necessidade de controle do kernel para estes timers (ordenao e ticks de 10 ms - i386) 84. Sinais

  • Mensagens do sistema para processos em execuo

85. Cada sinal tem um nmero e significao 86. Exemplos: SIGHUP1hangup SIGINT2interrupt SIGQUIT3quit SIGILL4illegal instruction SIGTRAP5trace trap SIGBUS7bus error SIGFPE8arithmetic exception SIGKILL9kill (cannot be caught, blocked, or ignored) 87. Devices

  • Device driver permite a interao do kernel com o dispositivo de I/O

88. Os DD podem ser mdulos do kernel e podem se carregados e descarregados dinamicamente sob demanda 89. O diretrio /dev contm os arquivos de dispositivos ( noso drivers para o dispositivo) 90. Existem arquivos de dispositivos para dispositivos abstratos como /dev/null e /dev/log 91. Exemplo: Dispositivos para HDs /hda1: primeiro HD primeira parto /hda2: primeiro HD segunda parto /hdb1: segundo HD primeira parto /hdb2: segundo HD segunda parto 92. Arquivo de dispositivo

  • O arquivo de dispositivo o arquivo que representa o hardware no sistema

93. O ponto de montagem o diretrio onde ofilesystem montado 94. Os drivers dos dispositivos so partes do kernel responsveis em controlar os diversos hardwares da mquina 95. Os dispositivos se comunicam com o kernel atravs dos arquivos do diretrio /dev 96. Acesso a dispositivos 97. SMP -Symmetrical MultiProcessor

  • O kernel suporta o trabalho de vrios processadores em paralelo

98. Sistemas Multiprocessados vrioskernels control path 99. O procedimento de desabilitar interrupes de hardware no faz sentido em sistemas multiprocessados (outros processo de kernel podem acessar os dados protegidos na regio crtica) 100. Semforos ouspin locks podem ser usados para manter a integridade de estruturas de dados em sistemas multiprocessados 101. As estruturas de dados de processos ( tasks ) deve conter informao de que processador est executando o processo 102. Compilao do Kernel

  • Razes:
  • Kernel mais simples / leve

103. Kernel mais genrico 104. Kernel com suportes especficos Pode-se gerar um kernel numa mquina mais rpida e depois copi-lo para uma mais lenta 105. Compilao do Kernel

  • Procedimento:
  • make config / menuconfig / xconfig

106. make dep 107. make clean 108. make zImage/bzimage/bzdisk 109. Cpia da imagem gerada para o diretrio/usr/src/Linux/arch/i386/boot/zImageou um diskette (bzdisk) 110. make modules 111. Make modules_install 112. Atualizao do LILO (ou outro boot manager) 113. Compilao do Kernel

  • HARDWARE-How To listas de compatibilidade com o kernel

114. Checar se as verses degccelibcso as corretas 115. Ao chamar algum dos comandos config, ser apresentado um lista das opes possveis do kernel 116. Itens que variam de acordo com a verso do kernel, como:

    • Suporte SCSI
  • 117. Itens de Networking

118. Adequao para determinadas famlias de processadores 119. Suporte a Mdulos

  • Alternativas para um kernel lidar com vrios dispositivos: microkernel (exige muita comunicao interprocesso) e suporte a mdulos

120. Linux usa mdulos em razo da eficincia, normalmentedevice drivers 121. Quase todas as partes do kernel podem ser transformadas em mdulos 122. O kernel possui uma tabela de smbolos que indica o mdulo que deve ser carregado 123. Modernas arquiteturas podem realizar o check do hardware e o kernel pode identificar os dispositivos em tempo de boot para carregar os mdulos correspondentes 124. Suporte a Mdulos

  • Processokerneld no mais usado

125. Nos novos kernels, esta funo pode ser feita pelo prprio kernel (opokmodde compilao) 126. Alguns comandos envolvidos: modprobe insmod rmmod 127. Instalao do Kernel

  • Make bzlilo (somente se o lilo estiver em /sbin/ e o kernel est emvmlinuz)
  • Ou usar o lilo diretamente configurando o arquivo /etc/lilo.conf
  • Outro boot manager - GRUB

128. Formato da rvore de Cdigo Fonte do Linux /usr/src/linux Documentation arch fs init kernel include ipc drivers net mm lib scripts alpha arm i386 ia64 m68k mips mips64 ppc s390 sh sparc sparc64 acorn atm block cdrom char dio fc4 i2c i2o ide ieee1394 isdn macintosh misc net adfs affs autofs autofs4 bfs code cramfs devfs devpts efs ext2 fat hfs hpfs asm-alpha asm-arm asm-generic asm-i386 asm-ia64 asm-m68k asm-mips asm-mips64 linux math-emu net pcmcia scsi video adfs affs autofs autofs4 bfs code cramfs devfs devpts efs ext2 fat hfs hpfs 802 appletalk atm ax25 bridge core decnet econet ethernet ipv4 ipv6 ipx irda khttpd lapb 129.

  • documentation
  • documentos dos desenvolvedores divididos por itens especficos

arch

  • um subdiretrio para cada arquitetura, sendo que cada um pode ter subdiretrios para /usr/src/linux/ especficos para a arquitetura

130. O lib contm rotinas j otimizadas para a plataforma em questo (memcpy, checksums, etc) drivers

  • Maior parte do cdigo (~1.5M)

131. Subdiretrios especficos (por exemplo: SCSI) fs

  • Mecanismos de virtual filesystem (VFS)

132. Subdiretrios para cada tipo de fs Cdigo Fonte do Linux 133.

  • include
  • Contm os arquivos de definies (include) usados

linux math-emu net pcmcia scsi video

    • Pores especficas do kernel sao guardadas com estruturas #ifdefs

#ifdef __KERNEL__ /* kernel stuff */ #endif Cdigo Fonte do Linux 134.

  • init
  • Processos de inicializao

135. Somente dois arquivos version.c contains the version banner that prints at boot main.c architecture-independent boot code

    • Implementam a funostart_kernel
  • ipc
  • Implementao de comunicao interprocesso System V (semforos, memria compartilhada e filas de mensagens)

Cdigo Fonte do Linux 136.

  • kernel
  • Cdigo core do sistema
    • sched.c(o arquivo principal do kernel) - scheduler, wait queues, timers, alarms, task queues
    • Interrupoes ( irq.c)
  • 137. Controle de processos ( fork.c, exec.c, signal.c, exit.c - acct.c, capability.c, exec_domain.c )

138. Suporte a mdulos ( kmod.c, ksyms.c, module.c) 139. Outras operaes ( time.c, resource.c, dma.c, softirq.c, itimer.c, printk.c, info.c, panic.c, sysctl.c, sys.c) Cdigo Fonte do Linux 140.

  • lib
  • Compressores do tipo gzip

141. Analisadores de comandos e erros 142. Rotinas de suporte mm

  • Gerenciamento de memria

143. Paginao eswapping , polticas, rotinas de baixo nvel 144. Alocao e liberao de memria 145. Memria virtual 146. Mapeamento de memria net

  • Networking

147. Em constante alterao scripts

  • Configuraes do kernel em menus

148. Patching Cdigo Fonte do Linux 149. Desenvolvimento no Linux

  • Scripts (Awk, perl, shells)

150. WEB: html, php, javascript 151. Linguagem C, C++ 152. Java 153. Velhas Linguagens: cobol e lisp 154. Bibliotecas:sockets ,rpc ,motif(paga) 155. Comunicao entre processos: FIFO, RPC, IPC 156. Desenvolvimento no Linux - Ferramentas

  • Scriptconfigure(autoconf)

157. gcc( cc ) 158. Ambientes grficos ( xwpe , proprietrios) 159. Bibliotecas dinmicas e estticas (.a e .so) 160. Linkagem:ld 161. Ferramentamake

  • make : determina que partes de um programa devem ser recompiladas em funo de uma alterao.
  • Aceita qualquer linguagem

162. ArquivoMakefile 163. Vrias possibilidades ( target ) 164. Instalao de Aplicativos

  • Aplicaes no Linux so, como nos outros sistemas, um conjunto de arquivos com pelo menos um executvel

165. Normalmente vem num formato padro ou apresentaro um script que automatiza as tarefas de instalao

  • Utilitrioinstall

166. RPM RedHat Packets Management

  • Formato padro desenvolvido pela RH

167. Baseado num pequeno utilitrio de mesmo nome 168. Modos de operao (Instalao, verificao, consulta, desinstalao, etc)

  • Nomenclatura dos arquivos dos pacotes

Nome-verso-release.arquitetura.rpm

  • Base de dados RPM:/var/lib/rpm/*

169. RPM RedHat Packets Management

  • Comandos bsicos
  • Listagem dos pacotes instalados

rpm qi(a)

  • Instalao de um pacote

rpm i

  • Desinstalao

rpm e 170. Outras Maneira de Instalar

  • Aplicativos na forma de cdigo fonte

171. Deve-se compilar o pacote, gerando seus executveis 172. Normalmente vem na forma de um arquivo tar 173. LER A DOCUMENTAO!!! 174. O sistema dever ter os aplicativos de compilao, linkagem e controle (citados na documentao) 175. Compilao de Pacotes

  • Nem sempre da mesma forma
  • Procedimento genrico

./configure make make install