本书是将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。本书的 优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为为什么是这样的,以及造成效率低下的原因。
这是一本关于如何设计更整洁、更高效的软件架构的全面、实用性指南,阐述了软件架构师的角色和目标,软件架构设计的核心原则,如何为Web、数据库、客户端、控制台和嵌入式应用程序设计最佳的高级结构。全书分为六部分,涵盖了设计和架构、编程范式(结构化编程、面向对象编程、函数式编程)、设计原则(单一职责原则、开闭原则、里氏替换原则、接口隔离原则)、组件原则(重定位技术、组件内聚、组件耦合)、架构(独立性、划分边界、边界剖析、分层和边界、整洁架构、整洁嵌入式架构),以及实现细节和案例研究。本书是软件架构师、系统分析师、系统设计师、软件经理以及执行他人设计的程序员的之作。
内容简介 这是一本从架构视角讲解如何构建大型分布式系统的著作,是超级畅销书《深入理解Java虚拟机》的作者周志明多年架构和研发经验的总结,得到了多位行业资深架构专家的联袂推荐。 全书共16章,分为演进中的架构、架构师的视角、分布式的基石、不可变基础设施和技术方法论五部分。 第1部分 演进中的架构(第1章) 着重介绍了软件开发历史中多种主流架构风格出现的契机、解决的问题以及带来的新缺陷。 第二部分 架构师的视角(第2~5章) 总结了一名架构师应该在架构设计时思考哪些问题,有哪些主流的解决方案和行业标准做法,各种方案有什么优缺点,不同的解决方法会带来什么不同的影响,等等。 第三部分 分布式的基石(第6~10章) 重点讨论了 不同架构风格是应该在技术规范上统一,还是由应用系统自行解决 这个问题,给出了解决思路、方法
本书基于Linux 2.6.34内核详细介绍了Linux内核系统,覆盖了从核心内核系统的应用到内核设计与实现等各方面内容。主要内容包括:进程管理、进程调度、时间管理和定时器、系统调用接口、内存寻址、内存管理和页缓存、VFS、内核同步以及调试技术等。同时本书也涵盖了Linux 2.6内核中颇具特色的内容,包括CFS调度程序、抢占式内核、块I/O层以及I/O调度程序等。本书采用理论与实践相结合的路线,能够带领读者快速走进Linux内核世界,真正开发内核代码。本书适合作为高等院校操作系统课程的教材或参考书,也可供相关技术人员参考。
本书是面向操作系统导论课程的经典书籍,从第1版至今被国内外众多高校选作教材。全书共九个部分,相较于上一版增加了三个部分,并且优化了各章的编排顺序。本书不仅详细讲解进程管理、内存管理、存储管理、保护与安全等概念,而且涵盖重要的理论结果和案例研究,并且给出了供读者深入学习的推荐读物。这一版在移动操作系统、多核系统、虚拟化和NVM外存等方面做了大幅更新,每一章都融入了新的技术进展,并且更新了习题和编程项目。本书既适合高等院校计算机相关专业的学生学习,也是专业技术人员的有益参考。
这本书专门为那些对自然语言处理技术感兴趣的读者提供了系统的LLM应用开发指南。全书分为11章,从LLM基础知识开始,通过LangChain这个开源框架为读者解读整个LLM应用开发流程。第1~2章概述LLM技术的发展背景和LangChain框架的设计理念。从第3章开始,分章深入介绍LangChain的6大模块,包括模型I/O、数据增强、链、记忆等,通过大量代码示例让读者了解其原理和用法。第9章通过构建PDF问答程序,帮助读者将之前学习的知识应用于实践。第10章则介绍集成,可拓宽LangChain的用途。第11章为初学者简要解析LLM的基础理论,如Transformer模型等。本书以LangChain这个让人熟悉的框架为主线,引导读者一步一步掌握LLM应用开发流程,适合对大语言模型感兴趣的开发者、AI应用程序开发者阅读。
全书共五篇,以从易到难的顺序详细剖析了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
全书分为3篇。第1篇介绍编译器基础知识,包括中间表示,重点介绍SSA、数据流分析、支配、循环等知识,此外还介绍了LLVM的后端描述语言TableGen。第二篇剖析分LLVM代码生成,其中对代码生成的每一步骤都有提及,着重介绍指令选择、指令调度、寄存器分配和编译优化。同时还以BPF后端为例总结了如何基于LLVM开发一款新后端的编译器。第三篇附录主要总结了LLVM代码生成过程中使用的IR、BPF指令集以及如何在Linux运行BPF应用,Pass和PassManager的运行机制等知识。通过阅读本书,读者理解和掌握LLVM代码生成过程,可以根据本书指导为基于LLVM开发一款新后端的编译器。同时本书还介绍了各种编译过程中使用到的算法,读者可以根据场景对算法进行增强从而达到性能优化目的。
通告: 本书第11页,第六行链接已经失效,替换为: http://pan.baidu.com/s/1cFrl2e 密码:ezs2 本书介绍了Linux设备驱动开发理论、框架与实例,详细说明了自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论,以及字符设备、块设备、tty设备、I2c设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动架构中各个复杂数据结构和函数的关系,并讲解了Linux驱动开发的大量实例,使读者能够独立开发各类Linux设备驱动。
用读一本小说的心态来阅读本书,你会对整个操作系统的体系结构和逻辑细节有非常清晰的认识,从此爱上并阅读更多的操作系统源码。第1部分:进入内核前的苦力活。覆盖从开机到运行到Linux中的main函数的关键流程解析,帮你清晰认识Intel CPU的体系结构。第2部分: 大战 前期的初始化工作。讲述main中的各种初始化函数,这些函数是操作系统各个模块的交互桥梁,为理解后续操作系统各个模块的运作原理打好基础。第3部分:一个新进程的诞生。讲述从内核态切换至用户态,并建立起第一个用户进程的全部过程。学完这部分,你将会理解一个多进程的操作系统是如何建立和运作的。第4部分:shell程序的到来。主要讨论如何将磁盘中存储的shell程序加载到内存中来,并最终交给CPU去执行。通过这个过程你会看清一个程序从存储到硬盘到最终被执行的全部过程。第5部分
这是一本讲解如何在真实环境中部署、使用和管理Proxmox VE的实战性著作。作者采用全真物理环境,融合自己丰富的工程实践经验,提供大量操作步骤,手把手教你从零基础掌握Proxmox VE。 通过阅读本书,你将: ?了解什么是开源Proxmox VE ?掌握Proxmox VE在企业生产环境中部署 ?掌握Proxmox VE存储配置 ?掌握Proxmox VE网络配置 ?掌握Proxmox VE虚拟机、容器配置 ?掌握Proxmox VE高级特性使用 ?掌握Proxmox VE备份与恢复 ?掌握Proxmox VE系统管理
内容简介 这是一本系统梳理并深入解析大模型的基础理论、算法实现、数据构造流程、模型微调方法、偏好对齐方法的著作,也是一本能手把手教你构建角色扮演、信息抽取、知识问答、AI Agent等各种强大的应用程序的著作。本书得到了零一万物、面壁智能、通义千问、百姓AI、澜舟科技等国内主流大模型团队的负责人的高度评价和鼎力推荐。具体地,通过本书你能了解或掌握以下知识:(1)大型语言模型的基础理论,包括常见的模型架构、领域大型语言模型以及如何评估大模型的性能。(2)大模型微调的关键步骤:从数据的收集、清洗到筛选,直至微调训练的技术细节。(3)大模型人类偏好对齐方法,从基于人工反馈的强化学习框架到当前主流的对齐方法。(4)通过GPTs快速搭建个性化的专属ChatGPT应用。(5)通过开源模型在多种场景下搭建大模型应用,包括:
本书展示了以GitLab CI/CD 流水线为基础,结合时下十分火热的云原生技术,打造企业级DevOps应用体系的全流程。 全书共分为3篇,第1篇为第1~3章,主要介绍云计算、云原生、微服务、敏捷开发、持续集成、DevOps、docker容器技术以及Kubernetes(简称K8s)核心技术等。第2篇为第4~9章,主要介绍了GitLab安装部署与基础使用、GitLab CI/CD中Runner的类型以及部署、GitLab CI/CD流水线模型、GitLab CI/CD变量、GitLab CI/CD流水线的触发方式以及GitLab CI/CD流水线中的缓存和附件等。第3篇为第10~13章,主要介绍了前后端项目的创建、GitLab CI/CD中基于SonarQube的静态代码检查,以及GitLab CI/CD 中的编译、构建、发布、部署、测试和上线等流程。 全书以搭建企业级DevOps应用平台为目标,从云原生技术基础容器以及Kubernetes技术入手;然后介绍了GitLab CI/CD的常见功能应用;最后从零开始,以经典的前后端项
《Jetpack Compose 实战:面向未来的大前端式客户端开发体验》从 Compose 项目背景介绍开始,到开发环境搭建、基础知识储备,再到基本使用方式、高阶用法展开讲解,结合示例,使读者从零开始逐步掌握 Compose 的使用。通过原理解析、最佳工程实践,以及创新性的 Compose Web3 实战项目,读者可更进一步深入了解和夯实 Compose 知识,循序渐进,由浅入深。 《Jetpack Compose 实战:面向未来的大前端式客户端开发体验》为读者提供了全部案例的源代码下载和高清学习视频,读者可以直接扫描二维码观看。 《Jetpack Compose 实战:面向未来的大前端式客户端开发体验》适合零基础或者有一定移动端开发经验,特别是 Android 开发经验的开发者、爱好者,另外也适合所有前端开发工程师、相关院校师生,以及所有对 Compose 声明式开发范式有兴趣的读者。
本书从技术和业务方面介绍了开发成功的系统需要了解的知识,涵盖了基于模型的系统工程、生命周期和过程的基本方面,以及开发系统的方法,给出了关键管理过程和系统工程实践和指南。
本书聚焦于当今高性能多核处理器的并行编程系统的理论和实践方面,探讨实现并行编程模型所需的关键算法的有效实现。此类实现需要考虑底层计算机体系结构的特定体系结构方面以及执行环境提供的功能。本书简要回顾了现代计算机体系结构的关键概念,特别关注并行代码的性能以及并行编程模型中的相关概念。然后,本书转向用于实现并行编程模型的基本算法,并讨论它们如何与现代处理器交互。虽然本书将重点介绍一般机制,但我们将主要使用英特尔处理器体系结构来举例说明所讨论的实现概念,但也将在适当的情况下介绍其他处理器体系结构。所有的算法和概念都以一种易于理解的方式进行了讨论,并附有许多示例、图表和源代码片段。
本书是一本面向系统工程师的实践指南,皆在帮助他们获得Linux内核中BPF虚拟机的专业知识。通过本书,你不仅可以深入了解BPF程序的生命周期,熟悉日常工作所需的基本概念,增强有关性能优化、网络和安全方面的知识。还可以学习如何编写观测和修改内核行为的应用程序,以及通过代码注入的方式对内核事件进行监控、跟踪和安全观测等内容。同时,本书展示了相关的C、Go和Python代码示例。每次学习BPF技术时,我们都需要翻阅许多博客文章、手册以及Internet上的各种资料。 本书的目的就是将分散在各处的知识汇总在一起,以方便后续BPF爱好者能更好地学习这一技术。
本书共11章,以企业级应用为出发点,从云计算与云存储、对象存储,到MinIO的部署、MinIO服务端控制台管理、身份认证与数据加密、存储桶的通知与监控、数据备份与故障处理、SDK与API部署、MinIO静态资源服务器,再到MinIO企业级应用案例与优化技巧、MinIO企业级集群架构部署等多个方面,通过实用的案例和通俗易懂的语言,向读者展示了利用MinIO在企业中快速、高效地布局存储应用的全流程。同时,随书赠送MinIO分布式配置文件、各操作系统安装包(含信创ARM)、各操作系统客户端、MinIO多活分布式架构图、负载均衡官方推荐配置和Python SDK测试代码等海量学习资源,并对相关重点、难点提供了扫码看视频的服务,以帮助读者全面理解MinIO。 本书的读者对象包括云计算工程师、数据工程师和数据科学家、系统管理员以及软件开发人员等群体。云计算工程师可以通过本
Linux操作系统上的用户态编程是通过系统调用提供的接口,将原本需要在Linux内核中或者对Linux内核进行多次系统调用才能实现的功能,放到内核之外来实现,从而保证内核的稳定性,获得更强的可拓展性,并且可以将Linux内核的传染性开源协议隔离。 全书共分9章,第1、2章从用户态与内核态的基本概念入手,简要介绍C语言标准库编程以及各种C语言标准库。第3章深入介绍系统调用的概念和计算机架构、特权级与硬件资源访问限制的关系,以及内核中系统调用的处理方式。第4章涵盖了系统调用与C语言标准库的关系,介绍如何基于Linux系统调用实现C语言标准库。第5章深入介绍了Linux系统用户态驱动API的使用和分析,包括Userspace I/O (UIO)接口的使用和VFIO等用户态驱动接口的使用。第6~9章涵盖了高性能网卡Linux用户态驱动分析、用户态文件系统FUSE分析、用户态线程——协程
虽然HTML/CSS作为非常经典的技术,已经有很多人写过相关的教程,但它依然没有足够简单到任何人都可以尝试来学习。尽管作为前端技术方向,它有着丰富的界面交互,但里面隐藏的逻辑规则却很容易被人忽略。本书的主要内容为HTML/CSS的相关技术,包含了基础标签、智能表单和语义化标签等,同时还讲解了CSS选择器、文本修饰、图片修饰、浮动、溢出、经典盒模型与弹性盒模型、伪元素等,除PC端布局外还讲解了针对移动端的网页适配。 为了更好的阅读体验和学习效果,本书除了全彩印刷、扫码看视频,还大胆地做了几项创新性尝试,包括预计阅读时间、知识补给站、编程单词表、知识点案例化,以及在线练习平台等。 即便是非理工科出身的人,或者已经脱离系统学习多年的上班族,只要你对网页制作有兴趣,就可以学懂书中的内容。本书的读者对象主要针对网