|
Java电子书:Linux/UNIX系统编程手册(上、下册) 格式 pdf 电子书 PDF 电子书 Java吧 java8.com( ?) c& `1 w/ h% V
0 I; F, Y1 F( [0 i# x; w/ D: f5 Z7 R! `4 J, M. d1 `. l
编号:mudaima-P0070【Java吧 java8.com】
* T, p5 x2 y4 w9 y- g& c( C% D7 {" l6 i2 p. B$ u
# n3 J/ w+ s. ]$ V6 w `0 g- i. M5 S
Java电子书目录:上册% F: J. q+ Y: O% v
第1章 历史和标准
2 v, d \: a/ U: m1.1 UNIX和C语言简史 . L# B# g; H' e7 Y" }/ B
1.2 Linux简史
. r2 S4 c& K4 k: }* G9 F$ J1.2.1 GNU项目
8 J) H0 c, E. R9 G% X" j1.2.2 Linux内核 $ _+ V# ] u- t: \1 Y
1.3 标准化
) A5 F2 E$ ~0 T( C! M$ v4 ~- ?) D1 l C1.3.1 C编程语言 0 O! N$ @' d2 }9 U+ D7 G. K4 G/ V
1.3.2 首个POSIX标准 3 y4 k" [$ p' _0 w' _
1.3.3 X/Open公司和The Open Group
% Y( ^! o9 X' q3 X0 ~4 p# z. ]1.3.4 SUSv3和POSIX.1-2001 1 `8 [ J+ k0 S* R0 S% ?
1.3.5 SUSv4和POSIX.1-2008 8 x3 S: Y. Q7 p7 z7 I& s1 L1 g
1.3.6 UNIX标准时间表
! Y! K0 [* Q. a% [8 t1.3.7 实现标准
! Z2 H \# p8 V5 y5 w6 n1.3.8 Linux、标准、Linux标准规范(Linux Standard Base) ' V% ^- m2 j3 Y6 G! K
1.4 总结
( }* A+ @- K# n# T. y第2章 基本概念
& [8 q! J! | p; i D" f/ Q0 M3 `2.1 操作系统的核心内核 & _& r) y3 H3 L' s/ n
2.2 shell
# C7 W5 ?6 F$ O2.3 用户和组 $ L5 o1 o( q) `* u" @' Z
2.4 单根目录层级、目录、链接及文件 $ N, R b: ~3 A/ z0 {* y
2.5 文件I/O模型
0 o; e+ `2 N& _" H% @: N3 r8 o; ?* u2.6 程序
0 J( p( l8 A0 y% _2.7 进程 3 r& p/ E7 N! V; H" X9 A
2.8 内存映射 8 T# X1 w" \* w; Y0 j8 q# T
2.9 静态库和共享库 . |2 V2 w) ^) a7 L, y; J
2.10 进程间通信及同步
" s% |, P1 W6 f+ m2 z0 X2.11 信号 ' Z3 j9 g& _4 ~( f, u0 b% Y# l
2.12 线程 : A" |# |# S. M* {. X# v" c( j
2.13 进程组和shell任务控制 + h# H9 r# ~. B$ o+ x3 @
2.14 会话、控制终端和控制进程
) {5 l" n9 ?8 j& l- t: J2.15 伪终端
7 ^1 O0 R( u2 r6 @- ]2.16 日期和时间
/ ]3 m" M- F$ S/ y" I, h! ~2.17 客户端服务器架构 & u6 n* [% C( v# b n
2.18 实时性 + h L; U) J' f
2.19 /proc文件系统
' m$ {( C, F7 N2.20 总结
$ ~ ?; B/ H9 f( q4 G2 c" g第3章 系统编程概念
" ]1 h& l3 T6 z+ J% L3.1 系统调用
0 b& Z8 a( C# d3.2 库函数
' G# u: v7 c9 a- C4 E3.3 标准C语言函数库;GNU C语言函数库(glibc) " G) Q6 @; ~0 B0 x. P1 b1 t6 g
3.4 处理来自系统调用和库函数的错误
4 O& w3 z' r) G, ~7 k' H m3.5 关于本书示例程序的注意事项 9 T2 x8 e, u3 k, K
3.5.1 命令行选项及参数
2 o! N7 m& r9 X7 Q( s4 m) @& C1 Z3.5.2 常用的函数及头文件 # w w' U/ W* S1 a3 J2 f7 e
3.6 可移植性问题
9 }& m* c7 }3 m" y3 z! i3.6.1 特性测试宏 * A+ X' R" k1 R( D5 B
3.6.2 系统数据类型 1 Y/ u. h% E% M8 D4 K3 U
3.6.3 其他的可移植性问题
7 ?3 Y+ C: G o$ d2 H/ [+ ^3.7 总结
3 U; a( r! x' [: `; u4 h; f3.8 练习
! m" o6 }4 B0 V6 m* s) o2 N" C* y第4章 文件I/O:通用的I/O模型
3 _5 ?$ z% {0 @3 c+ p% N4.1 概述
E( W6 n9 Z+ u# A8 [3 h4.2 通用I/O
$ B8 `# ?1 _* ?* c l4.3 打开一个文件:open() . B+ T6 k- x- T3 i/ }) a/ N
4.3.1 open()调用中的flags参数 1 @/ } e2 x$ u
4.3.2 open()函数的错误
# ?2 y! z% E8 _ |4.3.3 creat()系统调用
- N1 [7 J/ u0 N6 G3 _8 z, d5 ~4.4 读取文件内容:read()
' O S0 o1 t6 Y/ V" e9 h$ [" O4.5 数据写入文件:write()
1 Y* F6 e( r" |: J- \4.6 关闭文件:close() - V7 ^* e2 y! T0 o6 ]* B
4.7 改变文件偏移量:lseek()
$ z; q: z2 I; a4.8 通用I/O模型以外的操作:ioctl() ( t2 ?4 u6 a+ F
4.9 总结 - o9 Z. q0 @) F1 C0 ?
4.10 练习
3 }' g: \/ s9 C第5章 深入探究文件I/O : Y( X: D7 n+ ^2 C/ \! h6 i. i
5.1 原子操作和竞争条件
' ^# j2 P' l+ O/ K9 ^$ j1 f5.2 文件控制操作:fcntl() ' `! @0 {- W0 Q
5.3 打开文件的状态标志
4 Q2 h- O: [1 D* Q( |# c5.4 文件描述符和打开文件之间的关系 3 v3 ^+ I9 Y) g4 _
5.5 复制文件描述符
, F* T: v. q% U8 u R5 f5.6 在文件特定偏移量处的I/O:pread()和pwrite() 2 a* a0 B7 D2 G
5.7 分散输入和集中输出(Scatter-Gather I/O):readv()和writev()
1 I$ u- {0 L' c; L) K5.8 截断文件:truncate()和ftruncate()系统调用 + r3 W) p4 w, F! W8 Z- B$ i
5.9 非阻塞I/O 7 X- ~( ~7 x9 Z3 G
5.10 大文件I/O
( [; M' g% E/ t+ V# o$ x5 n5.11 /dev/fd目录
) g5 x# m4 L* C' B1 ]' l) ^; r5.12 创建临时文件
* D$ H1 `' o& Q$ Y( X5 s. [4 u5.13 总结 , ~- D* T) G3 R) ?1 T
5.14 练习
0 f$ a# j, S8 |; i2 F1 g* j# V第6章 进程 + h# V/ {1 d' l& J# r0 l/ `0 k
6.1 进程和程序 8 s: j( D% i+ f& B
6.2 进程号和父进程号
( k7 v: @$ V7 U$ w% j+ p6.3 进程内存布局
0 I) f1 W+ X& G$ V6.4 虚拟内存管理 6 ~( S5 i$ Z: z+ o
6.5 栈和栈帧
6 ^- k) }- [. X% O3 t# R6.6 命令行参数(argc, argv) & s' _. ]- n; s8 d C; Y8 J" z6 Q" F! h
6.7 环境列表
7 }/ a3 P3 n; b1 F- ^6.8 执行非局部跳转:setjmp()和longjmp()
7 \, _$ c# ]3 S6.9 总结 / ^4 m9 Q& H4 B0 ]8 k: d
6.9 练习
* @% P' n% u+ u第7章 内存分配
3 i' \0 X: S% H5 x7.1 在堆上分配内存
! _! Y% F' E5 Y, j2 ^+ p7.1.1 调整program break:brk()和sbrk() $ |" J4 M; P' O2 A
7.1.2 在堆上分配内存:malloc()和free() $ H+ h# E/ [# k1 Y0 V6 v
7.1.3 malloc()和free()的实现
. [5 a" s! I* f* G$ k5 d1 q- |) i; w! p' f7.1.4 在堆上分配内存的其他方法 4 z. b, N: e) k" y. j
7.2 在堆栈上分配内存:alloca() 8 T- c r; r: \
7.3 总结
% y* M$ P0 c9 G8 r( `, r( ?. p7.4 练习
% }3 X1 ^( L2 H" j第8章 用户和组 - ^$ }% M+ H3 A- F
8.1 密码文件:/etc/passwd 4 Z: S: F" |9 } R r9 C
8.2 shadow密码文件:/etc/shadow ( | L! N4 k" R6 q, p8 T ^
8.3 组文件:/etc/group
8 f' U* u4 {7 U" ?8 S/ J: K0 J8.4 获取用户和组的信息 , p9 n9 ~" g0 N, R4 W4 u
8.5 密码加密和用户认证
: C+ O R4 S" \5 }# B$ e8.6 总结 - ~8 y1 K# P/ `' c* u
8.7 练习 % M; G) N' ?9 J" Y$ D
第9章 进程凭证 7 U8 ]( o# Y" e$ b1 A
9.1 实际用户ID和实际组ID
- o; v" L& W8 O! H. S) y* v9.2 有效用户ID和有效组ID ! \! e0 ^, X. v6 X \
9.3 Set-User-ID和Set-Group-ID程序
/ h- O, n. ^2 c3 r, ?6 v+ u7 h9.4 保存set-user-ID和保存set-group-ID
! p& { v; A7 ~- k# S3 y) b9.5 文件系统用户ID和组ID
. T4 P; g7 P/ L; ?& v, A2 T: b( c, K9.6 辅助组ID
; V! i* r8 V0 L* B/ [& e9.7 获取和修改进程凭证 0 O" }) I N S. E/ x
9.7.1 获取和修改实际、有效和保存设置标识 1 M( ]4 p* ]3 Q: L2 E# D! }5 M1 h
9.7.2 获取和修改文件系统ID 0 d7 F8 ]1 F0 O4 k
9.7.3 获取和修改辅助组ID ) `$ z! T2 E, T% `% t
9.7.4 修改进程凭证的系统调用总结
& R! D4 F+ b% t) D9.7.5 示例:显示进程凭证 - G, Q3 `4 }' O! T. ~9 Q3 m
9.8 总结 " D/ o& @2 [/ m$ l, _' H
9.9 习题
3 O. R4 r; e9 x0 J' }9 G9 o+ B第10章 时间 - X1 }* L0 b7 a; b+ r
10.1 日历时间(Calendar Time)
+ M- t7 b7 I( b. k* J' j J4 G. N10.2 时间转换函数
4 A# I6 d; e5 e0 g. L( Q10.2.1 将time_t转换为可打印格式
A; z+ i+ F3 D8 }$ D10.2.2 time_t和分解时间之间的转换 " k- {) K2 |3 `5 o
10.2.3 分解时间和打印格式之间的转换
. n v9 ?. \# w; p0 D5 ^& J10.3 时区
9 O7 n/ R" g1 W10.4 地区(Locale) & C5 y4 K( G5 y
10.5 更新系统时钟 / e4 W `1 [* v$ @" e
10.6 软件时钟(jiffies)
& \/ a3 g" A$ y. {% W: j+ v10.7 进程时间 1 s# L* y) A. R. X5 @
10.8 总结 * e( Z. ~- H$ F) \
10.9 练习 5 U- Z" m, c+ O. ~
第11章 系统限制和选项 & \7 [2 \+ C2 o) L
11.1 系统限制 9 l8 q- _6 P) c! g# x6 b
11.2 在运行时获取系统限制(和选项)
- k9 c+ a3 T1 d& W$ L11.3 运行时获取与文件相关的限制(和选项) 7 h- c$ \- h& Z& B
11.4 不确定的限制
0 M! I; t7 Q% q" u) X11.5 系统选项
T1 _& |. @- f3 R" J11.6 总结
" @. v2 K9 ^3 q( G+ H, V11.7 练习
/ a/ R7 R; s' g+ H9 r第12章 系统和进程信息 9 D1 M5 O/ K! |* f7 f
12.1 /proc文件系统
" n. N) j' ^0 J( J1 w3 o12.1.1 获取与进程有关的信息:/proc/PID / q. x3 V3 J% t
12.1.2 /proc 目录下的系统信息 - I( n" a& m* i
12.1.3 访问/proc文件
2 O0 m8 n& O- v; y# R12.2 系统标识:uname()
$ o$ v& V$ J5 Y. [( ^& E% t12.3 总结 " T( E- a l2 X3 @+ a
12.4 练习 + k/ `& N4 u/ r1 }* n
第13章 文件I/O缓冲 . _& a" w$ J. x: |
13.1 文件I/O的内核缓冲:缓冲区高速缓存 - j, |7 M M# H% {( ]
13.2 stdio库的缓冲 Z" A" ^" N) ?" G7 D
13.3 控制文件I/O的内核缓冲
& X% s) [# e2 I& N, G/ D0 n' c8 I13.4 I/O缓冲小结
+ i+ J0 W8 H: F& A6 E13.5 就I/O模式向内核提出建议
& r) f4 T" s. s" ~$ W2 S' p2 a13.6 绕过缓冲区高速缓存:直接I/O
( S- ^7 T1 K% ~8 I9 \3 A3 Q13.7 混合使用库函数和系统调用进行文件I/O
8 Z& E$ j0 g* b" N* T3 j13.8 总结
9 M; C9 T2 z p13.9 练习 - m0 k9 M4 A4 X7 ]. ]5 D
第14章 系统编程概念 - x! u1 H( n( S3 q4 d
14.1 设备专用文件(设备文件) + V- |" d- g9 G0 m- Q- `
14.2 磁盘和分区
% ^) n: p0 ?6 [1 N* k14.3 文件系统
4 U- h1 y# H: ]( z7 P8 N14.4 i节点
2 y$ J7 O. P _7 i3 R. p: Z1 Q14.5 虚拟文件系统(VFS)
; B% a$ {. h$ P14.6 日志文件系统 ) F* e5 T1 i) ~! |
14.7 单根目录层级和挂载点
5 X7 y8 A/ |& U14.8 文件系统的挂载和卸载 / b, I+ x6 ^( k% q
14.8.1 挂载文件系统:mount()
/ V( ~4 C% c( c8 t0 c' O- I. u14.8.2 卸载文件系统:umount()和umount2() " Y, p- b0 l6 _8 o: r/ m" w$ Q
14.9 高级挂载特性 + n" y, }: `/ `& x. B: G! u
14.9.1 在多个挂载点挂载文件系统
8 @9 H6 O$ S2 t9 k14.9.2 多次挂载同一挂载点 / e% ~0 _7 Q* Q; ~& K8 h
14.9.3 基于每次挂载的挂载标志 1 K G3 o0 C8 s k
14.9.4 绑定挂载 2 J( l. g+ ^9 W7 [. P9 K: z
14.9.5 递归绑定挂载 ! O+ k, C( }: m7 J. n
14.10 虚拟内存文件系统:tmpfs
]8 z) D/ U9 }2 e4 l% a14.11 获得与文件系统有关的信息:statvfs() " p6 `4 r1 x* X
14.12 总结
* `! \8 {& W! h. r9 y% l0 p14.13 练习 & p, h1 L* T! K& o% ?4 L8 J) V) s' Q
第15章 文件属性
" x* q0 D% \6 T* g; h7 T5 N15.1 获取文件信息:stat()
1 k: E/ v3 b, w9 A. @. W3 A15.2 文件时间戳
# u7 V+ \4 s e% i$ O7 Z15.2.1 使用utime()和utimes()来改变文件时间戳
& `3 X/ N, a- X15.2.2 使用utimensat()和futimens()改变文件时间戳 \$ ~4 M2 z2 M8 ]# P1 e3 f
15.3 文件属主 3 L0 X$ `% ^& l' L* V1 P |% n+ b
15.3.1 新建文件的属主
% N8 w. j/ c9 ~. q" h) w# |15.3.2 改变文件属主:chown()、fchown()和lchown()
; M! x6 q+ H m) e5 d5 ?4 d6 C# p/ s8 \15.4 文件权限 * X1 [3 f3 M) w0 h4 ?
15.4.1 普通文件的权限 / v; ]6 [4 M! S7 {
15.4.2 目录权限 # S5 t% |- q- ~
15.4.3 权限检查算法 ' R3 F# C: Y) p# i9 j
15.4.4 检查对文件的访问权限:access() 9 a2 d$ S* u) P" _( |
15.4.5 Set-User-ID、Set-Group-ID和Sticky位 4 o$ ?" }1 T+ X* v3 X7 y
15.4.6 进程的文件模式创建掩码:umask()
, J( i I: E/ I- a+ ?15.4.7 更改文件权限:chmod()和fchmod() 0 P5 c" e) B2 X/ `2 X1 T3 z) b: H
15.5 I节点标志(ext2扩展文件属性)
: c& I' j, w0 B15.6 总结 ; |, ~! q" ^- W! n
15.7 练习
# d( x' s( O8 J# @% S$ I第16章 扩展属性 & w6 v8 ~; n0 w( Q7 s& l5 v1 A; @
16.1 概述 : e. F& P6 V- z: n2 ?! n( }$ x
16.2 扩展属性的实现细节
8 q9 V0 B$ w6 Y! W. V1 E16.3 操控扩展属性的系统调用
! k+ Y! u# ^% k: d6 G- ^* @16.4 总结 9 `3 U) p( W3 V: r
16.5 练习 3 i0 }( ]' G. w" T" u( p
第17章 访问控制列表
- ~# l* M4 x9 J6 Q, z17.1 概述 ! ?8 W2 v% g- I" t% Y5 P
17.2 ACL权限检查算法 5 W; s5 u1 ]( X! R5 H
17.3 ACL的长、短文本格式
- J3 e+ B O* W* k& o17.4 ACL_mask型ACE和ACL组分类 ( n, m. P, @( }' g3 G
17.5 getfacl和setfacl命令
0 S0 I1 |, Y* p! n17.6 默认ACL与文件创建
0 m% N, O! w: `) K& I, i9 M! n17.7 ACL在实现方面的限制
+ B! r5 r5 b0 o- r; ]; ^& F5 q4 l17.8 ACL API 2 x; |& |# c9 J# o! N
17.9 总结 / Y- z. E" K- [# O
17.10 练习 ( y: Y6 b) `/ K( o
第18章 目录与链接 % K# }* s3 W6 R' F
18.1 目录和(硬)链接 : _& p$ m( n$ ] I0 K/ X1 D( a( D2 k1 ?
18.2 符号(软)链接
1 z+ C) c; T' i18.3 创建和移除(硬)链接:link()和 unlink() ' F+ m2 P3 l! z/ J+ J& ]* T% k
百度云盘下载地址(完全免费-绝无套路):- y) Z# G; p8 O3 k% h; H
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|