O processo de crescimento dos mestres em C sob a recomendação de livros clássicos do Linux

Caminho de aprendizagem sugerido: 

  primeiro aprenda o editor, vim, emacs, qualquer que seja. 
Então aprenda a fazer arquivo de arquivo, contanto que você saiba um pouco, então você pode preparar o programa. 

  Em seguida, dê uma olhada em K&R da "Linguagem de Programação C". Dessa forma, você pode basicamente realizar uma programação geral. A propósito, procure um livro sobre estruturas de dados. 

  Se você deseja aprender programação UNIX / LINUX , "Advanced Programing in Unix Envirement" é um livro absolutamente clássico. Aprofunde suas habilidades e estude o segundo volume de "Unix Network Programing". Então, basicamente, o sistema pode ser dominado.

  Em seguida, olhe para o primeiro volume de Douglus E. Comer "Internet Interconnection Using TCP / IP" para aprender sobre o conhecimento de rede, e então leia o primeiro volume de "UNP", não apenas aprendendo programação de rede, mas também alguma programação de sistema comumente usada. Se você continuar a programação de rede, é recomendável ler o terceiro volume de "TCP / IP para Interconexão com a Internet", que contém muita programação sobre protocolos de aplicativos como telnet e ftp.
Se você deseja escrever um driver de dispositivo, primeiro você deve estar familiarizado com a interface de programação do seu sistema, como arquivos, IPC, etc., e então aprender "LDD" 2. 

  Avaliação de vários livros clássicos: 

  "A Linguagem de Programação C" Livro clássico de programação em linguagem C K&R, o autor é o inventor da linguagem C, o conteúdo do livro é simples e profundo. Embora seja um pouco antigo, é um manual obrigatório e agora às vezes ainda o folheio. O espaço é relativamente pequeno, mas cada vez que você lê, você receberá uma recompensa. Além disso, pode ser substituído pela "Programação em linguagem C" de Tan Haoqiang.

  "Advanced Programing inUnix Envirement" W. Richard Stevens: É também um livro muito clássico (bobagem, o livro de Stevens não é clássico!), Embora iniciantes possam lê-lo, mas na verdade é um material suplementar para "Unix Network Programming". O nível da tradução doméstica de "Advanced Programming in UNIX Environment" não é muito bom. Agora existe uma versão em fotocópia e é mais fácil ler em inglês diretamente do que em chinês.

  "Unix Network Programing" W. Richard Stevens: O primeiro volume fala sobre a interface de programação de rede BSD Socket e outra interface de programação de rede, mas agora o BSD Socket é geralmente usado, então você só precisa ler cerca da metade deste livro. O segundo volume não é projetado para coisas de rede, principalmente falando sobre comunicação entre processos e threads Posix. Então, depois de assistir "APUE", você pode assistir. Basicamente, o sistema é resumido por "APUE" e "UNP" vol2. Depois de ler "UNP", você conhecerá a maioria das habilidades de programação da programação do sistema, mesmo que o Volume Um seja sobre programação de rede. Na China, Tsinghua traduziu "Programação de Rede Unix" e os tradutores têm um conhecimento e habilidades de tradução relativamente altos. Portanto, é recomendável ler a versão chinesa.

  Existem três volumes de "TCP / IP Xiangjie". O volume 1 fala sobre protocolos, o volume 2 fala sobre implementação e o volume 3 fala sobre aplicativos de programação. Eu não vi muito isso. , Mas diz-se que é muito clássico, porque não tenho tempo para ler o segundo volume, por isso não é conveniente avaliar. 

  "Usando TCP / IP para interconexão com a Internet" Douglus.E.Comer tem três volumes, o Volume Um fala sobre princípios, o Volume dois fala sobre implementação e o Volume três fala sobre protocolos avançados. Parece que este conjunto é melhor do que o de Stevens, e até mesmo Stevens tem que admitir que seu primeiro volume é muito clássico. Na verdade, mesmo que você não tenha nenhum conhecimento da Internet no Volume 1, saberá os meandros da Internet depois de lê-lo. Muitos exercícios do primeiro volume também são projetados para serem clássicos e práticos, porque o próprio autor é um professor, e o primeiro volume é um livro didático para estudantes de graduação estrangeiros. Não há respostas para os exercícios. Deixo para o leitor pensar sobre, porque as respostas às perguntas podem torná-lo um Hacker intermediário. As respostas a essas perguntas podem ser obtidas como Douglus, mas ele só dá ao professor o Volume Dois .Eu não penso muito. O Volume Três pode ser usado como referência. O manual, os exemplos nele também são muito clássicos. Se você leu o código-fonte do Qterm, você saberá que a maior parte da implementação telnet do Qterm vem do código-fonte deste livro. Para o livro sobre princípios de rede, eu o recomendo em vez do TCP / IP Xiangjie de Stevens. 

  "Operating System-Design and Implement" é um livro sobre sistemas operacionais, usando o Minix como exemplo. A língua materna do autor não é o inglês, então o inglês parece um tanto obscuro. A tradução nacional de "Projeto e Implementação de Sistema Operacional", não li a versão chinesa, porque o tradutor é You Jinyuan, sua tradução de "APUE" me decepcionou. Depois de ler este livro, você terá
