Linux程序设计(第4版)
作者:(英)马修,(英)斯通斯
出版社:北京图灵文化发展有限公司
ISBN:9787115228215
VIP会员免费
(仅需0.8元/天)
¥ 59.99
温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!
电子书推荐
-
linux程序设计入门 评分:
linux程序设计入门; linux嵌入式设计实例讲解; linux开发环境搭建;
上传时间:2018-08 大小:2.02MB
- 17.84MB
Linux编程从入门到精通
2011-09-21linux内核编程 目 录 雷蒙序 简介 Linux文档工程小组“公告” 译者序 第一部分 Linux内核 前言 第1章 硬件基础与软件基础 6 1.1 硬件基础 6 1.1.1 CPU 7 1.1.2 存储器 8 1.1.3 总线 8 1.1.4 控制器和外设 8 1.1.5 地址空间 9 1.1.6 时钟 9 1.2 软件基础 9 1.2.1 计算机语言 9 1.2.2 什么是操作系统 11 1.2.3 内核数据结构 13 第2章 内存管理 15 2.1 虚拟内存抽象模型 15 2.1.1 请求调页 17 2.1.2 交换 17 2.1.3 共享虚拟内存 18 2.1.4 物理寻址模式和虚拟寻址模式 18 2.1.5 访问控制 18 2.2 高速缓存 19 2.3 Linux页表 20 2.4 页分配和回收 21 2.4.1 页分配 22 2.4.2 页回收 22 2.5 内存映射 22 2.6 请求调页 23 2.7 Linux页缓存 24 2.8 页换出和淘汰 25 2.8.1 减少缓冲区和页缓存大小 25 2.8.2 换出System V共享内存页 26 2.8.3 换出和淘汰页 27 2.9 交换缓存 27 2.10 页换入 28 第3章 进程 29 3.1 Linux进程 29 3.2 标识符 31 3.3 调度 32 3.4 文件 34 3.5 虚拟内存 35 3.6 创建进程 36 3.7 时间和定时器 37 3.8 执行程序 38 3.8.1 ELF 39 3.8.2 脚本文件 40 第4章 进程间通信机制 41 4.1 信号机制 41 4.2 管道 42 4.3 套接字 44 4.3.1 System V的进程间通信机制 44 4.3.2 消息队列 44 4.3.3 信号量 45 4.3.4 共享存储区 47 第5章 PCI 49 5.1 PCI的地址空间 49 5.2 PCI配置头 50 5.3 PCI的I/O和存储地址空间 51 5.4 PCI-ISA桥 51 5.5 PCI-PCI 桥 51 5.5.1 PCI-PCI桥:PCI I/O和存储地址 空间的窗口 51 5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53 5.6.2 PCI设备驱动程序 53 5.6.3 PCI的BIOS函数 56 5.6.4 PCI修正过程 57 第6章 中断处理与设备驱动程序 60 6.1 中断与中断处理 60 6.1.1 可编程中断控制器 61 6.1.2 初始化中断处理数据结构 61 6.1.3 中断处理 62 6.2 设备驱动程序 63 6.2.1 测试与中断 64 6.2.2 直接存储器访问(DMA) 65 6.2.3 存储器 66 6.2.4 设备驱动程序与内核的接口 66 6.2.5 硬盘 69 6.2.6 网络设备 74 第7章 文件系统 77 7.1 第二个扩展文件系统EXT2 78 7.1.1 EXT2系统的inode节点 79 7.1.2 EXT2系统的超级块 80 7.1.3 EXT2系统的组描述符 80 7.1.4 EXT2系统的目录 81 7.1.5 在EXT2文件系统中查找文件 81 7.1.6 在EXT2文件系统中改变文件 的大小 82 7.2 虚拟文件系统 83 7.2.1 VFS文件系统的超级块 84 7.2.2 VFS文件系统的inode节点 84 7.2.3 注册文件系统 85 7.2.4 装配文件系统 85 7.2.5 在虚拟文件系统中查找文件 87 7.2.6 卸载文件系统 87 7.2.7 VFS文件系统的inode缓存 87 7.2.8 目录缓存 88 7.3 缓冲区缓存 88 7.3.1 bdflush内核守护进程 90 7.3.2 update进程 90 7.4 /proc文件系统 91 7.5 特殊设备文件 91 第8章 网络 92 8.1 TCP/IP网络概述 92 8.2 Linux中的TCP/IP网络层次结构 95 8.3 BSD套接字接口 96 8.4 INET的套接字层 97 8.4.1 创建BSD套接字 98 8.4.2 为INET BSD Socket绑定地址 99 8.4.3 建立INET BSD Socket连接 99 8.4.4 INET BSD Socket侦听 100 8.4.5 接受连接请求 100 8.5 IP层 100 8.5.1 套接字缓冲区 100 8.5.2 接收IP报文 101 8.5.3 发送IP报文 102 8.5.4 数据分片 102 8.6 地址解析协议 103 8.7 IP路由 104 第9章 内核机制与模块 107 9.1 内核机制 107 9.1.1 Bottom Half控制 107 9.1.2 任务队列 108 9.1.3 定时器 109 9.1.4 等待队列 110 9.1.5 自旋锁 110 9.1.6 信号量 110 9.2 模块 111 9.2.1 模块载入 112 9.2.2 模块卸载 113 第10章 处理器 115 10.1 X86 115 10.2 ARM 115 10.3 Alpha AXP处理器 115 第11章 Linux内核源代码 117 11.1 怎样得到Linux内核源码 117 11.2 内核源码的编排 117 11.3 从何处看起 118 第12章 Linux数据结构 120 附录A 有用的Web和FTP站点 138 附录B 词汇表 139 第二部分 Linux内核模块编程指南 致谢 前言 第1章 Hello, World 145 1.1 内核模块的Makefiles文件 146 1.2 多重文件内核模块 147 第2章 字符设备文件 149 第3章 /proc文件系统 158 第4章 把/proc用于输入 162 第5章 把设备文件用于输入 170 第6章 启动参数 182 第7章 系统调用 185 第8章 阻塞处理 190 第9章 替换printk 199 第10章 任务调度 202 第11章 中断处理程序 207 第12章 对称多处理 211 第13章 常见错误 212 附录A 2.0和2.2之间的差异 213 附录B 其他资源 214 附录C 给出你的评价 215 第三部分 Linux程序员指南 第1章 Linux操作系统 219 第2章 Linux内核 220 第3章 Linux libc包 221 第4章 系统调用 222 第5章 “瑞士军刀”:ioctl 223 第6章 Linux进程间通信 224 6.1 介绍 224 6.2 半双工Unix管道 224 6.2.1 基本概念 224 6.2.2 用C语言创建管道 225 6.2.3 简便方法 229 6.2.4 管道的原子操作 233 6.2.5 关于半双工管道需要注意的几个 问题 233 6.3 命名管道 234 6.3.1 基本概念 234 6.3.2 创建FIFO 234 6.3.3 FIFO操作 235 6.3.4 FIFO上的阻塞动作 236 6.3.5 SIGPIPE信号 237 6.4 系统V IPC 237 6.4.1 基本概念 237 6.4.2 消息队列 239 6.4.3 信号量 251 6.4.4 semtool:交互式信号量操作 程序 260 6.4.5 共享内存 267 第7章 声音编程 274 7.1 内部扬声器编程 274 7.2 声卡编程 274 第8章 字符单元图形 276 8.1 libc中的I/O函数 277 8.1.1 格式化输出 277 8.1.2 格式化输入 278 8.2 termcap库 278 8.2.1 前言 278 8.2.2 获得终端描述 279 8.2.3 查看终端描述 279 8.2.4 termcap权能 280 8.3 Ncurses简介 280 8.4 初始化 282 8.5 窗口 283 8.6 输出 284 8.6.1 格式化输出 285 8.6.2 插入字符/行 286 8.6.3 删除字符/行 286 8.6.4 方框和直线 287 8.6.5 背景字符 287 8.7 输入 288 8.8 选项 289 8.8.1 输出选项 289 8.8.2 输入选项 290 8.8.3 终端属性 291 8.8.4 使用选项 291 8.9 更新终端 292 8.10 视频属性与颜色 293 8.11 光标和屏幕坐标 294 8.12 滚动 294 8.13 小键盘 295 8.14 软标签 295 8.15 杂项 295 8.16 低级访问 296 8.17 屏幕转储 296 8.18 Termcap模拟 296 8.19 Terminfo函数 296 8.20 调试函数 297 8.21 Terminfo权能 297 8.21.1 布尔型权能 297 8.21.2 数值型权能 298 8.21.3 字符串型权能 299 8.22 [N]Curses函数概述 306 第9章 I/O端口编程 307 9.1 鼠标编程 307 9.2 调制解调器编程 308 9.3 打印机编程 308 9.4 游戏杆编程 308 第10章 把应用程序移植到Linux上 309 10.1 介绍 309 10.2 信号处理 309 10.2.1 SVR4、BSD和POSIX.1下 的信号 310 10.2.2 Linux信号选项 310 10.2.3 Linux下的信号 310 10.2.4 Linux支持的信号 311 10.3 终端I/O 311 10.4 进程信息和控制 311 10.4.1 kvm过程 312 10.4.2 ptrace和/proc文件系统 312 10.4.3 Linux下的进程控制 312 10.5 可移植条件编译 313 10.6 补充说明 314 附录 以字母顺序排列的系统调用 315 第四部分 Linux内核概念系统结构 摘要 323 前言 324 第1章 系统结构 325 1.1 系统概述 325 1.2 内核的目标 325 1.3 内核结构的概述 325 1.4 支持多个开发人员 327 1.5 系统数据结构 328 1.5.1 任务列表 328 1.5.2 内存映射 328 1.5.3 索引节点 328 1.5.4 数据连接 329 第2章 子系统的系统结构 330 2.1 进程调度程序系统结构 330 2.1.1 目标 330 2.1.2 模块 330 2.1.3 数据表达 331 2.1.4 依赖性、数据流和控制流 331 2.2 内存管理程序系统结构 331 2.2.1 目标 331 2.2.2 模块 331 2.2.3 数据表示 331 2.2.4 数据流、控制流和依赖性 332 2.3 虚拟文件系统系统结构 333 2.3.1 目标 333 2.3.2 模块 333 2.3.3 数据表示 333 2.3.4 数据流、控制流和依赖性 334 2.4 网络接口系统结构 334 2.4.1 目标 334 2.4.2 模块 334 2.4.3 数据表示 335 2.4.4 数据流、控制流和依赖性 335 2.5 进程间通信系统结构 335 第3章 结论 336 附录A 术语定义 337 附录B 参考文献 338 第五部分 Linux内核具体系统结构 摘要 341 第1章 前言 342 1.1 目标 342 1.2 Linux介绍 342 1.3 软件系统结构的背景知识 342 1.4 方法与途径 343 1.5 适用本书的读者 344 1.6 本部分的章节安排 344 第2章 系统结构 345 第3章 子系统结构 346 3.1 进程调度程序 346 3.1.1 目标 346 3.1.2 外部接口 346 3.1.3 子系统描述 346 3.1.4 数据结构 347 3.1.5 子系统结构 348 3.1.6 子系统依赖性 348 3.2 内存管理程序 348 3.2.1 目标 348 3.2.2 外部接口 349 3.2.3 子系统描述 349 3.2.4 数据结构 350 3.2.5 子系统结构 350 3.2.6 子系统依赖性 351 3.3 虚拟文件系统 352 3.3.1 目标 352 3.3.2 外部接口 352 3.3.3 子系统描述 353 3.3.4 设备驱动程序 353 3.3.5 逻辑文件系统 354 3.3.6 模块 354 3.3.7 数据结构 355 3.3.8 子系统结构 355 3.3.9 子系统依赖性 355 3.4 进程间通信 355 3.4.1 目标 355 3.4.2 外部接口 357 3.4.3 子系统描述 357 3.4.4 数据结构 358 3.4.5 子系统结构 359 3.4.6 子系统依赖性 359 3.5 网络接口 360 3.5.1 目标 360 3.5.2 外部接口 361 3.5.3 子系统描述 361 3.5.4 数据结构 362 3.5.5 子系统结构 363 3.5.6 子系统依赖性 363 第4章 结论 365 附录A 术语定义 366 附录B 参考文献 368 第六部分 附 录 附录A Linux文档工程拷贝许可证 372 附录B GNU通用公共许可证 374
- 2.94MB
Linux编程基础
2017-03-03Linux编程基础
- 17.87MB
Linux编程从入门到精通(文字版)
2013-07-07Linux编程从入门到精通(文字版)
- 1.30MB
Linux编程入门(基础+实例)
2010-08-23shell是如此地重要,但令人惊奇的是,介绍shell的书没有真正令人满意的。所幸的是,我看到了 这本被人称为abs的书,这本书介绍了bash大量的细节和广阔的范围,我遇到的绝大部分的技术问题 --无论是我忘记的或是以前没有发现的--都可以在这本书里找到答案。这本使用大量的例子详细地介绍 了Bash的语法,各种技巧,调试等等的技术,以循序渐进的学习方式,让你了解Bash的所有特性, 在书中还有许多练习可以引导你思考,以得到更深入的知识。无论你是新手还是老手,或是使用其他 语言的程序员,我能肯定你能在此书用受益。而本书除了介绍 BASH 的知识之外,也有许多有用的关 于Linux/UNIX的知识和其他shell的介绍。
- 24KB
Linux 程序设计入门
2012-11-06Linux程序设计入门 我们老师说搞懂这些东西月薪至少4000RMB
- 182KB
Linux C程序设计入门
2009-12-24Linux C程序设计入门 Linux C程序设计入门
- 534KB
Linux设备驱动程序设计入门
2009-05-31Linux设备驱动程序设计入门简单介绍了Linux设备驱动程序设计
- 651KB
linux驱动程序设计入门.pdf
2012-09-22linux驱动程序设计入门.pdf
- 561KB
Linux设备驱动程序设计入门.7z
2021-11-09本文将仍然秉承《Linux Device Drivers》一书以实例...出了用户态的程序来访问该设备,展现设备驱动的运行情况及用户态和内核态的交互。相信阅读完本文将 为您领悟《Linux Device Drivers》一书中的内容打下很好的基础
- 97KB
Linux-C-programming.rar_linux 程序
2022-09-221)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序...
- 0B
max30102实战资料,全部免费开源,包含硬件设计,下位机程序,上位机程序,结构设计
2022-11-20max30102实战资料,全部免费开源,包含硬件设计,下位机程序,上位机程序,结构设计 100%开源,非常简单,这里温馨提示和说明,本设计只试用于手指测量,不可作为商业试用,如有不良后果本博主不负任何责任,本文件全套调试通过,手指正常测量试用,可以在此基础上二次更改
- 567.65MB
VMware Workstation 16虚拟机安装包
2022-01-14VMware Workstation 16虚拟机安装包
- 69.25MB
FinalShell安装包,让用户通过SSH、Telnet或者RDP等协议连接到远程服务器或设备,实现远程控制和管理
2023-08-28FinalShell是一款功能强大的远程终端软件,它可以让用户通过SSH、Telnet或者RDP等协议连接到远程服务器或设备,实现远程控制和管理。FinalShell支持多标签页、会话管理、命令自动补全、命令批量执行等功能,用户可以方便地在多个终端之间切换,同时也可以对会话进行分组管理。此外,FinalShell还提供了强大的文件传输功能,用户可以直接在本地和远程设备之间进行文件的上传和下载。FinalShell还支持脚本录制和回放,方便用户自动化执行一系列命令。总之,FinalShell是一款易用、功能丰富的远程终端软件,适用于系统管理员、开发人员和网络工程师等多种角色。
- 20.43MB
centos7的openssh9.8p1rpm包
2024-07-03centos7的openssh9.8p1rpm包,已经集成所需的所有依赖,直接安装即可。 安装命令(解压进入文件夹后) tar -zxvf centos7_openssh-9.8.tar cd centos7_openssh-9.8 rpm -Uvh --force --nodeps *.rpm ssh-keygen -A sudo chmod 600 /etc/ssh/ssh_host_* sudo chmod 644 /etc/ssh/ssh_host_*.pub
- 165KB
exploit (Linux 内核CVE-2024-1086漏洞复现脚本)
2024-06-06Linux 内核CVE-2024-1086漏洞复现脚本。 在普通用户下,将文件上传后,chmod 777 exploit ,然后运行 ./exploit ,提权成功,输入id,可看到已经是root权限 。
- 500.0MB
Kylin-Server-V10-SP3-General-Release-2212-X86-64.7z.001
2023-12-07Kylin-Server-V10-SP3-General-Release-2212-X86-64.7z.001
- 169.15MB
黑白群晖 DSM7.X 监控套件 SurveillanceStation-x86-64-9.1.1-10728 学习版
2023-06-03黑白群晖 DSM7.X 监控套件 SurveillanceStation 授权 教程 教程:https://blog.csdn.net/maxage/article/details/131023919 仅供学习研究使用,请勿用于商业用途。 SurveillanceStation 的功能和特点: 视频监控管理:SurveillanceStation 提供直观的用户界面,方便用户管理和监控多个网络摄像头。您可以轻松查看实时视频、回放录像、设置警报和时间表等。 智能分析:该软件支持人脸识别、移动侦测和声音侦测等智能分析功能。这些功能可以帮助您更好地理解和处理监控场景中发生的事件。 远程访问和移动应用:通过 Synology 提供的移动应用程序,您可以随时随地通过手机或平板电脑远程访问 SurveillanceStation,并实时查看监控画面。 存储管理:SurveillanceStation 可以与 Synology 的网络存储设备(如 DiskStation)结合使用,以提供高效的存储解决方案。您可以根据需要扩展存储容量,并使用存储管理功能进行数据备份和恢复
- 32.74MB
flannel-flannel-v0.25.1和flannel-flannel-cni-plugin-v1.4.1-flanne
2024-08-02flannel-flannel-v0.25.1-amd64.tar.gz和flannel-flannel-cni-plugin-v1.4.1-flannel1-amd64.tar.gz k8s的flnannel网络插件docker镜像离线资源包
- 60B
银河麒麟Kylin桌面操作系统 V10 (SP1) X86-64
2023-08-28银河麒麟Kylin桌面操作系统 V10 (SP1) X86_64 Kylin-Desktop-V10-SP1-General-Release-2303-X86_64.iso 银河麒麟桌面操作系统V10是新一代面向桌面应用的图形化桌面操作系统,同时面向国产软硬件平台开展了大量优化的简单易用、稳定高效、安全创新的操作系统产品。银河麒麟桌面操作系统V10实现了同源支持飞腾、龙芯、申威、兆芯、海光、鲲鹏等自主CPU及x86平台,提供类似Windwos风格的用户体验,操作简便,上手快速,并在国产平台的功耗管理、内核锁及页拷贝、网络、VFS、NVME等方面开展优化,系统加载迅速,大幅提升了稳定性和性能;在生态方面:精选数百款常用软件,集成麒麟系列自研应用和搜狗输入法、金山WPS等合作办公软件,使您办公高效便捷,同时兼容支持2000余款安卓应用,补全了Linux生态应用短缺的短板;在产品升级方面:构建了多个CPU平台统一的在线软件仓库,支持版本在线更新,让您的产品时刻与时俱进。
- 4.60MB
mysql-connector-java-8.0.27
2021-12-24mysql-connector-java-8.0.27
- 0B
openssh-server离线安装包
2022-11-04openssh-server离线安装包 三个.deb文件
- 110KB
银河麒麟系统硬盘分区挂载
2023-02-11麒麟系统挂载硬盘方法及分区方法
- 12.53MB
openssh-9.9p1-1.el7.x86-64.zip
2024-10-16为修复漏洞,依据openssh9.9源码打的镜像文件,成功升级了11台服务器
- 49.78MB
docker-compose-linux-aarch64(v2.17.2)
2023-05-191、免积分,不需要VIP,直接下载即可(如果后期被系统修改要VIP,可随意私信我要); 2、由于网上关于 aarch64 的资源特别少,尤其是 docker 这一块的,其他网友写的博客里的链接都是失效的,所以我自己上传一个链接上来,永久免费,希望能帮助到你们。 3、本资源适用于docker-compose-linux-aarch64
- 9.52MB
SecureCRT工具
2022-06-05SecureCRT介绍:这款工具可以帮助我们在Windows下面操作Linux系统。
- 119.92MB
Ubuntu微信Linux版(非Wine版)
2024-03-21Ubuntu微信Linux版(非Wine版)
- 393.21MB
Armbian-5.67-Aml-s805-Debian-stretch-default+EMMC直刷
2024-08-09Armbian_5.67_Aml-s805_Debian_stretch_default+EMMC直刷
- 20.42MB
centos7系列 openssh9.8p1 rpm安装包
2024-07-02压缩包中涉及如下文件: openssh-9.8p1-3.el7.x86_64.rpm openssh-clients-9.8p1-3.el7.x86_64.rpm openssh-server-9.8p1-3.el7.x86_64.rpm openssh-debuginfo-9.8p1-3.el7.x86_64.rpm 更新使用脚本: #卸载当前系统openssh相关内容 rpm -e --nodeps `rpm -qa | grep openssh` #按顺序安装openssh rpm包 rpm -ivh openssh-9.8p1-3.el7.x86_64.rpm rpm -ivh openssh-server-9.8p1-3.el7.x86_64.rpm rpm -ivh openssh-clients-9.8p1-3.el7.x86_64.rpm rpm -ivh openssh-debuginfo-9.8p1-3.el7.x86_64.rpm #检查openssh版本 ssh -V #重启sshd服务 systemctl restart sshd
- 71.2MB
JDK1.8安装包Linux可用(jdk-8u391-linux-aarch64.tar)
2024-04-03JDK1.8安装包信创环境Linux(jdk-8u391-linux-aarch64.tar)