基本信息

编辑推荐
---------------------------Linux设备驱动开发详解:基于新的Linux 4.0内核---------------------------
历时8年,三次重构,内窖愈加炉火纯青。
全部代码更新至全新的Linux4.0版本。
全面讲解ARM Linux新版本内核架构,如设备树等。
不仅仅注重知识和程序的讲解,更注重程序的思想、演变、架构和算法。
内容简介
计算机书籍
---------------------------写给架构师的Linux实践:设计并实现基于Linux的IT解决方案---------------------------
本书首先概述 Linux 项目的设计方法,然后讲解在设计此类项目时,所要注重的核心理念,以及在用 Gluster File System(GlusterFS)实现高性能的存储方案时,必须对哪几个重要问题做出抉择。接着介绍运用 Kubernetes对容器化应用程序的部署与管理工作进行编排及协调,并且介绍怎样针对 NGINX 应用程序配置 Kubernetes。之后讲解如何实现 ELK 栈,并介绍了构成该栈的 Elasticsearch、Logstash,以及 Kibana 等部件。最后,本书介绍怎样安装并配置 SaltStack 方案,以管理各种Linux发行版,而且还探讨了一些设计经验与设计原则,供你在制作解决方案时参考。通过本书的学习,读者可以熟练地构建出运行复杂程序所需的高性能工作环境。
---------------------------Linux设备驱动开发详解:基于新的Linux 4.0内核---------------------------
对于嵌入式工程师来说,进入更高阶段后,学习Linux设备驱动开发无疑就是职业生涯的一次“重生”。这是因为Linux设备驱动开发不仅仅涉及操作系统的转换,开发方式的转换,更重要的是思维上的转变。对于Linux这样一个复杂系统,如何从复杂的代码中抓住设备驱动开发的关键是任何一个Linux设备驱动开发者入门时需要面对的挑战。除了知识、工具之外,往往还需要思路上的指导。本书不但帮助Linux设备驱动开发的初学者厘清必要的概念,还从具体的实例、设备驱动开发的指导原则循序渐进地引导读者渐入学习佳境。为了让读者能够达到Linux设备驱动开发的至臻境界,作者更是从软件工程的角度抽象出设备驱动开发的一般思想。毫无疑问,本书将成为读者学习Linux设备驱动开发过程中的一座“灯塔”。
作译者
---------------------------写给架构师的Linux实践:设计并实现基于Linux的IT解决方案---------------------------
[哥] 丹尼斯·萨拉曼卡(Denis Salamanca)
埃斯特班·弗洛雷斯(Esteban Flores)著
:丹尼斯•萨拉曼卡(Denis Salamanca) 是一位技术谜,他与伴侣及儿子住在哥斯达黎加。Salamanca 从 20 岁起就从事 IT 工作,并在 VMware、Microsoft、Hewlett-Packard Enterprise 等多家知名企业就职。他目前在云端、存储、Linux、Docker 及虚拟化等不同领域,获得了共计十多项技术认证,此外还参与了 Linux 认证的制定工作,该认证是 CompTIA(Computing Technology Industry Association,美国计算机行业协会)Linux Subject Matter Experts and Technical Advisory Committee 的一部分。
埃斯特班•弗洛雷斯(Esteban Flores)从8岁起就开始摆弄电脑。他曾供职于 Hewlett-Packard Enterprise、VMware、Akamai 及 Microsoft 等许多知名公司。他有十年工作经验,而且喜欢尝试新技术,这促使他在工作过程中体验不同的职位。存储技术一直都是他 的强项,他尤其关注性能调整与优化。
---------------------------Linux设备驱动开发详解:基于新的Linux 4.0内核---------------------------
宋宝华
Linux布道者,知名嵌入式系统专家,《Essential Linux Device Drivers》译者。作为最早从事Linux内核与设备驱动研究的专家之一,他在众多国内外知名企业开展Linux技术培训。他也是一位活跃的Linux开发者和深度实践者,为Linux官方内核贡献了大量的Linux源码并承担代码审核工作。至今已向Linux官方内核提交逾数万行代码和几百个补丁。他的《Linux设备驱动开发详解》系列书在嵌入式Linux开发者中有口皆碑,是众多Linux书籍中为数不多的畅销书。
目录
---------------------------写给架构师的Linux实践:设计并实现基于Linux的IT解决方案---------------------------
译者序
前言
作者简介
评审者简介
第一部分 用GlusterFS 制定高性能的存储解决方案
第1章 设计方法简介 …… 2
1.1 定义解决方案设计的多个阶段及其意义 …… 2
1.2 分析问题并准确地提出问题 …… 3
1.2.1 技术角度 …… 4
1.2.2 业务角度 …… 5
1.2.3 功能角度 …… 6
1.3 考虑可行的解决方案 …… 6
1.4 把解决方案实现出来 …… 9
1.5 小结 …… 9
前言
---------------------------写给架构师的Linux实践:设计并实现基于Linux的IT解决方案---------------------------
欢迎阅读本书,本书将带你深入了解架构师在设计基于 Linux 的解决方案时的思路,帮助你提升知识水平,学会架构并实现各种 IT 解决方案。
本书会向你展示各种开源软件的灵活用法,告诉你怎样采用业界最为流行的产品,从头到尾打造一套完整的解决方案。笔者会从设计阶段一直讲到实现阶段,其中也包括如何构建设计阶段所拟定的基础设施。
在设计方案的过程中,我们会深入地讲解每一个技术层面,并详细分析如何实现与调整基于 Linux 的开源解决方案。
本书的目标读者
本书适合Linux系统管理员、Linux支持工程师、DevOps工程师、Linux顾问,以及使用各种开源技术的专业工作者阅读,可以帮助大家学习基于Linux及开源软件的解决方案,并提高架构、设计与实现水平。
本书的内容
第1章提出一个问题,并对此做出分析,告诉大家在设计解决方案时应该从哪些方面入手才能提取到必要的信息,从而准确地定义自己所面对的问题。
第2章详细讲解GlusterFS,并定义存储集群。
第3章讨论由GlusterFS及其各组件实现的存储解决方案的设计问题。
第4章解释在云端实现GlusterFS必须进行哪些配置。
第5章详细讲述早前配置的解决方案的具体配置方式,并对实现性能做出测试。
第6章讲述IT业怎样从单体式应用程序演进为原生于云端的、容器化的、高度可用的微服务。
第7章研究Kubernetes 的核心组件,讲解每个组件及如何用该组件解决顾客的问题。
第8章讲解Kubernetes集群的需求与配置。
序言
---------------------------Linux设备驱动开发详解:基于新的Linux 4.0内核---------------------------
推荐序一
技术日新月异,产业斗转星移,滚滚红尘,消逝的事物太多,新事物的诞生也更迅猛。众多新生事物如灿烂烟花,转瞬即逝。当我们仰望星空时,在浩如烟海的专业名词中寻找,赫然发现,Linux的生命力之旺盛顽强,斗志之昂扬雄壮,令人称奇。它正以摧枯拉朽之势迅速占领包括服务器、云计算、消费电子、工业控制、仪器仪表、导航娱乐等在内的众多应用领域,并逐步占据许多WINCE、VxWorks的传统嵌入式市场。
Linux所及之处,所向披靡。这与Linux的社区式开发模式,迅速的迭代不无关系。Linux每2~3月更新一次版本,吸纳新的体系架构、芯片支持、驱动、内核优化和新特性,这使得Linux总是能够在第一时间内迎合用户的需求,快速地适应瞬息万变的市场。由Linux以及围绕着Linux进行产品研发的众多企业和爱好者构成了一个庞大的Linux生态圈。而本书,无疑给这个庞大的生态圈注入了养料。
然而,养料的注入应该是持续不断的。至今,Linux内核的底层BSP、驱动框架和内核实现发生了许多变更,本书涵盖了这些新的变化,这将给予开发者更多新的帮助。内核的代码不断重构并最优化,而本书也无疑是一次重大的重构。
生命不息,重构不止。
周立功
推荐序二
在翻译了《Understanding the Linux Kernel》和《Linux Kernel Development》这两本书后,每当有读者询问如何学习Linux内核时,我都不敢贸然给出建议。如此庞大的内核,各个子系统之间的关系错综复杂,代码不断更新和迭代,到底该从何入手?你的出发点是哪里?你想去的彼岸又是哪里?相应的学习方法都不同。
一旦踏入Linux内核领域,要精通Linux内核的精髓,几乎没有捷径可走。尽管通往山顶的路有无数条,但每条路上都布满荆棘,或许时间和毅力才是斩荆披棘的利器。
从最初到现在,Linux内核的版本更新达上千个,代码规模不断增长,平均每个版本的新增代码有4万行左右。在源代码的10个主要子目录(arch、init、include、kernel、mm、IPC、fs、lib、net、drivers)中,驱动程序的代码量呈线性增长趋势。
从软件工程角度来看内核代码的变化规律,Linux的体系结构相对稳定,子系统数变化不大,平均每个模块的复杂度呈下降趋势,但系统整体规模和复杂性分别呈超线性和接近线性增长趋势。drivers和arch等模块的快速变化是引起系统复杂性增加的主因。那么,在代码量最多的驱动程序中,有什么规律可循?最根本的又是什么?
本书更多的是关于Linux内核代码背后机理的讲解,呈现给读者的是一种思考方法,让读者能够在思考中举一反三。尽管驱动程序只是内核的一个子系统,但Linux内核是一种整体结构,牵一发而动全局,对Linux内核其他相关知识的掌握是开发驱动的基础。本书的内容包括中断、定时器、进程生命周期、uevent、并发、编译乱序、执行乱序、等待队列、I/O模型、内存管理等,实例代码也被大幅重构。
明代著名的思想家王明阳有句名言“知而不行,是为不知;行而不知,可以致知”。因此在研读本书时,你一定要亲身实践,在实践之后要提升思考,如此,你才可以越过代码本身而看到内核的深层机理。
陈莉君
媒体评论
---------------------------写给架构师的Linux实践:设计并实现基于Linux的IT解决方案---------------------------
要想构建出高效的工作环境,必须学会搭建灵活的基础设施。这本书将会帮你全面掌握各种Linux组件与功能,以及硬件与软件层面的支持技术,让你能够实现基于Linux的解决方案,并优化其性能。
本书第一部分首先概述Linux项目的设计方法,然后讲解在设计此类项目时要注重的核心理念,接下来讨论在用Gluster File System(GlusterFS)实现高性能的存储方案时,必须对哪几个重要问题做出抉择。第二部分会指导你运用Kubernetes对容器化应用程序的部署与管理工作进行编排及协调,你还会看到怎样针对Nginx应用程序配置Kubernetes。第三部分介绍如何实现ELK栈和构成该栈的Elasticsearch、Logstash,以及Kibana等组件。第四部分讲解怎样安装并配置SaltStack方案来管理各种Linux发行版,还会探讨一些设计经验与设计原则供制作解决方案时参考。通过本书,你将能够熟练地构建出运行复杂程序所需的高性能工作环境。
阅读完本书,你将深入了解设计解决方案时所要处理的许多技术细节,并且能够全面而透彻地掌握如何实现及优化基于Linux的解决方案。
通过阅读本书,你将学到:
在设计基础设施时,所需具备的基本知识及相关步骤。
如何设计基于Linux的解决方案,以拓展自己的设计范围。
怎样使用基于开源软件的方案来优化架构。
理解高可用性与容错能力在设计健壮的解决方案时的重要作用。
认识容器的重要意义,并了解如何用它来改善CI与CD管线。
透彻掌握各种优化技术,学会采用业界公认的有效经验设计弹性与高可用性的解决方案。
---------------------------Linux设备驱动开发详解:基于新的Linux 4.0内核---------------------------