本书是将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。本书的 优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为为什么是这样的,以及造成效率低下的原因。
这是一本关于如何设计更整洁、更高效的软件架构的全面、实用性指南,阐述了软件架构师的角色和目标,软件架构设计的核心原则,如何为Web、数据库、客户端、控制台和嵌入式应用程序设计最佳的高级结构。全书分为六部分,涵盖了设计和架构、编程范式(结构化编程、面向对象编程、函数式编程)、设计原则(单一职责原则、开闭原则、里氏替换原则、接口隔离原则)、组件原则(重定位技术、组件内聚、组件耦合)、架构(独立性、划分边界、边界剖析、分层和边界、整洁架构、整洁嵌入式架构),以及实现细节和案例研究。本书是软件架构师、系统分析师、系统设计师、软件经理以及执行他人设计的程序员的之作。
内容简介 这是一本从架构视角讲解如何构建大型分布式系统的著作,是超级畅销书《深入理解Java虚拟机》的作者周志明多年架构和研发经验的总结,得到了多位行业资深架构专家的联袂推荐。 全书共16章,分为演进中的架构、架构师的视角、分布式的基石、不可变基础设施和技术方法论五部分。 第1部分 演进中的架构(第1章) 着重介绍了软件开发历史中多种主流架构风格出现的契机、解决的问题以及带来的新缺陷。 第二部分 架构师的视角(第2~5章) 总结了一名架构师应该在架构设计时思考哪些问题,有哪些主流的解决方案和行业标准做法,各种方案有什么优缺点,不同的解决方法会带来什么不同的影响,等等。 第三部分 分布式的基石(第6~10章) 重点讨论了 不同架构风格是应该在技术规范上统一,还是由应用系统自行解决 这个问题,给出了解决思路、方法
全书共五篇,以从易到难的顺序详细剖析了Linux内核开发的核心技术。“知识储备篇”介绍了Linux的数据结构、中断处理、内核同步和时间计算等内容,这些是理解后续章节的前提;之后通过“内存管理篇”“文件系统篇”“进程管理篇”详细介绍了Linux的三大核心模块;最后的“综合应用篇”则融合了前面诸多模块知识展示了Linux内核开发在操作系统、智能设备、驱动、通信、芯片、云计算和人工智能等热点领域的应用。书中的重点、难点均配有图表、代码和实战案例,力求直观、清晰。 学习本书的读者需要熟悉C语言,建议对Linux内核有一定了解。推荐初学者按照本书的编排顺序阅读,而熟悉Linux内核的读者可以跳过知识储备篇,直接从三大核心模块篇进行阅读。 本书深入浅出、配图丰富,可作为Linux初中级读者系统学习Linux内核开发的指导手册,也可作为从事嵌入
本书是面向操作系统导论课程的经典书籍,从第1版至今被国内外众多高校选作教材。全书共九个部分,相较于上一版增加了三个部分,并且优化了各章的编排顺序。本书不仅详细讲解进程管理、内存管理、存储管理、保护与安全等概念,而且涵盖重要的理论结果和案例研究,并且给出了供读者深入学习的推荐读物。这一版在移动操作系统、多核系统、虚拟化和NVM外存等方面做了大幅更新,每一章都融入了新的技术进展,并且更新了习题和编程项目。本书既适合高等院校计算机相关专业的学生学习,也是专业技术人员的有益参考。
通告: 本书第11页,第六行链接已经失效,替换为: http://pan.baidu.com/s/1cFrl2e 密码:ezs2 本书介绍了Linux设备驱动开发理论、框架与实例,详细说明了自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论,以及字符设备、块设备、tty设备、I2c设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动架构中各个复杂数据结构和函数的关系,并讲解了Linux驱动开发的大量实例,使读者能够独立开发各类Linux设备驱动。
这是一本从实战角度介绍FastAPI web开发的入门与进阶型技术书。本书没有过多的理论介绍,完全从一线工作角度入手,介绍日常web开发需要掌握的相关知识。本书共分为4篇16章: 第1篇是基础篇,主要介绍FastAPI的基础知识,包括FastAPI的基本信息、安装使用、常规操作、中间件、数据库相关内容。作为初学者,掌握这部分内容就可以快速上手使用FastAPI,处理各种日常问题。 第二篇是进阶篇,主要围绕与FastAPI相关的高级技能展开,包括异常处理、功能扩展、安全认证、性能、测试等相关内容。 第三篇是实战篇,主要从案例的角度对FastAPI在典型应用场景中的落地进行分享,包括短链应用、websocket、基于公众号的挂号系统等应用场景。 第四篇是部署篇,这部分重点介绍如何实现FastAPI的自动化部署,这数据高阶人员技能。本篇提供了三种自动化部署方式。
内容简介这是一本能指导零计算机基础的读者轻松理解计算机软硬件和操作系统工作原理,从而自己动手从0到1编写出一个操作系统的著作。作者在操作系统领域深度耕耘20余载,不仅一直奋斗在百度等企业一线,而且一直致力于操作系统的教育和布道,希望能帮助和指导越来越多的人,尤其是青少年,能从学生时代开始学习操作系统,能从底层原理真正理解操作系统,改变我国基础软件受制于人的现状。本书不仅是作者悟透操作系统本质、厚积薄发的成果,而且是他将复杂的操作系统原理化繁为简、举重若轻,成功指导自己9岁的孩子从0到1编写出一个操作系统的过程的全面复盘和复现。本书驱散了操作系统的迷雾,让操作系统不再神秘和高不可攀,让每一个怀揣操作系统梦的中国人都能理解并实现自己的操作系统。全书一共14章,逻辑上分为上下两篇。上篇(第1~5
本书由知名编译与操作系统专家海纳撰写,将沉淀20余年的Linux系统研究所得倾注书中。本书用不到1万行代码复现了Linux 0.12内核,打通了 古早 工具链障碍,模块实现环环相扣,带你穿透 迷雾 ,窥见Linux系统设计的绚丽 天光 。 本书共8章,从逻辑上分为四部分。第一部分(第1和2章)是基础知识,介绍开发内核所需的基础知识,包括开发环境和调试环境的搭建,以及i386保护模式等。第二部分(第3~6章)是核心模块,逐步实现进程、中断、系统调用、内存管理、字符设备驱动和块设备驱动等模块。第三部分(第7章)是文件系统,涵盖Minix文件系统、管理inode、管理普通文件、管理目录、文件链接、执行程序等内容。第四部分(第8章)是系统服务接口,介绍一些重要的函数,这部分不是内核的主要部分,但为了让shell程序正确地运行,这些函数也是必须实现的。
在Windows系统中没有什么比内核更强大了,但是如何编写内核驱动程序来利用这种强大能力呢?这本书为读者描述如何编写Windows系统的软件内核驱动程序。这些驱动程序不涉及硬件,而是处理系统本身:进程、线程、模块、注册表等等。内核代码可用于监视重要事件,防止在需要时发生某些事件。读者可以通过编写各种过滤器来拦截驱动程序中感兴趣的调用。
本书聚焦于当今高性能多核处理器的并行编程系统的理论和实践方面,探讨实现并行编程模型所需的关键算法的有效实现。此类实现需要考虑底层计算机体系结构的特定体系结构方面以及执行环境提供的功能。本书简要回顾了现代计算机体系结构的关键概念,特别关注并行代码的性能以及并行编程模型中的相关概念。然后,本书转向用于实现并行编程模型的基本算法,并讨论它们如何与现代处理器交互。虽然本书将重点介绍一般机制,但我们将主要使用英特尔处理器体系结构来举例说明所讨论的实现概念,但也将在适当的情况下介绍其他处理器体系结构。所有的算法和概念都以一种易于理解的方式进行了讨论,并附有许多示例、图表和源代码片段。
本书是将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。本书的大优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为为什么是这样的,以及造成效率低下的原因。
本书从技术和业务方面介绍了开发成功的系统需要了解的知识,涵盖了基于模型的系统工程、生命周期和过程的基本方面,以及开发系统的方法,给出了关键管理过程和系统工程实践和指南。
本书是一本面向系统工程师的实践指南,皆在帮助他们获得Linux内核中BPF虚拟机的专业知识。通过本书,你不仅可以深入了解BPF程序的生命周期,熟悉日常工作所需的基本概念,增强有关性能优化、网络和安全方面的知识。还可以学习如何编写观测和修改内核行为的应用程序,以及通过代码注入的方式对内核事件进行监控、跟踪和安全观测等内容。同时,本书展示了相关的C、Go和Python代码示例。每次学习BPF技术时,我们都需要翻阅许多博客文章、手册以及Internet上的各种资料。 本书的目的就是将分散在各处的知识汇总在一起,以方便后续BPF爱好者能更好地学习这一技术。
业务架构是跨系统的业务蓝图,应用架构、数据架构、技术架构是解决方案的不同方面。多年来,业界已在业务架构、应用架构、数据架构、技术架构方面积累了大量经验。近几年,数字化转型更是呼唤“懂行人”打通四种架构,确保技术支撑业务、业务支撑战略。本书的主要内容即在于此。首先,解读战略、业务架构、应用架构、数据架构、技术架构五者的对应岗位、产物、脉络关系。然后,结合大案例,详探下列实战法: ·战略驱动的业务架构设计; ·业务驱动的应用架构设计; ·业务驱动的数据架构设计; ·业务和技术趋势双轮驱动的技术架构设计。 再后,分享业界较为稀缺的《业务架构书》《技术方案书》优秀模板。 最后,分享ToG/ToB解决方案规划方法体系。
Linux是世界上流行的开源操作系统。Linux系统编程技术将使你能够使用自己的系统程序扩展Linux操作 系统,并与系统上的其他程序进行通信。 本书探讨了Linux文件系统及其基本命令、内置手册页、GNU编译器集合(GCC)和Linux系统调用;讲述了如何处理程序中的错误,以及如何捕获错误并打印错误相关信息;介绍了在系统上读写文件的多种方法,包括使用流和文件描述符。随着学习的不断深入,你将深入研究创建进程、创建僵尸进程和守护进程,并学习使用systemd处理守护进程的方法;了解如何创建共享库,并探索不同类型的进程间通信(IPC);还将学习如何使用POSIX线程编写程序,以及如何使用GNU调试器(GDB)和Valgrind调试程序。 学完本书,你将能够在Linux系统中开发自己的系统程序,包括守护进程、工具、客户端和过滤器。 通过阅读本书,你将: ◎ 了解如何使
这是一本从点、线、面、体4个维度深度解读分布式系统性能优化方法的专业工具书,更是一套全栈性能优化解决方案。其中, 点 指的是代码中的单个语句或函数, 线 指的是代码中的执行路径, 面 则上升到模块、子系统级别, 体 则指的是整个系统。4个维度对应4个不同的优化层次,只有这4个维度配合,才可以真正实现分布式系统的整体性优化。 全书融合了5位长期(最长有近30年工作经验)从事软件开发及优化工作的一线专家的实践经验和深刻理解,不仅从理论层面深入解读了性能优化的本质,还从软件开发整体流程的角度构建性能优化体系和评估策略。全书本着 没有jue对的好设计,只有适合的设计 的理念展开介绍,不仅提供可落地的技巧,还直指本质,让读者知其然并知其所以然,从而设计出适合自己的性能优化方案。 本书共分为17章。 第1~4章 主要介绍作
《高性能Linux服务器运维实战:shell编程、监控告警、性能优化与实战案例》以Linux运维平台下的开源应用软件为中心,涉及Linux运维的各个方面,主要从系统基础运维、系统性能调优、智能运维监控、运维实战案例4个方面展开介绍。本书贯穿实战、实用、通俗、易懂的特点,在内容上注重实战化,通过真实的生产环境从多个方面介绍运维工作中的方方面面。通过真实案例的学习,可以使读者深入地掌握Linux运维技术的各种经验和技巧,从而真正提高企业的实战能力。 全书贯穿了由点及线、由线及面的学习方法,既可以满足初学者参考学习,也可以帮助有一定基础的中高级Linux运维管理人员进阶,使不同层次的读者都能从本书受益。
本书全面细致地剖析了LinuxCNC系统架构、功能以及运行机制,并按照自上而下的层次结构逐步分析各个功能模块的结构和原理,包括HAL模块 、运动控制器、I/O控制器、任务控制器以及人机界面的开发设计。针对各种多轴的数控设备属性阐明了设备坐标系创建与配置、刀具库与刀具创建、回零过程设置、多轴控制系统及路径规划、插补算法及运行方式的初始化文件配置与开发。 从工程实际应用出发,通过图文并茂的实例讲解,详尽介绍了如何应用LinuxCNC构建专用领域的数控系统以及机器人控制系统。本书配有光盘,包含LinuxCNC的安装包、EtherCAT总线主站驱动程序、Python语言和Pyqt库安装程序以及英文LinuxCNC介绍文档等。 本书可以作为希望学习LinuxCNC软件平台系统知识、获得 数控系统开发技术的科研院所和高校师生学习用书,也可供数控及机器人控制技术行业的