- 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: 155can be accomplished with a hardw
- 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 and 256:
253translation may be needed when p
- Page 257 and 258:
255References[1] DDE/DDEKit. URL ht
- 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 +