|
Java电子书:Linux/UNIX系统编程手册(上、下册) 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
# c/ f. w+ q5 ]0 p0 i* ~6 I5 ]* | l5 p- f) j
, X9 ]; F7 H! G/ z# x/ G e
编号:mudaima-P0070【Java吧 java8.com】. }& d4 g& w; x/ ^
0 r$ o C. ~8 r! y! L6 x+ M0 n" K- z
! f h, q7 m T7 T. s# T7 i! N- lJava电子书目录:上册- n7 X0 ?3 d7 t
第1章 历史和标准 + z& X1 L$ q2 V2 t, M$ p% I# J8 K
1.1 UNIX和C语言简史
A: ?5 k+ t* i1.2 Linux简史 & ?1 t( H5 Z1 E6 h
1.2.1 GNU项目
) G0 w( L# M0 S# Y1.2.2 Linux内核 $ j/ M2 |0 l( e& }
1.3 标准化 4 K3 ~2 c% S; v$ @
1.3.1 C编程语言
: B c- ~+ P9 X# Q1.3.2 首个POSIX标准 ! P. c! v9 v% T/ t( R6 \# R. X
1.3.3 X/Open公司和The Open Group 3 ~( K$ [- z7 j0 M! g* ~- n
1.3.4 SUSv3和POSIX.1-2001 " _) G7 c& M9 F; Y2 b) z3 J
1.3.5 SUSv4和POSIX.1-2008
6 J1 x- r+ N+ E0 Y$ j" e$ y4 i& l- Q1.3.6 UNIX标准时间表
& s5 H* k" ]: A* Z* K1.3.7 实现标准 $ I- ?; r6 L' X4 o6 [. F; C
1.3.8 Linux、标准、Linux标准规范(Linux Standard Base)
1 S; P r! H/ C9 h4 c6 V1.4 总结
3 E: f( O- L: y8 C第2章 基本概念 ( E( m0 u" z/ C, S
2.1 操作系统的核心内核
. t" m" L2 H' l/ ~2.2 shell 6 Q6 n" R3 D# [ n4 p7 e0 B2 q
2.3 用户和组 ( l3 v( ?: \) U! w3 j4 ~
2.4 单根目录层级、目录、链接及文件
8 ]' f! `- x7 b6 g# X2.5 文件I/O模型 * w8 q- ]% C! U1 R/ u
2.6 程序 - l3 {( C3 q6 C* f
2.7 进程 ( u% ~* i4 Y4 p5 C5 p
2.8 内存映射 " R4 [' s6 \ E6 g
2.9 静态库和共享库
$ k7 H4 }: G) `8 k0 [' a2.10 进程间通信及同步 ) f4 G! y0 h7 y" F: D
2.11 信号 ; ?: D1 Y X7 s. `
2.12 线程
& P5 m6 m' e" K: U) H; O4 H! l4 m/ i9 `2.13 进程组和shell任务控制 p$ v2 I$ D4 v1 s+ a. @8 }
2.14 会话、控制终端和控制进程
# i& f. [% C0 [/ d# J5 m+ M1 [2.15 伪终端
1 L$ b: ?' X1 b2 l2.16 日期和时间
0 F( @1 H! O+ b( f* V d. G7 H2.17 客户端服务器架构
$ Y X+ [" e }2.18 实时性
: M. B6 ^* S& c9 Z4 [2.19 /proc文件系统 6 ?) u7 B" A, g2 f2 _. G u
2.20 总结
6 R9 Z4 _& r: Q! B2 h5 ]: {第3章 系统编程概念
4 i3 w4 v1 }1 C) D8 X$ S3.1 系统调用 8 _; d' F" _! ?7 ]6 U
3.2 库函数 2 N1 ~9 T7 V, p/ F$ V) _/ M
3.3 标准C语言函数库;GNU C语言函数库(glibc)
+ t- O% t3 v) `3.4 处理来自系统调用和库函数的错误
7 n8 _ e: y0 u, r, H3.5 关于本书示例程序的注意事项
5 _6 I6 ]: @0 ?! ?- e8 v0 H3.5.1 命令行选项及参数 / d" I2 u, j' |
3.5.2 常用的函数及头文件
" s. a% u7 p3 j3.6 可移植性问题 . P) V# y% N2 m
3.6.1 特性测试宏
. P" d1 G$ h( |; a5 n, f# \( C" `. o3.6.2 系统数据类型
w6 v/ G# E1 H! }% {5 B3.6.3 其他的可移植性问题
* X0 O* d, T2 g5 f$ o! h; t% n/ w3.7 总结
8 J, x* d/ ]# n- `3.8 练习 ; r" k+ [6 K$ Q) U, M0 g+ {5 h- k
第4章 文件I/O:通用的I/O模型
% J! r' |6 ~0 v4 M& ~4.1 概述
* {5 m. l5 H T/ I$ y$ c4.2 通用I/O
8 G! `1 N2 Q- d- ]. d# X4.3 打开一个文件:open()
1 Z' m( @' ]; \8 c; ?4.3.1 open()调用中的flags参数
$ a1 A1 \* o9 | _1 \) U4.3.2 open()函数的错误 ) y2 b! V, T( _1 S4 D$ F
4.3.3 creat()系统调用
% a3 I( y. B1 J7 y" H# m* g( J4.4 读取文件内容:read() % H, b; x; `! l* U4 |
4.5 数据写入文件:write() % z0 @8 t, P8 ?% j3 P
4.6 关闭文件:close()
# b4 D7 H L+ m' k4.7 改变文件偏移量:lseek() & _% f4 k$ K$ N0 `( m# B
4.8 通用I/O模型以外的操作:ioctl()
- ~ l# U1 g' e% u2 _6 \, D2 i4.9 总结
_" k7 Y+ E5 g4.10 练习
: \3 b% Z. j, y4 N$ i第5章 深入探究文件I/O 3 F. S6 \2 d- p% D& ]2 p
5.1 原子操作和竞争条件
/ {1 x) P) j; V, V. E& n5.2 文件控制操作:fcntl() * ^7 I/ {7 g2 C/ Q. ?; t
5.3 打开文件的状态标志 $ X2 p: F% m3 ]/ w5 h$ ^/ \9 r
5.4 文件描述符和打开文件之间的关系 V! [' S1 D, {6 u+ j
5.5 复制文件描述符 % ^ g1 U% w- _5 I5 ]- t
5.6 在文件特定偏移量处的I/O:pread()和pwrite()
+ T; g* @ K0 n0 X" e5.7 分散输入和集中输出(Scatter-Gather I/O):readv()和writev()
8 k- v, m) c/ G! C& b5 S7 b, C5.8 截断文件:truncate()和ftruncate()系统调用
2 i8 Q- z# }7 z: N3 c8 Z* N) _5 |( [5.9 非阻塞I/O
- D/ \. n5 s, F! P/ r! U$ Q1 ~7 j- I5.10 大文件I/O
) D* L$ j9 s4 i L+ [: K5.11 /dev/fd目录
& _) G# K! e4 Z9 s0 ?' _5.12 创建临时文件
5 S/ M. w3 G$ F$ Z- s9 ^1 y5.13 总结 9 z6 F, n' ?) I, U
5.14 练习 + z4 ]3 `% G, V; I# j3 L* x4 r
第6章 进程 , |, D$ Z/ ~* Y, W1 Y/ A# M
6.1 进程和程序
+ i. `1 o) z) W6.2 进程号和父进程号
- M) g5 T& j, p$ d- w! H( I6.3 进程内存布局
- {$ Y( h' R3 b$ {( N8 P6.4 虚拟内存管理 2 ^1 p0 _; f& V% w
6.5 栈和栈帧 9 a. }! u6 o- L, a
6.6 命令行参数(argc, argv)
$ V4 [: c! O6 S& k2 p+ o6.7 环境列表 . c2 K v( m' } K' M
6.8 执行非局部跳转:setjmp()和longjmp() / S: j" p$ \2 v" s
6.9 总结 9 q, A$ }; l( e# _- O
6.9 练习
5 `- `; j# E! I1 I4 }* e第7章 内存分配
0 B4 r! ~; @7 f/ L5 x" ]7.1 在堆上分配内存
% x9 Q4 P/ F( `8 r# D" m2 I* p% U) a7.1.1 调整program break:brk()和sbrk()
0 g, }/ Z8 |5 ^" v% ^6 E/ X7.1.2 在堆上分配内存:malloc()和free() " |: {# B) R" x6 B( [( F1 L/ o" G
7.1.3 malloc()和free()的实现 8 }* X3 R! P7 t' t: y5 a
7.1.4 在堆上分配内存的其他方法 / y, i* k. Z* ^% A# p
7.2 在堆栈上分配内存:alloca()
9 ?; ?$ G" f6 t, I7.3 总结 & c, L0 s0 y# {7 X$ N0 E2 G
7.4 练习 % \- \5 C6 k* e. O2 f' b
第8章 用户和组 " a, P+ t$ U' E( [$ Q+ a
8.1 密码文件:/etc/passwd
' @, H: E7 I/ V7 s8 u/ b$ m8.2 shadow密码文件:/etc/shadow - F& z v8 \7 U. L2 L6 B- H% h
8.3 组文件:/etc/group 3 Z, F) |/ Z7 {9 ?
8.4 获取用户和组的信息
" Q1 L/ b# z& \) {+ m& n* x8.5 密码加密和用户认证
" `) X" [4 _, ^2 D, w2 k" ^6 h0 s0 A8.6 总结
( [1 D% d/ _2 a8.7 练习 9 u( W6 K9 ^) C2 V
第9章 进程凭证 4 P, \( T# J$ e' O
9.1 实际用户ID和实际组ID 4 q8 O4 y2 o( ]; d8 C
9.2 有效用户ID和有效组ID # V. r, F I5 }8 [) x
9.3 Set-User-ID和Set-Group-ID程序 $ C# p* U- p P3 s' z; e$ e( r7 T
9.4 保存set-user-ID和保存set-group-ID
0 W# |' M$ @# g9 M2 @) r3 m9.5 文件系统用户ID和组ID ! V/ a6 Q* v. {7 `) K! R" w( _" d/ [
9.6 辅助组ID `$ b0 z0 K0 s' {8 C
9.7 获取和修改进程凭证
( N% ?; p, B! b9 w, L( W8 ]4 K9.7.1 获取和修改实际、有效和保存设置标识 * w* m' P+ f8 P. q. ?
9.7.2 获取和修改文件系统ID 0 S. _1 C4 m7 q% \0 h
9.7.3 获取和修改辅助组ID 2 Z/ {4 _! S% A" p/ W$ y) \
9.7.4 修改进程凭证的系统调用总结 * I% D5 ~+ q6 c
9.7.5 示例:显示进程凭证 % K) n, y, I# a/ F* M
9.8 总结
' x7 J" v7 D2 O3 r2 A9.9 习题 : D, ?# `' w0 h; W8 H4 K4 O5 M
第10章 时间
" c9 u/ I+ B2 h$ f10.1 日历时间(Calendar Time) & B% Q* e S. |: f d8 r
10.2 时间转换函数 ; U8 ?/ z9 s! N, R9 N/ V: G& W/ K& L3 r' i
10.2.1 将time_t转换为可打印格式 : ` v+ G/ U# S/ P
10.2.2 time_t和分解时间之间的转换 / p' D! @- z# W; x
10.2.3 分解时间和打印格式之间的转换
: g M: N; A9 V$ j4 w. b$ R' c/ W10.3 时区 7 r+ c* ~5 E0 r, R
10.4 地区(Locale)
3 ~; e. @3 v9 u/ q; m10.5 更新系统时钟
7 H. }/ [% }! a- s10.6 软件时钟(jiffies) 0 _* o! v V1 x! C
10.7 进程时间 ) S# y3 U" M3 M
10.8 总结
" ~+ r+ G1 e2 w10.9 练习 ( _0 p- E5 m( E" s
第11章 系统限制和选项 1 v- K* r* X* P% L1 u5 S
11.1 系统限制 , e2 Q* V) Q& _+ M+ w. Z" Y. l
11.2 在运行时获取系统限制(和选项) * D8 m z# i! H4 A9 Z
11.3 运行时获取与文件相关的限制(和选项)
2 ? W/ Q$ e4 l. W* G: i; J2 s11.4 不确定的限制 * r/ l; C8 }5 M6 _
11.5 系统选项
( I5 t! f2 M$ g+ C7 O11.6 总结 " l# |3 X5 q& R1 m: }4 I
11.7 练习 & S6 F; |4 D C( G: o, s
第12章 系统和进程信息
3 v+ O' P0 \4 Z& H7 j8 P& Y12.1 /proc文件系统 0 G8 H. \+ P- J- K- {
12.1.1 获取与进程有关的信息:/proc/PID
- { y ~% T. V12.1.2 /proc 目录下的系统信息 0 l( Z: f3 z7 e \2 F" D9 m
12.1.3 访问/proc文件
/ ^4 |+ W3 V, L2 g% @: X5 f12.2 系统标识:uname() ; b; \* @' O- Z6 R
12.3 总结
+ f l v4 N$ {9 w# W2 H12.4 练习 ' q* l* m# C' }: \0 J% d: x/ e
第13章 文件I/O缓冲
- B+ U' k2 t9 Y+ s13.1 文件I/O的内核缓冲:缓冲区高速缓存 O8 ^5 O" Y9 U2 A) Q
13.2 stdio库的缓冲
3 D! g. j# x2 ^9 W- H13.3 控制文件I/O的内核缓冲
/ Q j+ y5 C* [13.4 I/O缓冲小结
' ?/ j. u' X1 V! I7 L" }/ m5 \+ F3 Q13.5 就I/O模式向内核提出建议 % B. Q5 ~3 E) H- q) Q
13.6 绕过缓冲区高速缓存:直接I/O
/ D: Q1 m5 `! F5 b13.7 混合使用库函数和系统调用进行文件I/O - Q$ j2 s' h& q( v2 j6 }
13.8 总结 4 F; I+ A$ R/ y: l$ J; G
13.9 练习
% G* w# B2 D3 U第14章 系统编程概念
0 P. V2 [# x: V* J: i% g14.1 设备专用文件(设备文件) 3 G" @$ ], \* b2 ?
14.2 磁盘和分区 9 }( m5 N E2 H9 i1 u- w8 g
14.3 文件系统 , u. z9 A# @- y! M( J6 k; D1 B% v. u
14.4 i节点 # w) V' j: q5 ]4 h, i# T
14.5 虚拟文件系统(VFS) - X' v5 Q+ T! [ x2 A
14.6 日志文件系统
/ @, E2 a8 h9 S: j4 l& {14.7 单根目录层级和挂载点 7 i- q! m/ D: \, O" g- o
14.8 文件系统的挂载和卸载 5 z" p- i8 E4 f
14.8.1 挂载文件系统:mount()
8 | {* A9 Z/ f3 n" {. z14.8.2 卸载文件系统:umount()和umount2()
7 N+ v- ]! P4 Y/ {, P6 m14.9 高级挂载特性 # a% J- n1 a6 F# J" E5 T
14.9.1 在多个挂载点挂载文件系统 e- @# e5 g8 W
14.9.2 多次挂载同一挂载点
: q: D& f$ ]$ K5 o+ M14.9.3 基于每次挂载的挂载标志
7 a1 L4 Q, N4 ^14.9.4 绑定挂载
* u# ~1 h3 r4 y8 E b14.9.5 递归绑定挂载
; p9 F" q0 B4 U/ _3 V' I* R" G14.10 虚拟内存文件系统:tmpfs a* T3 X$ v+ P* u: ^+ H3 O
14.11 获得与文件系统有关的信息:statvfs() 4 o7 e! y% K# L% l. d1 r. c) Z
14.12 总结 " h* F: r5 b2 P3 w. `
14.13 练习 : s3 b6 H) @. z. l! @. ~& w
第15章 文件属性
- C- [4 P# [& j( n4 X' q! e* l& s15.1 获取文件信息:stat()
5 p" Y4 k1 }0 m/ a! u, s% K15.2 文件时间戳
6 K Q0 Y2 H$ s/ @15.2.1 使用utime()和utimes()来改变文件时间戳 : b4 n9 N) @ O5 q) u# g
15.2.2 使用utimensat()和futimens()改变文件时间戳
% }& B% C5 @6 w1 D* D4 }/ j2 ]15.3 文件属主
2 e2 }8 x4 A& A8 k% a& P2 i; f0 d15.3.1 新建文件的属主 ; R6 X8 v- l2 J+ W
15.3.2 改变文件属主:chown()、fchown()和lchown()
- o5 W9 J( y5 f) P7 m15.4 文件权限 . I( i) J7 x) i/ h
15.4.1 普通文件的权限 ; e4 ^3 r' w+ Q0 c% f3 D# g
15.4.2 目录权限 0 C3 d# f, T/ I! D0 M
15.4.3 权限检查算法
# U6 ^2 o @+ f4 P, A, Z* {, Y$ j15.4.4 检查对文件的访问权限:access() $ q1 i4 N. ?) X) L3 |1 s; _5 |. B
15.4.5 Set-User-ID、Set-Group-ID和Sticky位 ( {& z( ^9 B& r% ~% C
15.4.6 进程的文件模式创建掩码:umask()
0 j/ X. `& @8 n* w/ N15.4.7 更改文件权限:chmod()和fchmod() : b3 B$ z1 g0 n+ ~7 c
15.5 I节点标志(ext2扩展文件属性) * O: h* v; R" e C! G
15.6 总结
. A6 z. G' t/ D7 ~4 I" t15.7 练习
( {3 b8 H+ S8 A; ]第16章 扩展属性 * _- j1 Z$ n1 ]* {# z* P
16.1 概述 8 p1 D$ y" ?/ u1 O5 ]8 Z
16.2 扩展属性的实现细节
% G7 ]' [& \4 m, q% _16.3 操控扩展属性的系统调用
# m! s, X- b/ m$ n) L9 ?16.4 总结 ; f% f9 t2 u& U
16.5 练习 8 u3 ?) H1 E" q# q3 | b- @ k6 Y8 n
第17章 访问控制列表
% C7 H. Q9 g& y9 _5 y17.1 概述
9 ?* o9 C5 l" q) K. }, t17.2 ACL权限检查算法
4 s% \8 O0 n& n! T+ \8 O. B17.3 ACL的长、短文本格式 + x% c4 ^7 ^7 |1 W/ C% r }
17.4 ACL_mask型ACE和ACL组分类
# c8 O9 A) C" }5 x9 Y3 @7 T17.5 getfacl和setfacl命令 - d4 l! l3 k, l% f0 h+ j
17.6 默认ACL与文件创建
0 m) l" M9 [; U+ v17.7 ACL在实现方面的限制
' ]. E; B* L! E( U# n) H1 Y' V17.8 ACL API 5 H2 C$ D( Y5 p! l1 m9 f
17.9 总结 / l: b3 [8 `% l
17.10 练习 5 |- c2 x/ [7 w) I' k. R
第18章 目录与链接 # ]+ q' }( x# S; q
18.1 目录和(硬)链接 ! W( b( T) t: z% }& {. [ Y. i c
18.2 符号(软)链接 ! O0 B" W7 s2 R$ A1 I3 k u+ J
18.3 创建和移除(硬)链接:link()和 unlink() $ e- T6 ~5 n( x: q" \
百度云盘下载地址(完全免费-绝无套路):) C2 e+ o* T/ u
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|