第46期:Linux学习大合集|已结束

最近和一位程序员朋友聊天,讨论到找工作的时候,最有用的技术是什么?

他的答案是:Linux。越是精通 Linux 操作系统,越容易找到好工作。

如果你拥有 Unix/Linux 环境开发、Linux 网络的调试排错能力,再加上特定领域的开发经验,就可以轻松拿下这份 Offer。如果你不会 Linux,那这份好工作可能就属于那些具备 “专长 + Linux”的人了。
01

为什么 Linux 的江湖地位如此重要?

看两个统计数据就知道了,在全球公有云厂商的服务器负载中,90% 是 Linux;世界上 82% 的智能手机操作系统是 Linux 内核的。这意味着 Linux 就是当今互联网最核心的基础设施
Web 服务、数据库、云计算、移动应用等都离不开 Linux 环境,所以深入掌握 Linux,不仅能将系统的潜力挖掘出来,也具备从根上看到问题原因的排错能力。

学好 Linux 如此重要,简直刻不容缓。但 Linux 本身也确实是非常复杂的系统,仅最新的内核源代码就接近 3000 万行。一个人要读懂所有代码几乎是不可能的,那 Linux 要怎么学呢?

02

听说 Linux 很难学,是真的吗?

业内活跃着许多 Linux 高手,如果我们随机问一位高手:“听说 Linux 很难学,是真的吗?”
高手多半会很诚恳地告诉你,确实挺难的。但他还有更重要的一句话,就是只要学习方法对路,理解系统结构原理,加上认真实践,谁都可以成为高手。
自 Linux 在 1991 年发布 Linux 0.11 版以来,其最基本的组成结构还是内核、shell、文件系统、应用程序。现在的 Linux 是在当初那两万行代码的 Linux 0.11 上迭代发展而来的。
内核主要有内存管理、进程管理、设备驱动程序、文件系统和网络管理等,它直接管理 CPU、内存、磁盘等硬件资源。shell 是内核的人机交互接口,接收命令交由内核执行,然后返回结果。
Linux 文件系统的一大特点,就是所有的 I/O 操作都可以抽象为文件的open、read、write、close 等方法。丰富的应用程序是 Linux 生态最有吸引力的一点,通过程序的组合,可以实现强大的功能。
平心而论,Linux 系统内核虽然最为重要,但它贴近硬件层,许多核心算法又经过多年的优化,整体是比较抽象的。所以高手也不会建议你一上来就硬啃内核,而是应该从安装配置 Linux 环境轻松开局,学习 shell 操控命令实现自动化工作,再深入内核原理与开发。
下面精选了一批由高手们编写的 Linux 系列图书,涵盖了从入门到精通的广泛内容。动起手来,跟着这份书单学习,成就你的高手之路吧。
异步社区
 
 
,赞34
03

Linux 高手的书单

1

《轻松学 Linux:从 Manjaro 到 Arch Linux》

学开车不是说要把发动机研究透了才能上路,学习 Linux 也一样,完全可以从操作入门。Arch Linux 就是一个很好的选择,它的特点是简洁和优雅,尽最大可能让用户自己搭建配置 Linux 环境。

本书正是选择 Arch Linux 的衍生版 Manjaro 作为示例,逐步讲解了 Linux 系统的安装、系统配置、常用命令行和管理器,以及桌面环境的配置和使用方法。

通过 Manjaro 熟悉了基本操作,书中更深入讲解了 Arch Linux 的安装和使用、Linux 的一些高级应用,以及 Wine 和虚拟机的使用等。

而且这并不是一本枯燥的说明书,书中穿插了不少关于 Linux 的人物、简史、技术背景等资料,读来一定让你收获不小。

2

《鸟哥的 Linux 私房菜:基础学习篇(第四版)》

说到 Linux 入门课,鸟哥的大名在江湖上是无人不知。鸟哥本是环境工程系博士,因为研究需要而接触并学习了 Linux,其后建立“鸟哥的 Linux 私房菜”分享学习心得而传播甚广。

这充分说明了“专长 + Linux”是多么重要,甚至能跨界出圈。

本书分为五大部分,下面分别进行说明:

▮ 第一部分,Linux 的规则与安装。概述 OS 的基础知识,回顾 Linux 的历史。以 CentOS 7.x 为例,说明 Linux 的磁盘分区、安装过程、用户登录等内容。

▮ 第二部分,Linux 文件、目录与磁盘格式。说明 Linux 文件系统的基本格式、权限管理、磁盘与文件管理的命令行,以及文件压缩的方法等。

▮ 第三部分,学习 shell 与 shell script。首先讲解了 vim 编辑器的使用方法,然后对 Bash shell 的环境和常用命令进行说明,最后讲解 shell script 的语法规则与调试方法。

▮ 第四部分,Linux 使用者管理。说明了账户权限管理、高级文件系统管理、计划任务与进程管理等内容。

 第五部分,Linux 系统管理员。说明系统服务管理与系统日志查看分析方法,以及软件的各种安装方法。介绍了 X Window 体系,最后是 Linux 内核的编译与管理。

3

《Linux就该这么学(第2版)》

