TA的每日心情 | 开心 1 小时前 |
---|
签到天数: 382 天 [LV.9]以坛为家II
管理员
- 积分
- 12632
|
Java电子书:现代操作系统:原理与实现 PDF 电子书 Java吧 java8.com
% J# q2 U4 e% i+ Y
4 M+ Q# F/ k W9 W) q+ B/ j. u作者:陈海波夏虞斌等 著出版社:机械工业出版社出版时间:2020年10月 ) w) b6 Q/ o" A1 a w6 U2 ?
. ~& l# T. C3 y% g' N8 _7 u
编号:166-Java吧资源免费-X0097【Java吧 java8.com】& S) O/ A6 e1 r' {+ x* h
+ O! I% q h6 I8 J: Q
( B$ I4 U! y2 m5 t" I
* f' I$ y5 p: l! [# G! e" M目录:) \, N5 v, H, o7 _; g, ?
序言一
: y" k9 C9 j: n, ?序言二
) W1 a( I. [7 x$ k2 [4 K" V前言. G& n2 Q( D% b; C+ L
部分 操作系统基础2 C) U! [, y, n& P# A& [
章 操作系统概述 2$ L; ?, K I* C/ r, F6 n1 @9 s
1.1 简约但不简单:从Hello World说起 2
6 ]) M" z! J' `3 X, M$ c1.2 什么是操作系统 3
0 s9 d& U, f% m+ @1.3 操作系统简史 6& o) ^& W/ x6 H" T7 E6 o- B# d
1.3.1 GM-NAA I/O:个(批处理)操作系统 6) l; t. W8 ]# H" P
1.3.2 OS/360:从专用走向通用 66 U# P9 ]& ?9 R
1.3.3 Multics/UNIX/Linux:分时与多任务 7
5 D$ u' n& X1 f: {1.3.4 macOS/Windows:以人为本的人机交互 86 S0 p3 z2 j2 p7 i. E
1.4 操作系统接口 9
; C- P1 U& Z- H% o" c0 y1.5 ChCore:一个简单的实验操作系统 112 [$ a" Z' w8 j" p9 R* L$ D
参考文献 12) `; ]1 k- p$ b
第2章 硬件结构 13/ c9 H* `& c Z
2.1 CPU与指令集架构 14
- L+ ~* Q7 F6 [3 q0 q! @8 }' ]2.1.1 指令集 140 k+ ^9 c8 G# ~ m
2.1.2 特权级 15
. Q- p( D$ t4 |6 m7 s( P! [2.1.3 寄存器 17" r0 f: ?! e5 w8 ]: G
2.2 物理内存与CPU缓存 17
. y% {7 X6 K% o5 U( G+ A1 _2.2.1 缓存结构 18. y8 }5 H. j" Y p
2.2.2 缓存寻址 19
8 c3 i* G8 K9 y% w! ~; k2.3 设备与中断 20) T; i J! I8 I" J
2.3.1 内存映射输入输出 200 P- N/ O, J+ v
2.3.2 轮询与中断 21
8 W0 O4 K2 C& z7 [0 K1 x# A: X2.4 思考题 22! w( ~; b% R5 L" h
参考文献 22
& F2 R9 ]% t8 Q3 _2 Z/ G! i第3章 操作系统结构 23! U5 w1 S! d( r9 i6 t
3.1 操作系统的机制与策略 24
* G- j2 |* g5 ^! ~* C+ }3.2 操作系统复杂度管理方法 25
3 J/ a. i7 n+ k; H+ K# z3.3 操作系统内核架构 27
9 ~" N' p$ W& q( C3.3.1 简要结构 272 `3 @/ l) U# ~
3.3.2 宏内核架构 28( D& E9 i# i- M
3.3.3 微内核架构 30
9 U# {; I9 r7 c; F. C2 l4 V, ~3.3.4 外核架构 32
; x) D* x/ }' \7 J: x& F, v3.3.5 其他操作系统内核架构 34
; M2 `# A# G& v- i+ ^( J) l" _1 Z3.4 操作系统框架结构 35
, Y' R/ O V: Q3.4.1 Android系统框架 35
: Q3 o! a9 _% R1 o3 ^3.4.2 ROS系统框架 37! v$ m0 j+ c6 v
3.5 思考题 395 H5 s$ d. E4 Y( S: V% L4 @7 N$ W$ m
参考文献 40 java8.com$ `2 n0 G7 N1 P1 c* Z& i
第4章 内存管理 42( j9 a; D0 S6 Q$ R' G$ P
4.1 虚拟地址与物理地址 43
( G! n* R6 w% s: R, f8 T4.1.1 初识物理地址与虚拟地址 43
: r1 F7 h0 n3 w3 Y) i5 c4.1.2 使用虚拟地址访问物理内存 44
; q) Z& [! o- C% d4.1.3 分段与分页机制 448 J9 R. ^$ b5 Z8 t' {0 o
4.2 基于分页的虚拟内存 46
( d, k) l' _( s. E4.2.1 AArch64架构下的4级页表 471 _5 z& H& Q. \% v M" e' C( c! l
4.2.2 加速地址翻译的重要硬件:TLB 49
# h: a5 B7 ? @0 ]4.2.3 换页与缺页异常 52. x0 g. v. N0 n$ U
4.2.4 页替换策略 54
4 U% W, z; L+ V5 X$ A3 U5 _' G4.2.5 工作集模型 57# x; D( r+ a# X. M3 x
4.3 虚拟内存功能 58+ f3 s+ M1 t5 w8 t
4.3.1 共享内存 582 {! r9 ^5 M+ G- T7 x6 D* F, h+ P
4.3.2 写时拷贝 58/ h! t- _# Z, M; q
4.3.3 内存去重 60
# n+ f* _! e( {) w6 Y3 {4.3.4 内存压缩 60/ }# z' {) I0 I$ s
4.3.5 大页 61
6 I. }: i3 _0 t+ d. Q6 C7 H" Q' c4.4 物理内存分配与管理 62
) N7 H& |! d0 Y; `- z+ l4.4.1 目标与评价维度 62
) V6 b" }3 N9 R' c& F/ g' u& _4.4.2 伙伴系统 63
" Y+ _2 c; T- {! a, Q' G4.4.3 SLAB分配器 65; V- X8 T) {* ^0 w) z5 Z; q" G
4.4.4 常用的空闲链表 660 d' ]0 O( p* ?
4.4.5 物理内存与CPU缓存 68
; x" Z" z8 i/ V/ S7 s( W4.5 案例分析:ChCore内存管理机制 70' l1 L7 } c+ J P$ H5 L8 ^# J O
4.6 思考题 73
& C8 K; F$ K' O) g参考文献 74
! H' ?& I ^/ y! v/ |! d2 ^7 A第5章 进程与线程 76
. z8 s- H$ X! n% c1 |5.1 进程 765 ~$ g4 `$ t5 `3 U6 A
5.1.1 进程的状态 76) k" L( a$ q+ j) T. Z! L z
5.1.2 进程的内存空间布局 78
( q/ ?0 b& `: f& g) c5.1.3 进程控制块和上下文切换 797 @3 h7 N+ A! ~) A1 H0 ~
5.2 案例分析:Linux的进程操作 80; ~+ c+ l8 t4 r
5.2.1 进程的创建:fork 80
3 z z! ]2 N- I+ g; a& K9 W5.2.2 进程的执行:exec 84, t( w+ w3 O% l1 E E! G
5.2.3 进程管理 851 [! B' Y$ ]" H1 a. ~
5.2.4 讨论:fork过时了吗 89
" R( k5 q8 U6 y' x. {# o3 j# U- P6 A5.3 线程 92
8 V) U8 H8 d. Y9 k4 x, h/ z4 Z, \5.3.1 多线程的地址空间布局 93
" e( {/ D' `2 m5.3.2 用户态线程与内核态线程 93% k; u. ~8 [$ N# R! E2 Q
5.3.3 线程控制块与线程本地存储 94
: m) i; I4 l2 ^% r, `5.3.4 线程的基本接口:以POSIX线程库为例 95
# c7 L7 u; i5 z+ F3 d+ x( d5.4 案例分析:ChCore的线程上下文 99
' n" A/ C* q+ @# Q5.4.1 线程的上下文和TCB 99
1 P5 `6 W% X: G# J" Q$ f9 U5.4.2 ChCore中上下文切换的实现 100
/ `: Y# ~- m0 ]; g" \9 `5.5 纤程 102 J+ H" ^6 _$ K1 F% `; B& I9 n$ T
5.5.1 对纤程的需求:一个简单的例子 103 p7 m$ j- ^# n9 z7 N# x/ f+ V
5.5.2 POSIX的纤程支持:ucontext 103
1 ~ t/ _ r2 `0 h5.5.3 纤程的上下文切换 1053 z- r+ u a) m. u0 Q0 p
5.6 思考题 106
+ _1 Q" B4 F4 o# I# ]4 K' @参考文献 107" h$ u( A+ t# y% i4 x
第6章 操作系统调度 108
9 ^# B8 U7 _/ f3 U6.1 计算机调度简介 108
; g+ O; f4 z+ `+ E6.1.1 操作系统调度 110
7 T. B& [* w: x% `3 R _6 @6.1.2 调度指标 111' K- _6 x5 L6 P
6.2 调度机制 113. U G6 ~+ \6 D( u! J* {9 j0 I- p% q J
6.2.1 长期、中期与短期调度 114
" {. p v/ y( `( U- }' [6.2.2 任务调度总览 116
! U2 r/ X# _0 c" G4 a* y; d6.3 单核调度策略 117. O5 u2 ^. A9 [4 C
6.3.1 经典调度 118
$ y5 C& \$ m9 n0 i6.3.2 优先级调度 122, v& @' U5 M& |3 _: v
6.3.3 公平共享调度 127+ E% c P4 t1 w: w/ Z4 z6 z
6.3.4 实时调度 133
# r+ w; b9 B0 P" ]- x, e* \* W$ d6.3.5 其他调度 138$ [- z$ M* b$ v
6.4 多核调度策略 141
" F: ^2 G; Q9 @2 `6.4.1 负载分担 141
/ X3 f, O- o% ~& q1 r: y6.4.2 协同调度 142# V' A, x8 Y: H! a# }$ v* W
6.4.3 两级调度 144/ S4 C* k6 I: C2 F
6.4.4 负载追踪与负载均衡 145 @+ L* j' n8 {1 [( h! F5 e
6.4.5 能耗感知调度 1486 X- t2 W" z4 L% e' v% f
6.5 调度进阶机制 151& v Q7 g; f( T* i0 o1 u
6.5.1 处理器亲和性 152) r. V8 h5 W* \
6.5.2 调度策略设置 153
1 Q: ~2 f- e c4 s' h- q6.6 案例分析:现代调度器 155
% g' |6 {! v! {0 w- p7 Q6.6.1 Linux调度器 1554 `+ N" y/ m7 B' X9 e3 T% R1 X
6.6.2 macOS/iOS调度器 160, L2 y" K8 O1 f+ D+ u# c. D0 X1 T
6.7 思考题 162
9 q( t2 o$ ^% `! q! l参考文献 163, t, ^1 M$ I6 z
第7章 进程间通信 1651 Q0 G$ {( T4 K" n! i7 L. i
7.1 进程间通信基础 165
4 _+ K/ |5 B( k9 N2 N7.1.1 一个简单的进程间通信设计 166
0 k, A O3 d4 w+ t' ~! y; t7.1.2 数据传递 167
9 ]$ u r: i, @( N# Q/ N7.1.3 控制流转移 169
% s4 n) f& N9 a: s) m$ I7.1.4 单向和双向 170& n; C0 e, J+ _/ z( q
7.1.5 同步和异步 170; n* g' Q( M1 ^8 F% a7 g
7.1.6 超时机制 171$ a& `% y9 n7 m% ]; g+ R6 Q6 `0 u
7.1.7 通信连接管理 172, P/ n2 w7 g! J) q. L: x
7.1.8 权限检查 1731 z7 I0 K6 A* {7 n+ m
7.1.9 命名服务 174
7 j% b. @% R# {* A8 r# j7.2 宏内核进程间通信 175
& V$ B, D- p$ |! `5 ?0 _7.2.1 管道进程间通信 175
3 M; ]4 f" u% F% R3 L' g g7.2.2 System V消息队列 178
& {8 ? e6 m" C: ~# n, T, Y7.2.3 System V信号量 179
- k: ~3 Q0 s5 s7.2.4 System V共享内存 180
- h P7 M8 y2 P. o! I+ Z4 Z7.2.5 信号进程间通信 181 K5 v, Z% }, y5 |( e" w0 \4 t, F
7.2.6 套接字进程间通信 185
/ W9 M. D+ F' t- U% H' z* `7.3 微内核进程间通信 186
$ j( r3 B9 z! z7.3.1 Mach:早期的微内核进程间通信设计 186
, w" i1 z- a% g j3 \2 R$ b0 \7.3.2 L4:围绕进程间通信优化而设计的微内核系统 188
: M( Q. ~& f$ ]( x D- g0 h7.3.3 LRPC:迁移线程模型 193
% [1 V+ L/ x- m1 [- m7.4 案例分析:Android Binder 195+ e! r- M: A9 n" C4 u6 K
7.4.1 背景 195
) T0 a- Z1 u. t7.4.2 Binder IPC总览 196# K" h+ L" H' S7 F. k" V! j
7.4.3 Binder IPC内核设计 196
" O+ Y9 s1 m2 j: g F7.4.4 匿名共享内存 199
$ p9 X9 \0 l0 X' I) ?7 z4 U- U7 Y7.5 案例分析:ChCore 进程间通信机制 2017 b8 e {6 z% E; c! g) S
7.6 思考题 203
7 D6 f8 C# O; Q \参考文献 2036 Z, _% k, A$ ^& P" P1 x0 }
第8章 同步原语 206
^) S& _ y6 x8 `7 u: d2 Y8.1 互斥锁 209
8 j: }, ~; S. k' l9 @: M; ^0 N Z8.1.1 临界区问题 2096 }, A6 E$ ?4 l& ^
8.1.2 硬件实现:关闭中断 211/ T2 ?( ^' G; A! O5 L8 w6 G
8.1.3 软件实现:皮特森算法 2119 A0 n$ o* P% ]; h( a6 k; ?% }( ]
8.1.4 软硬件协同:使用原子操作实现互斥锁 213
5 P( O, `* x* [: I( X7 Z' z$ f8.2 条件变量 219
" m: X2 \% `$ a d$ W8.2.1 条件变量的使用 219
0 v0 U9 z Q: @% ^3 n8.2.2 条件变量的实现 222
0 ]! \% j6 ]/ [% R( E7 j6 X% N8.3 信号量 223
$ U! L% L. H7 `1 u5 J! F. U$ N1 p8.3.1 信号量的使用 224
, d+ T6 b) U: x, E8.3.2 信号量的实现 225
8 g7 v3 M3 z% X" G% R8.4 读写锁 2297 C1 ]5 t0 J6 P0 ]7 s0 q
8.4.1 读写锁的使用 229) X# a/ ~, `( y" D3 r. ~
8.4.2 读写锁的实现 230
2 o* z# A4 _& r. ]" F7 `$ G G8.5 RCU 2339 N4 Y1 [ L; o; O+ @; t; ^
8.5.1 订阅/发布机制 234
: j9 X9 @% @, y0 N: C8.5.2 宽限期 236) T5 g% j# ?7 o0 I
8.6 管程 237( ?& E1 H1 b \$ u
8.7 同步带来的问题 239
! K3 W' X# L" r* W+ E5 z* m8.7.1 死锁 239( c( n8 r9 G3 E' e
8.7.2 活锁 245. Y& q J$ Y" a: a
8.7.3 优先级反转 246
5 I8 Y7 U; O& o8 W8.8 案例分析:Linux中的futex 249
' \# ?- C: o+ N5 r( ~8.9 案例分析:ChCore中的同步原语 2510 f* m% N/ R7 r
8.10 思考题 252* \4 t+ m% F" ?$ x( i# f- o9 y
参考文献 254
0 E/ z3 G( a5 D+ d第9章 文件系统 256
! b: v- a1 a9 a+ _; i7 l* M5 L9.1 基于inode的文件系统 257
) ~( f; X" \6 O3 c2 e) o# C& v9.1.1 inode与文件 258
8 U5 E- O! k/ s. }; L d6 `: T$ F5 h9.1.2 文件名与目录 260; S+ f8 f5 K( k) K) _
9.1.3 硬链接与符号链接 263
) u% ~% k- b b# I9.1.4 存储布局 264: b# |0 {6 `8 C6 B. ~
9.2 虚拟文件系统 2660 w3 J: W5 n. `$ [. u; Z: I x
9.2.1 面向文件系统的接口 266
3 T( o% Q8 w! o" z7 G2 ?1 a4 S9.2.2 面向应用程序的接口 2700 p/ Z- r/ o) A W7 k
9.2.3 页缓存、直接I/O与内存映射 277. R# Q8 z2 g+ _
9.2.4 多种文件系统的组织和管理 280
3 [' [9 \4 Q+ R) o9.2.5 伪文件系统 282, _9 ?* {% W. ?* _5 ~, c/ X
9.3 其他文件系统 284
2 n& d0 ]1 |8 T& a8 q9.3.1 FAT文件系统 2840 [. ^9 \' }& }$ @9 V4 F$ o4 m7 D
9.3.2 NTFS 288; b! u+ E! r9 s; D- Q+ T7 K1 j
9.3.3 FUSE与用户态文件系统 292
" S; r: n V! `1 \. @/ [* \9 {9.4 案例分析:ChCore文件系统 294
' }+ g/ }- I: |2 v! Z9 C& G9.4.1 ChCore的文件系统架构 2941 D4 C. A; P8 K1 u4 F, P' F# B
9.4.2 内存文件系统 295
) {$ i- w5 `0 c8 }) j9.5 思考题 296- [0 [9 m' a( J y8 K4 [
参考文献 297* z1 e( g% f# ?0 ]/ D# ^8 g: W
0章 设备管理 299. U; K% U B$ f: ?: M
10.1 计算机设备的连接和通信 300
5 E% F* G6 i: T( J10.1.1 设备的连接:总线 300
) ]$ V- f6 ?5 X10.1.2 可编程I/O 301
2 [, ^. ?+ @" o* ~6 f+ A3 a/ _/ z10.1.3 高效数据传输:DMA 301
a' [! j/ {8 A- }10.1.4 设备地址翻译:IOMMU 302, O* r$ }9 ], X+ M& S! o( _5 N- T
10.2 设备的识别 303
: k' V6 k; v( s10.2.1 设备树 303
. ` h& r& I$ {10.2.2 ACPI 3041 y9 f( U0 O; L% G% W! Z
10.3 设备的中断处理 305 K% V4 V! t, t. g5 }) m7 |4 ~, \
10.3.1 中断控制器 305
; h2 i7 _3 q* f8 w10.3.2 中断的基本概念 306" b2 Q8 b2 o5 E
10.3.3 中断处理:以Linux上下半部的机制为例 3084 ^" v0 A( G- r9 l0 ?
10.4 设备驱动与设备驱动模型 313
' Z3 m& m; w: K% _! |7 t& @7 N0 H10.4.1 设备驱动 313% e7 o, Y! H2 j$ a l# s
10.4.2 设备驱动模型 3159 ^5 {) n F' l5 n! b7 c. }7 b
10.5 案例分析:Linux设备驱动模型 315
* }6 ]3 k7 A" M" N2 j7 U10.5.1 Linux的设备抽象 3159 B; l6 B2 v& T! a7 @: t3 l
10.5.2 Linux的设备驱动模型 318/ _" |7 m: h, O6 m
10.5.3 Linux驱动的动态管理 3195 X& j. z% x2 Y
10.5.4 Linux的sysfs文件系统 321
9 a* N6 N- `: s5 P10.6 案例分析:L4设备驱动模型 322, {1 e: Z( `. |3 M5 H! R Q
10.7 案例分析:Linux的用户态驱动框架 323
$ K7 [ Y5 T, o. O; U+ X10.8 思考题 327
) L9 E: r) p, |参考文献 327
. Y b0 s8 E8 Y; |. @1章 系统虚拟化 3296 @6 Q9 u$ G1 l5 X" p: H% I0 a
11.1 系统虚拟化技术概述 330" R* @/ T- |" r$ c4 v; r
11.1.1 系统虚拟化及其组成部分 330
: d3 O( ~6 C& R% Y5 t11.1.2 虚拟机监控器的类型 331. j$ @4 x5 U6 f; }' }# m
11.2 CPU虚拟化 332
6 r' e; J) t3 D6 B k( z( l. Y O- j2 i11.2.1 下陷和模拟 333
9 T( S& P4 ?2 |' O- s11.2.2 可虚拟化架构与不可虚拟化架构 333
8 N3 n! D' [$ O. v11.2.3 解释执行 3346 O/ k4 G% n* l) s
11.2.4 动态二进制翻译 3354 k3 P5 Q* x: ` k. B) a9 w
11.2.5 扫描和翻译 336( u# ~1 R5 W2 D+ E* N
11.2.6 半虚拟化技术 337% H* C" e: |: Z7 J
11.2.7 硬件虚拟化技术 338
b1 ?6 m b' G" |! B6 t% ]9 _11.2.8 小结 340
3 a% Z3 F! `$ e3 B; d11.3 内存虚拟化 341/ g8 e' H; K& U. [" H- _
11.3.1 影子页表机制 343
) c3 U% x7 }9 @. u; k3 ^; w* R/ W11.3.2 影子页表的缺页异常处理流程 345, _2 M$ A& n( f: {
11.3.3 直接页表映射机制 345
3 C4 Z! E/ E4 E; O11.3.4 两阶段地址翻译机制 346
" a2 @, y* K1 D# m4 F3 L/ I11.3.5 换页和内存气球机制 349
, `2 z, J+ g' ?1 _: z. w, U, D11.3.6 小结 351+ K" M" P& t% n2 X# n5 n! T" m; b
11.4 I/O虚拟化 351
0 Z: ~% c) j! Y7 s5 a11.4.1 软件模拟方法 352& R+ X8 ~& I; E, k& z$ t! d# U
11.4.2 半虚拟化方法 354+ O0 ^* x/ t! y$ T# E O6 e
11.4.3 设备直通:IOMMU和SR-IOV 3563 I) l# v2 U2 _! i/ e; A$ S
11.4.4 小结 359
% G; G+ `6 l+ k5 s, l" H11.5 中断虚拟化 3609 a+ j2 m& X' {
11.6 案例分析:QEMU/KVM 361
1 j' a' p+ ]) D+ U% n/ ^11.6.1 KVM API和一个简单的虚拟机监控器 362
# o$ _/ g! h( ^' m0 C) D+ t11.6.2 KVM与QEMU 364
5 k! H9 C7 t) e2 }( M/ q v11.6.3 KVM内部实现简介 366' j* E) e0 w( B
11.7 思考题 3675 |3 R! j b0 [8 H. d4 l
参考文献 367
# P3 e5 T" A8 Z- F: r# @& G- z, x缩略语 369
+ {( o) B+ D1 p: Z& Q7 G在线章节一
$ ]9 n" B5 q' v4 Q7 p( \第二部分 操作系统进阶
1 _3 R* l& Y1 X: M2章 多核与多处理器- s& Z0 x) ~6 x: H3 s# V* `( h
3章 文件系统崩溃一致性
4 [ c) K( w' [- v' ~5 z" m/ j4章 网络协议栈与系统
! Z$ Q" m3 p7 ^+ d. G( G! B4 F5章 轻量级虚拟化! d( J C5 B( ]% v
6章 操作系统安全5 }( b1 \, ~) ?9 S# u
7章 操作系统调测
+ F, n# o$ L- z- ~, s1 _8章 形式化证明/ I' H0 [) a$ }
第三部分 ChCore课程实验: }' ?# p2 O% c) i, I8 s3 w. {% q
9章 实验1:机器启动; n' }3 ~* P$ H) q
第20章 实验2:内存管理
, w" j9 ?$ W1 y5 H5 m* t" [第21章 实验3:用户进程与异常处理
- @9 C% [. K ^+ g第22章 实验4:多核处理
9 y U" q% M2 G0 o7 Y; g4 Z第23章 实验5:文件系统与Shell/ l% Y/ ^# t8 t, J% ?
第24章 实验6:进阶实践
9 i3 k: R# ~7 f0 X# a - G7 V+ T) B7 H- {2 F. D( u6 ^! w
百度云盘下载地址(完全免费-绝无套路):
& s4 ?8 e+ w: z& n
% N: A k. J3 q0 Y6 Y! [* j+ _* |
( ~ ^. A% P" l% b k( ~9 D* M4 N% `6 U9 {& Z. w/ @
" n% [4 U/ P( m$ a
) v3 m. R: M% T& g; m& Y2 S6 ^4 r
1 @2 D& r1 R. _4 P0 m1 O$ r4 @ g' d |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|