- Page 1:
Department of Computer Science and
- Page 11 and 12:
9PrefaceMeet the new bossSame as th
- Page 13:
11Then there is my dear Xi, who, si
- Page 16 and 17:
142.3.3 InterruptsandPreemption....
- Page 18 and 19:
164.1.1 Implementation Effort .....
- Page 20 and 21:
18Appendix CPatches to the 5.99.48
- Page 22 and 23:
20ISALGPLLRULWPMDMIMMUNICOSPICPRRTT
- Page 25 and 26:
23List of Figures2.1 Rumpkernelhier
- Page 27:
254.14 Time to execute 5M system ca
- Page 31 and 32:
291 IntroductionIn its classic role
- Page 33 and 34:
31and application-level drivers. Th
- Page 35 and 36:
33We define an anykernel to be an o
- Page 37 and 38:
35Our implementation supports rump
- Page 39 and 40:
37The project was done in small inc
- Page 41 and 42:
392 The Anykernel and Rump KernelsA
- Page 43 and 44:
41building on top of the entities m
- Page 45 and 46:
43Drivers in a rump kernel remain u
- Page 47 and 48:
45 Figure 2.1: Rump kernel hierarc
- Page 49 and 50:
47in Section 3.2.3. Whenever discus
- Page 51 and 52:
49int rumpns_bpfopen(dev_t, int, in
- Page 53 and 54:
51Figure 2.4: Client types illustra
- Page 55 and 56:
53while the application logic still
- Page 57 and 58:
55We must solve the lack of a rump
- Page 59 and 60:
572.3.1 Kernel threadsUp until now,
- Page 61 and 62:
59void *pool_cache_get_paddr(pool_c
- Page 63 and 64:
612.3.4 An ExampleWe present an exa
- Page 65 and 66:
63Figure 2.6: Providing memory mapp
- Page 67:
65The straightforward use of existi
- Page 70 and 71:
68We identified three obstacles for
- Page 72 and 73:
70for loadable kernel modules (disc
- Page 74 and 75:
72e.g. the routine for mapping a pr
- Page 76 and 77:
743.2.1 C Symbol NamespacesIn the r
- Page 79 and 80:
773.2.3 The Hypercall InterfaceThe
- Page 81 and 82:
79void rumpuser_mutex_init(struct r
- Page 83 and 84:
81The Benefit of a printf-like Hype
- Page 85 and 86:
83voidrump_schedule(){struct lwp *l
- Page 87 and 88:
85108seconds64201CPU2CPUnativerumpF
- Page 89 and 90:
87voidschedule_cpu(){struct lwp *lw
- Page 91 and 92:
89voidunschedule_cpu(){struct lwp *
- Page 93 and 94:
91is bound to a certain rump kernel
- Page 95 and 96:
93interrupts from hardware clock in
- Page 97 and 98:
95to secondary storage so that memo
- Page 99 and 100:
973. Accept that memory remapping s
- Page 101 and 102:
99implementations for these allocat
- Page 103 and 104:
101rump kernel memory limitrelative
- Page 105 and 106:
103acquire it. Since there are no o
- Page 107 and 108:
1053.5.1 Passive Serialization Tech
- Page 109 and 110:
1072. Check that the system call ha
- Page 111 and 112:
1095. In case we saw threads inside
- Page 113 and 114:
1115 4.86duration (s)4322.963.293.6
- Page 115 and 116:
113any functions they desire. We de
- Page 117 and 118:
115off_trump___sysimpl_lseek(int fd
- Page 119 and 120:
117[ .... ]2194: e8 fc ff ff ff cal
- Page 121 and 122:
119intRUMP_VOP_READ(struct vnode *v
- Page 123 and 124:
121boothowto variable. Since there
- Page 125 and 126:
123Due to how etfs is implemented a
- Page 127 and 128:
125source loading linking initiated
- Page 129 and 130:
127The bootstrap procedure iterates
- Page 131 and 132:
129void *handle;const struct modinf
- Page 133 and 134:
131opposed to the host’s dynamic
- Page 135 and 136:
133sys/arch/x86/include/pmap.h:#def
- Page 137 and 138:
135acalltokobj_renamespace() after
- Page 139 and 140:
137levelRUMP_COMPONENT_KERNRUMP_COM
- Page 141 and 142:
139An example of a component file i
- Page 143 and 144:
141Figure 3.21: Networking options
- Page 145 and 146:
143We use shared memory provided by
- Page 147 and 148:
145Our implementation is different
- Page 149 and 150:
147the object the data belongs to (
- Page 151 and 152:
1493.10 Hardware Device Drivers: A
- Page 153 and 154:
151golem> rump_server -lrumpvfs -lr
- Page 155 and 156:
153the audio driver attaches to an
- Page 157 and 158:
155can be accomplished with a hardw
- Page 159 and 160:
157host probe:uhub5 at uhub2 port 1
- Page 161 and 162:
1593.11.1 Mount Utilities and File
- Page 163 and 164:
161intp2k_node_read(struct puffs_us
- Page 165 and 166:
163Figure 3.33: Remote client archi
- Page 167 and 168:
165function interfaces for system c
- Page 169 and 170:
1673.12.4 Communication ProtocolThe
- Page 171 and 172:
169Request Arguments Response Descr
- Page 173 and 174:
171Host syscallrump syscall5. the l
- Page 175 and 176:
173Figure 3.35: System call hijacki
- Page 177 and 178:
175Note: the categories are not mut
- Page 179 and 180:
177• The closefrom() routine clos
- Page 181 and 182:
179pid_trumpclient_fork(){pid_t rv;
- Page 183 and 184:
18125remote (unix domain)local20tim
- Page 185 and 186:
183relegation has on the implementa
- Page 187 and 188:
1854 EvaluationThis chapter evaluat
- Page 189 and 190:
1875040kLoC3020100rump Xen UML Alph
- Page 191 and 192:
189build.sh rumptestWhen rump kerne
- Page 193 and 194:
191for NTFS. The benefit is that fi
- Page 195 and 196:
193originalrump kernel backendFFS S
- Page 197 and 198:
1954.3.1 Non-native HostingWhen hos
- Page 199 and 200:
197hypervisor, it is possible to co
- Page 201 and 202:
199fromvers () {echosed -n ’1{s/\
- Page 203 and 204:
2014.4 Security: A Case Study with
- Page 205 and 206: 203be the platform hardware or a hy
- Page 207 and 208: 205==11956== 1,048 (24 direct, 1,02
- Page 209 and 210: 2072. Activity on the host, such as
- Page 211 and 212: 209Standard rules still apply, and
- Page 213 and 214: 211MultiplicityMultiplicity means i
- Page 215 and 216: 213of tests that have to be written
- Page 217 and 218: 215test program crashed, autolistin
- Page 219 and 220: 2174.5.5 Development ExperiencesSin
- Page 221 and 222: 2194.6.1 Memory OverheadWe define m
- Page 223 and 224: 221platform version kernel boot log
- Page 225 and 226: 223#!/bin/shRUMP_COMP=’-lrumpnet
- Page 227 and 228: 22554runtime (s)3210‘ 2.47 sec‘
- Page 229 and 230: 227RTT (ms)10UDP "ping"8642050 100
- Page 231 and 232: 229• Copying the large file was m
- Page 233 and 234: 231807060seconds50403020100bigcptre
- Page 235 and 236: 233ping rtt (us)1201008060402001172
- Page 237 and 238: 235We evaluated the portability of
- Page 239 and 240: 2375 Related WorkThis chapter surve
- Page 241 and 242: 239the same too: if one component i
- Page 243 and 244: 241environment without the interfac
- Page 245 and 246: 2435.7 Inter-OS Kernel CodeThe comm
- Page 247 and 248: 245NDISNDIS stands for “Network D
- Page 249 and 250: 5.9 Testing and Development247Sun
- Page 251 and 252: 2496 ConclusionsWe set out with the
- Page 253 and 254: 251The key performance characterist
- Page 255: 253translation may be needed when p
- Page 259 and 260: 257[20] Charles D. Cranor. 1998. De
- Page 261 and 262: 259ments. In: Proceedings of the Wo
- Page 263 and 264: 261[58] Steve R. Kleiman. 1986. Vno
- Page 265 and 266: 263[76] Luke Mewburn. April 2009. P
- Page 267 and 268: 265[97] The Transport Layer Securit
- Page 269 and 270: 267[115] Junfeng Yang, Can Sar, Pau
- Page 271 and 272: A-1Appendix AManual Pagesrump.dhcpc
- Page 273 and 274: A-3RUMP.HALT(1) NetBSD General Comm
- Page 275 and 276: A-5RUMP_SERVER(1) NetBSD General Co
- Page 277 and 278: A-7RUMP_SERVER(1) NetBSD General Co
- Page 279 and 280: A-9RUMP_SERVER(1) NetBSD General Co
- Page 281 and 282: A-11SHMIF_DUMPBUS(1) NetBSD General
- Page 283 and 284: A-13P2K(3) NetBSD Library Functions
- Page 285 and 286: A-15RUMP(3) NetBSD Library Function
- Page 287 and 288: A-17RUMP(3) NetBSD Library Function
- Page 289 and 290: A-19RUMP(3) NetBSD Library Function
- Page 291 and 292: A-21RUMP_ETFS(3) NetBSD Library Fun
- Page 293 and 294: A-23RUMP_LWPROC(3) NetBSD Library F
- Page 295 and 296: A-25RUMP_LWPROC(3) NetBSD Library F
- Page 297 and 298: A-27RUMPCLIENT(3) NetBSD Library Fu
- Page 299 and 300: A-29RUMPCLIENT(3) NetBSD Library Fu
- Page 301 and 302: A-31RUMPCLIENT(3) NetBSD Library Fu
- Page 303 and 304: A-33RUMPHIJACK(3) NetBSD Library Fu
- Page 305 and 306: A-35RUMPHIJACK(3) NetBSD Library Fu
- Page 307 and 308:
A-37RUMPUSER(3) NetBSD Library Func
- Page 309 and 310:
A-39UKFS(3) NetBSD Library Function
- Page 311 and 312:
A-41UKFS(3) NetBSD Library Function
- Page 313 and 314:
A-43UKFS(3) NetBSD Library Function
- Page 315 and 316:
A-45UKFS(3) NetBSD Library Function
- Page 317 and 318:
A-47SHMIF(4) NetBSD Kernel Interfac
- Page 319 and 320:
A-49VIRT(4) NetBSD Kernel Interface
- Page 321 and 322:
A-51RUMP_SP(7) NetBSD Miscellaneous
- Page 323 and 324:
B-1Appendix BTutorial on Distribute
- Page 325 and 326:
B-3The URL the server listens to is
- Page 327 and 328:
B-5given, and halt the server. We a
- Page 329 and 330:
B-7While there are multiple steps w
- Page 331 and 332:
B-9golem> disklabel -re usb.img# us
- Page 333 and 334:
B-11unencrypted partition to the im
- Page 335 and 336:
B-13offer the params file for downl
- Page 337 and 338:
B-15B.3 NetworkingThis section expl
- Page 339 and 340:
B-17bridge as you like. For example
- Page 341 and 342:
B-19golem> rump.ping www.NetBSD.org
- Page 343 and 344:
B-21Now we can use Firefox just lik
- Page 345 and 346:
B-23Now, we need to start a rump se
- Page 347 and 348:
B-25the behavior by setting the RUM
- Page 349 and 350:
B-27# This script starts a rump ker
- Page 351 and 352:
B-29B.5.2NFS Client#!/bin/sh## This
- Page 353 and 354:
B-31is running on your host. You ca
- Page 355 and 356:
C-1Appendix CPatches to the 5.99.48
- Page 357 and 358:
C-3{+ int rfflags = 0;++ if (!share
- Page 359:
C-5return error;}#endif@@ -525,13 +