<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://www.gentoo-zh.org/extern.php?action=feed&amp;tid=486&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Gentoo中文社区 / 肝下50万字的《Linux内核精通》笔记，你的底层原理水平将从入门到入魔【建议收藏】]]></title>
		<link>https://www.gentoo-zh.org/viewtopic.php?id=486</link>
		<description><![CDATA[肝下50万字的《Linux内核精通》笔记，你的底层原理水平将从入门到入魔【建议收藏】 最近发表的帖子。]]></description>
		<lastBuildDate>Sun, 30 Oct 2022 15:01:59 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[肝下50万字的《Linux内核精通》笔记，你的底层原理水平将从入门到入魔【建议收藏】]]></title>
			<link>https://www.gentoo-zh.org/viewtopic.php?pid=508#p508</link>
			<description><![CDATA[<p>一、为什么要学习 Linux 内核</p><p>大部分程序员可能永远没有机会开发Linux内核或者驱动Linux，那么我们为什么还需要学习Linux内核呢？Linux的源代码和架构都是开放的，我们可以学到很多操作系统的概念和实现原理。Linux的设计哲学体系继承了UNIX，现在整个设计体系相当稳定和简化，这是大部分服务器使用Linux的重要原因。</p><p>那学习Linux内核的原因就在于此。</p><p>进一步了解内核的原理，有助于你更好地使用命令和程序设计，让你的面试和开发更上一层楼。但是不建议直接看源代码，因为Linux代码太大，容易丢失。</p><p>而最好的办法是，先了解一下Linux内核机制，知道基本的原理与流程。</p><p>不过，Linux内核机制也非常复杂，而且其中互相关联。</p><p>比如说，进程运行要分配内存，内存映射涉及文件的关联，文件的读写需要经过块设备，从文件中加载代码才能运行起来进程。这些知识点要反复对照，才能理清。</p><p>但是一旦攻克！你会发现Linux这个复杂的系统开始透明起来。</p><p>二、如何学习Linux内核？</p><p>内核的知识就像下面的绳结一样，一环扣一环，我们要解开它们，就必须要先找到线头也就是内核中的函数接口。初学阶段，我们一般不深入的研究内核代码，会使用内核的接口函数就不错了。</p><p>下面提供了如何学习这些内核函数的方法，就像解绳子一样</p><p>在我们学习Linux内核之前，我们首先需要掌握以下几点：</p><p>二、如何学习Linux内核？</p><p>内核的知识就像下面的绳结一样，一环扣一环，我们要解开它们，就必须要先找到线头也就是内核中的函数接口。初学阶段，我们一般不深入的研究内核代码，会使用内核的接口函数就不错了。</p><p>下面提供了如何学习这些内核函数的方法，就像解绳子一样</p><p>在我们学习Linux内核之前，我们首先需要掌握以下几点：</p><p>(1)如何学习内核，先了解Linux内核由哪些组成？</p><p>(2)须知Linux内核源码（下载的链接 ）组织结构？</p><p>(3)重点需要学习地知识点有哪些？</p><p>(4)最后依据我为大家提供的的学习资料，开启我们的Linux内核学习之旅。</p><p>(5)全网最牛Linux内核Makefile系统文件详解(纯文字代码)</p><p>(6)全网最详细的Intel CPU体系结构分析(内核源码)</p><p>(7)深入理解Linux Kernel内核整体架构(图文详解)</p><p>(8)QEMU调试Linux内核环境搭建</p><p>(9)网友说Linux驱动讲不彻底，原来这才是Linux驱动</p><p>(10)一文让你深度了解Linux内核架构和工作原理</p><p>(11)从Linux内核看socket底层的本质(IO)</p><p>(12)Linux用户空间与内核空间通信(Netlink通信机制)<br />二，学习资料<br />2.1操作系统原理</p><p>【 强烈推荐阅读】一文带你彻底了解，零拷贝Zero-Copy技术(图解)</p><p>Linux操作系统学习——启动</p><p>Linux操作系统学习——内核运行</p><p>Linux操作系统学习——内核初始化</p><p>操作系统原理(一)：操作系统原理与概述(流程图)</p><p>操作系统原理(二)：Linux操作系统基础的常用命令</p><p>操作系统原理(三)：Linux操作系统I/O机制原理(流程图详解)</p><p>操作系统原理(四)：内存管理RAID磁盘阵列与配置</p><p>操作系统原理(五)：内存管理之磁盘高速缓存机制原理</p><p>操作系统原理(六)：存储管理之页式、段式、段页式存储</p><p>系统操作原理(七)：进程的状态和转换(五态模型)</p><p>操作系统原理(八)：进程同步的几种方式及基本原理</p><p>操作系统原理(九)：处理器调度基本准则和实现原理</p><p>系统操作原理(十)：多进程，多线程，并发执行中的死锁问题</p><p>系统操作原理(十一)：操作系统原理：进程同步的几种方式及基本原理</p><p>系统操作原理(十二)：趣谈操作系统原理，存储管理之页式、段式、段页式存储</p><p>系统操作原理(十三)：操作系统：通过实战理解CPU上下文切换</p><p>汇编语言基础(十一)：汇编语言基础知识(图文代码)</p><p>汇编语言入门(十二)：汇编指令入门级整理，这些你必须要知道</p><p>汇编语言指令(十三)：汇编语言的所有指令总结，一篇就够了</p><p>汇编语言进阶(十四)：ARM体系结构处理器机制原理与实现</p><p>汇编语言进阶(十五)： ARM指令集与汇编语言程序设计<br />2.2内存管理专题</p><p>【 强烈推荐阅读】尽情阅读，技术进阶，详解mmap原理</p><p>内存是什么？一文让你了解内存是怎么实现的</p><p>嵌入式开发必备技能，Linux内核源码组织结构</p><p>一文了解Linux内存管理，malloc、free 实现原理</p><p>内存管理系列(一)：Linux操作系统内存管理(思维导图详解)</p><p>内存管理系列(二)：Linux内存管理原理知识大总结</p><p>内存管理系列(三)：学完操作系统内存管理，能回答这8个问题吗？</p><p>内存管理系列(四)：理解 Memory barrier（内存屏障）</p><p>内存管理系列(五)：内存回收之LRU链表机制原理</p><p>内存管理系列(六)：虚拟内存和物理内存机制原理</p><p>内存管理系列(七)：Malloc缺页中断不同情况处理总结及反向映射RMAP</p><p>内存管理系列(八)：C/C++开发中的Malloc函数的实现原理</p><p>内存管理系列(九)：深入理解glibc malloc：内存分配器实现原理</p><p>内存管理系列(十)：操作系统是如何对内存进行管理的，内存与CPU之间的关系</p><p>内存管理系列(十一)：为什么Linux需要虚拟内存，虚拟内存对操作系统有哪些作用</p><p>内存管理系列(十二)：用户态内存内存映射函数Mmap的好处</p><p>内存管理系列(十三)：内存管理：详解虚拟地址空间-MMU</p><p>内存管理系列(十四)：C语言中的Malloc/free是如何分配内存的</p><p>内存管理系列(十五)：从虚拟寻址到开源项目，Linux下的内存管理详解</p><p>内存管理系列(十六)：一文带你了解，虚拟内存、内存分页、分段、段页式内存管理</p><p>内存管理系列(十七)：Linux应用程序究竟消耗了多少内存</p><p>内存管理系列(十八)：虚拟地址到物理地址，是什么时候开始映射</p><p>内存管理系列(十九)：浅析Linux内存管理中SLAB分配器(源码分析)</p><p>内存管理系列(二十)：基于Linux内存管理的内存分配(伙伴算法和slab算法)</p><p>内存管理系列(二十一)：探索内存原理的内存映射文件(图文详解)</p><p>内存管理系列(二十二)：吊打字节面试官，CPU缓存一致性协议MESI</p><p>内存管理系列(二十三)：深入理解Linux内核页表映射分页机制原理</p><p>内存管理系列(二十四)：谈谈物理内存与虚拟内存之间的映射(超详细~)</p><p>内存管理系列(二十五)：内存管理：C/C++开发中的malloc函数的实现原理</p><p>内存管理系列(二十六)：熬夜肝翻Linux内存管理所有知识点(图解)<br />2.3进程管理专题</p><p>进程管理系列(一)：Linux进程管理原理详解(代码演示)</p><p>进程管理系列(二)：十分钟让你像大佬一样快速了解进程状态(二种模型)</p><p>进程管理系列(三)：作为互联网程序员，应该了解Linux进程六种状态吗？</p><p>进程管理系列(四)：五分钟让你快速了解Linux进程管理实时调度与SMP</p><p>进程管理系列(六)：浅析Linux的进程优先级(代码演示)</p><p>进程管理系列(七)：进程管理|浅析C语言中并发同步与原子操作，锁三者是什么关系</p><p>进程管理系列(八)：进程管理|深入理解Linux进程述符和进程状态</p><p>进程管理系列(九)：一文读懂Linux内核中的任务间调度策略</p><p>进程管理系列(十)：Linux内核之进程和线程的创建和派生</p><p>进程管理系列(十一)：基于Linux有几种进程状态</p><p>进程管理系列(十二)：操作系统的几种CPU调度策略</p><p>进程管理系列(十二)：Linux 进程管理之调度和进程切换</p><p>进程管理系列(十三)：一文搞懂六大进程通信机制原理(全网最详细)</p><p>进程管理系列(十四)：超详细的Socket通信原理和实例讲解(白嫖走起~)</p><p>进程管理系列(十五)：这是一份很全很全的IO基础知识与概念</p><p>进程管理系列(十六)：深入理解Linux内核进程的管理与调度(全知乎最详细)<br />2.4网络协议栈专题</p><p>【 强烈推荐阅读】嵌入式必备：如何学习Linux内核网络协议栈</p><p>趣谈网络协议栈(一)：套接字缓冲区原理</p><p>趣谈网络协议栈(二)：数据包是如何处理的过程</p><p>趣谈网络协议栈(三)：七层模型下三层数据通信</p><p>趣谈网络协议栈(四)：传输的Arp报文结构</p><p>趣谈网络协议栈(五)：Socket编程常用函数的原理及代码实现</p><p>趣谈网络协议栈(六)：学习select和poll函数的内核实现</p><p>趣谈网络协议栈(七)：Epoll从用户态到内核态过程分析</p><p>趣谈网络协议栈(八)：套接字发送网络数据的过程<br />2.5设备驱动专题</p><p>浅谈设备驱动(一)：操作系统 I/O 流程详解</p><p>浅谈设备驱动(二)：Linux操作系统学习之字符设备</p><p>浅谈设备驱动(三)：结合设备信息集合，探究设备和驱动是如何绑定的<br />2.6文件系统</p><p>详谈文件系统(一)：一文让你彻底了解Linux内核文件系统(大总结)<br />2.7面试题/经验</p><p>【 强烈推荐阅读】从事十年嵌入式转内核开发(23K到45K),给兄弟们的一些建议</p><p>谈谈Linux内核的学习路线，具体要怎么学？</p><p>2022年嵌入式开发想进互联网大厂，你技术过硬吗？</p><p>嵌入式Linux内核学习经验总结，一篇让你掌握方法</p><p>盘点Linux内核(驱动开发，嵌入式，内核人群)必问的面试题</p><p>2022春招大厂-嵌入式开发经典笔试面试题目大整理<br />2.8内核书籍</p><p>&#160; &#160; 《深入了解Linux内核》《Linux就该这么学》《Linux内核完全注释V3.0书签版》《Linux命令行大全 - 绍茨 (william E.shotts)》《Linux命令速查手册》《Linux性能优化大师》《Linux环境编程：从应用到内核》《Linux集群和自动化运维 余洪春》《Linux驱动程序开发实例(第2版)》《Linux高级程序设计(第3版)》《构建高可用Linux服务器(第4版)》</p><p>书籍免费领取地址：https://docs.qq.com/doc/DTkZRWXRFcWx1bWVx<br />三，内核学习路线</p><p>很多同学对Linux接触很少，对Linux平台的开发一无所知。现在，趋势越来越表明，作为一个优秀的软件开发者或者计算机IT从业者，掌握Linux是一个非常重要的谋生资源和手段。接下来我将结合我个人几年的开发经验，谈谈Linux的学习方法和学习中应该注意的一些事情，特别是关于Linux，类UNIX系统和开源软件文化。</p><p>就像我刚才说的，很多同学之前可能连Linux是什么都不知道，更别说UNIX了。所以我们从最基础的一点开始，Linux和UNIX的历史我们就不多说了，直接进入入门学习。</p><p>Linux入门非常简单。问题是你有没有耐心，有没有爱折腾，有没有不排除重装之类的大修。可以说不折腾是学不好Linux的。鸟哥说你要真正了解Linux的分区机制，并且对LVM的使用相当熟练。不超过20次是无法积累Linux安装经验的，所以不要怕折腾。</p><p>既然之前大家都用Windows，我也尽量照顾这些“菜鸟”。我的推荐，如果你是第一次接触Linux，那就先在虚拟机里试试。我推荐虚拟机用的Virtual Box。我不提倡使用VM，因为VM是开源的，是收费的。我不想推广盗版。当然，如果你有足够的钱，你可以试试VM，但我想说的是，即使是VM也不一定好。付费软件不一定好。首先，虚拟盒子很小。Windows平台下安装包80MB左右，而VM每转600MB。虽然很强大，但是消耗了很多资源。更何况虚拟盒子完全可以满足你的需求。所以，还是自己选比较好。如何使用虚拟机是你的事。这个就不教你了，因为很简单。如果不能，可以用谷歌或者百度。如果你英语好，可以直接看官方文件。</p><p>现在介绍Linux发行版的知识。正如你所见，Linux发行版并非Linux，Linux仅是指操作系统的内核，作为科班出生的你不要让我解释，我也没时间。</p><p>我推荐的发行版如下：</p><p>&#160; &#160; UBUNTU适合纯新手，追求稳定的官方支持，对系统稳定性要求弱，喜欢最新的应用，相对不喜欢折腾开发者。比UBUNTU难很多的发行版Debian，特点是稳定易用的包管理系统，缺点是缺乏企业支持，以社区开发为驱动。Arch，追逐时尚的开发者首选，优点是包更新相当快，升级无缝。基本上一次安装就可以一直工作，没有UBUNTU那样的版本概念。专业点叫滚动升级，让你的系统保持最新。缺点很明显，不稳定。同时安装配置也比Debian麻烦。比Arch更难的Gentoo，考验用户的综合水平。从系统安装到微调，内核编译都是手把手。是高手和黑客展示自己技术手段，按需配置符合自己要求的系统的首选。</p><p>Slackware与Gentoo类似：</p><p>社区维护的RedHat的副本CentOS，完全是用RedHat的源代码重新编译的，理论上和RedHat的兼容性是最好的。如果你专注于Linux服务器，比如网络管理和网站建设，那么CentOS就是你的选择。</p><p>LFS，终极黑客炫耀工具，完全从源代码安装编译系统。在安装之前，您只能获得一个文档。您所要做的就是按照文档中的说明，一步一步，一个订单一个订单地，一个一个地构建您的Linux包。完全在你的掌控之中，你想要什么就有什么。如果你制作了LFS，那就证明你的Linux技术相当不错。如果你能借鉴LFS文档，把Linux从源代码移植到嵌入式系统，我敢说你能在中国企业做得很好。</p><p>你得挑一个适合自己的系统，然后装在虚拟机里开始用。如果你想快速学习Linux，我有一个建议，你应该忘记图形界面。不要去想图形界面能不能为你的问题提供答案，而是去世界各地寻找，询问如何用命令行解决你的问题。在这个过程中，你最好掌握好Linux的命令，至少要知道常用的命令，同时要建立自己的知识库，里面包含了你积累的知识。</p><p>下一阶段需要学习Linux平台的C++/C++开发，以及Bash脚本编程，如果对Java有很深的兴趣，还需要学习Java。同样，我建议你抛弃图形界面的IDE，从VIM开始。为什么是VIM而不是Emacs？我无意挑起编辑器大战，但我认为VIM适合新手和手笨脑慢的开发者。Emacs的按键太多，太复杂，我很害怕。然后是GCC，Make，Eclipse(Java，C++或者)。虽然Eclipse中列出了C++，但是我不建议用IDE开发C++，因为这不是Linux的文化，你很容易忽略一些应该注意的问题。IDE让你懒的跟猪一样懒。如果你对程序调试和测试感兴趣，你必须学好GDB。如果不是GDB，这也是一门必修课。这是发展的第一步。注意，我没有提到任何关于Linux API的东西，现阶段也不关心这个。你要做的就是积累经验，Linux平台开发的经验。我推荐的书如下:《C语言编程》，或者谭浩强的。c，白皮书当然更好。++C++ Primer Plus是C推荐的，我不喜欢Java，所以不推荐。工具推荐VIM的官方手册，GCC中文文档，GDB中文文档，GNU开源软件开发指南(电子书)，汇编语言编程(让你对库，链接，嵌入式汇编，编译器优化选项有个初步的了解，不深入)。</p><p>如果过不了这个阶段，就不用做了。这是底线，也是最基本的基础。否则，离开，不要开发Linux。不专业的Linux开发者做出来的程序与Linux文化或者UNIX文化相悖，程序走不了多远，也不可能像Bash、VIM这样神奇的产品。所以做不好就走人。</p><p>接下来进入Linux系统编程，唯一的选择，APUE，UNIX环境下的高级编程。反复读，10遍太少。如果你在大学能把这本书砸了，里面的内容都练过了，有作品，口语表达能力足够强，面试的时候就能说服所有考官。(可能有点夸张，但APUE绝对是圣经读物，连Windows程序员都从中汲取养分。谷歌创始人的案头书，扎伯克的床头读物。)</p><p>看完这本书，你会对Linux系统编程有很好的了解。Linux和Windows平台有什么区别？它们的优缺点是什么？我的总结如下:Windows平台开发难。微软的系统API一直在扩展。如果你想使用最新最高效的功能，你必须时刻学习最适合当前流行系统的功能。不，Linux有大约100个核心API，所以你可以用很好的记忆力记住它们。而且会长期不变。为什么不呢？因为它兼容UNIX，符合POSIX标准。因此，Linux平台的开发大多集中在底层或服务器编程上。这是它的优势。当然图形是Linux的软肋，但从一个开发者的角度来说，我不在乎，因为我也能适应命令行。如果有更好的图形界面，我会把它作为礼物。另外，Windows是关闭的，你甚至不知道系统做了什么。你将永远被微软牵着鼻子走。想想吧。如果微软说Win8不支持QQ，腾讯也不会哭死。而且Linux是完全开源的。如果不喜欢，可以自己改，只要足够熟练。另外，虽然Windows使用的人很多，但是使用的场合比较单一，以桌面为主。Linux各方面都有发展，尤其是云计算、服务器软件、嵌入式领域、企业应用，兼容性一流。由于POSIX可以在UNIX系统上无缝运行，因此Apple Mac和IBM AS400系列都完全支持它。另外，Linux的开发环境支持绝对一流，无论是C/C++，Java，Bash，Python，PHP，Javascript，。。。。。。连C#都支持。而且微软除了Visual Stdio套件都不太友好吧？</p><p>如果你看了APUE后有很多感触，想验证你的一些想法或经验，推荐UNIX编程艺术，世界顶尖黑客将与你分享他们的观点。现在是时候转移注意力了。总的来说，我分为四个方向:网络、图形、嵌入式、设备驱动。</p><p>如果选择网络，细分的话，其他的不太熟悉，只说服务器软件编写和高性能并发程序编写。相对来说，这是网络编程中技术含量最高的，也是最底层的。需要很多经验，看很多书，做很多项目。</p><p>我的看法是以下面的顺序来看书：</p><p>&#160; &#160; APUE的深度阅读——尤其是进程、线程、IPC、套接字多核编程——Pthread一定要吃透，你是NBUNIX网络编程–第1卷，第2卷TCP/IP网络详解——是时候再看一遍以上两本书了。TCP/IP网络的详细说明–第2卷。我觉得看第二卷就差不多了。当然，最好还是看第三卷。尽力去看吧。Lighttpd源代码——这个服务器也很有名。NGX源代码——与Apache相比，Nginx的源代码更少。如果能大致看一下，就是NB了。看源码主要是学习里面的socket编程和并发控制，想想就激动。如果你有这些技能，你可以试试给暴雪发简历，给他们写服务器后台，以为全世界的魔兽都运行在你的服务器软件上。Linux内核TCP/IP协议栈——深入了解TCP/IP实现如果还是喜欢驱动设计，可以看看底层协议，比如链路层。给路由器，网卡，网络设备，嵌入式系统软件写驱动应该不是问题。当然，一般的网络公司，哪怕是百度级别的，都应该毫不犹豫的录用你。看后面的书只需要时间和经验，所以35岁之前就做吧！跳槽到给你未来的地方！</p><p>图形方向，我觉得图形方向也是很有前途的，以下几个方面：</p><p>Opengl的工业和游戏开发在国外已经比较成熟。</p><p>动画特效，比如皮克斯，在国外也比较成熟。</p><p>GPU计算技术可以应用于浏览器网页渲染和GPU计算资源利用。因为开源，所以有很多文档程序可以参考。如果能进入火狐开发，或者谷歌做浏览器开发，应该很不错。</p><p>嵌入式方向：嵌入式方向没说的，Linux很重要</p><p>掌握多种架构，不仅仅是X86，ARM，MCU等。必须理解。如果你不懂硬件，我预见你会死在路上，我也想往嵌入式方向走，但是我觉得就算是学电子的学生也比不过学校教嵌入式的方式。我劝你，做之前一定要了解硬件。如果你去做嵌入式应用开发，只能祝你好运了。不要碰上诺基亚、惠普这样的公司，否则你会很惨。</p><p>驱动设计:软件开发周期很长，硬件不一样，很快。每个月都有这么多新硬件诞生，如何让它们在Linux上工作是你的工作。因为Linux兼容性好，如果不是太低级的驱动，基本的C语言就可以了，系统架构影响不大。由于系统支持，您可能可以在ARM上使用PC硬件，但需要做一些更改。所以硬件驱动开发不像嵌入式，对硬件知识要求很高。可能的方向很多，比如家电，特别是像索尼、日立、希捷、富士康这样的工厂，比较稀缺。<br />四，学习Linux内核</p><p>学习linux内核不像学习语言。一个月或者三月就能掌握C或者java。学习linux内核需要循序渐进，掌握正确的linux内核学习路线非常重要。本文将分享一些学习linux内核的建议。</p><p>1.了解操作系统的基本概念。如果没有，可以学习《操作系统:设计与实现》，Andrew S.Tanenbaum写的那本，以MINIX为例解释操作系统的概念。非常推荐。</p><p>2.有了操作系统的基本概念，你就可以理解Linux的机制了。推荐罗伯特·拉芙写的Linux内核设计与实现。这本书从概念上解释了Linux有什么以及它是如何工作的。这本书应该反复仔细阅读。</p><p>3.有了Linux内核的知识，我们还需要具体学习Linux内核源代码。经典的是丹尼尔·p·博韦特写的《深入理解Linux内核》。学习这本书的时候，要看看内核代码。这本书学起来挺费劲的，所以有很多代码要研究。但是，如果这本书很好理解，那么恭喜你，你已经对Linux内核很熟悉了。</p><p>4.如果你想开发设备驱动，可以向O &#039;Reilly Press学习Linux设备驱动。这本书是驾驶入门的好材料。还有一本很好的教材，精通Linux驱动开发，可以参考一下。开车，难免要学习一些硬件协议和资料。如果你研究的是哪一种，可以找相应的硬件文档，了解硬件的工作原理。这些我就不细说了。</p><p>5.网络部分，学习一些Linux网络部分学习《深入了解LINUX网络技术内幕》。这本书把Linux的网络部分讲得非常清楚透彻。不过我们一般不做这方面的研究，也不需要做那么多研究。毕竟现在相关岗位很少。</p><p>6.现在Linux相关的工作大多集中在一些嵌入式开发领域，如arm、mips等。你要学习以下关于架构的信息，了解CPU的设计和工作模式。看看ARM对应的芯片手册就知道了，很详细的。mips随便看看MIPS运行，有一两个版本。两个版本有些区别，建议全看。</p><p>7.补充一点经验。不要以为Linux庞大复杂，就很难学。认真学习，什么都可以学。就看你的毅力和恒心了。另外，不要走弯路，不要看市面上那些讲Linux0.11的书，学你想学的就好。就像学C语言看谭浩强一样，走弯路，费力气，严重影响学习效果。</p><p>关于linux内核学习路线，再多说几句应用编程，有时候经常会需要的：</p><p>1. 学习Linux应用编程，建议看《unix环境高级编程》，把里面的例子都做一遍，会对整个Linux编程有系统都认识。</p><p>2. 针对Linux，有本 《Linux系统编程》，学完上一本，这本很快看一遍就懂了。主要是针对Linux具体懂一些内容，讲的挺全了，很实用。</p><p>3. Linux网络编程，系统的学习一下《unix网络编程。卷1，套接字联网api》，基本上网络应用相关的程序就都没问题了。</p><p>这些内容，分几年时间，分步计划学习，就会成为Linux高手了。个人建议参加零声教育的培训，学习效率会高很多，有目的性的参加培训，缩短周期，快速成型才是时代所需。</p><p>官方地址：Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈-学习视频教程-腾讯课堂</p><p>以上就是Linux内核学习路线，关于学习Linux内核的建议，希望对小伙伴们有帮助。</p>]]></description>
			<author><![CDATA[dummy@example.com (batsom)]]></author>
			<pubDate>Sun, 30 Oct 2022 15:01:59 +0000</pubDate>
			<guid>https://www.gentoo-zh.org/viewtopic.php?pid=508#p508</guid>
		</item>
	</channel>
</rss>
