全书共五篇,以从易到难的顺序详细剖析了Linux内核开发的核心技术。“知识储备篇”介绍了Linux的数据结构、中断处理、内核同步和时间计算等内容,这些是理解后续章节的前提;之后通过“内存管理篇”“文件系统篇”“进程管理篇”详细介绍了Linux的三大核心模块;最后的“综合应用篇”则融合了前面诸多模块知识展示了Linux内核开发在操作系统、智能设备、驱动、通信、芯片、云计算和人工智能等热点领域的应用。书中的重点、难点均配有图表、代码和实战案例,力求直观、清晰。 学习本书的读者需要熟悉C语言,建议对Linux内核有一定了解。推荐初学者按照本书的编排顺序阅读,而熟悉Linux内核的读者可以跳过知识储备篇,直接从三大核心模块篇进行阅读。 本书深入浅出、配图丰富,可作为Linux初中级读者系统学习Linux内核开发的指导手册,也可作为从事嵌入
大型软件系统生命周期的绝大部分都处于 使用 阶段,而非 设计 或 实现 阶段。那么为什么我们却总是认为软件工程应该首要关注设计和实现呢?在本书中,Google SRE的关键成员解释了他们是如何对软件进行生命周期的整体性关注的,以及为什么这样做能够帮助Google成功地构建、部署、监控和运维世界上现存*的软件系统。通过阅读本书,读者可以学习到Google工程师在提高系统部署规模、改进可靠性和资源利用效率方面的指导思想与具体实践 这些都是可以立即直接应用的宝贵经验。任何一个想要创建、扩展大规模集成系统的人都应该阅读本书。本书针对如何构建一个可长期维护的系统提供了非常宝贵的实践经验。
汽车中软件部分的比重正稳步提升。 软件中的运行时行为-Timing(时间性能测量)这一部分与此同时呈爆发性增长。造成此状况的原因有很多:软件中越来越多的部分与安全性相关,系统本身变得越来越复杂,而且大多数情况下的多核应用比预期的要困难。现代汽车领域中的控制器单元仍旧不能忽略时间性能测量这一主题。时间性能测量问题分析及解决的成本毫无疑问是非常高的,尤其是在项目后期。此外,安全规范如 ISO 26262 规定了涉及嵌入式软件时间性能的要求。这本书介绍了基础内容,以便于用正确的时间性能测量方法去开发软件或者解决严重的时间性能测量问题。它同时着眼于各种各种分析方法,涵盖了开发过程中的所有阶段,并通过大量实际范例以及针对开发者工作的具体建议来为其理论奠定基础。 即使书中大部分实际范例出自汽车行业领域,但其全部内
用读一本小说的心态来阅读本书,你会对整个操作系统的体系结构和逻辑细节有非常清晰的认识,从此爱上并阅读更多的操作系统源码。第1部分:进入内核前的苦力活。覆盖从开机到运行到Linux中的main函数的关键流程解析,帮你清晰认识Intel CPU的体系结构。第2部分: 大战 前期的初始化工作。讲述main中的各种初始化函数,这些函数是操作系统各个模块的交互桥梁,为理解后续操作系统各个模块的运作原理打好基础。第3部分:一个新进程的诞生。讲述从内核态切换至用户态,并建立起第一个用户进程的全部过程。学完这部分,你将会理解一个多进程的操作系统是如何建立和运作的。第4部分:shell程序的到来。主要讨论如何将磁盘中存储的shell程序加载到内存中来,并最终交给CPU去执行。通过这个过程你会看清一个程序从存储到硬盘到最终被执行的全部过程。第5部分
Linux是目前最流行的操作系统之一,而Ubuntu是众多Linux发行版中的佼佼者。它以开源、稳定和广泛的社区支持等特点,被广泛用于桌面系统、服务器和二次开发的生产环境。《Ubuntu Linux系统管理与运维实战》使用Ubuntu 22.04 LTS版本,通过由浅入深、循序渐进的方式讲解Ubuntu系统管理与运维技能。 《Ubuntu Linux系统管理与运维实战》共分13章,内容包括了解Ubuntu、安装Ubuntu、桌面环境、文件系统基础知识、文件和目录管理、用户和权限管理、系统启动和关闭、服务和进程管理、软件包管理、磁盘和文件系统管理、高级网络管理、网络服务管理以及系统安全。 《Ubuntu Linux系统管理与运维实战》内容精练、重点突出、实例丰富,适合Linux初学者、运维人员、应用开发人员、网络管理人员和应用部署人员作为参考书。《Ubuntu Linux系统管理与运维实战》也可作为高等院校或高职高
《高性能Linux服务器运维实战:shell编程、监控告警、性能优化与实战案例》以Linux运维平台下的开源应用软件为中心,涉及Linux运维的各个方面,主要从系统基础运维、系统性能调优、智能运维监控、运维实战案例4个方面展开介绍。本书贯穿实战、实用、通俗、易懂的特点,在内容上注重实战化,通过真实的生产环境从多个方面介绍运维工作中的方方面面。通过真实案例的学习,可以使读者深入地掌握Linux运维技术的各种经验和技巧,从而真正提高企业的实战能力。 全书贯穿了由点及线、由线及面的学习方法,既可以满足初学者参考学习,也可以帮助有一定基础的中高级Linux运维管理人员进阶,使不同层次的读者都能从本书受益。
本书提供了一套实用的方法和工具,帮助读者更好地理解、设定和管理SLO。书中主要介绍了SLO的基本概念、设计过程、实施方法及相关案例研究。作者不仅解释了SLO的重要性,以及为什么在现代IT环境中需要它们,详细阐述了SLO的定义、类型和级别,以及如何将它们与业务目标相结合,而且详细介绍了设计SLO的过程,包括需求收集、目标设定、指标选择、约束条件设定等步骤,旨在确保SLO既符合业务需求,又具有可度量性和可操作性,同时提供了一些实用的方法和工具,帮助读者有效地实施和管理SLO,包括使用监控工具、定期审查和调整SLO等。此外,书中还包含了一系列实际案例研究,展示了如何将SLO应用于不同的场景和环境。这些案例可以帮助读者更好地理解SLO的实际应用价值。
系统性设计思维是在体验经济、服务经济及数字科技时代的背景下,在创新领域中提出的重要概念。今天的产品及服务设计的创新流程,不再关注单纯的产品范畴或传统的流程,而需要充分地认识从用户、社会文化到产品、服务、空间、品牌及传播、社会互动的整合性系统。这个过程,不仅是从研究、创意到商品化的综合性创新流程,而且是需要设计战略与策略介入、引导、管理的价值创造的过程与体系。 《系统创新时代的设计思维》在当代国际学术视野下,以系统、流程与方法为关键词,主要面向复杂性产品或其他对象,进行系统的分析思考并提出综合性的设计解决方案;在创新产品设计的框架、系统性设计思维及其发展探讨的基础上,对深度洞察、战略分析、概念创意、产品实现及系统实施的全方位思维过程与方法选择进行全面的解读与应用指导。这些基于
本书主要讲述采用现代 C 在 x86-64 Linux 上编写多线程 TCP 网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即 one loop per thread。这是在 Linux 下以 native 语言编写用户态高性能网络程序成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序。本书以 muduo 网络库为例,讲解这种编程模型的使用方法及注意事项。本书的宗旨是贵精不贵多。掌握两种基本的同步原语就可以满足各种多线程同步的功能需求,还能写出更易用的同步设施。掌握一种进程间通信方式和一种多线程网络编程模型就足以应对日常开发任务,编写运行于公司内网环境的分布式服务系统。
华为自主研发的HarmonyOS(鸿蒙系统)是一款面向未来、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。借助HarmonyOS全场景分布式系统和设备生态定义全新的硬件、交互和服务体验。本书采用新的HarmonyOS 2版本作为基石,详细介绍如何基于HarmonyOS进行手机应用的开发,内容涵盖HarmonyOS架构、DevEco Studio、应用结构、Ability、任务调度、公共事件、通知、剪切板、Java UI、JS UI、多模输入、线程管理、视频、图像、相机、音频、媒体会话管理、媒体数据管理、安全管理、二维码、通用文字识别、蓝牙、WLAN、网络管理、电话服务、设备管理、数据管理、原子化服务、流转等多个主题。本书列举了大量解决实际问题的案例,具有很强的前瞻性、应用性、趣味性。 本书主要面向的是对移动应用或HarmonyOS应用感兴趣的学生、开发人员、架构师。
在这本有关Logic Pro X10.4软件的苹果认证培训教材中,掌握如何进行录音、编配、混音、制作和精修音频文件。经验丰富的制作人和作曲家大卫 纳赫玛尼(David Nahmani)在本书中将会手把手地,并基于实际案例,来为读者做全面的指导。他会在教学中用直白精炼的语言讲解,其内容涵盖全部的音乐创作过程,从基本的音乐创作到精巧的制作技巧。除此以外,Logic Pro X10.4带来了更为强大的新功能,以及对原有版本的升级和调整,包括新的MIDI/自动化显示处理,新的清晰度ID(Articulation ID)键位切换(Keyswitch)功能,新的ARA支持,新的Direction Mixer频率分割功能等。
本书是被誉为UNIX编程 圣经 的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据新的标准对内容进行了修订和增补,反映了新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了众多应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。 本书内容权威,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。
IntelliJ IDEA 是一款优秀的软件开发工具,学习和掌握IntelliJ IDEA对于开发者来讲具有十分重要的意义。本书以IntelliJ IDEA的操作使用为主线,同时贯穿示例教学,全面地向读者展示了其强大的开发与管理能力。本书为读者准备了比较全面的技术体系,共16章。第1章与第2章主要讲解了IntelliJ IDEA的使用技巧;第3章主要讲解了IntelliJ IDEA中的工程结构及组织方式;第4章与第5章主要讲解了IntelliJ IDEA下项目的编译、部署、运行与调试;第6章与第7章讲解了Maven等项目构建管理工具的使用;第8章Git版本管理是开发者需要着重学习的知识技能;第9章讲解了Spring项目的使用原理并深化了示例;第10章讲解了数据库管理工具的使用技巧;第11章至第14章进行了全方位的拓展,引入了Docker容器、Vue.js、Scala、Python等相关内容;第15章为辅助教学篇,主要讲解了持续化部署工具的使用;第16章
本书对大前端技术栈进行了全面的讲解,以实战驱动教学,内容涉及HTML5 CSS3模块、JS模块、jQuery模块、Bootstrap模块、Node.js模块、Ajax模块、ES6新标准、Vue框架、UI组件和模块化编程等。本书厚度有限,但学习的空间无限。 全书共分为五个阶段,共18章。阶段走进前端之HTML5 CSS3(第1~6章),第二阶段探索JS的奥秘(第7~8章),第三阶段PC端整栈开发(第9~11章),第四阶段ES6 Node 工程化(第12~14章)和第五阶段Vue技术栈(第15~18章)。书中引入了丰富的实战案例,实际性和系统性较强,能够很好地帮助读者提升就业竞争力。书中还引入了3个企业级实战项目,为打造企业刚需人才。 本书适合初、中级前端开发者、渴望了解前端知识整体脉络的程序员,以及希望突破瓶颈进一步提升的工程师阅读。
嵌入式微处理器功能强大、节能和低成本与嵌入式Linux系统的灵活性结合,促使业界许多公司基于嵌入式微处理器开发出了很多新产品。本书教读者基于设备树嵌入式Linux系统如何开发设备驱动程序。读者将学习编写不同类型的Linux驱动程序,以及与内核和用户空间交互的应用程序程序接口(API)和方法。本书以实战为核心,阐述了Linux内核基础知识,将编写大约30个驱动程序并移植到三种不同的微处理器上。本书在实验部分中基于NXP i.MX7D、Microchip SAMA5D2和Broadcom BCM2837三种不同微处理器详细阐述了驱动程序的开发的实现,读者可参考实验部分选择开发和测试自己的驱动程序。在阅读本书之前,建议读者先购买一个基于这些微处理器之一的开发板,板上至少应有一个SPI和I2C控制器,例如Raspberry Pi3模型B板。