Ponteiros no Learning Linux 0.01 Código-fonte

4

Estou tentando aprender alguma programação real em C e os conceitos do Linux. Então eu pensei em tentar olhar para a fonte da versão 0.01 do kernel do Linux.

No meu entendimento, eu pude encontrar a implementação do nível zero de muitas coisas, mas os comentários são muito poucos. Por exemplo:

void rs_init(void)
{
    set_intr_gate(0x24,rs1_interrupt);
    set_intr_gate(0x23,rs2_interrupt);
    init(tty_table[1].read_q.data);
    init(tty_table[2].read_q.data);
    outb(inb_p(0x21)&0xE7,0x21);
}

Parece não haver comentários sobre os registros ou a função.
Sei que a implementação fornecerá alguma ideia, mas gostaria de saber se devo manter alguma referência para que os valores e os nomes me dêem um melhor significado e compreensão.

Por favor, ofereça algumas dicas.

    
por Sen 20.06.2011 / 15:44

3 respostas

6

Embora o Minix tenha sido sugerido como um sistema operacional para estudo, outro é a sexta edição do Unix por meio do Comentários dos Leões .

Sexta Edição O Unix é bem pequeno para os padrões de hoje e o comentário do Lions sobre ele é considerado um dos melhores conjuntos de notas para aprender o sistema operacional Unix. Durante muito tempo, só estava disponível como fotocópia de várias gerações, mas felizmente foi reimpressa e deve estar disponível no seu vendedor de livros on-line favorito.

    
por 20.06.2011 / 22:34
5

Conforme solicitado, reescrito de um comentário:

Eu não acho que o Linux 0.01 seja uma ótima fonte para conceitos de programação C: -)

Experimente o Minix. O Minix é usado para ensinar o design do sistema operacional, portanto, é uma fonte muito melhor para aprender coisas assim.

link

link

    
por 21.06.2011 / 12:58
1

A melhor maneira de aprender uma linguagem de programação é ter um problema para resolver, em vez de tentar ler como outras pessoas resolveram problemas que você não tem.

Encontre um projeto Linux de código aberto que o entusiasme e comece examinando alguns bugs abertos e veja se você pode corrigi-los. Claro, é um desafio, mas se você tiver um problema específico, poderá aprender o idioma e aplicar o que aprendeu para corrigir o problema. É muito mais fácil do que tentar aprender com o código anterior.

Às vezes, os bugs precisam ter um bom entendimento das coisas, então talvez encontre um projeto de código aberto que tenha alguns recursos em uma lista de desejos e trabalhe para integrar um deles.

As equipes de código aberto estão sempre procurando relatórios de bugs com correções ou melhorias anexadas. Isso ajudará você a aprender e dará algo de volta à comunidade de código aberto.

    
por 20.06.2011 / 17:18

Tags