-
Notifications
You must be signed in to change notification settings - Fork 1
/
Literature.bib
586 lines (527 loc) · 21.5 KB
/
Literature.bib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
% Encoding: UTF-8
@comment{x-kbibtex-encoding=utf-8}
% !TEX encoding = UTF-8 Unicode
@book{tanenbaum-moderne-betriebssysteme,
address = {Hallbergmoos},
author = {Tanenbaum, Andrew S.},
edition = {4., aktualisierte Auflage},
editor = {Bos, Herbert},
isbn = {978-3-86894-270-5},
publisher = {Pearson},
series = {Always learning},
size = {1285 Seiten : Illustrationen ; 24 cm x 17 cm},
title = {Moderne Betriebssysteme},
year = {2016}
}
@book{tanenbaum-the-minix-book,
address = {Upper Saddle River, NJ},
author = {Tanenbaum, Andrew S. and Woodhull, Albert S.},
edition = {3. ed.},
isbn = {978-0-13-142938-3; 0-13-142938-8; 0-13-142987-6},
publisher = {Pearson Prentice-Hall},
series = {The MINIX book},
size = {XVII, 1054 S. : graph. Darst. ; 1 CD-ROM},
title = {Operating systems : design and implementation},
year = {2006}
}
@Book{tanenbaum-modern-operating-systems,
title = {Modern operating systems},
publisher = {Prentice Hall},
year = {2015},
author = {Tanenbaum, Andrew S. and Bos, Herbert},
address = {Boston},
edition = {4. ed.},
isbn = {978-013-359-162-0; 978-1-2920-6142-9; 0-13-359162-X},
keywords = {Operating systems (Computers)},
size = {XXVI, 1101 S.},
}
@misc{linux-is-obsolete,
author = {Tanenbaum, Andrew S. and Torvalds, Linus and others},
month = jan,
title = {LINUX is obsolete},
url = {https://groups.google.com/d/topic/comp.os.minix/wlhw16QWltI/discussion},
year = {1992}
}
@book{silberschatz2009operating,
address = {Hoboken, NJ},
author = {Silberschatz, Abraham},
isbn = {978-0470233993},
publisher = {J. Wiley \& Sons},
title = {Operating system concepts},
year = {2009}
}
@book{madieu2017linux,
address = {Birmingham, UK},
author = {Madieu, John},
isbn = {978-1-78528-000-9},
publisher = {Packt Publishing},
title = {Linux deivce drivers development : develop customized drivers for embedded Linux},
year = {2017}
}
@book{bharadwaj2017mastering,
address = {Birmingham, UK},
author = {Bharadwaj, Raghu},
isbn = {978-1-78588-305-7},
publisher = {Packt Publishing},
title = {Mastering Linux Kernel development : a kernel developer's reference manual},
year = {2017}
}
@book{achilles2006betriebssysteme,
address = {Berlin},
author = {Achilles, Albrecht},
isbn = {978-3540238058},
publisher = {Springer},
title = {Betriebssysteme : eine kompakte Einführung mit Linux},
year = {2006}
}
@book{glatz2015betriebssysteme,
address = {Heidelberg},
author = {Glatz, Eduard},
isbn = {978-3864902222},
publisher = {Dpunkt},
title = {Betriebssysteme : Grundlagen, Konzepte, Systemprogrammierung},
year = {2015}
}
@book{holt2014embedded,
address = {London},
author = {Holt, Alan},
isbn = {978-1-4471-6602-3},
publisher = {Springer},
title = {Embedded operating systems : a practical approach},
year = {2014}
}
@book{corbet2005linux,
address = {Beijing Sebastopol, CA},
author = {Corbet, Jonathan},
isbn = {0-596-00590-3},
publisher = {O'Reilly},
title = {Linux device drivers},
year = {2005}
}
@book{brause2017betriebssysteme,
address = {Berlin},
author = {Brause, Rüdiger},
isbn = {978-3-662-54099-2},
publisher = {Springer Vieweg},
title = {Betriebssysteme : Grundlagen und Konzepte},
year = {2017}
}
@book{wolf2009c,
address = {Bonn},
author = {Wolf, Jürgen},
isbn = {978-3-8362-1411-7},
publisher = {Galileo Press},
title = {C von A bis Z : das umfassende Handbuch ; [inkl. CD-ROM mit Openbooks und Referenzkarte mit wichtigen Befehlen},
year = {2009}
}
@misc{why-linux-monolith,
author = {Gooch, Richard E.},
month = oct,
title = {Why is the Linux kernel monolithic? Why don't we rewrite it as a microkernel?},
url = {http://vger.kernel.org/lkml/#s15-4},
year = {2009}
}
@proceedings{lfd430,
number = {v4.19},
organization = {The Linux Foundation},
publisher = {The Linux Foundation},
title = {LFD430 Developing Linux Device Drivers},
year = {2018}
}
@misc{microkernels,
author = {Wu, Jason and Williams, Dan and Weatherspoon, Hakim},
title = {Microkernels: Mach and L4},
url = {https://www.cs.cornell.edu/courses/cs6410/2010fa/lectures/06-microkernels.pdf},
year = {2010}
}
@article{rashidMach,
author = {Rashid, Richard and Julin, Daniel and Orr, Douglas and Sanzi, Richard and Baron, Robert and Forin, Ro and Golub, David and Jones, Michael},
month = {09},
pages = {},
title = {Mach: A System Software Kernel},
year = {1992}
}
@inproceedings{Hrtig1997,
author = {Härtig, Hermann and Hohmuth, Michael and Liedtke, Jochen and Schönberg, Sebastian},
booktitle = {Proceedings of the sixteenth {ACM} symposium on Operating systems principles - {SOSP} {\textquotesingle}97},
doi = {10.1145/268998.266660},
publisher = {{ACM} Press},
title = {The performance of $\upmu$-kernel-based systems},
url = {https://doi.org/10.1145/268998.266660},
year = {1997}
}
@book{DiamondTorvalds2002,
added-at = {2009-08-29T18:11:31.000+0200},
address = {München},
author = {Diamond, David and Torvalds, Linus},
isbn = {3-423-36299-5},
publisher = {Deutscher Taschenbuch Verlag},
timestamp = {2009-08-29T18:12:13.000+0200},
title = {Linus Torvalds: Just For Fun. Wie ein Freak die Computerwelt revolutionierte. Die Biographie des Linux-Erfinders},
year = 2002
}
@misc{programming-religion,
author = {Gooch, Richard E. and others},
month = oct,
title = {Section 15 - Programming Religion},
url = {http://vger.kernel.org/lkml/#s15},
year = {2009}
}
@inproceedings{linux-clang,
author = {Edge, Jake},
month = sep,
organization = {Linux Plumbers Conference},
title = {Building the kernel with Clang},
url = {https://lwn.net/Articles/734071/},
year = {2017}
}
@proceedings{fosdem-linux-llvm,
editor = {Desaulniers, Nick and others},
month = feb,
title = {Compiling the Linux kernel with LLVM tools},
url = {https://fosdem.org/2019/schedule/event/llvm_kernel/},
year = {2019}
}
@Misc{chat-zircon-arch,
author = {Geiselbrecht, Travis (travisg) and Anderson, Christopher (cja) and Brittain, Ben (bwb) and Marx, Anna-Lena (allegra3141)},
title = {IRC Chat Discussion About the Zircon Microkernel (Architecture, Design Goals, Language Support)},
howpublished = {Freenode IRC},
month = feb,
year = {2019},
comment = {* liuyb2 has quit (Ping timeout: 255 seconds)
<allegra3141> is the zircon microkernel inspired or influenced by L4?
<travisg> not particularly, no
<travisg> it's fairly different in design than L4
<travisg> abdulla: oooh, reading about the N2, it's pretty nice. Will definitely snag a few when they go up for order. https://www.hardkernel.com/blog-2/odroid-n2/
<travisg> if it's like the c2, you will absolutely want to buy a MMC flash module too. it's a massive speedup vs a SD card
<allegra3141> how did you deal with the cost of context switches? isn't it still an issue on modern cpus?
* dtb63 ([email protected]) has joined
* dtb63 has quit (Ping timeout: 250 seconds)
<travisg> you make it as fast as possible
<travisg> it doesn't really change anything per se, except that it's additional overhead that a IPC based system has to deal with
<travisg> doubleplus so when you're doing KPTI and other meltdown/spectre stuff
<travisg> but fundamentally that's an overhead that you take, so you try to avoid having as many context switches as you can, and you make sure the ones you have are fast
<allegra3141> isnt the microkernel approach the opposite of avoiding context switches? (sorry for all that questions, its really interessting for me :) )
<DrNick> the microkernel approach is deciding that the cost is worth it
* pelco_ (5e3f1d1c@gateway/web/freenode/ip.94.63.29.28) has joined
<DrNick> the nice thing about microkernels is that if you design them right, once you've got everything fully debugged, you can transparently combine the HTTP server, the TCP/IP stack, and the NIC driver, the filesystem driver, and the disk driver together in the same process without recompiling any of the binaries
<travisg> yah basically what DrNick says
<travisg> we probably wont, since security is a major goal
<travisg> but you can
<travisg> it's very hard to make a microkernel based system perform as well as a monolithic system for traditional OSey things, but performance isn't always everything
* pelco_ has quit (Ping timeout: 256 seconds)
<travisg> and in many cases the things that matter aren't performance based
<travisg> ie, putting a ui up in front of someone, making sure it's smooth, etc. if you are careful you can make that not be dependent on low level system details
<travisg> the way i figure it is hardware as moved on a long way since the late 80s/early 90s when microkernels were all the rage
<travisg> there is cost to low level context switching and whatnot, but it's relatively speaking lower with modern hardware
<travisg> and SMP is ubiquitous now to help soak up some of the performance issues, if done correctly
* Stifler has quit (Ping timeout: 245 seconds)
<cja> microkernels mean my IOT crap fridge hopefully won't cause my IOT crap toaster to kernel panic
<travisg> yah, crappy iot devices scare the crap out of me
<travisg> i draw the line at having huge piles of random untested things sitting on wifi holding sockets out to the interwebs
<allegra3141> that's a really interessting answer. so you are fully aware of performance issues for all the benefits a microkernel approach comes with?
<travisg> of courwe
<travisg> it depends on what lens you look at these things with
<cja> You design things to avoid the syscall / context switch barrier to mitigate those concerns
<travisg> it's a tradeoff. you get modularity, security, safety and you lose some performance, potentially. but even then it's not so clear cut
<cja> vmos for instance handle a lot of heavy lifting for sharing data
<cja> and for some things we just avoid doing legacy access like ioports because those are slow, privileged, and need kernel side locking in some considerations
<travisg> it depends a lot on what the code is doing. if it's doing tons of file io, or lots of process creation/shutdown, then you wont perform as well as a monolithic posix system, because posix is extremely tuned for precisely that sort of workload
<travisg> but if the model is to have a lot of service processes, some of which are fairly long lived, then in that regard having a kernel that's more tuned for it makes sense. it's less of the process model is determined by the kernel, and more that the kernel is designed to implement the process model more directly
<travisg> it's all designed in concert
<allegra3141> makes absolutely sense to me. so security was an important design factor to you, right?
<allegra3141> and one more question: what were the reasons for c++ for the system and drivers? will you also add support for rust or other more modern languages?
<cja> We started this project in 2015 and rust was not mature enough when we did a language evaluation. Our use of C++ is largely centered around RAII / smart pointers / static checks, and we do have folks working on making Rust drivers possible (we have one almost ready afaik)
<allegra3141> I'm curious, that sounds very interesstinf
* bwb_ is adding support for rust drivers right now
<allegra3141> did you think about even more languages yet?
<bwb_> we have an IDL that describes the contract between in-process drivers, so no, but it shouldn't be an insane amount of work
<cja> No one is talking about haskell drivers but that doesn't mean someone can't invest the time to accomplish it
<bwb_> sometimes I joke about adding wasm or zig driver support
<cja> s/insane/tremendous/
<bwb_> ^ that
<bwb_> D support could be pretty cool
<bwb_> or even swift
<bwb_> (subsets of it)
<bwb_> what about a forth driver :D
<bwb_> or chicken-scheme. I've joked about that too
<allegra3141> I just have to laugh a bit. sounds like you are having fun
<bwb_> yeah, I'm having a blast working on this
<allegra3141> @bwb_ I'm curious on the result :)
<cja> The result is him not finishing banjo proxying for me
<cja> !
<bwb_> heyyyy. I'm reviewing some fidl/banjo CLs right now
<bwb_> also, when did I join the DDK team?!
<bwb_> and we need to think a lot about how proxying will work still.
<cja> We already had proxying, then banjo became a thing
<cja> So I guess I'll just to it by hand again?
<bwb_> s/had proxying/had bespoke proxying/
<bwb_> uh, the right answer is to ignore it until it gets autogenerated for you :)
* navidr (uid112413@gateway/web/irccloud.com/x-gaabwomzzxmgrutl) has joined
<bwb_> travisg / cja
<cja> what who why what
<bwb_> I have a crazy design question for y'all
<bwb_> about rust drivers
<cja> I can't ignore it
<cja> proxying is 100% the basis of my entire driver topology, lol
<bwb_> so, if I had you annotate your rust driver with a #![fuchsia_ddk::driver] annotation
<bwb_> that did a little bit of magic for you, would you find that "bad"?
<bwb_> No overhead at runtime, promise
<bwb_> it just makes sure certain pointers are setup properly in a safe manner
<bwb_> and de-dups a bit of boiler plate
<bwb_> (the stuff in the device_ops table)
<cja> I would immediately wonder how undebuggable it would be because rust macros are a labyrinth of horror when they go wrong
<bwb_> hmmm
<cja> decorators aren't a bad idea, but they're very opaque
<bwb_> yeah, that's my concern
<bwb_> and I know the normal driver author wants to know what's going on
<bwb_> suraj thought my proc_macro idea was an abomination, so I have two nays},
editor = {others},
}
@misc{zircon-vs-lk,
author = {McGrath, Roland and Pizano, Carlos and Mitchener, Bruce},
editor = {others},
month = oct,
title = {Zircon and LK},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/zx_and_lk.md},
year = {2018}
}
@misc{lk-intro,
author = {Swetland, Brian and Geiselbrecht, Travis and Bury, Alexandre and Mahate, Shakeel and others},
editor = {others},
month = oct,
title = {Introduction},
url = {https://github.com/littlekernel/lk/wiki/Introduction},
year = {2017}
}
@misc{zircon-libc-posix,
author = {Kralevich, Nick and McGrath, Roland and Kulakowski, George and others},
editor = {others},
month = mar,
title = {Fuchsia's libc},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/libc.md},
year = {2018}
}
@misc{zircon-intro,
author = {Swetland, Brian and McGrath, Roland and Pizano, Carlos and Klein, Sean and others},
editor = {others},
month = oct,
title = {Zircon},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/README.md},
year = {2018}
}
@article{decade-linux-syscalls,
author = {Bagherzadeh, Mojtaba and Kahani and Bezemer, Cor-Paul and Hassan, Ahmed E. and Dingel, Juergen and {R Cordy}, James},
doi = {10.1007/s10664-017-9551-z},
journal = {Empirical Software Engineering},
month = {10},
pages = {},
title = {Analyzing a Decade of Linux System Calls},
year = {2017}
}
@misc{zircon-handle,
author = {Swetland, Brian and Kulakowski, George and Pizano, Carlos and Anderson, Christopher and others},
month = jan,
title = {Zircon Handles},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/handles.md},
year = {2018}
}
@misc{zircon-concepts,
author = {McGrath, Roland and Kulakowski, George and Swetland, Brian and others},
month = dec,
title = {Zircon Kernel Concepts},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/concepts.md},
year = {2018}
}
@article{vdso-linuxjournal,
author = {Davis, Matt},
journal = {Linux Journal},
month = feb,
title = {Creating a vDSO: the Colonel's Other Chicken},
url = {https://www.linuxjournal.com/content/creating-vdso-colonels-other-chicken},
year = {2012}
}
@misc{zircon-vdso,
author = {McGrath, Roland and Kulakowski, George and Kelly, Garret},
month = aug,
title = {Zircon vDSO},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/vdso.md},
year = {2018}
}
@book{mandl2014Grundkurs,
author = {Mandl, Peter},
isbn = {9783658062170},
publisher = {Springer Vieweg},
title = {Grundkurs Betriebssysteme: Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation, Virtualisierung (German Edition)},
year = {2014}
}
@misc{zircon-process,
author = {Pizano, Carlos and Eisenberger, Todd and Kulakowski, George and McGrath, Roland},
month = dec,
title = {Process},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/process.md},
year = {2017}
}
@misc{zircon-job,
author = {Pizano, Carlos and Grahm, Scott and Kulakowski, George},
month = nov,
title = {Job},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/job.md},
year = {2018}
}
@misc{zircon-thread,
author = {Pizano, Carlos and Eisenberger, Todd and Grahm, Scott and Kulakowski, George},
month = nov,
title = {Thread},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/thread.md},
year = {2018}
}
@misc{zircon-task,
author = {Grahm, Scott and Kulakowski, George},
month = nov,
title = {Task},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/task.md},
year = {2018}
}
@misc{zircon-objects,
author = {Kulakowski, George and Voydano, Mike and Eisenberger, Todd and McGrath, Roland},
month = feb,
title = {Zircon Kernel objects},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects.md},
year = {2018}
}
@misc{zircon-vmar,
author = {Eisenberger, Todd and McGrath, Roland and Kulakowski, George and Mitchener, Bruce},
month = oct,
title = {Virtual Memory Address Region},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/vm_address_region.md},
year = {2018}
}
@misc{linux-locking,
author = {Russell, Rusty},
title = {Unreliable Guide To Locking},
url = {https://kernel.readthedocs.io/en/sphinx-samples/kernel-locking.html},
year = {2016}
}
@misc{zircon-channel,
author = {Pizano, Carlos and Swetland, Brian and Barth, Adam and McGrath, Roland and Kulakowski, George},
month = dec,
title = {Channel},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/channel.md},
year = {2018}
}
@misc{zircon-socket,
author = {Robinson, James and Swetland, Brian and McGrath, Roland and Kulakowski, George and Barth, Adam},
month = nov,
title = {Socket},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/socket.md},
year = {2018}
}
@misc{zircon-fifo,
author = {Kulakowski, George},
month = apr,
title = {FIFO},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/fifo.md},
year = {2017}
}
@misc{zircon-event,
author = {Eisenberger, Todd and McGrath, Roland and Kulakowski, George},
month = sep,
title = {Event},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/event.md},
year = {2017}
}
@misc{zircon-eventpair,
author = {McGrath, Roland and Kulakowski, George},
month = sep,
title = {Event Pair},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/eventpair.md},
year = {2017}
}
@misc{zircon-futex,
author = {McGrath, Roland and Eisenberger, Todd and Kulakowski, George and Pizano, Carlos},
month = dec,
title = {Futex},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/futex.md},
year = {2018}
}
@misc{zircon-signals,
author = {Swetland, Brian and McGrath, Roland and Kulakowski, George},
month = feb,
title = {Zircon Signals},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/signals.md},
year = {2018}
}
@misc{zircon-vmo,
author = {Anderson, Christopher and Eisenberger, Todd and Geiselbrecht, Travis and McGrath, Roland and Kulakowski, George and Mitchener, Bruce},
month = oct,
title = {Virtual Memory Object},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/vm_object.md},
year = {2018}
}
@misc{zircon-scheduling,
author = {Coyne, Ed and Mitchener, Bruce},
month = dec,
title = {Zircon Scheduling},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/kernel_scheduling.md},
year = {2018}
}
@misc{zircon-bti,
author = {Eisenberger, Todd},
month = apr,
timestamp = {2019-04-17},
title = {Bus Transaction Initiator},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/objects/bus_transaction_initiator.md},
year = {2018}
}
@misc{zircon-irc-io,
author = {Marx, Travis Geiselbrecht Anna-Lena},
month = apr,
title = {IRC Chat Discussion About I/O in Zircon},
year = {2019}
}
@book{quade2016Linux,
address = {Heidelberg},
author = {Quade, Jürgen and Kunst, Eva-Katharina},
edition = {4., aktualisierte und erw. Auflage.},
isbn = {9783864902888; 3864902886},
publisher = {dpunkt-Verl.},
title = {Linux-Treiber entwickeln : eine systematische Einführung in die Gerätetreiber- und Kernelprogrammierung - jetzt auch für Raspberry Pi},
year = {2016}
}
@misc{zircon-devicemodel,
author = {Forrest, Brian Swetland George Kulakowski Bailey},
month = aug,
title = {Zircon Device Model},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/ddk/device-model.md},
year = {2018}
}
@misc{zircon-ddk-gettingstarted,
author = {Mitchener, Bruce},
month = oct,
title = {Getting Started},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/ddk/getting_started.md},
year = {2018}
}
@misc{linux-llvm,
author = {Desaulniers, Nick and Hackmann, Greg and Hines, Stephen},
month = oct,
title = {Compiling Android userspace and Linux Kernel with LLVM},
url = {https://llvm.org/devmtg/2017-10/slides/Hines-CompilingAndroidKeynote.pdf},
year = {2017}
}
@Misc{zircon-platformbus,
author = {Mike Voydanoff Christopher Tam Bruce Mitchener},
title = {Zircon's Platform Bus},
month = oct,
year = {2018},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/ddk/platform-bus.md},
}
@Misc{zircon-simpledrv,
author = {Rob Krten},
title = {Simple Drivers},
month = dec,
year = {2018},
url = {https://github.com/Allegra42/zircon/blob/i2c-grove-lcd/docs/ddk/simple.md},
}
@Comment{jabref-meta: databaseType:bibtex;}