O documento discute aspectos do kernel Linux, incluindo suas características, arquitetura, compilação e instalação. Aborda tópicos como gerenciamento de memória, processos, dispositivos, rede e suporte a múltiplas plataformas hardware.
50. Layout Básico dos diretórios do Linux /bin Arquivos aplicativos/utilitários binários executáveis /sbin Arquivos binários executáveis essenciais ao sistema /etc Arquivos de inicialização, configuração e administração do sistema /root Diretório pessoal do usuário root /dev Arquivos de dispositivos /lib Bibliotecas /lib/modules Módulos que podem ser carregados no kernel /mnt Ponto de montagem de filesystems temporários /var Arquivos permanentemente atualizados e que mudam muito de tamanho como, por exemplo, logs e spools de impressão /usr Arquivos de aplicações do sistema /usr/src/linux Arquivos de código-fonte do kernel do Linux /usr/doc Alguns arquivos com documentação específica /boot Arquivos usados na inicialização (boot) /tmp Arquivos temporários /home Arquivos locais dos usuários /opt Arquivos de instalação de aplicações /lost+found Blocos de filesystem encontrados perdidos pelo comando fsck /proc Informações do sistema: processos, dispositivos, memória, filesystems, etc.
51.
52. Permite acesso à várias informações sobre o que está acontecendo na máquina Exemplos: /proc/x – informações do processo de número x /proc/cpuinfo – processador, tipo, modelo, etc /proc/devices – lista de dispositivos no kernel atual /proc/modules – lista os módulos 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
73. O kernel deve checar se os endereços estão coerentes antes de realizar a chamada (através de funções específicas) ou apenas tratar as falha a nível de kernel mode
74. Neste caso é enviado um sinal para o processo falho (SIGSEGV)
88. Os DD podem ser módulos do kernel e podem se carregados e descarregados dinamicamente sob demanda
89. O diretório /dev contém os arquivos de dispositivos ( não são drivers para o dispositivo)
90. Existem arquivos de dispositivos para dispositivos abstratos como /dev/null e /dev/log
91. Exemplo: Dispositivos para HD’s /hda1: primeiro HD primeira partíção /hda2: primeiro HD segunda partíção /hdb1: segundo HD primeira partíção /hdb2: segundo HD segunda partíção
92.
93. O ponto de montagem é o diretório onde o filesystem é montado
94. Os drivers dos dispositivos são partes do kernel responsáveis em controlar os diversos hardwares da máquina
95. Os dispositivos se comunicam com o kernel através dos arquivos do diretório /dev
99. O procedimento de desabilitar interrupções de hardware não faz sentido em sistemas multiprocessados (outros processo de kernel podem acessar os dados protegidos na região crítica)
100. Semáforos ou spin 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 informação de que processador está executando o processo
120. Linux usa módulos em razão da eficiência, normalmente device drivers
121. Quase todas as partes do kernel podem ser transformadas em módulos
122. O kernel possui uma tabela de símbolos que indica o módulo 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 módulos correspondentes
124.
125. Nos novos kernels, esta função pode ser feita pelo próprio kernel (opção kmod de compilação)
174. O sistema deverá ter os aplicativos de compilação, linkagem e controle (citados na documentação)
175.
Notas do Editor
Stephen Tweedie claims “All kernel code executes in a process context (except during startup)”. He also says that it is possible for an interrupt to occur during a context switch. So it is uncommon for there to be no user process mapped. The real problem is not knowing what process is mapped. Kernel mode, system context activities occurs asynchronously and may be entirely unrelated to the current process.