红帽的 RHCE 认证在业内是颇有含金量的,而本书被称为 RHCE 考前必读攻略。作者刘遄老师就获得了红帽 RHCE 工程师认证,以及 RHCA 架构师顶级认证,是国内 RedHat 认证领域的当红讲师。

不要以为这仅是一本刷题集,它是一本学习 Linux 系统的好书。本书基于 RHEL 8,对零基础学习者都非常友好,甚至英语不好都别怕,因为刘遄老师信奉“高超的技术导师不应该只做技术的搬运工,而应该是优质内容的提炼者”。

他用初学者能看明白的语言,加上精心绘制的示意图将此书编著而成。全书共有 20 章内容,各个章节间巧妙穿插知识链条和练习题目,内容由浅入深,将知识块拆分重组,逐个击破重点和难点。

用这本书每天学习 1 小时,30 天就能掌握 Linux 操作系统。

4

《Linux命令行大全(第2版)》

Linux 学习到这本书,那就要好好把命令行接口(Command Line Interface, CLI)的操作给攻下来了。有句话说得好:GUI 使简单的工作更简单,而 CLI 使完成艰难的任务成为可能。

命令行接口,就是 Linux 对外提供的人机操作接口。命令行程序的特点是专注于完成一件事,并且做到极致。擅长命令行的高手可以通过组合的方式,充分发挥出系统强大的功能。

本书从四个部分详细说明了命令行的操作,并且重点解说了一些常用的重要命令行程序。

▮ 第一部分,由 Shell 的介绍开启命令行基础知识的学习之旅;

▮ 第二部分,讲述配置文件的编辑,如何通过命令行控制计算机;

▮ 第三部分,探讨常见的任务与必备工具;

▮ 第四部分,全面介绍 Shell 编程,读者可通过动手编写 Shell 脚本掌握 Linux 命令的应用,从而实现常见计算任务的自动化。

5

跟老韩学 Linux 系列

老韩是一名 Linux 运维的高手,他在互联网大厂里担任过 Linux 技术经理、大数据架构师等职位。他对 Linux 自动化运维、Linux 性能监控与调优有着丰富的经验,并且对 Python、Java、Scala 等编程语言有着深刻理解。
老韩热爱技术并且热衷于分享,帮助了许多在互联网做运维的同学们。他将自己的思考与实践写在了两书技术书中,接下来分别进行介绍。

《跟老韩学Linux自动化运维(基础篇) 》

本书全面、系统地介绍了 Shell 的各个知识点及其在企业环境中的具体应用。本书主要内容包括 Shell脚本编程、Shell变量与字符串、Shell正则表达式与文本处理、Shell条件测试和循环语句、Shell数组与函数、Linux自动化运维等。

《跟老韩学Linux架构(基础篇) 》

本书全面、系统地介绍了Linux基础架构服务。本书主要内容包括DNS服务、DHCP服务器、vsftpd服务、rsync服务、SFTP服务、Samba服务和LAMP基础架构等,能为读者后续学习Linux操作系统、高可用分布式文件系统等高级应用打下坚实的基础。

这两本书最适合 Linux 系统管理员学习,系统架构师、软件开发人员、系统测试人员也都可以从这两本书中吸收养分,增强自己的专业能力。

6

奔跑吧 Linux 内核系列

笨叔是国内著名的 Linux 大佬,是 Linux 内核的爱好者,为此专门创建了奔跑吧 Linux 社区,为广大 Linux 学习者布道。笨叔创作的奔跑吧 Linux 系列图书,被认为是进入内核领域的最佳指南。

接下来对这一系列的三部书分别进行介绍。

《奔跑吧Linux内核入门篇(第2版) 》

本书基于 Linux 5.0 和 ARM64 处理器,循序渐进地讲述 Linux 内核的理论与实验。主要介绍 Linux 系统基础知识、Linux内核基础知识、ARM64 架构基础知识、内核编译和调试、内核模块、简单的字符设备驱动、系统调用、进程管理、内存管理、同步管理、中断管理、调试和性能优化、开源社区、文件系统、虚拟化与云计算等方面的内容,并通过一个综合能力训练来引导读者动手实现一个小的操作系统。

《奔跑吧Linux内核(第2版)卷1:基础架构 》

本书基于 Linux 5.0 内核的源代码,讲述 Linux 内核中核心模块的实现。主要内容包括处理器架构、ARM64 在 Linux 内核中的实现、内存管理之预备知识、物理内存与虚拟内存、内存管理之高级主题、内存管理之实战案例、进程管理之基本概念、进程管理之调度和负载均衡、进程管理之调试与案例分析。

《奔跑吧Linux内核(第2版)卷2:调试与案例分析》

本书基于 Linux 5.0 内核的源代码,讲述Linux内核的调试技巧和案例。主要内容包括并发与同步、中断管理、内核调试和性能优化、基于 x86_64 的宕机难题解决方案、基于ARM64的宕机题解决方案、安全漏洞的产生原理与修复方案等。以上三本书非常适合 Linux 系统开发人员、嵌入式系统开发人员,以及 Android 开发人员学习。只要摸透了内核,无论是在哪种平台上开发或调试,都将如虎添翼。 

