|
Java电子书:Linux/UNIX系统编程手册(上、下册) 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
) b) y; F5 z& e3 T# Y, ?, Y
7 C: x0 b, I) r x7 b, ?( j$ K* c) \1 @
编号:mudaima-P0070【Java吧 java8.com】
" l1 B ^1 f1 v+ w1 H8 d
, ]. ?5 Z K" U; V+ q' m; c! p; l: f; n: K
! l# k V& s) N, y! AJava电子书目录:上册
0 X$ `- g8 s6 K7 |第1章 历史和标准
- ]9 m# \( |1 v6 D1.1 UNIX和C语言简史
' F1 R2 n: R+ a& c; X* _1.2 Linux简史 - j7 j6 w' P0 a: l0 M
1.2.1 GNU项目 - w8 a1 H! y9 T' G+ W1 X! a0 `: {: [; G% z
1.2.2 Linux内核 _$ T/ M$ N5 G+ R5 Y" w
1.3 标准化 ( O9 n. P3 [* @ b8 K& G
1.3.1 C编程语言
0 ?% M! z. s0 ~$ B9 Z4 M8 ^1.3.2 首个POSIX标准 # z0 p2 a9 | g1 f5 M9 w0 W0 b
1.3.3 X/Open公司和The Open Group " R7 ?; t& x3 X. I
1.3.4 SUSv3和POSIX.1-2001 / R8 M& z( H2 [" b
1.3.5 SUSv4和POSIX.1-2008
1 a+ k" r: u2 U1 i3 l1.3.6 UNIX标准时间表
; i F! [; R- D2 E: v- N1.3.7 实现标准 ) R- {$ [4 Q) w
1.3.8 Linux、标准、Linux标准规范(Linux Standard Base) 7 K. w8 Y& e( b% @
1.4 总结
! M4 S: M& \! f: ~2 u6 d第2章 基本概念
0 {! d( B0 }1 H( n) u2.1 操作系统的核心内核
' q ]" b6 p( A& p& v2.2 shell " F3 F& j) |9 q0 U; L! T! U! M- f/ x
2.3 用户和组
" P1 Y/ Z2 K: g) Y' k, d% Y2.4 单根目录层级、目录、链接及文件
4 N2 ], G+ _) l! F7 v$ M2.5 文件I/O模型
4 Y$ I7 D X& p$ J/ {- W/ ~6 b2.6 程序
- c% f& p4 R- L2 S: {$ A. ]& i2.7 进程
7 F! o$ {% _8 R4 e" o2.8 内存映射 - \3 n W! R( [. `
2.9 静态库和共享库
3 s% b' c ~- l% [3 {, c2.10 进程间通信及同步
! k, S0 k! m4 \) O; u2.11 信号 ' U5 @& v( f6 n! b4 b0 x% n0 I+ ]3 A
2.12 线程 , y' l2 A! K. K& C* d. H: e
2.13 进程组和shell任务控制
; E4 C0 o! ?" c7 r; k2 n8 v2.14 会话、控制终端和控制进程 9 Y/ p( E4 t+ `) T
2.15 伪终端
Y# @9 ~7 D3 \0 z4 s- }2.16 日期和时间 ) D `8 c! v \- X& A
2.17 客户端服务器架构
0 j8 J, M# I. V9 h) M% X2.18 实时性
0 e0 E& e7 h) k; |; T. j0 q2.19 /proc文件系统
) A! C* B6 _8 c8 {) j. U, \2.20 总结 ; ?7 e% S# L( x K, ^8 o
第3章 系统编程概念 - I! O% h8 S5 Q6 e+ f
3.1 系统调用
2 X2 p$ X( A! e& x% u) L3.2 库函数 4 s( a3 V. u( i0 x) J7 {
3.3 标准C语言函数库;GNU C语言函数库(glibc) $ a$ n( H1 d$ v# J; }
3.4 处理来自系统调用和库函数的错误
8 e E3 y! D0 r# P2 v1 V3.5 关于本书示例程序的注意事项
4 E' K% O, I; L, b) N5 T: V3.5.1 命令行选项及参数 0 V9 z# }' u8 {) H! A1 \
3.5.2 常用的函数及头文件
# b+ J, e6 i1 {, ?5 ^ p3.6 可移植性问题 ! e5 n; }3 y) Z" n# P1 |3 l, E* R
3.6.1 特性测试宏 # g0 u& D" \% R! q8 x' ^. I& h5 ?
3.6.2 系统数据类型 5 q8 R- P$ [1 Q; t# r2 b" e# w
3.6.3 其他的可移植性问题 2 E# ]$ @* D" x" W2 @' H- V# b3 U
3.7 总结 - N6 d5 k( z/ [" j' N- @
3.8 练习 . e5 c ?% P" w6 ^3 s4 g* ]$ a
第4章 文件I/O:通用的I/O模型 . X6 o* X* @! s! f+ s- U1 _
4.1 概述 ' k- U& b9 `+ F. r# x1 Z; B0 R u
4.2 通用I/O
* C0 g# j6 ]+ h0 Y5 M# S4 l4.3 打开一个文件:open() 1 D: i7 f# } U5 h
4.3.1 open()调用中的flags参数 & u) S, K. ^: n9 m' B( T. |# M1 b
4.3.2 open()函数的错误
2 R) j* X. u7 F/ U$ V! D u4.3.3 creat()系统调用
* s( D$ w5 ]3 c1 c5 L' I: G4.4 读取文件内容:read()
" N$ r% U* Y& S, _" v4.5 数据写入文件:write()
' h. d- Z0 x( X3 C- F" A4.6 关闭文件:close() + l' M2 U) Z$ J5 w! j' T
4.7 改变文件偏移量:lseek()
8 f0 d8 ~+ l* S4.8 通用I/O模型以外的操作:ioctl()
) c% @: i% ~2 i- C- \2 m9 E4.9 总结
) j5 ~% p9 o1 E8 K: ?: o) m& @/ f7 h4.10 练习
4 @" ~1 O% V& u2 W第5章 深入探究文件I/O
5 w2 \# u( t; D% s9 H! b% J5.1 原子操作和竞争条件 b( U& J5 U1 {
5.2 文件控制操作:fcntl() 8 ?5 U1 n* {+ j: O# t" L; }0 D
5.3 打开文件的状态标志
" b& f8 B# |) f1 Z# [: w5.4 文件描述符和打开文件之间的关系
& g9 @& G9 r h; I; {2 _6 r1 x. o5.5 复制文件描述符 . U# F! k' Z# D
5.6 在文件特定偏移量处的I/O:pread()和pwrite() % H: m+ [! p5 Y& y
5.7 分散输入和集中输出(Scatter-Gather I/O):readv()和writev()
# @1 h4 G% I% }" ~% R6 T3 a' H5.8 截断文件:truncate()和ftruncate()系统调用
: f; x. O; G+ j# A( X( w- T6 q5.9 非阻塞I/O . E8 O7 h. b& L7 U
5.10 大文件I/O % s, H% U2 @# V. \# ?7 {- }: h
5.11 /dev/fd目录 ; ?, Q+ m2 g- T$ M% M
5.12 创建临时文件
& o' R) o4 F9 w( ^" k5.13 总结
8 u, a4 A! @# t- |5.14 练习
# U, e% v5 U$ z$ U6 k' x/ D+ j第6章 进程
; s- S9 B& Z: g% |6.1 进程和程序 ( y: J) G# l7 s" V3 B
6.2 进程号和父进程号 B* P% K6 n7 ^& {3 F1 p
6.3 进程内存布局
2 a, b0 `! f h. s3 s6.4 虚拟内存管理 ' n" N+ m' A# ?8 Q- n8 `9 q, z6 [& y3 S
6.5 栈和栈帧 8 k. y; ?# {) I& ^
6.6 命令行参数(argc, argv)
$ ?/ `" m. n/ Q6.7 环境列表 ; }2 G i' ]8 b3 R! c& U+ Q
6.8 执行非局部跳转:setjmp()和longjmp()
* A: P$ d/ _) x0 f, J6.9 总结 7 a+ ?" L' j# u
6.9 练习
+ Y9 I8 T# E" I/ m第7章 内存分配
9 g/ Y3 a$ O2 {+ e2 d" E2 i7.1 在堆上分配内存 ( s9 l1 c4 E: z4 L! ?3 K" I( h
7.1.1 调整program break:brk()和sbrk()
" d a8 J8 ^# l2 t& {, ` J9 D7.1.2 在堆上分配内存:malloc()和free()
2 e. M6 C3 h4 t( \+ V7 E1 J7.1.3 malloc()和free()的实现 ) Z* W; j" R8 P( e( X5 i
7.1.4 在堆上分配内存的其他方法
: X0 a7 m6 C2 j7.2 在堆栈上分配内存:alloca()
7 [' N* R+ v- [7.3 总结 3 J. @6 ]1 Y& j
7.4 练习 . }# K0 Y# [! \
第8章 用户和组 . C# C" R5 \+ H& v) W; L2 Q( V( U
8.1 密码文件:/etc/passwd
1 M# |1 S" {$ u3 T' E% k) q8.2 shadow密码文件:/etc/shadow 3 J: v* M* r- t! T5 l
8.3 组文件:/etc/group : @' g! }5 d( H
8.4 获取用户和组的信息 / W, o6 @. c' p- u/ m
8.5 密码加密和用户认证
+ ?6 x, u5 |' b8 h8.6 总结 4 m8 ?4 Y: H$ t2 W+ B
8.7 练习 * J+ Z$ e; u& G v# ]
第9章 进程凭证
! l V) d' F7 c8 {' Q3 D9.1 实际用户ID和实际组ID
( U5 k" ]- R( M- U) a( |& W8 F9.2 有效用户ID和有效组ID
" B: w* V5 f* {8 d7 A6 X6 _9.3 Set-User-ID和Set-Group-ID程序 0 k/ L0 i, ]0 ~/ N. I% b" t
9.4 保存set-user-ID和保存set-group-ID + x( [; `) @$ c, T; B: k0 q
9.5 文件系统用户ID和组ID
/ I1 P" }6 [! g' J1 q9.6 辅助组ID . x* r0 P# V1 s& p8 c2 j/ Q
9.7 获取和修改进程凭证
9 O M' v* A( u1 z9.7.1 获取和修改实际、有效和保存设置标识 % t; H/ u0 s+ J6 a% m* S
9.7.2 获取和修改文件系统ID
% ?' ]! m% ?0 h6 `. s7 z0 H9.7.3 获取和修改辅助组ID
, e3 P* b, e' G- ^" M1 g/ f! H9.7.4 修改进程凭证的系统调用总结 " S; h, s8 G3 M
9.7.5 示例:显示进程凭证 3 B3 @! G- d! Y
9.8 总结
# V% `) Z- d( q9 [; r9.9 习题
7 u& r4 u( B* j- S/ c2 W第10章 时间
3 C8 V. x9 m$ C7 L r: O5 D10.1 日历时间(Calendar Time) * G3 e/ @: I. n) c! K6 L
10.2 时间转换函数 8 X/ O+ m, r' i8 i @ ?
10.2.1 将time_t转换为可打印格式 6 U3 J- e3 S! M" y: F
10.2.2 time_t和分解时间之间的转换
( v* K+ S+ f0 P8 r, n1 C10.2.3 分解时间和打印格式之间的转换 & ?, G5 U! B5 f! \. ?- w' [% |. x3 h& V
10.3 时区
5 i4 }& W5 q+ I4 Y7 j0 B10.4 地区(Locale)
2 l0 M, N( c5 x Z% b5 |- o) _10.5 更新系统时钟 ! T; b6 C) T+ J y
10.6 软件时钟(jiffies)
6 v ]* L7 r+ X10.7 进程时间
1 y% c5 G g, ]4 s& h" D10.8 总结 & s" A7 ~% \2 i0 Z3 @% m
10.9 练习 3 O% W5 S/ M' V1 |/ p8 z6 ~ j( O" H
第11章 系统限制和选项 : f0 D2 k; j2 `
11.1 系统限制
a& J; r6 k5 T/ d1 J: f11.2 在运行时获取系统限制(和选项) 2 I9 ~- V5 ?- O$ ]$ U# F9 h
11.3 运行时获取与文件相关的限制(和选项) 3 }( Y# ^9 J' Q' w: d
11.4 不确定的限制
( A" G6 E+ { @/ G, z) [11.5 系统选项
3 o3 c! M' E: S$ S: q11.6 总结
! p0 A4 P8 u. B0 o11.7 练习
" m' N+ H% f6 N1 J2 ?3 ~8 `第12章 系统和进程信息
6 B% h6 D* U: [- o- v. A: X' A6 ]12.1 /proc文件系统
# t, w6 f% g, V' \; P12.1.1 获取与进程有关的信息:/proc/PID ) r/ p* V' G% a! d6 r, O
12.1.2 /proc 目录下的系统信息
2 T+ }- x4 O7 W- z2 v) M* m12.1.3 访问/proc文件
! l# k- }6 x$ }8 o4 \12.2 系统标识:uname() " D. F& q9 c$ C" _8 l' a6 b$ p8 s" N
12.3 总结
( Q2 @- |! E: ^( k% m! l9 ?12.4 练习
* s, E2 ]: X' G* H第13章 文件I/O缓冲 ( N& w9 A' |- u' Q5 U1 y8 D
13.1 文件I/O的内核缓冲:缓冲区高速缓存 " n8 X ^5 J; |7 W; k. ~
13.2 stdio库的缓冲
! M* o: p2 c' I' b/ g$ o13.3 控制文件I/O的内核缓冲 9 P1 V9 E- O8 f! M
13.4 I/O缓冲小结
/ s) }( t- y2 z2 q13.5 就I/O模式向内核提出建议
! [4 k+ t) d u7 I$ f13.6 绕过缓冲区高速缓存:直接I/O
k! R; |4 |* e4 A. O13.7 混合使用库函数和系统调用进行文件I/O 9 O5 w1 l# ^ n! Q( @" G% ]) b4 q
13.8 总结 ) M% p5 S% O2 m) _& A5 r
13.9 练习 9 ]4 D. q/ w# B
第14章 系统编程概念 8 t# Q, e+ _* v. t2 n, {1 L1 H
14.1 设备专用文件(设备文件)
& I/ | s ~- z14.2 磁盘和分区
; l; @1 L+ @1 U0 G& H% I! Q14.3 文件系统 5 L6 t) z7 l7 y" b- Y
14.4 i节点 " k0 `0 m% h, P
14.5 虚拟文件系统(VFS) 2 s' ~" x2 B7 _+ m* ]% t6 B
14.6 日志文件系统 5 w' w' O* f5 O I6 L
14.7 单根目录层级和挂载点 1 l# Z6 |2 y( f' F8 J. z% v7 j% U4 j
14.8 文件系统的挂载和卸载
/ v9 V' m: {7 I$ e" T4 M& [2 `14.8.1 挂载文件系统:mount() 8 J$ c6 w! ?# n+ \/ w
14.8.2 卸载文件系统:umount()和umount2()
7 z6 E' q* o" q/ B$ @; H8 i14.9 高级挂载特性
& i3 e& r' d# l14.9.1 在多个挂载点挂载文件系统
* d! z. j! l0 X% ~( b14.9.2 多次挂载同一挂载点
U! {) ^# d2 Z6 {$ c2 t% ~14.9.3 基于每次挂载的挂载标志 * G' I1 i. p6 H6 n0 _ [
14.9.4 绑定挂载 6 _: {+ m+ {) y# Y, e8 S' H
14.9.5 递归绑定挂载
2 }( Q3 W ~! k0 [' I8 G/ N2 D14.10 虚拟内存文件系统:tmpfs
; T/ M3 `- D* d0 X' j14.11 获得与文件系统有关的信息:statvfs() $ I/ @4 w3 i2 I6 ]/ J" ^6 T2 }) o
14.12 总结
! T8 S i5 q% L: P! \14.13 练习
7 T/ ]! L. W# Q0 K& ^- N( R第15章 文件属性 7 C* U! k; s& A* D/ L
15.1 获取文件信息:stat() ! r: T* B# n5 Y+ Z& a- E! W: h1 U4 }" X
15.2 文件时间戳 ; J# E$ t+ U7 O0 j6 W5 u' i' ~
15.2.1 使用utime()和utimes()来改变文件时间戳 ; i& _. a9 e) g/ z# l" U+ q
15.2.2 使用utimensat()和futimens()改变文件时间戳
! @8 ]/ e9 M# D& \15.3 文件属主 : I0 N* B) G7 g S
15.3.1 新建文件的属主
, I! n2 w1 W1 C* h2 B3 \6 g15.3.2 改变文件属主:chown()、fchown()和lchown() 8 a% T# L9 g% X* G3 H5 L$ Z
15.4 文件权限 W0 x' Q) {1 ~9 |4 Y N) r
15.4.1 普通文件的权限
/ J1 h0 g; |% r1 {, d, R, l0 [15.4.2 目录权限
# l% B* f" h! O3 b$ v* J15.4.3 权限检查算法 2 _/ X: h* ?1 {6 S4 R6 k
15.4.4 检查对文件的访问权限:access()
2 d* F. h- [! i' r3 O# y15.4.5 Set-User-ID、Set-Group-ID和Sticky位 : ~+ {$ h ~$ B) v! U" W
15.4.6 进程的文件模式创建掩码:umask()
6 R5 S* W. `" K15.4.7 更改文件权限:chmod()和fchmod() / b! |6 H1 @4 I/ a" c! T9 a1 {
15.5 I节点标志(ext2扩展文件属性) / z: t, H) l2 e# L3 I1 A- \
15.6 总结 ' a4 l) V# @+ u# O1 l6 W
15.7 练习
4 _) M9 f9 i6 l3 U第16章 扩展属性
' A/ _( g4 i0 i' C16.1 概述 5 d4 F$ w! R6 Q3 K
16.2 扩展属性的实现细节 , w: p N% m) \& j
16.3 操控扩展属性的系统调用
: _& Y, a& S) e# {) [: b& }) \16.4 总结
# P; o% j8 A1 q" A, @8 M5 E& T16.5 练习
: x" N7 W/ F5 k4 q; {第17章 访问控制列表
; J5 @# I* l4 c9 Z' S# u3 d: R& c17.1 概述
' X2 V4 H3 P, b) |: ^8 q17.2 ACL权限检查算法
" c/ O3 P" x4 B5 R$ S" A( U4 X5 J17.3 ACL的长、短文本格式 ! w: r7 } G: r$ B
17.4 ACL_mask型ACE和ACL组分类 : g& u& L6 ^/ a6 D
17.5 getfacl和setfacl命令 7 K% V9 N9 n0 p) ^( U- r* ]
17.6 默认ACL与文件创建 2 h& g8 h/ q+ ~
17.7 ACL在实现方面的限制 9 Z3 i a# F& V8 E! b4 m
17.8 ACL API % B& u6 i6 u. I2 t+ V3 a& t% r
17.9 总结
* a& M" L# y$ Y/ K8 U) |6 y17.10 练习 . Q/ _. p; b; ^) s1 W! s! }
第18章 目录与链接 / d. _% S) I" D- F2 W/ x- v- A( Q
18.1 目录和(硬)链接
+ J w" q/ @! u' e18.2 符号(软)链接
" _4 y" X6 h" \# C. Z8 @ ]18.3 创建和移除(硬)链接:link()和 unlink()
9 T( c: a: h+ y) X8 m百度云盘下载地址(完全免费-绝无套路):# N5 u8 d& k- G* Z
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|