这是一本关于如何设计更整洁、更高效的软件架构的全面、实用性指南,阐述了软件架构师的角色和目标,软件架构设计的核心原则,如何为Web、数据库、客户端、控制台和嵌入式应用程序设计最佳的高级结构。全书分为六部分,涵盖了设计和架构、编程范式(结构化编程、面向对象编程、函数式编程)、设计原则(单一职责原则、开闭原则、里氏替换原则、接口隔离原则)、组件原则(重定位技术、组件内聚、组件耦合)、架构(独立性、划分边界、边界剖析、分层和边界、整洁架构、整洁嵌入式架构),以及实现细节和案例研究。本书是软件架构师、系统分析师、系统设计师、软件经理以及执行他人设计的程序员的之作。
全书共五篇,以从易到难的顺序详细剖析了Linux内核开发的核心技术。“知识储备篇”介绍了Linux的数据结构、中断处理、内核同步和时间计算等内容,这些是理解后续章节的前提;之后通过“内存管理篇”“文件系统篇”“进程管理篇”详细介绍了Linux的三大核心模块;最后的“综合应用篇”则融合了前面诸多模块知识展示了Linux内核开发在操作系统、智能设备、驱动、通信、芯片、云计算和人工智能等热点领域的应用。书中的重点、难点均配有图表、代码和实战案例,力求直观、清晰。 学习本书的读者需要熟悉C语言,建议对Linux内核有一定了解。推荐初学者按照本书的编排顺序阅读,而熟悉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系统的软件内核驱动程序。这些驱动程序不涉及硬件,而是处理系统本身:进程、线程、模块、注册表等等。内核代码可用于监视重要事件,防止在需要时发生某些事件。读者可以通过编写各种过滤器来拦截驱动程序中感兴趣的调用。
业务架构是跨系统的业务蓝图,应用架构、数据架构、技术架构是解决方案的不同方面。多年来,业界已在业务架构、应用架构、数据架构、技术架构方面积累了大量经验。近几年,数字化转型更是呼唤“懂行人”打通四种架构,确保技术支撑业务、业务支撑战略。本书的主要内容即在于此。首先,解读战略、业务架构、应用架构、数据架构、技术架构五者的对应岗位、产物、脉络关系。然后,结合大案例,详探下列实战法: ·战略驱动的业务架构设计; ·业务驱动的应用架构设计; ·业务驱动的数据架构设计; ·业务和技术趋势双轮驱动的技术架构设计。 再后,分享业界较为稀缺的《业务架构书》《技术方案书》优秀模板。 最后,分享ToG/ToB解决方案规划方法体系。
《高性能Linux服务器运维实战:shell编程、监控告警、性能优化与实战案例》以Linux运维平台下的开源应用软件为中心,涉及Linux运维的各个方面,主要从系统基础运维、系统性能调优、智能运维监控、运维实战案例4个方面展开介绍。本书贯穿实战、实用、通俗、易懂的特点,在内容上注重实战化,通过真实的生产环境从多个方面介绍运维工作中的方方面面。通过真实案例的学习,可以使读者深入地掌握Linux运维技术的各种经验和技巧,从而真正提高企业的实战能力。 全书贯穿了由点及线、由线及面的学习方法,既可以满足初学者参考学习,也可以帮助有一定基础的中高级Linux运维管理人员进阶,使不同层次的读者都能从本书受益。
本书全面细致地剖析了LinuxCNC系统架构、功能以及运行机制,并按照自上而下的层次结构逐步分析各个功能模块的结构和原理,包括HAL模块 、运动控制器、I/O控制器、任务控制器以及人机界面的开发设计。针对各种多轴的数控设备属性阐明了设备坐标系创建与配置、刀具库与刀具创建、回零过程设置、多轴控制系统及路径规划、插补算法及运行方式的初始化文件配置与开发。 从工程实际应用出发,通过图文并茂的实例讲解,详尽介绍了如何应用LinuxCNC构建专用领域的数控系统以及机器人控制系统。本书配有光盘,包含LinuxCNC的安装包、EtherCAT总线主站驱动程序、Python语言和Pyqt库安装程序以及英文LinuxCNC介绍文档等。 本书可以作为希望学习LinuxCNC软件平台系统知识、获得 数控系统开发技术的科研院所和高校师生学习用书,也可供数控及机器人控制技术行业的
嵌入式微处理器功能强大、节能和低成本与嵌入式Linux系统的灵活性结合,促使业界许多公司基于嵌入式微处理器开发出了很多新产品。本书教读者基于设备树嵌入式Linux系统如何开发设备驱动程序。读者将学习编写不同类型的Linux驱动程序,以及与内核和用户空间交互的应用程序程序接口(API)和方法。本书以实战为核心,阐述了Linux内核基础知识,将编写大约30个驱动程序并移植到三种不同的微处理器上。本书在实验部分中基于NXP i.MX7D、Microchip SAMA5D2和Broadcom BCM2837三种不同微处理器详细阐述了驱动程序的开发的实现,读者可参考实验部分选择开发和测试自己的驱动程序。在阅读本书之前,建议读者先购买一个基于这些微处理器之一的开发板,板上至少应有一个SPI和I2C控制器,例如Raspberry Pi3模型B板。
本书提供了一套实用的方法和工具,帮助读者更好地理解、设定和管理SLO。书中主要介绍了SLO的基本概念、设计过程、实施方法及相关案例研究。作者不仅解释了SLO的重要性,以及为什么在现代IT环境中需要它们,详细阐述了SLO的定义、类型和级别,以及如何将它们与业务目标相结合,而且详细介绍了设计SLO的过程,包括需求收集、目标设定、指标选择、约束条件设定等步骤,旨在确保SLO既符合业务需求,又具有可度量性和可操作性,同时提供了一些实用的方法和工具,帮助读者有效地实施和管理SLO,包括使用监控工具、定期审查和调整SLO等。此外,书中还包含了一系列实际案例研究,展示了如何将SLO应用于不同的场景和环境。这些案例可以帮助读者更好地理解SLO的实际应用价值。
本书以 良许 老师为主角,帮助读者轻松解析Linux的系统结构和项目应用,不仅涵盖了Linux的安装、命令、文件、目录、系统、磁盘、用户和Shell编程等操作知识,还收录了软件包管理、进程管理、系统设置、日志管理、网络设置、系统安全与维护、部署网站等核心技术。书中配备【知识拓展】【动手练一练】等辅助教学环节,以极具实践性的案例帮助读者巩固所学知识。同时,随书赠送所有实例文件和教学视频(扫码即可观看),以及电子教案、Linux相关学习资料等海量资源,以近似于手把手授课的立体化教学方式增强了读者的阅读体验,并且还提高了本书的知识含量和价值。 本书既可以作为Linux开源爱好者和Linux用户的学习指南,也可以作为大中专院校和培训机构相关专业的培训教程。
本书由知名编译与操作系统专家海纳撰写,将沉淀20余年的Linux系统研究所得倾注书中。本书用不到1万行代码复现了Linux 0.12内核,打通了“古早”工具链障碍,模块实现环环相扣,带你穿透“迷雾”,窥见Linux系统设计的绚丽“天光”。 本书共8章,从逻辑上分为四部分。 部分( 和2章)是基础知识,介绍开发内核所需的基础知识,包括开发环境和调试环境的搭建,以及i386保护模式等。第二部分(第3~6章)是核心模块,逐步实现进程、中断、系统调用、内存管理、字符设备驱动和块设备驱动等模块。第三部分(第7章)是文件系统,涵盖Minix文件系统、管理inode、管理普通文件、管理目录、文件链接、执行程序等内容。第四部分(第8章)是系统服务接口,介绍一些重要的函数,这部分不是内核的主要部分,但为了让shell程序正确地运行,这些函数也是必须实现的。
本书基于CentOS 8编写,共分9章,分别是:Linux基础,快速上手Linux,Linu 阶,Shell编程,使用Docker实现Linux应用容器化,Kubernetes容器编排与运维,Hadoop集群构建与运维,Spark集群构建、配置及运维,使用Zabbi 行系统监控。此外,本书还提供配套的《Linux快速入门与实战—扩展阅读与实践》免费电子书,以及介绍虚拟机使用方法的免费高清视频资源。 本书精选Linux知识点,以容器和大数据等Linux热点应用方向为切入点,帮助读者快速入门Linux的使用,扎实掌握Linux在系统运维、容器、容器编排和大数据等应用方向的实用技术。 本书既可作为Linux学习者、云计算和大数据从业者的技术参考书,也可以作为高等院校云计算和大数据相关专业的教材。
本书以开源软件为基础,全面介绍了UNIX/Linux安全运维的各方面知识。*篇从UNIX/Linux系统日志、Apache等各类应用日志的格式和收集方法讲起,内容涵盖异构网络系统日志收集和分析工具使用的多个方面;第二篇列举了二十多个常见网络故障案例,每个案例完整地介绍了故障的背景、发生、发展,以及*终的故障排除过程。其目的在于维护网络安全,通过开源工具的灵活运用,来解决运维实战工作中的各种复杂的故障;第三篇重点讲述了网络流量收集监控技术与OSSIM在异常流量监测中的应用。 本书使用了大量开源工具解决方案,是运维工程师、网络安全从业人员不可多得的参考资料。
本书是一本介绍Axure RP原型设计的教程。全书分为三篇,分别为Axure RP基础、Axure RP高级功能和Axure RP原型设计实践。包括产品原型设计、Axure RP概述、基础元件、高级元件、元件交互、母版、Axure Share共享原型、团队项目、输出文档、Web原型设计实践、App原型设计实践、菜单原型设计实践、整站原型设计—默趣书城共13章内容。 本书内容系统全面,注重实践,配套资源丰富,主要面向产品经理、需求分析师、架构师、用户体验设计师、网站策划师、交互设计师等,以及高校计算机及相关专业师生。
本书全面系统地介绍Excel 2016 的技术特点和应用方法,深入揭示背后的原理概念,并配合有大量典型实用的应用案例,帮助读者全面掌握Excel 应用技术。全书分为7 篇共50 章,内容包括Excel 基本功能、公式与函数、图表与图形、Excel 表格分析与数据透视表、Excel 高级功能、使用Excel 进行协同、宏与VBA 等。附录中还提供Excel 2016 规范与,Excel 2016 常用快捷键及Excel 2016 术语简繁英文词汇对照表等内容,方便读者随时查阅。本书适合各个层次的Excel 用户,既可作为初学者的入门指南,又可作为中、高级用户的参考手册。书中大量的实例还适合读者直接在工作中借鉴。
本书内容上分为三篇,共计13章内容。 br 第1篇( ~5章)基础知识篇,第1章主要讲解了Nginx源码目录介绍的作用及编译与安装,第2章讲解了Nginx的整体架构与设计思路的实现,第3~5章主要讲解了Nginx的基本数据结构、内存管理与配置文件解析等实现。 br 第2篇(第6~11章)核心模块篇,这一篇为本书的核心内容,其中第6章讲解了Nginx生命周期的实现,第7章讲解了Event模块及其用到的事件模型实现,第8章讲解了HTTP模块及11阶段的实现,第9章讲解了Upstream模块实现, 0章讲解了FastCGI与proxy模块实现, 1章讲解了负载均衡、限流、SSL、log等模块实现。 br 第3篇( 2~13章)实战应用篇,讲解了Nginx的rtmp模块实现,让读者对跨平台原理实现、多进程管理、信号、信号量、共享内存、事件等知识点有一个 深入的理解。 br
本书从实战角度讲解了Knative的原理与开发。 br 全书正文一共11章,共4个部分: br 一、准备篇( ~2章) br 全面介绍了Serverless,Knative的概念、优势、架构设计、工作原理,以及开发环境的搭建。 br 二、基础篇(第3~5章) br 详细讲解了Knative的三大核心组件:Serving、Eventing和Tekton pipeline。 br 三、实战篇(第6~8章) br 主要介绍了Knative的云原生微服务的设计与实现、Knative的FaaS实现,以及性能优化相关的主题。 br 四、扩展篇(第9~11章) br 讲解了与Knative相关的日志中心、监控报警平台和可视化工具。
Linux是一个免费的多用户、多任务的操作系统,其稳定性、安全性与网络功能特别显著。目前Linux已经成为全球增长极快的操作系统,其应用将更加丰富,特别是在系统级的数据库、消息管理、Web应用、桌面办公和嵌入式开发等方面。 《Linux命令应用大词典》涵盖了Linux系统常用的命令,内容涉及基础入门、系统管理、网络管理、网络安全、服务器配置和程序编译等多方面,共计729个命令,1935个例子,内容非常全面。每一个命令都讲述了它的功能描述、命令语法、选项含义和命令实例,内容清晰明了,正所谓一书在手,万事不愁。 《Linux命令应用大词典》可以作为读者学习Linux系统的参考书、案头书,遇到不懂的命令或命令选项一查即可;适合Linux爱好者、Linux系统管理工程师、培训机构教师和学生以及高等院校计算机专业教师和学生使用。
本书可分为五大部分:*部分为第1章~第4章,此部分着重介绍新手如何学好Shell编程。涉及的内容包括Shell编程的入门介绍、基础知识、运行原理、编程语法、编程习惯、变量知识以及变量的深入实践。第二部分为第5章~第8章,着重讲解变量的多种数值运算、条件测试与比较、if条件判断语句、Shell函数等相关的知识。第三部分为第9章~第13章,着重讲解case条件语句、while循环和until型循环、for循环和select循环、条件与循环控制及程序返回值、Shell数组等知识。第四部分为第14章~第16章,着重讲解Shell脚本开发规范与编码习惯、Shell脚本的调试知识和技巧、Shell脚本开发环境的配置调整和优化等。第五部分为第17章~第20章,着重讲解Linux信号及trap命令的企业应用实践、Expect自动化交互式程序的应用实践、贯穿全书技术的面试题和企业实战案例,以及子Shell知识。