Recursos para aprender a arquitetura do Linux detalhadamente? [fechadas]

2

Eu quero aprender a hierarquia de arquivos do Linux e como o sistema operacional funciona em um nível mais profundo. Existem e-books ou páginas da web para aprender isso?

    
por Michael Mrozek 17.01.2011 / 14:00

2 respostas

8

A hierarquia de arquivos / diretórios do Linux é coberta pelo Padrão de hierarquia de arquivos ou FHS.

Como o sistema operacional funciona em um nível "mais profundo" é um tópico muito mais complicado. Em geral, o nível da superfície são os comandos do usuário ... principalmente aqueles nos diretórios / bin e / usr / bin, que são abordados na seção do capítulo 1 das páginas do manual. O próximo nível abaixo são as funções e interfaces da biblioteca padrão (no lado da programação) que são abordadas no capítulo 3 na maioria dos sistemas UNIX (incluindo o Linux). Os utilitários de nível de sistema são encontrados em / sbin e / usr / sbin e são cobertos pelo capítulo 8 do homem, e os arquivos de configuração são armazenados em / etc e cobertos por páginas de manual no capítulo 5.

O próximo nível de detalhe mais baixo seria a interface de chamada do sistema. Isso é coberto por man pages na seção / capítulo dois. Chamadas de sistema são funções no kernel ... e os detalhes para exatamente como chamá-los são cobertos principalmente por suas bibliotecas de programação C (libc --- que são fornecidas em sistemas Linux obrigatórios na forma de glibc - GNU lib para C).

O próprio kernel é escrito em C, mas, como você poderia esperar se você considerar o problema "chicken-and-egg", ele não está vinculado à libc. Portanto, o kernel fornece funções das quais as bibliotecas C dependem. Programas de espaço do usuário, como o comando 'ls', o shell, quaisquer editores e, na verdade, os compiladores e vinculadores usados para transformar o código-fonte em programas em execução, estão todos vinculados a essas bibliotecas C. (Também é normal que bibliotecas C "encapsulem" chamadas do sistema com suas próprias implementações que tenham os mesmos nomes das chamadas do sistema, mas ofereçam algum grau de portabilidade, possivelmente adicionando alguns ganchos para depuração, rastreamento ou tratamento de erros).

Os níveis mais profundos de detalhes são, claro, as próprias fontes do kernel. Eles documentam exatamente o que o kernel implementa. Por exemplo, se você quiser ver precisamente a lista de lugares e nomes de arquivos que o kernel tenta encontrar e executar como o processo "init" você pode vê-lo em init / main.c

Eu participei de forma breve e casual em um esforço, alguns anos atrás, para organizar uma série de sessões de estudo de fontes do kernel com algumas visitas guiadas e palestras e criar um guia de estudo on-line para entendê-las. Partes disso foram documentadas em páginas em Wikiversidade: Lendo as fontes de kernel do Linux . Ainda existem algumas discussões úteis para iniciar o leitor curioso e motivado. (No entanto, você ainda precisa ser capaz de ler o código-fonte C e talvez entender alguma montagem em linha para realmente estudá-lo).

A verdadeira questão é como o locutor normalmente entoa quem toca o limbo ... "Como você pode gooooo?"

    
por 17.01.2011 / 15:09
-1
por 17.01.2011 / 18:04