uma compreensão clara de como funciona o sistema operacional subjacente

  "Linux Device Driver" 2e, um dos poucos bons livros sobre drivers de dispositivos Linux. No entanto, o conteúdo é um pouco confuso, se você não tiver alguma experiência em escrever drivers, ficará um pouco confuso à primeira vista. A tradução nacional de " Linux Device Drivers" é a segunda edição, a primeira edição e os tradutores da segunda edição tenho contato profundo, http://blog.csdn.net/shanzhiziNo entanto, em geral, embora a tradução da segunda edição seja um tanto insatisfatória, ela superou em muito a primeira edição. Para ler este livro, você deve pelo menos encontrar alguns livros sobre "Princípios do computador" e "Arquitetura do computador" para ler casualmente.Pelo menos você deve ter algum conhecimento do processo de trabalho de hardware e computadores.


Recomendar "programação avançada do ambiente unix" 
"desenvolvimento do kernel do Linux" (nome chinês esquecido) 
"análise do kernel do Linux" 
"driver do dispositivo do Linux" 
"compreensão aprofundada do kernel do Linux"

 

 

 

 

Elementar: Familiarizado com comandos, familiarizado com programação Shell, capaz de configurar serviços simples, saber a localização dos arquivos de configuração relacionados aos diversos serviços,
compreender e modificar os scripts de configuração fornecidos pelo sistema (/etc/*.*)
Livros recomendados:
" "Niaoge's Private Kitchen Basics, Advanced"
"Advanced Bash Shell"

Intermediate: Familiarizado com os princípios TCP / IP, OS, proficiente no uso da linguagem C, programação de sistema Linux, programação de rede.
Livros recomendados:
"The C Programming Language"
"Unix Environment Advanced Programming"
"Linux Programming"
"TCP / IP Protocol Explicação detalhada Volume One"
"Unix Network Advanced Programming"

Advanced:
"Linux Device Driver"
"Compreensão detalhada do kernel do Linux "
" Compreensão aprofundada dos sistemas de computador "
" Compreensão aprofundada da rede LINUX interna "

 

 

Livros incorporados recomendados 
noções básicas do Linux http://blog.csdn.net/shanzhizi 
1, "Linux and UnixShell Programming Guide" 
C language basics 
1, "C Primer Plus, 5th Edition" [América] Stephen Prata 
2, "The CProgramming Language, 2ª Edição "[EUA] Brian W. Kernighan David M. Rithie (K & R)
3." Programação  Avançada no Ambiente UNIX, 2ª Edição "(APUE) 
4." Embedded Linux Application Development Explicação Detalhada " 
Linux Kernel 
1" Em compreensão profunda do kernel Linux "(terceira edição) 
2." Análise de cenário do código-fonte do kernel Linux "por Mao Decao e
   direção de P&D de  Hu Ximing 
1." Programação de rede UNIX "(UNP) 
2." TCP / IP Explicação detalhada " 
3. "Linux Kernel Programming" 
4. "Linux Device Driver Development" (LDD)  
5. "Linux Advanced Programming" por Yang Zongde
   Hardware Basics 
1, "ARM Architecture and Programming" Du Chunlei 
2, S3C2410Datasheet 
   English Basics 
1, "Computer and Inglês Profissional de Comunicação " 
   Tutorial do Sistema 
1. "Arquitetura, Programação e Projeto de 
Sistema Embarcado" 2. "Sistema Embarcado - Usando Código Aberto e Processador StrongARM / Xscale" por Mao De Cao e Hu Ximing 
3. "Construindo
Sistemas Linux Embarcados "   4. "Princípios do Sistema ARM Embarcado e Desenvolvimento de Exemplos "Yang Zongde"
   Fundamentos Teóricos " 
1." Introdução aos Algoritmos " 
2." Estrutura de Dados (Edição em Linguagem C) " 
3." Organização e Arquitetura de Computadores? Análise de Desempenho " 
4." Compreensão Detalhada de Sistemas de Computadores "[América] Randal E. Bryant David O''Hallaron 
5," Operating System: Essence and Design Principles " 
6," Compilation Principles " 
7," Data Communication and Computer Networks " 
8," Data Compression Principles and Applications " 

linguagem C recomendação do livro 
1. A linguagem de programação C 
2. Ponteiros em C 2. Ponteiros em C 
3. C armadilhas e armadilhas 
4. Expert C Lanuage 
5. Escrevendo código limpo --- para desenvolver Bug-as free --MicrosoftTechiniques programs Programação C 
   " essência --Microsoft escreve segredo de programa C livre de erros de alta qualidade " 
6. Programação de sistemas embarcados em C e C ++ "Programação de sistema embarcado" 
7. "Prática de programação de sistema embarcado em linguagem C" 
8. "Guia de programação C ++ / C de alta qualidade" Lin Rui 
   deve codificar o máximo possível e deve aprender C bem. Concentre-se apenas no C em si. Algoritmos, métodos arquitetônicos, etc. são todos importantes.

Caminho de aprendizagem sugerido: 

  primeiro aprenda o editor, vim, emacs, qualquer que seja. 
Então aprenda a fazer arquivo de arquivo, contanto que você saiba um pouco, então você pode preparar o programa. 

  Em seguida, dê uma olhada em K&R da "Linguagem de Programação C". Dessa forma, você pode basicamente realizar uma programação geral. A propósito, procure um livro sobre estruturas de dados. 

  Se você deseja aprender programação UNIX / LINUX , "Advanced Programing in Unix Envirement" é um livro absolutamente clássico. Aprofunde suas habilidades e estude o segundo volume de "Unix Network Programing". Então, basicamente, o sistema pode ser dominado.

  Em seguida, olhe para o primeiro volume de Douglus E. Comer "Internet Interconnection Using TCP / IP" para aprender sobre o conhecimento de rede, e então leia o primeiro volume de "UNP", não apenas aprendendo programação de rede, mas também alguma programação de sistema comumente usada. Se você continuar a programação de rede, é recomendável ler o terceiro volume de "TCP / IP para Interconexão com a Internet", que contém muita programação sobre protocolos de aplicativos como telnet e ftp.
Se você deseja escrever um driver de dispositivo, primeiro você deve estar familiarizado com a interface de programação do seu sistema, como arquivos, IPC, etc., e então aprender "LDD" 2. 

  Avaliação de vários livros clássicos: 

  "A Linguagem de Programação C" Livro clássico de programação em linguagem C K&R, o autor é o inventor da linguagem C, o conteúdo do livro é simples e profundo. Embora seja um pouco antigo, é um manual obrigatório e agora às vezes ainda o folheio. O espaço é relativamente pequeno, mas cada vez que você lê, você receberá uma recompensa. Além disso, pode ser substituído pela "Programação em linguagem C" de Tan Haoqiang.

  "Advanced Programing inUnix Envirement" W. Richard Stevens: É também um livro muito clássico (bobagem, o livro de Stevens não é clássico!), Embora iniciantes possam lê-lo, mas na verdade é um material suplementar para "Unix Network Programming". O nível da tradução doméstica de "Advanced Programming in UNIX Environment" não é muito bom. Agora existe uma versão em fotocópia e é mais fácil ler em inglês diretamente do que em chinês.

  "Unix Network Programing" W. Richard Stevens: O primeiro volume fala sobre a interface de programação de rede BSD Socket e outra interface de programação de rede, mas agora o BSD Socket é geralmente usado, então você só precisa ler cerca da metade deste livro. O segundo volume não é projetado para coisas de rede, principalmente falando sobre comunicação entre processos e threads Posix. Então, depois de assistir "APUE", você pode assistir. Basicamente, o sistema é resumido por "APUE" e "UNP" vol2. Depois de ler "UNP", você conhecerá a maioria das habilidades de programação da programação do sistema, mesmo que o Volume Um seja sobre programação de rede. Na China, Tsinghua traduziu "Programação de Rede Unix" e os tradutores têm um conhecimento e habilidades de tradução relativamente altos. Portanto, é recomendável ler a versão chinesa.

  Existem três volumes de "TCP / IP Xiangjie". O volume 1 fala sobre protocolos, o volume 2 fala sobre implementação e o volume 3 fala sobre aplicativos de programação. Eu não vi muito isso. , Mas diz-se que é muito clássico, porque não tenho tempo para ler o segundo volume, por isso não é conveniente avaliar. 

  "Usando TCP / IP para interconexão com a Internet" Douglus.E.Comer tem três volumes, o Volume Um fala sobre princípios, o Volume dois fala sobre implementação e o Volume três fala sobre protocolos avançados. Parece que este conjunto é melhor do que o de Stevens, e até mesmo Stevens tem que admitir que seu primeiro volume é muito clássico. Na verdade, mesmo que você não tenha nenhum conhecimento da Internet no Volume 1, saberá os meandros da Internet depois de lê-lo. Muitos exercícios do primeiro volume também são projetados para serem clássicos e práticos, porque o próprio autor é um professor, e o primeiro volume é um livro didático para estudantes de graduação estrangeiros. Não há respostas para os exercícios. Deixo para o leitor pensar sobre, porque as respostas às perguntas podem torná-lo um Hacker intermediário. As respostas a essas perguntas podem ser obtidas como Douglus, mas ele só dá ao professor o Volume Dois .Eu não penso muito. O Volume Três pode ser usado como referência. O manual, os exemplos nele também são muito clássicos. Se você leu o código-fonte do Qterm, você saberá que a maior parte da implementação telnet do Qterm vem do código-fonte deste livro. Para o livro sobre princípios de rede, eu o recomendo em vez do TCP / IP Xiangjie de Stevens. 

  "Operating System-Design and Implement" é um livro sobre sistemas operacionais, usando o Minix como exemplo. A língua materna do autor não é o inglês, então o inglês parece um tanto obscuro. A tradução nacional de "Projeto e Implementação de Sistema Operacional", não li a versão chinesa, porque o tradutor é You Jinyuan, sua tradução de "APUE" me decepcionou. Depois de ler este livro, você terá
uma compreensão clara de como funciona o sistema operacional subjacente

  "Linux Device Driver" 2e, um dos poucos bons livros sobre drivers de dispositivos Linux. No entanto, o conteúdo é um pouco confuso, se você não tiver alguma experiência em escrever drivers, ficará um pouco confuso à primeira vista. A tradução nacional de " Linux Device Drivers" é a segunda edição, a primeira edição e os tradutores da segunda edição tenho contato profundo, http://blog.csdn.net/shanzhiziNo entanto, em geral, embora a tradução da segunda edição seja um tanto insatisfatória, ela superou em muito a primeira edição. Para ler este livro, você deve pelo menos encontrar alguns livros sobre "Princípios do computador" e "Arquitetura do computador" para ler casualmente.Pelo menos você deve ter algum conhecimento do processo de trabalho de hardware e computadores.


Recomendar "programação avançada do ambiente unix" 
"desenvolvimento do kernel do Linux" (nome chinês esquecido) 
"análise do kernel do Linux" 
"driver do dispositivo do Linux" 
"compreensão aprofundada do kernel do Linux"

 

 

 

 

Elementar: Familiarizado com comandos, familiarizado com programação Shell, capaz de configurar serviços simples, saber a localização dos arquivos de configuração relacionados aos diversos serviços,
compreender e modificar os scripts de configuração fornecidos pelo sistema (/etc/*.*)
Livros recomendados:
" "Niaoge's Private Kitchen Basics, Advanced"
"Advanced Bash Shell"

Intermediate: Familiarizado com os princípios TCP / IP, OS, proficiente no uso da linguagem C, programação de sistema Linux, programação de rede.
Livros recomendados:
"The C Programming Language"
"Unix Environment Advanced Programming"
"Linux Programming"
"TCP / IP Protocol Explicação detalhada Volume One"
"Unix Network Advanced Programming"

Advanced:
"Linux Device Driver"
"Compreensão detalhada do kernel do Linux "
" Compreensão aprofundada dos sistemas de computador "
" Compreensão aprofundada da rede LINUX interna "

 

 

Livros incorporados recomendados 
noções básicas do Linux http://blog.csdn.net/shanzhizi 
1, "Linux and UnixShell Programming Guide" 
C language basics 
1, "C Primer Plus, 5th Edition" [América] Stephen Prata 
2, "The CProgramming Language, 2ª Edição "[EUA] Brian W. Kernighan David M. Rithie (K & R)
3." Programação  Avançada no Ambiente UNIX, 2ª Edição "(APUE) 
4." Embedded Linux Application Development Explicação Detalhada " 
Linux Kernel 
1" Em compreensão profunda do kernel Linux "(terceira edição) 
2." Análise de cenário do código-fonte do kernel Linux "por Mao Decao e
   direção de P&D de  Hu Ximing 
1." Programação de rede UNIX "(UNP) 
2." TCP / IP Explicação detalhada " 
3. "Linux Kernel Programming" 
4. "Linux Device Driver Development" (LDD)  
5. "Linux Advanced Programming" por Yang Zongde
   Hardware Basics 
1, "ARM Architecture and Programming" Du Chunlei 
2, S3C2410Datasheet 
   English Basics 
1, "Computer and Inglês Profissional de Comunicação " 
   Tutorial do Sistema 
1. "Arquitetura, Programação e Projeto de 
Sistema Embarcado" 2. "Sistema Embarcado - Usando Código Aberto e Processador StrongARM / Xscale" por Mao De Cao e Hu Ximing 
3. "Construindo
Sistemas Linux Embarcados "   4. "Princípios do Sistema ARM Embarcado e Desenvolvimento de Exemplos "Yang Zongde"
   Fundamentos Teóricos " 
1." Introdução aos Algoritmos " 
2." Estrutura de Dados (Edição em Linguagem C) " 
3." Organização e Arquitetura de Computadores? Análise de Desempenho " 
4." Compreensão Detalhada de Sistemas de Computadores "[América] Randal E. Bryant David O''Hallaron 
5," Operating System: Essence and Design Principles " 
6," Compilation Principles " 
7," Data Communication and Computer Networks " 
8," Data Compression Principles and Applications " 

linguagem C recomendação do livro 
1. A linguagem de programação C 
2. Ponteiros em C 2. Ponteiros em C 
3. C armadilhas e armadilhas 
4. Expert C Lanuage 
5. Escrevendo código limpo --- para desenvolver Bug-as free --MicrosoftTechiniques programs Programação C 
   " essência --Microsoft escreve segredo de programa C livre de erros de alta qualidade " 
6. Programação de sistemas embarcados em C e C ++ "Programação de sistema embarcado" 
7. "Prática de programação de sistema embarcado em linguagem C" 
8. "Guia de programação C ++ / C de alta qualidade" Lin Rui 
   deve codificar o máximo possível e deve aprender C bem. Concentre-se apenas no C em si. Algoritmos, métodos arquitetônicos, etc. são todos importantes.

Acho que você gosta

Origin blog.csdn.net/weixin_37991107/article/details/80964863
Recomendado
Clasificación