全书共五篇,以从易到难的顺序详细剖析了Linux内核开发的核心技术。“知识储备篇”介绍了Linux的数据结构、中断处理、内核同步和时间计算等内容,这些是理解后续章节的前提;之后通过“内存管理篇”“文件系统篇”“进程管理篇”详细介绍了Linux的三大核心模块;最后的“综合应用篇”则融合了前面诸多模块知识展示了Linux内核开发在操作系统、智能设备、驱动、通信、芯片、云计算和人工智能等热点领域的应用。书中的重点、难点均配有图表、代码和实战案例,力求直观、清晰。 学习本书的读者需要熟悉C语言,建议对Linux内核有一定了解。推荐初学者按照本书的编排顺序阅读,而熟悉Linux内核的读者可以跳过知识储备篇,直接从三大核心模块篇进行阅读。 本书深入浅出、配图丰富,可作为Linux初中级读者系统学习Linux内核开发的指导手册,也可作为从事嵌入
本书讲解了Linux驱动开发的基础知识以及所用到的开发环境,全书分为22章,其内容涵盖了各种Linux子系统,包含内存管理、PWM、RTC、IIO和IRQ管理等,还讲解了直接内存访问和网络设备驱动程序的实用方法。在学完本书之后,读者将掌握设备驱动开发环境的概念,并可以从零开始为任何硬件设备编写驱动程序。 阅读本书需要具备基本的C语言程序设计能力,且熟悉Linux基本命令。本书主要是为嵌入式工程师、Linux系统管理员、开发人员和内核黑客而设计的。无论是软件开发人员,还是系统架构师或制造商,只要愿意深入研究Linux驱动程序开发,阅读本书后都将有所收获。
本书由知名编译与操作系统专家海纳撰写,将沉淀20余年的Linux系统研究所得倾注书中。本书用不到1万行代码复现了Linux 0.12内核,打通了 古早 工具链障碍,模块实现环环相扣,带你穿透 迷雾 ,窥见Linux系统设计的绚丽 天光 。 本书共8章,从逻辑上分为四部分。第一部分(第1和2章)是基础知识,介绍开发内核所需的基础知识,包括开发环境和调试环境的搭建,以及i386保护模式等。第二部分(第3~6章)是核心模块,逐步实现进程、中断、系统调用、内存管理、字符设备驱动和块设备驱动等模块。第三部分(第7章)是文件系统,涵盖Minix文件系统、管理inode、管理普通文件、管理目录、文件链接、执行程序等内容。第四部分(第8章)是系统服务接口,介绍一些重要的函数,这部分不是内核的主要部分,但为了让shell程序正确地运行,这些函数也是必须实现的。
《Linux UNIX系统编程手册(上、下册)》是介绍Linux与UNIX编程接口的权 威之作。Linux编程资 深专业人士Michael Kerrisk在书中详细描述了Linux UNIX系统编程所涉及的系统调用和库函数,并辅之以全而清晰的代码示例。《Linux UNIX系统编程手册(上、下册)》涵盖了逾500个系统调用及库函数,并给出逾200个程序示例,另含88张表格和115幅示意图。 《Linux UNIX系统编程手册(上、下册)》总共分为64章,主要讲解了高效读写文件,对信号、时钟和定时器的运用,创建进程、执行程序,编写安全的应用程序,运用POSIX线程技术编写多线程程序,创建和使用共享库,运用管道、消息队列、共享内存和信号量技术来进行进程间通信,以及运用套接字API编写网络应用等内容。 《Linux UNIX系统编程手册(上、下册)》在汇聚大批 Linux专有特性(epoll、inotify、 proc)的同时,还特意强化了对UNIX标准(POSIX、SUS)
本书为Linux之父林纳斯 托瓦兹的自传。书中以林纳斯 托瓦兹对人生和社会走向的独特理解(生存、社会秩序、娱乐)为线索,在讲述林纳斯 托瓦兹成长经历的同时,阐述他对技术、自由、信息共享以及创造激情的体会与感悟,以及黑客精神与商业现实之间的冲突的深入思考,描绘出了以 自由与激情 为主导价值和内在驱动的黑客人生信仰模式,是了解林纳斯成功之路与人生哲学,以及Linux操作系统幕后故事的佳作。 本书适合计算机相关从业者阅读,也作为对Linux系统、黑客精神感兴趣的读者的参考资料。
本书结合大量实验程序和图表,通俗易懂地介绍了Linux操作系统的运行原理和硬件的基础知识,涉及进程管理、进程调度器、内存管理、存储层次、文件系统和外部存储器等。实验程序使用C语言和Python编写,读者可亲自动手运行程序,来确认系统的行为。另外,以图解的方式介绍各知识点,简明且直观,能够帮助读者加深理解。读者只需对Linux基本命令有所了解,即可轻松阅读。 本书适合应用程序开发人员、系统设计师、运维管理人员和技术支持人员等人士阅读。
系统编程是指编写系统软件,其代码在底层运行,直接跟内核和核心系统库对话。 《Linux系统编程(第 2版)》是一本关于Linux系统编程的教程,也是一本介绍Linux系统编程的手册,还是一本如何实现更优雅更快代码的内幕指南。全书分为11章和2个附录,详细介绍了Linux系统编程基本概念、文件I/O、缓冲I/O、高 级文件I/O、进程管理、高 级进程管理、线程、文件和目录管理、信号和时间等主题。附录给出了gcc和GNU C提供的很多语言扩展,以及推荐阅读的相关书目。 《Linux系统编程(第 2版)》的作者是Linux内核专业人士,多本技术图书的作者。《Linux系统编程(第 2版)》需要在C编程和Linux编程环境下工作的程序员阅读,对于想要巩固基础或了解内核的高 级编程人员,《Linux系统编程(第 2版)》也很有参考价值。
《Linux就该这么学(第2版)》源自日均访问量近60000次的线上同名课程,口碑与影响力俱佳,旨在打造简单易学且实用性强的轻量级Linux入门教程。 《Linux就该这么学(第2版)》在上一版的基础上进行了大量的更新,基于红帽RHEL 8系统编写,且内容适用于CentOS、Fedora等系统。本书共分为20章,内容涵盖了部署Linux系统,常用的Linux命令,与文件读写操作有关的技术,使用Vim编辑器编写和修改配置文件,用户身份与文件权限的设置,硬盘设备分区、格式化以及挂载等操作,部署RAID磁盘阵列和LVM,firewalld防火墙与iptables防火墙的区别和配置,使用ssh服务管理远程主机,使用Apache服务部署静态网站,使用vsftpd服务传输文件,使用Samba或NFS实现文件共享,使用BIND提供域名解析服务,使用DHCP动态管理主机地址,使用Postfix与Dovecot部署邮件系统,使用Ansible服务实现自动化运维,
本书是一本面向系统工程师的实践指南,皆在帮助他们获得Linux内核中BPF虚拟机的专业知识。通过本书,你不仅可以深入了解BPF程序的生命周期,熟悉日常工作所需的基本概念,增强有关性能优化、网络和安全方面的知识。还可以学习如何编写观测和修改内核行为的应用程序,以及通过代码注入的方式对内核事件进行监控、跟踪和安全观测等内容。同时,本书展示了相关的C、Go和Python代码示例。每次学习BPF技术时,我们都需要翻阅许多博客文章、手册以及Internet上的各种资料。 本书的目的就是将分散在各处的知识汇总在一起,以方便后续BPF爱好者能更好地学习这一技术。
本书介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及编程(囊括了常见硬件,?热?UART、I*IC、LCD等),U-Boot、Linux内核的分析、配置和移植,根文件系统的构造(包括移植busybox、glibc、制作映象文件等),内核调试技术(比如添加kgdb补丁、栈回溯等),驱动程序编写及移植(LED、按键、扩展串口、网卡、硬盘、SD卡、LCD和USB等),GUI系统的移植(包含两个G UI系统:基于Qtopia和基于X),应用程序调试技术。 本书从**简单的点亮一个LED开始,由浅入深地讲解,使读者**终可以配置、移植、裁剪内核,编写驱动程序,移植GUI系统,掌握整个嵌入式Linux系统的开发方法。 本书由浅入深
本书对Linux命令行进行详细的介绍,全书内容包括4个部分,*部分由Shell的介绍开启命令行基础知识的学习之旅;第二部分讲述配置文件的编辑,如何通过命令行控制计算机;第三部分探讨常见的任务与工具;第四部分全面介绍Shell编程,读者可通过动手编写Shell脚本掌握Linux命令的应用,从而实现常见计算任务的自动化。通过阅读本书,读者将对Linux命令有更加深入的理解,并且可以将其应用到实际的工作中。 本书适合Linux初学人员、Linux系统管理人员及Linux爱好者阅读。
本书讲述了Linux系统及其他UNIX风格的操作系统上的程序开发,主要内容包括标准Linux C语言函数库和由不同的Linux或UNIX标准指定的各种工具的使用方法,大多数标准Linux开发工具的使用方法,通过DBM和MySQL数据库系统存储Linux中的数据,为X视窗系统建立图形化用户界面等。本书通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者掌握相关的知识。 本书适合Linux的初学者及希望利用Linux进行开发的程序人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。
嵌入式微处理器功能强大、节能和低成本与嵌入式Linux系统的灵活性结合,促使业界许多公司基于嵌入式微处理器开发出了很多新产品。本书教读者基于设备树嵌入式Linux系统如何开发设备驱动程序。读者将学习编写不同类型的Linux驱动程序,以及与内核和用户空间交互的应用程序程序接口(API)和方法。本书以实战为核心,阐述了Linux内核基础知识,将编写大约30个驱动程序并移植到三种不同的微处理器上。本书在实验部分中基于NXP i.MX7D、Microchip SAMA5D2和Broadcom BCM2837三种不同微处理器详细阐述了驱动程序的开发的实现,读者可参考实验部分选择开发和测试自己的驱动程序。在阅读本书之前,建议读者先购买一个基于这些微处理器之一的开发板,板上至少应有一个SPI和I2C控制器,例如Raspberry Pi3模型B板。
本书以开源软件为基础,全面介绍了UNIX/Linux安全运维的各方面知识。*篇从UNIX/Linux系统日志、Apache等各类应用日志的格式和收集方法讲起,内容涵盖异构网络系统日志收集和分析工具使用的多个方面;第二篇列举了二十多个常见网络故障案例,每个案例完整地介绍了故障的背景、发生、发展,以及*终的故障排除过程。其目的在于维护网络安全,通过开源工具的灵活运用,来解决运维实战工作中的各种复杂的故障;第三篇重点讲述了网络流量收集监控技术与OSSIM在异常流量监测中的应用。 本书使用了大量开源工具解决方案,是运维工程师、网络安全从业人员不可多得的参考资料。
本书主要讲述采用现代 C 在 x86-64 Linux 上编写多线程 TCP 网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即 one loop per thread。这是在 Linux 下以 native 语言编写用户态高性能网络程序成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序。本书以 muduo 网络库为例,讲解这种编程模型的使用方法及注意事项。本书的宗旨是贵精不贵多。掌握两种基本的同步原语就可以满足各种多线程同步的功能需求,还能写出更易用的同步设施。掌握一种进程间通信方式和一种多线程网络编程模型就足以应对日常开发任务,编写运行于公司内网环境的分布式服务系统。
本书概述了Linux的发展历史,探讨了Linux的设计哲学,综述了Intel平台以及Linux的主要开发工具和几种常用的数据结构,而后从Linux的引导和初始化入手,详细论述了Linux各主要组成部分的设计原理、管理结构和技术演变,包括中断处理、时钟管理、物理内存管理、进程管理、虚拟内存管理、互斥与同步、进程间通信、虚拟文件系统、物理文件系统等,并深入探讨了Linux各组成部分之间的组织关系。《Linux原理与结构》内容取材于作者长期的教学和科研实践,涵盖了Linux发展过程中的多个版本,逻辑性强,抽象层次高,可作为硕士研究生与高年级本科生的教材或教学参考书,也可供Linux研究和开发人员参考使用。
Linux是世界上流行的开源操作系统。Linux系统编程技术将使你能够使用自己的系统程序扩展Linux操作 系统,并与系统上的其他程序进行通信。 本书探讨了Linux文件系统及其基本命令、内置手册页、GNU编译器集合(GCC)和Linux系统调用;讲述了如何处理程序中的错误,以及如何捕获错误并打印错误相关信息;介绍了在系统上读写文件的多种方法,包括使用流和文件描述符。随着学习的不断深入,你将深入研究创建进程、创建僵尸进程和守护进程,并学习使用systemd处理守护进程的方法;了解如何创建共享库,并探索不同类型的进程间通信(IPC);还将学习如何使用POSIX线程编写程序,以及如何使用GNU调试器(GDB)和Valgrind调试程序。 学完本书,你将能够在Linux系统中开发自己的系统程序,包括守护进程、工具、客户端和过滤器。 通过阅读本书,你将: ◎ 了解如何使
本书延续了《UNIX系统管理技术手册》前几版的讲解风格,以当前主流的Linux发行版本为例,把Linux系统管理技术分为4个部分分别进行介绍。第一部分(基础管理)对UNIX和Linux系统进行了简介,涵盖了运行单机系统所需的大部分知识和技术。第二部分(连网)讲解了UNIX系统上使用的协议和服务器的相关技术。第三部分(存储)讲解了如何解决数据存储和管理的问题。第四部分(运维)介绍了系统管理员在工作中经常碰到的问题。 本书适用范围广泛,无论是Linux的初学者还是具有丰富经验的Linux专业技术人员可从本书中获益。
掌握Linux命令行操作,不仅是轻松驾驭Linux系统的基础,还是开展Python数据分析、数据库管理、后端开发等工作的基本功。 本书是专门为命令行初学者打造的学习手册,注重趣味性、实用性,逻辑清晰、图文并茂。书中总结了大量命令行表格与核心知识点,以方便大家快速掌握Linux命令行的使用方法。本书结合丰富的代码示例,详细地讲解了如何通过简单、方便的命令行操作解决实际问题,提升工作效率。书中内容主要分为两部分,共8章,包括命令行环境搭建、文件系统及其管理、应用和包管理、命令行及shell强化、文本处理、数据分析、Vim文本编辑、进程管理和工作空间组织。 本书面向从其他平台过渡到Linux的新用户、初级Linux系统管理员、Linux系统爱好者,以及对数据分析和开源技术感兴趣的读者。
《高性能Linux服务器运维实战:shell编程、监控告警、性能优化与实战案例》以Linux运维平台下的开源应用软件为中心,涉及Linux运维的各个方面,主要从系统基础运维、系统性能调优、智能运维监控、运维实战案例4个方面展开介绍。本书贯穿实战、实用、通俗、易懂的特点,在内容上注重实战化,通过真实的生产环境从多个方面介绍运维工作中的方方面面。通过真实案例的学习,可以使读者深入地掌握Linux运维技术的各种经验和技巧,从而真正提高企业的实战能力。 全书贯穿了由点及线、由线及面的学习方法,既可以满足初学者参考学习,也可以帮助有一定基础的中高级Linux运维管理人员进阶,使不同层次的读者都能从本书受益。
《Linux从入门到精通(视频教学版)》以Linux发行版CentOS 7.7为基础,从基本的系统安装开始讲起,然后逐步介绍Linux系统的常用操作命令,以及软件和服务的安装与使用,并在后介绍Shell脚本的使用和防火墙的管理规则。其中重点介绍Linux系统日常维护命令的使用,带领读者系统地学习Linux的操作,帮助他们从一个 小白 成长为一个初级系统管理员。 《Linux从入门到精通(视频教学版)》分为13章:初识Linux系统,文件管理和目录管理,账户管理和权限管理,磁盘管理,网络管理,进程管理和计划任务,软件包的安装,DHCP服务和DNS服务,文件服务,Web服务,LNMP架构部署,Shell脚本,firewalld防火墙。 《Linux从入门到精通(视频教学版)》对每个Linux命令都配以示例进行实操演练,特别适合Linux入门读者阅读,也适合需要系统学习Linux系统的运维人员、测试人员和开发人员
在IT产业链中开源的理念已成为绝大多数企业的共识。随着开源技术的不断进步与创新,云计算也逐步深入到了每个互联网企业的内部。但是,随之而来的便是管理成本的提高,大量的物理或者虚拟主机需要管理与维护,如何能够更好地实现自动化运维,成为企业需要迫切解决的问题。行业中自动化运维的软件很多,Puppet、Saltstack、Ansible等让我们在云时代依然可以轻松管理和维护设备与业务,然而像Ansible这样的自动化工具,虽然已经内置了很多模块,但是在解决每个企业的个性化需求时还需要编写自动化脚本。本书将围绕Linux系统中*常用的Shell脚本语言,讲解如何通过Shell编写自动化、智能化脚本。全书以案例贯穿,对每个知识点都可以找到与之对应的案例,完成本书中的每个案例对于未来在企业中的实际应用极具意义。另外,在本书中配套有很多游戏案例,通过
本书基于CentOS 8编写,共分9章,分别是:Linux基础,快速上手Linux,Linu 阶,Shell编程,使用Docker实现Linux应用容器化,Kubernetes容器编排与运维,Hadoop集群构建与运维,Spark集群构建、配置及运维,使用Zabbi 行系统监控。此外,本书还提供配套的《Linux快速入门与实战—扩展阅读与实践》免费电子书,以及介绍虚拟机使用方法的免费高清视频资源。 本书精选Linux知识点,以容器和大数据等Linux热点应用方向为切入点,帮助读者快速入门Linux的使用,扎实掌握Linux在系统运维、容器、容器编排和大数据等应用方向的实用技术。 本书既可作为Linux学习者、云计算和大数据从业者的技术参考书,也可以作为高等院校云计算和大数据相关专业的教材。
本书以 良许 老师为主角,帮助读者轻松解析Linux的系统结构和项目应用,不仅涵盖了Linux的安装、命令、文件、目录、系统、磁盘、用户和Shell编程等操作知识,还收录了软件包管理、进程管理、系统设置、日志管理、网络设置、系统安全与维护、部署网站等核心技术。书中配备【知识拓展】【动手练一练】等辅助教学环节,以极具实践性的案例帮助读者巩固所学知识。同时,随书赠送所有实例文件和教学视频(扫码即可观看),以及电子教案、Linux相关学习资料等海量资源,以近似于手把手授课的立体化教学方式增强了读者的阅读体验,并且还提高了本书的知识含量和价值。 本书既可以作为Linux开源爱好者和Linux用户的学习指南,也可以作为大中专院校和培训机构相关专业的培训教程。