7

《Linux高性能网络详解:   从DPDK、RDMA到XDP》

实现网络高效传输是当前互联网应用和服务的主要诉求。当网络开发工程师被要求提升现有网络传输性能时,就不能说“服务跑得好好的,干嘛要动它”,或者“好办,加服务器加资源就行了”。而要能够从硬件、软件系统出发,多维度地思考并解决问题。

本书针对实现网络高效传输问题,分别介绍了 DPDK、RDMA 和 XDP 三种高性能网络技术的原理、使用方法和实现方案。全书分为四个部分,下面逐一说明。

▮ 第一部分,介绍了计算机网络、计算机硬件和 Linux 操作系统的基础知识,以及软件和硬件之间传递信息的方式、以内核协议栈为基础的网络方案和 Corundum;

▮ 第二部分,介绍了 DPDK 的入门知识、DPDK 的内存管理、UIO/DPDK 的基本使用方法、测试和分析高性能网卡,以及如何为 Corundum 编写 DPDK 驱动程序;

▮ 第三部分,包括 RDMA 技术简介、软件架构、基本元素、基本操作类型及其配套机制、传输服务类型、应用程序执行流程、主要元素的实现、数据传输、RoCEv2网卡的配置、性能测试工具等内容;

▮ 第四部分,包括 XDP 简介、XDP 教程代码分析、简单的XDP性能测试、如何让网卡驱动程序支持XDP功能等内容。

8

《Linux内核深度解析》

Linux 内核难学的一个原因,就是内核中数据结构之间的关系错综复杂,函数调用层次深,并且有些函数中的分支还非常多,一个函数就涉及多项技术。这也是初学内核者最容易被劝退的时刻。

好在又有一位 Linux 高手站了出来, 余华兵是内核技术的深度爱好者,他将自己的学习心得和工程实践记录下来写成本书,帮助初学者踏过门槛,进入内核的世界。

余华兵建议初学者在学习时要抓住主要线索,弄清楚执行流程,在开始阶段不要过多关注细节。为了方便说明,他绘制了许多清晰简洁的图来描述数据结构之间的关系与函数的执行流程。

本书基于 Linux 内核 4.12 版本,选择 ARM64 处理器架构,内容上包括内核的几个关键子系统:引导过程;进程管理;内存管理;异常、中断和系统调用;内核互斥技术;文件系统。

9

《Linux设备驱动开发》

设备驱动开发一直是 Linux 环境开发中的一个难点,因为它涉及内核与硬件两方面的诸多知识点,对开发者的要求比较高。

国外一位高手约翰·马迪厄为我们带来了这本关于 Linux 设备驱动开发的专著。学完这本书,开发者就能够上手从零开始为任何硬件设备编写驱动程序。

本书讲解了 Linux 驱动开发的基础知识以及所用到的开发环境,其内容涵盖了各种 Linux 子系统,包含内存管理、PWM、RTC、IIO和IRQ管理等,还讲解了直接内存访问和网络设备驱动程序的使用方法。

阅读本书需要具备基本的 C 语言程序设计能力,且熟悉 Linux 基本命令。本书主要是为嵌入式工程师、Linux系统管理员、开发人员和内核黑客而设计的。无论是软件开发人员,还是系统架构师或制造商,只要愿意深入研究Linux驱动程序开发,阅读本书后都将有所收获。

10

《精通Linux内核开发》

这里是成为高手的最后一步,学习者读完本书后将具备对 Linux 内核进行开发的能力。本书可以帮助学习者深入理解Linux内核的核心服务与机制,了解这个集中了集体智慧的 Linux 内核在保持其良好设计的同时,是如何保持其优雅特性的。

本书介绍了 Linux 内核、内核的内部编排与设计,以及内核的各个核心子系统等知识。具体内容包括:进程、地址空间和线程;进程调度器;信号管理;内存管理和分配器;文件系统和文件I/O;进程间通信;虚拟内存管理;内核同步和锁;中断和延迟工作;时钟和时间管理;模块管理。

相比于其他讲内核的书篇幅浩荡,本书可谓是短小精悍,通过大量代码辅助介绍 Linux 内核的相关开发工作。非常适合Linux内核开发人员、底层开发人员阅读,还适合希望深入理解Linux内核及其各组成部分的系统开发人员学习。

社区赠书

本次福利将送出5本(上面任选1本)

截止时间:还需要支付积分,就还有赠书额度,先到先得

领取方式

  1. 支付积分即可兑换,复制“ 积分支付订单号 ”
  2. 在本站中私信我这些内容:积分支付订单号、活动书名、快递信息(姓名、电话、地址)

没有积分怎么办?

社区鼓励高质量的技术交流,所以只要发布有价值内容均可获得积分!

哪些内容算高质量?

1. 高质量的技术分享,原创、翻译、转载均可

2. 高质量的提问与回答,注意阅读《提问的艺术》

3. 分享优质Java与Spring的相关开源项目

另外,内容不错,获得精华贴、或者热门帖还有额外加分哦

THE END
喜欢就支持一下吧
点赞4 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容