|
Java电子书:Linux/UNIX系统编程手册(上、下册) 格式 pdf 电子书 PDF 电子书 Java吧 java8.com8 J) ~4 y3 H, R& m, Z
0 c( u# [9 f; q: ^
& ]0 X6 W& _8 R2 Y' F8 O5 l编号:mudaima-P0070【Java吧 java8.com】1 M7 [/ w% ]. a, y& h2 f
7 | }' e9 K4 J' A5 z2 o, L
1 P X% m8 h& Z3 }% Y5 U# a
* B" F9 j5 Y8 }6 c& e: R8 [" H
Java电子书目录:上册
# P1 |: e; {4 B' }1 I" Z% N第1章 历史和标准 2 O# x. k) {/ b5 y; W
1.1 UNIX和C语言简史
( E/ X/ ]7 q. x- N5 j1.2 Linux简史 3 }8 @% _ J8 Q2 Z7 e( U, o1 x& U& l
1.2.1 GNU项目
% @1 {' e2 H x1 j1.2.2 Linux内核 * `( I, ?5 ]/ h/ C! l" q/ c, t
1.3 标准化
: B8 m; N- I) N6 r; G/ b; @+ U1.3.1 C编程语言
4 H' E3 N4 e9 ]1.3.2 首个POSIX标准 3 M" K" C+ ]) T4 b# ?
1.3.3 X/Open公司和The Open Group
$ X3 H7 k- w, P% x1.3.4 SUSv3和POSIX.1-2001
& A* l6 a; I4 v8 p U. O! F1.3.5 SUSv4和POSIX.1-2008 7 p( x; T/ R! e% X1 G/ Y- \& T, v
1.3.6 UNIX标准时间表
' y4 H; {6 l6 `$ J1.3.7 实现标准 $ D; u X8 k3 W9 F+ C
1.3.8 Linux、标准、Linux标准规范(Linux Standard Base) $ d' I, I* c5 a" b% y2 N
1.4 总结
% ^9 ?& V% j5 s& s5 p第2章 基本概念
8 U4 Z4 Q: Q2 X% L2.1 操作系统的核心内核
& I, {$ s3 b. q- j- e; o2.2 shell
* I- N1 d5 [ r; f8 v2.3 用户和组 ; z1 Z: P4 h9 }9 h( X; G( n1 e8 c
2.4 单根目录层级、目录、链接及文件
, E4 U& z2 S& e2 j- e4 q2.5 文件I/O模型 3 W" X% H. \3 @3 c' J A. x9 m
2.6 程序 ! R; q" K9 [5 J$ I
2.7 进程 / J+ d) u5 o/ B* V* \" j% b
2.8 内存映射 6 [. f4 \7 F- {
2.9 静态库和共享库
3 J, H! K. S3 y) u$ x$ h# P& t$ c2.10 进程间通信及同步 9 I1 X7 [$ a5 s+ r$ \* B3 L
2.11 信号
+ }8 e! h4 j# K+ {/ @/ V' E9 Z2.12 线程
% p# k, {( g9 Y' G3 t& Y) ?/ V' {2.13 进程组和shell任务控制
- h0 j3 A5 ?8 f6 E( i2 C2.14 会话、控制终端和控制进程
0 w- r) l4 z$ C% ]; N# G2.15 伪终端 % S6 b8 S$ X4 T) M' k5 O
2.16 日期和时间
: \" C/ G# X* h/ ~. o2.17 客户端服务器架构 ' S2 U$ [ [+ X8 Q/ l- m) E# i
2.18 实时性 3 m, Q/ g. |( [
2.19 /proc文件系统
; c5 g0 h: F# w C; n2.20 总结
7 e6 W7 J6 L- p. c9 H$ \第3章 系统编程概念
- y8 b5 p9 n; x2 v2 N% e$ k3.1 系统调用 * b" ^: i9 G+ z! @5 i0 ~4 x; t0 D
3.2 库函数
* ~; p& @8 X S! ?! m0 m3.3 标准C语言函数库;GNU C语言函数库(glibc) $ D5 J" v. s4 X
3.4 处理来自系统调用和库函数的错误
( X2 w+ ?* H n3.5 关于本书示例程序的注意事项
( W# g- k" g6 [, p3.5.1 命令行选项及参数 1 f6 J" S' L$ C$ r
3.5.2 常用的函数及头文件 ( i8 g5 j1 h9 F5 p1 ^
3.6 可移植性问题
, b" I1 U0 O% P4 w* d; B9 E# V+ h3.6.1 特性测试宏 5 ^, ?4 E, k! R! }) N$ S
3.6.2 系统数据类型
* k8 @. M. u u7 M* }3.6.3 其他的可移植性问题 9 U! I1 \" A0 p; y D K9 c
3.7 总结 & ]% {/ J: w8 t( ?% B- o& i$ b9 m7 z
3.8 练习 # j* h: q1 C3 N2 i
第4章 文件I/O:通用的I/O模型 0 C% Y) I+ o+ Z) l; ] [3 X
4.1 概述 3 T: i3 w1 |2 v, E. y9 r0 v$ q
4.2 通用I/O . i w3 v( i% b
4.3 打开一个文件:open()
/ K7 E& T4 Z' `8 j4.3.1 open()调用中的flags参数
! M7 ?, l. A, `& n% J3 ]) u4.3.2 open()函数的错误 # q- V. }. V) u9 u
4.3.3 creat()系统调用
5 |- r, ?: w. J7 d4.4 读取文件内容:read()
) G+ U1 L7 {" J0 B. q; p, k4.5 数据写入文件:write()
# K% a) e% s( l" u% n2 v* [ `4.6 关闭文件:close() 0 B; K$ o# O7 }( V
4.7 改变文件偏移量:lseek() I1 I7 e! [* U" Z8 O/ l
4.8 通用I/O模型以外的操作:ioctl() # p9 F0 Q# u* H0 ?
4.9 总结
; T. t& i1 T! u) `; D6 s8 _( [- I4.10 练习 * }5 W! i* y/ G
第5章 深入探究文件I/O 8 V' \4 @4 y8 s
5.1 原子操作和竞争条件 ) ]" r$ C6 r7 G; @6 ?
5.2 文件控制操作:fcntl()
3 `4 l! R1 c9 q" j& i9 Y0 b$ ~0 `5.3 打开文件的状态标志 4 @+ s& k) Q$ F9 `) `0 ]/ {
5.4 文件描述符和打开文件之间的关系 4 Y, z4 f) n, O% `: d4 K5 n! O8 t# \
5.5 复制文件描述符 % N9 M1 E+ n% k# R% u* ^. @
5.6 在文件特定偏移量处的I/O:pread()和pwrite() 6 y3 E: v/ H" \2 m0 {
5.7 分散输入和集中输出(Scatter-Gather I/O):readv()和writev() " H5 N. c5 [) l4 v7 ]
5.8 截断文件:truncate()和ftruncate()系统调用 + f$ Z; j9 }$ B# @- G+ F
5.9 非阻塞I/O $ d# b! q6 r4 A( r3 v3 Y& A
5.10 大文件I/O 5 D1 v% j4 c1 y: ?
5.11 /dev/fd目录
3 O- A) E. e( m( p1 n2 `5.12 创建临时文件 ; h4 N( x" F4 H( b4 F- G5 ~* k
5.13 总结
" z( {; a7 _$ Z+ e) h' _; \5.14 练习 ; h2 v# _7 W& x
第6章 进程
+ c9 p" I, Y7 g |; C5 W$ J5 d6 F. u) H6.1 进程和程序 ' r0 o0 \! x" J, O5 I# Z+ e# ?4 w
6.2 进程号和父进程号
7 Y3 e7 v5 ]: E0 B8 u! _8 Z6.3 进程内存布局
# u- f* _/ ~! t6 I6.4 虚拟内存管理
0 _7 m( r( s6 _3 t. {. h6.5 栈和栈帧
& w2 t& c' N N8 }6.6 命令行参数(argc, argv)
( y& y9 c; W) \2 \6.7 环境列表 0 y) s7 c9 n( A. t$ t* g0 l
6.8 执行非局部跳转:setjmp()和longjmp()
" @3 J$ q4 t/ M$ g# Z2 P6.9 总结
- v( A+ w" @1 r1 L% n6.9 练习
. H( s: l W7 N; k第7章 内存分配
3 ]6 v. N" K* M: n' [7.1 在堆上分配内存
4 q6 C$ X, o! m) g5 w, j6 a2 L7.1.1 调整program break:brk()和sbrk() ( p, x- I6 I" h% P1 I; d$ j# t
7.1.2 在堆上分配内存:malloc()和free() ' ]; f N/ T- q
7.1.3 malloc()和free()的实现 5 R8 a4 i9 Z& S* a1 u' _$ P; v
7.1.4 在堆上分配内存的其他方法
R8 f8 \; }4 _! J7.2 在堆栈上分配内存:alloca()
5 p9 r! L( q9 c7 h7.3 总结
, y( d4 ^4 G. z/ E1 F8 M$ |7.4 练习 7 i: p& B# x# n7 O8 q# L% {3 }
第8章 用户和组
$ ^: f: S! `3 r5 x8.1 密码文件:/etc/passwd 8 O0 c: z& {/ ^, u
8.2 shadow密码文件:/etc/shadow
$ @. X" C! W- q8.3 组文件:/etc/group
% E, R2 W7 c2 n, M) c0 |8.4 获取用户和组的信息 ; ^- u3 T$ @. @3 L0 A# l* s
8.5 密码加密和用户认证
% D: D6 Q$ k6 V- R- R0 Y: i) d8.6 总结
4 ]# \, x3 O7 [8.7 练习 % ], z( C1 [2 K2 ^/ }: H% X
第9章 进程凭证 - q5 P+ M( K- E6 y6 ]* ^
9.1 实际用户ID和实际组ID ' S+ ]* J& f& F$ \" V! f
9.2 有效用户ID和有效组ID
$ V& G9 f5 }1 _9.3 Set-User-ID和Set-Group-ID程序
0 v J2 g7 }! w1 T8 m6 w' g- a7 m9.4 保存set-user-ID和保存set-group-ID % f- D# |( b( i5 f
9.5 文件系统用户ID和组ID * I. t" }1 T! C! J, u9 f1 |
9.6 辅助组ID % p9 W c2 ~' e+ L: Y4 H
9.7 获取和修改进程凭证 9 V$ r [$ y2 p( H
9.7.1 获取和修改实际、有效和保存设置标识
_) R- [+ T3 e# X, t9.7.2 获取和修改文件系统ID
% a! H& Q, `( N4 g3 k9.7.3 获取和修改辅助组ID 4 T& m1 i5 q# X; }# t n. |
9.7.4 修改进程凭证的系统调用总结 ) y. D& }8 Q! ?8 O
9.7.5 示例:显示进程凭证 + M$ r3 N# ?, \9 {& B, D
9.8 总结 9 a- ?% P8 s8 O3 J
9.9 习题
- q- g Q n: n5 j$ g7 q2 V第10章 时间 - n; _7 N, x+ a s- }, |0 G
10.1 日历时间(Calendar Time) 0 A( P0 `) F% Z9 O6 A& i$ `. ?
10.2 时间转换函数
; j3 Q& D0 p, q+ {( ^) S10.2.1 将time_t转换为可打印格式 # r9 m c7 e' ]: _/ ?; c( v
10.2.2 time_t和分解时间之间的转换 - Y7 H. {, N q/ H" C' }
10.2.3 分解时间和打印格式之间的转换 $ `+ @& O. |# g' w
10.3 时区 1 O, j' A" l6 {- ` F" d& Z2 b4 C
10.4 地区(Locale)
" m- M" |8 @+ ^( o/ k( { Y3 y10.5 更新系统时钟
9 P5 s' b) }1 q% G6 c: {10.6 软件时钟(jiffies) 2 |4 a: c; n# W/ }; V g! ?8 ^) L# R
10.7 进程时间
$ C( |* g7 k" I; R) {, s `10.8 总结 ; r/ x6 U* u T0 Y
10.9 练习
/ G0 u9 m2 x2 H( u( ?0 C* S第11章 系统限制和选项 . m3 }8 ]2 {' ]( p
11.1 系统限制
$ k; K0 j/ ?2 k3 P+ l! E11.2 在运行时获取系统限制(和选项)
7 f% q1 ^# }- k( I11.3 运行时获取与文件相关的限制(和选项)
2 v3 @" \. \" s, Y1 l11.4 不确定的限制
7 R- h9 g" g! z) h- W% L11.5 系统选项 b4 a. [) \6 m- }
11.6 总结
% x) P1 G7 {1 A( E% A( M7 Z# R11.7 练习
O; Z6 }+ ^; B5 c/ g0 e5 {第12章 系统和进程信息 ' m0 o* s. j$ }' X. Q
12.1 /proc文件系统
& Y9 U) u: k0 K+ A. a0 m12.1.1 获取与进程有关的信息:/proc/PID ( A8 Y. d5 S2 C, d0 u; i1 z; d
12.1.2 /proc 目录下的系统信息
+ p. |) i- R0 j# Q% J12.1.3 访问/proc文件 ! }, R/ n+ u. N" r; ]4 N8 u
12.2 系统标识:uname() 9 z: V% I% H1 A- H$ `" t% \8 v
12.3 总结 1 y. J& U# }. A0 Q
12.4 练习
3 T/ y- i" v, f2 [第13章 文件I/O缓冲 / K' }8 F' q* Q+ @% E
13.1 文件I/O的内核缓冲:缓冲区高速缓存
! n9 R3 _5 ]' e/ o6 y% r- W13.2 stdio库的缓冲
$ B! p0 V) E, F E, Z13.3 控制文件I/O的内核缓冲
+ ^! b8 n/ c5 }, F13.4 I/O缓冲小结 3 y6 h& t4 A s* w& q% t1 d0 X
13.5 就I/O模式向内核提出建议 , z q" X' p9 n5 f
13.6 绕过缓冲区高速缓存:直接I/O ) Q2 A; ]- h W! G; z$ Z2 t# k
13.7 混合使用库函数和系统调用进行文件I/O . E" f1 z& v# K! w* z6 a' d
13.8 总结 ! f8 V' p, t4 m" m
13.9 练习 ( c2 G. B$ c2 [+ h" e0 X( V8 S
第14章 系统编程概念 2 k' h) G" [/ q* P( Z! w
14.1 设备专用文件(设备文件) ! W2 u3 m9 I. i) e' m
14.2 磁盘和分区 ! V- {8 s; {. ~) p, F' q2 D; s
14.3 文件系统 " X% l. q) R8 V0 s% A
14.4 i节点 3 {& H* B9 K1 e. V9 {) D
14.5 虚拟文件系统(VFS) : Y9 P6 u. e8 r$ w; I' s
14.6 日志文件系统 & S$ u$ h3 [8 z% s7 s" s
14.7 单根目录层级和挂载点 . S; K( C" Z6 A
14.8 文件系统的挂载和卸载 ! F9 p9 l6 ]$ k% b Z7 d
14.8.1 挂载文件系统:mount()
9 ^6 l. V# \0 k F; X. r4 C14.8.2 卸载文件系统:umount()和umount2()
5 l5 X# _2 [% \7 O. B14.9 高级挂载特性 ! E9 E) ~4 |* e0 y
14.9.1 在多个挂载点挂载文件系统 ; w: f7 Y) f4 p7 ]1 S, h0 o
14.9.2 多次挂载同一挂载点
, ^( @0 j1 O) a: N14.9.3 基于每次挂载的挂载标志
0 j/ f3 _ ]6 F14.9.4 绑定挂载
9 N" C2 C- y5 B( {; o14.9.5 递归绑定挂载 : e4 O% ] N! Z
14.10 虚拟内存文件系统:tmpfs
/ Y' W' P. G* C! f; m$ _14.11 获得与文件系统有关的信息:statvfs() . L6 `! \& b6 S/ U% p% B) _4 ^
14.12 总结
/ f, a4 a, ?1 ?' P2 x5 R14.13 练习
" x+ c* W- y U$ K! e$ k- M# k第15章 文件属性 O6 u! [9 m2 r8 U- U8 W: f
15.1 获取文件信息:stat() $ `9 `" X9 j6 s, ^+ ^- A
15.2 文件时间戳
( {+ n/ \$ P8 ?0 f15.2.1 使用utime()和utimes()来改变文件时间戳 4 i: v! W% l! Z$ ~" E" F
15.2.2 使用utimensat()和futimens()改变文件时间戳
' B; b v; M/ T3 a1 ~; p15.3 文件属主 , r9 D8 o" a/ S
15.3.1 新建文件的属主
+ Q \8 h! m6 L) w D/ H3 ~15.3.2 改变文件属主:chown()、fchown()和lchown() " z3 ^. D$ C' M3 U# T; R5 J K
15.4 文件权限 3 C7 H% X; N; h! M: O/ W
15.4.1 普通文件的权限 / [8 D% v3 _3 i' m
15.4.2 目录权限
& S3 } I2 O$ _" {9 [15.4.3 权限检查算法 * Q, k g" b& z8 R1 z6 \$ Q6 f9 |+ n
15.4.4 检查对文件的访问权限:access()
; E3 b+ u+ X3 @+ g+ W15.4.5 Set-User-ID、Set-Group-ID和Sticky位
~8 }3 x9 o4 u L15.4.6 进程的文件模式创建掩码:umask()
9 s5 C, c. J2 ?+ y% ^0 H% m& U15.4.7 更改文件权限:chmod()和fchmod() * j# Y1 [: t% X
15.5 I节点标志(ext2扩展文件属性) ! R9 {# I. `% X( N1 ^2 S. c" w
15.6 总结
8 I" v; |) \! B5 |15.7 练习
- ^& Z/ J1 l4 u3 [: g3 w' X4 T第16章 扩展属性
6 J9 a5 T( K+ ]16.1 概述
* U* p5 w( p& @4 F" T/ |& g! G16.2 扩展属性的实现细节
9 x1 a' Z% H5 q6 u5 T16.3 操控扩展属性的系统调用
5 p% K- G! i3 z8 A- h# p0 n16.4 总结
( h- ^% j0 v* \& l16.5 练习
/ a6 w9 J* X4 o第17章 访问控制列表
3 _7 _; g3 U; S7 U* d+ r. }& B17.1 概述 , o4 d) n& J2 x# f4 C% s
17.2 ACL权限检查算法 # \ z% `3 M; f, D
17.3 ACL的长、短文本格式
0 v6 \. e G ~17.4 ACL_mask型ACE和ACL组分类 " C1 h; o3 Q9 T1 d
17.5 getfacl和setfacl命令 0 E' Q' J8 o2 [* n4 N J* S; ~+ B2 O
17.6 默认ACL与文件创建 . r/ o5 \$ i5 z7 y N) C
17.7 ACL在实现方面的限制
/ m; K1 C7 [; B+ I X* J: @17.8 ACL API ; r) @( J' g( U0 M
17.9 总结
$ ]! h9 _: e# [: E* ~, Z2 C/ G17.10 练习 1 }0 G/ n* H J1 e ~3 h
第18章 目录与链接
/ q. H, ?3 b& y! Z2 @. B18.1 目录和(硬)链接
- \9 i/ f2 `/ }9 e) Z, t18.2 符号(软)链接 - H. P b5 O9 i" X% Q$ \3 C
18.3 创建和移除(硬)链接:link()和 unlink() 2 x( C# r! J& K$ W
百度云盘下载地址(完全免费-绝无套路):
D2 c7 h9 d8 A |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|