From fca59bea770346cf1c1f9b0e00cb48a61b44a8f3 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 25 Oct 2015 21:00:20 +0100 Subject: import of old now defunct presentation slides svn repo --- 2008/how_and_why_kernel-fht2008/how_and_why.mgp | 555 +++++++++++++++++++++ 2008/how_and_why_kernel-fht2008/how_and_why.pdf | Bin 0 -> 3432500 bytes 2008/how_and_why_kernel-fht2008/html/index.html | 45 ++ 2008/how_and_why_kernel-fht2008/html/mgp00001.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00001.png | Bin 0 -> 3512 bytes 2008/how_and_why_kernel-fht2008/html/mgp00001.txt | 16 + 2008/how_and_why_kernel-fht2008/html/mgp00002.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00002.png | Bin 0 -> 119215 bytes 2008/how_and_why_kernel-fht2008/html/mgp00002.txt | 14 + 2008/how_and_why_kernel-fht2008/html/mgp00003.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00003.png | Bin 0 -> 115376 bytes 2008/how_and_why_kernel-fht2008/html/mgp00003.txt | 17 + 2008/how_and_why_kernel-fht2008/html/mgp00004.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00004.png | Bin 0 -> 100833 bytes 2008/how_and_why_kernel-fht2008/html/mgp00004.txt | 15 + 2008/how_and_why_kernel-fht2008/html/mgp00005.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00005.png | Bin 0 -> 91347 bytes 2008/how_and_why_kernel-fht2008/html/mgp00005.txt | 14 + 2008/how_and_why_kernel-fht2008/html/mgp00006.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00006.png | Bin 0 -> 77306 bytes 2008/how_and_why_kernel-fht2008/html/mgp00006.txt | 10 + 2008/how_and_why_kernel-fht2008/html/mgp00007.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00007.png | Bin 0 -> 58791 bytes 2008/how_and_why_kernel-fht2008/html/mgp00007.txt | 10 + 2008/how_and_why_kernel-fht2008/html/mgp00008.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00008.png | Bin 0 -> 72125 bytes 2008/how_and_why_kernel-fht2008/html/mgp00008.txt | 10 + 2008/how_and_why_kernel-fht2008/html/mgp00009.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00009.png | Bin 0 -> 83254 bytes 2008/how_and_why_kernel-fht2008/html/mgp00009.txt | 14 + 2008/how_and_why_kernel-fht2008/html/mgp00010.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00010.png | Bin 0 -> 62200 bytes 2008/how_and_why_kernel-fht2008/html/mgp00010.txt | 11 + 2008/how_and_why_kernel-fht2008/html/mgp00011.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00011.png | Bin 0 -> 81637 bytes 2008/how_and_why_kernel-fht2008/html/mgp00011.txt | 15 + 2008/how_and_why_kernel-fht2008/html/mgp00012.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00012.png | Bin 0 -> 94964 bytes 2008/how_and_why_kernel-fht2008/html/mgp00012.txt | 15 + 2008/how_and_why_kernel-fht2008/html/mgp00013.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00013.png | Bin 0 -> 63774 bytes 2008/how_and_why_kernel-fht2008/html/mgp00013.txt | 13 + 2008/how_and_why_kernel-fht2008/html/mgp00014.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00014.png | Bin 0 -> 98837 bytes 2008/how_and_why_kernel-fht2008/html/mgp00014.txt | 14 + 2008/how_and_why_kernel-fht2008/html/mgp00015.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00015.png | Bin 0 -> 90485 bytes 2008/how_and_why_kernel-fht2008/html/mgp00015.txt | 13 + 2008/how_and_why_kernel-fht2008/html/mgp00016.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00016.png | Bin 0 -> 84979 bytes 2008/how_and_why_kernel-fht2008/html/mgp00016.txt | 13 + 2008/how_and_why_kernel-fht2008/html/mgp00017.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00017.png | Bin 0 -> 79869 bytes 2008/how_and_why_kernel-fht2008/html/mgp00017.txt | 10 + 2008/how_and_why_kernel-fht2008/html/mgp00018.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00018.png | Bin 0 -> 66453 bytes 2008/how_and_why_kernel-fht2008/html/mgp00018.txt | 10 + 2008/how_and_why_kernel-fht2008/html/mgp00019.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00019.png | Bin 0 -> 85017 bytes 2008/how_and_why_kernel-fht2008/html/mgp00019.txt | 13 + 2008/how_and_why_kernel-fht2008/html/mgp00020.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00020.png | Bin 0 -> 78656 bytes 2008/how_and_why_kernel-fht2008/html/mgp00020.txt | 13 + 2008/how_and_why_kernel-fht2008/html/mgp00021.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00021.png | Bin 0 -> 95943 bytes 2008/how_and_why_kernel-fht2008/html/mgp00021.txt | 11 + 2008/how_and_why_kernel-fht2008/html/mgp00022.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00022.png | Bin 0 -> 113614 bytes 2008/how_and_why_kernel-fht2008/html/mgp00022.txt | 12 + 2008/how_and_why_kernel-fht2008/html/mgp00023.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00023.png | Bin 0 -> 95260 bytes 2008/how_and_why_kernel-fht2008/html/mgp00023.txt | 16 + 2008/how_and_why_kernel-fht2008/html/mgp00024.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00024.png | Bin 0 -> 95233 bytes 2008/how_and_why_kernel-fht2008/html/mgp00024.txt | 11 + 2008/how_and_why_kernel-fht2008/html/mgp00025.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00025.png | Bin 0 -> 105925 bytes 2008/how_and_why_kernel-fht2008/html/mgp00025.txt | 11 + 2008/how_and_why_kernel-fht2008/html/mgp00026.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00026.png | Bin 0 -> 97707 bytes 2008/how_and_why_kernel-fht2008/html/mgp00026.txt | 11 + 2008/how_and_why_kernel-fht2008/html/mgp00027.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00027.png | Bin 0 -> 100169 bytes 2008/how_and_why_kernel-fht2008/html/mgp00027.txt | 12 + 2008/how_and_why_kernel-fht2008/html/mgp00028.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00028.png | Bin 0 -> 113044 bytes 2008/how_and_why_kernel-fht2008/html/mgp00028.txt | 14 + 2008/how_and_why_kernel-fht2008/html/mgp00029.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00029.png | Bin 0 -> 96060 bytes 2008/how_and_why_kernel-fht2008/html/mgp00029.txt | 15 + 2008/how_and_why_kernel-fht2008/html/mgp00030.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00030.png | Bin 0 -> 102839 bytes 2008/how_and_why_kernel-fht2008/html/mgp00030.txt | 17 + 2008/how_and_why_kernel-fht2008/html/mgp00031.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00031.png | Bin 0 -> 65504 bytes 2008/how_and_why_kernel-fht2008/html/mgp00031.txt | 10 + 2008/how_and_why_kernel-fht2008/html/mgp00032.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00032.png | Bin 0 -> 68794 bytes 2008/how_and_why_kernel-fht2008/html/mgp00032.txt | 10 + 2008/how_and_why_kernel-fht2008/html/mgp00033.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00033.png | Bin 0 -> 111621 bytes 2008/how_and_why_kernel-fht2008/html/mgp00033.txt | 13 + 2008/how_and_why_kernel-fht2008/html/mgp00034.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00034.png | Bin 0 -> 49826 bytes 2008/how_and_why_kernel-fht2008/html/mgp00034.txt | 8 + 2008/how_and_why_kernel-fht2008/html/mgp00035.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00035.png | Bin 0 -> 58022 bytes 2008/how_and_why_kernel-fht2008/html/mgp00035.txt | 7 + 2008/how_and_why_kernel-fht2008/html/mgp00036.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00036.png | Bin 0 -> 54660 bytes 2008/how_and_why_kernel-fht2008/html/mgp00036.txt | 6 + 2008/how_and_why_kernel-fht2008/html/mgp00037.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00037.png | Bin 0 -> 68820 bytes 2008/how_and_why_kernel-fht2008/html/mgp00037.txt | 14 + 2008/how_and_why_kernel-fht2008/html/mgp00038.html | 9 + 2008/how_and_why_kernel-fht2008/html/mgp00038.png | Bin 0 -> 82967 bytes 2008/how_and_why_kernel-fht2008/html/mgp00038.txt | 13 + 117 files changed, 1413 insertions(+) create mode 100644 2008/how_and_why_kernel-fht2008/how_and_why.mgp create mode 100644 2008/how_and_why_kernel-fht2008/how_and_why.pdf create mode 100644 2008/how_and_why_kernel-fht2008/html/index.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00001.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00001.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00001.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00002.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00002.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00002.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00003.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00003.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00003.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00004.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00004.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00004.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00005.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00005.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00005.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00006.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00006.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00006.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00007.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00007.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00007.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00008.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00008.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00008.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00009.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00009.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00009.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00010.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00010.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00010.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00011.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00011.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00011.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00012.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00012.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00012.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00013.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00013.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00013.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00014.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00014.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00014.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00015.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00015.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00015.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00016.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00016.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00016.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00017.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00017.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00017.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00018.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00018.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00018.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00019.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00019.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00019.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00020.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00020.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00020.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00021.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00021.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00021.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00022.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00022.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00022.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00023.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00023.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00023.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00024.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00024.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00024.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00025.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00025.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00025.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00026.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00026.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00026.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00027.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00027.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00027.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00028.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00028.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00028.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00029.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00029.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00029.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00030.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00030.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00030.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00031.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00031.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00031.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00032.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00032.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00032.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00033.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00033.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00033.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00034.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00034.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00034.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00035.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00035.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00035.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00036.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00036.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00036.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00037.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00037.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00037.txt create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00038.html create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00038.png create mode 100644 2008/how_and_why_kernel-fht2008/html/mgp00038.txt (limited to '2008/how_and_why_kernel-fht2008') diff --git a/2008/how_and_why_kernel-fht2008/how_and_why.mgp b/2008/how_and_why_kernel-fht2008/how_and_why.mgp new file mode 100644 index 0000000..9e82799 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/how_and_why.mgp @@ -0,0 +1,555 @@ +%include "default.mgp" +%default 1 bgrad +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +%nodefault +%back "blue" + + +%center +%size 5 +How and why to work with the +Kernel Community + + +ASUS 2009 + +%center +%size 3 +by + +Harald Welte + +Linux Developer +Consultant + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the kernel community +Introduction + +Who is speaking to you? + an independent Free Software developer, consultant and trainer + 13 years experience using/deploying and developing for Linux on server and workstation + 10 years professional experience doing Linux system + kernel level development + strong focus on network security and embedded + expert in Free and Open Source Software (FOSS) copyright and licensing + digital board-level hardware design, esp. embedded systems + active developer and contributor to many FOSS projects + thus, a techie, who will therefore not have fancy animated slides ;) + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the kernel community +Introduction + +What is my affiliation with VIA + First contact with VIA in Q3/2007 + I became VIA Open Source Liaison in July 2008 + In this role, I help the VIA Linux Committee, PM's and Engineers + to understand the Linux and Open Source world + to communicate with the Open Source world + to interface to Linux community concerns and take them to VIA + to get VIA on track for world-class Linux support + I percieve myself more as Linux person inside VIA, not VIA person in Linux ;) + Sorry: I am an expert on Linux, not [yet] on VIA's products + so please excuse me if I say something wrong about VIA hardware + + I don't speak for VIA, just for myself + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +What is Free Software? + + Software that is + available in source code + is licensed in a way to allow unlimited distribution + allows modifications, and distribution of modifications + is not freeware, but copyrighted work + subject to license conditions, like any proprietary software + READ THE LICENSE + +What is Open Source? + Practically speaking, not much difference + Remainder of this presentation will use the term FOSS (Free and Open Source Software) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +What is the FOSS Community? + + Diverse + any individual can contribute + no formal membership required + every project has it's own culture, rules, ... + International + the internet boasted FOSS development + very common to have developers from all continents closely working together + Evolutionary + developers come and go, as their time permits + projects evolve over time, based on individual contributions + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Development Process + + "Rough concensus and running code" + Decisions made by technically most skilled people + Reputation based hierarchy + Direct Communication between developers + Not driven by size of a target market + Release early, release often + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +FOSS Community likes + + generic solutions + portable code + vendor-independent architecture + clean code (coding style!) + open standards + good technical documentation + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +FOSS Community dislikes + + monopolistic structures + e.g. intel-centrism + closed 'industry forums' with rediculous fees + e.g. Infiniband, SD Card Association + standard documents that cost rediculous fees + NDA's, if they prevent development of FOSS + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +The "Linux" System + + + What is a so-called Linux system + The Linux operating system kernel + The X.org X11 windowing system + Various non-graphical system-level software + A variety of different desktop systems (KDE, Gnome) + A variety of GUI programs + + In reality, this is a "Linux Distribution" + sometimes referred to as "GNU/Linux System" + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Entities in the Linux system + + + Free Software projects and their developers + So-called "Distributors" who create "Distributions" + Contributors + Users + Vendors of proprietary Linux software + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +FOSS Projects + + + Free Software projects and their developers + Linux Kernel, Xorg, KDE, Gnome, Apache, Samba + + Role + Development of the individual program + Very focused on their individual project + Portability and flexibility usually main concern + Interact based on practical neccessity + + Usually they just provide source code, no object code + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Distributions + + + Distributions (both commercial and community based) + Debian, Ubuntu, SuSE, Fedora, RedHat, Mandriva, ... + + Role + Aggregate thousands of individual FOSS programs + Find stable and compatible versions of those programs + Do 'software system integration' + Offer bianary software packages and installation media + Offer (security) updates to their users + Offer free/best effort or commercial support for professional users + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Contributors + + + Contributors + are people not part of a specific development team + usually "very active users" of a particular program + + Role + find / document / fix bugs that they find themselves + contribute bug reports, documentation or code + participate in discussion on features or problems + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Collaborative Software Development + + + How do projects communicate internally + Very rarely in physical meetings (people live too far apart) + Very rarely in phone conferences (people live in different timezones) + It's almost entirely text-based (e-mails, sometimes chat system) + + Mailing Lists + Usually every project has at least one list + Often there are separate lists for developers and users + Participation in the mailing list (reading and posting) open to anyone + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Collaborative Software Development + + + Project Management / Decision making + usually there's a small group (coreteam) or one leader + he is often the creator of the program, or it's maintainer + he has the final say in what is accepted or not + larger projects have 'subsystem maintainers' with delegated authority + so quite often, the structure is more hierarchical than people believe + rough concensus and running code + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Linux and binary compatibility + + + Linux and binary compatibility + Drivers usually run inside the OS kernel + Linux doesn't have any stable kernel-internal ABI + Linux doesn't even have stable kernel-internal API + Only the ABI to userspace is stable/fixed + + Thus, every minor Linux release can break in-kernel ABI+API + This is why binary-only drivers simply don't work! + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Linux and binary compatibility + + + I still don't believe! Why not binary-only drivers + because every distribution has a different base kernel revision + because every distribution can change their kernel version e.g. as part of a security update + users will end up in incompatibility nightmare + so please, don't do it. It will never work for the majority of your users + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Implications for Hardware Vendors + + + Implications for Hardware Vendors + Users are used to get all software from the distribution + They are not used to separate vendor-provided driver CD's + Thus, drivers need to be in the distribution + Goal: getting drivers into the distrubution + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Implications for Hardware Vendors + + + How to get drivers into distributions? + You can talk directly to the distributions + But: Their code architecture/style requirements are high + But: Many of them do not accept binary-only drivers + But: There are many, many distributions. + Linux is only a certain portion of the market + Every distribution is only a small portion of the portion + Thus, new goal: Get your drivers in the mainline project + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Implications for Hardware Vendors + + + Getting drivers in the mainline project + ensures that all distributions will pick up the driver + ensures out-of-the box support of your hardware on all distributions + ensures best user experience + ensures least internal R&D resources + no need to provide binaries for 3 versions of 5 distributions + no need to constantly try to catch up with distribution kernel updates + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Windows driver development model + + + MS defines stable APIs and ABIs for drivers and releases SDK (DDK) + All interfaces are specified by a single entity + The interface between driver and OS core is designed as binary interface + Hardware vendors develop drivers for their hardware component + Hardware vendors compile and package drivers for their hardware component + Hardware vendors sell bundle of hardware and software driver (object code) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Linux driver development model + + + A community-driven process creates in-kernel driver API's + Drivers are written against those APIs + Drivers are submitted to the kernel developes for inclusion into the OS source tree + Because all (good) drivers are inside one singe source tree, OS developers can (and will) refine the APIs whenever apropriate + There are no stable in-kernel API's, and especially no stable in-kernel ABI's + Linux development community releases kernel source code + Hardware vendor sells hardware only. The Windows driver CD is unused. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Linux driver development model + + + Without proper support from HW vendor, Most hardware drivers are developed by people inside that community + sadly most of them have no relation to the HW manufacturer + even more sadly, many of them have to work without or with insufficient documentation (reverse engineering) + + Good HW vendors understand this and support Linux properly! + + Linux is a big market by now + Servers + Embedded devices (est. > 40% of all wifi/dsl router + NAS appliances) + Increasingly popular on the Desktop + Recently: Netbooks + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Linux driver development model, bad case timeline + + + Hardware vendor produces and ships hardware + Users end up getting that hardware without any Linux support + Somebody will start a driver and inquire about HW docs + Hardware vendor doesn't release docs + If hardware is popular enough, somebody will start reverse engineering and driver deevlopment + With some luck, the driver is actually useable or even finished before the HW product is EOL + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Linux driver development model, good case timeline #1 + + + Hardware vendor starts Linux driver development for new HW during HW R&D + Hardware vendor submits Linux driver for review / inclusion into mainline Linux kernel before HW ships + User installs HW and has immediate support by current Linux kernel + Hardware vendor publicly releases HW docs when the product ships, or even later + This enables the community to support/integrate the driver with new interfaces + It also enables the community to support hardware post EOL, at a point where the HW vendor + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Linux driver development model, good case timeline #2 + + + Hardware vendor releases HW documentation during HW R&D or no later than the product start shipping + Somebody in the Linux development community might be interested in writing a driver + in his spare time because of technical interest in the HW + as a paid contractor by the HW vendor + In such cases it helps if the HW vendor provides free samples to trustworthy developers + That driver is very likely to get merged mainline + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Why submit your code mainline? + + + Quantity-wise, most users use some Linux distribution + Every version of every distribution ships a different Linux kernel version + Most end-users are not capable of compiling their own kernel/drives (but way more than you think!) + Thus, + teaming up with one (or even two, three) Linux distributions only addresses a small segment of the user base + distributing your driver independently (bundled with hardware, ...) in a way that is ready-to-use for end-users is a ton of work and almost impossible to get right + the preferred option, with the least overhead for both user and HW vendor is to merge the driver mainline. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +How to submit your code mainline? + + + The FOSS code quality requirements are _extremely_ high + It's not a surprise that Linux is generally considered much more stable than competitors + Code needs to be maintainable + Linux supports old hardware ages beyond their EOL + Thin of MCA, VLB, Decnet, IPX networking, ... + So unless you respect the development culture, your code is likely to get rejected! + Post your driver at the respective mailing lists + Release early, release often + Don't hesitate to ask for feedback and suggestions if you are not 100% sure what is the right way to implement a certain feature + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +What about other FOSS OS's + + + There are quite a number of other non-Linux FOSS OSs, among them + FreeBSD, OpenBSD, NetBSD, ... + Those are not as small as you might think + FreeBSD often used for internet severs (web, mail, ...) + OpenBSD often used in high-security environments + NetBSD a little more prominent in embedded + So how does this affect a HW manufacturer + In case the OS is used in a targetted market, developing a driver might make sense + In most cases, open docuentation is all those projects need + In other cases, dual-licensing a driver (GPL+BSD) makes sense so *BSD can use code from the Linux driver + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Techncal differences + + + In the MS world, almost all interfaces are MS defined + In the Linux world, Linux is only the OS kernel + All other interfaces are specified by their respective projects + Often there are many alternatives, e.g. for graphical drivers + X.org project (X11 window server, typical desktop) + DirectFB project (popular in embedded devices like TV set-top boxes) + Qt/Embedded (popular in certain proprietary Linux-based mobile phones) + Every project has it's own culture, including but not limited to + coding style + patch submission guidelines + software license + communication methods + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Practical Rules + + 1. Much more communication + It's not a consumer/producer model, but cooperative! + Before you start implementation, talk to project maintainers + It's likely that someone has tried a similar thing before + It's likely that project maintainers have already an idea how to proceed with implementation + Avoid later hazzles when you want your code merged upstream + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Practical Rules + + 2. Interfaces + If there is a standard interface, use it + If insufficient: Don't invent new interfaces, try to extend existing ones + If there is an existing interface in a later (e.g. development) release upstream, backport that interface + Don't be afraid to touch API's if they're inefficient + Remember, you have the source and _can_ change them + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Practical Rules + + 3. Merge your code upstream + Initially you basically have to create a fork + Development of upsteram project continues sometimes at high speed + If you keep it out of tree for too long time, conflicts arise + Submissions might get rejected in the first round + Cleanups needed, in coordination with upstream project + Code will eventually get merged + No further maintainance needed for synchronization between your contribution and the ongoing upstream development + Don't be surprised if your code won't be accepted if you didn't discuss it with maintainers upfront and they don't like your implementation + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Practical Rules + + 4. Write portable code + don't assume you're on 32bit CPU + don't assume you're on little endian + if you use assembly optimized code, put it in a self-contained module + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Practical Rules + + 5. Binary-only software will not be accepted + yes, there are corner cases like FCC regulation on softradios + but as a general rule of thumb, the community will not consider object code as a solution to any problem + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Practical Rules + + 6. Avoid fancy business models + If you ship the same hardware with two different drivers (half featured and full-featured), any free software will likely make full features available on that hardware. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Practical Rules + + 7. Show your support for the Community + By visibly contributing to the project + discussions + code + equipment + By funding developer meetings + By making rebated hardware offers to developers + By contracting / sponsoring / hiring developers from the community + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%page +How and why to work with the Linux kernel community +Thanks + + Please share your questions and doubts now! + + Please contact me at any later point, if you have questions + + I'm here to help understand Linux and Open Source! + + HaraldWelte@viatech.com + laforge@gnumonks.org + hwelte@hmw-consulting.de +%center +Thanks for your Attention diff --git a/2008/how_and_why_kernel-fht2008/how_and_why.pdf b/2008/how_and_why_kernel-fht2008/how_and_why.pdf new file mode 100644 index 0000000..3f18668 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/how_and_why.pdf differ diff --git a/2008/how_and_why_kernel-fht2008/html/index.html b/2008/how_and_why_kernel-fht2008/html/index.html new file mode 100644 index 0000000..d42fbdb --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/index.html @@ -0,0 +1,45 @@ + +MagicPoint presentation foils + +Page 1 +Page 2 +Page 3 +Page 4 +Page 5 +Page 6 +Page 7 +Page 8 +Page 9 +Page 10 +Page 11 +Page 12 +Page 13 +Page 14 +Page 15 +Page 16 +Page 17 +Page 18 +Page 19 +Page 20 +Page 21 +Page 22 +Page 23 +Page 24 +Page 25 +Page 26 +Page 27 +Page 28 +Page 29 +Page 30 +Page 31 +Page 32 +Page 33 +Page 34 +Page 35 +Page 36 +Page 37 +Page 38 +
+Generated by MagicPoint +
+ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00001.html b/2008/how_and_why_kernel-fht2008/html/mgp00001.html new file mode 100644 index 0000000..a0cc570 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00001.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 1: How and why to work with the
+
+Page 1
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00001.png b/2008/how_and_why_kernel-fht2008/html/mgp00001.png new file mode 100644 index 0000000..8761b07 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00001.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00001.txt b/2008/how_and_why_kernel-fht2008/html/mgp00001.txt new file mode 100644 index 0000000..3d54ef4 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00001.txt @@ -0,0 +1,16 @@ + + +How and why to work with the +Kernel Community + + +FreedomHEC Taipei 2008 + +by + +Harald Welte + +Linux Developer +Consultant +VIA Open Source Liaison + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00002.html b/2008/how_and_why_kernel-fht2008/html/mgp00002.html new file mode 100644 index 0000000..856fe1f --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00002.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 2: How and why to work with the kernel community
+
+Page 2
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00002.png b/2008/how_and_why_kernel-fht2008/html/mgp00002.png new file mode 100644 index 0000000..c0c89fc Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00002.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00002.txt b/2008/how_and_why_kernel-fht2008/html/mgp00002.txt new file mode 100644 index 0000000..1ba7a9a --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00002.txt @@ -0,0 +1,14 @@ +How and why to work with the kernel community +Introduction + +Who is speaking to you? +an independent Free Software developer, consultant and trainer +13 years experience using/deploying and developing for Linux on server and workstation +10 years professional experience doing Linux system + kernel level development +strong focus on network security and embedded +expert in Free and Open Source Software (FOSS) copyright and licensing +digital board-level hardware design, esp. embedded systems +active developer and contributor to many FOSS projects +thus, a techie, who will therefore not have fancy animated slides ;) + + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00003.html b/2008/how_and_why_kernel-fht2008/html/mgp00003.html new file mode 100644 index 0000000..4780321 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00003.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 3: How and why to work with the kernel community
+
+Page 3
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00003.png b/2008/how_and_why_kernel-fht2008/html/mgp00003.png new file mode 100644 index 0000000..df1421a Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00003.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00003.txt b/2008/how_and_why_kernel-fht2008/html/mgp00003.txt new file mode 100644 index 0000000..ae6f41e --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00003.txt @@ -0,0 +1,17 @@ +How and why to work with the kernel community +Introduction + +What is my affiliation with VIA +First contact with VIA in Q3/2007 +I became VIA Open Source Liaison in July 2008 +In this role, I help the VIA Linux Committee, PM's and Engineers +to understand the Linux and Open Source world +to communicate with the Open Source world +to interface to Linux community concerns and take them to VIA +to get VIA on track for world-class Linux support +I percieve myself more as Linux person inside VIA, not VIA person in Linux ;) +Sorry: I am an expert on Linux, not [yet] on VIA's products +so please excuse me if I say something wrong about VIA hardware + +I don't speak for VIA, just for myself + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00004.html b/2008/how_and_why_kernel-fht2008/html/mgp00004.html new file mode 100644 index 0000000..2da92b2 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00004.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 4: How and why to work with the Linux kernel community
+
+Page 4
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00004.png b/2008/how_and_why_kernel-fht2008/html/mgp00004.png new file mode 100644 index 0000000..c7b7a8d Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00004.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00004.txt b/2008/how_and_why_kernel-fht2008/html/mgp00004.txt new file mode 100644 index 0000000..54c4ee7 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00004.txt @@ -0,0 +1,15 @@ +How and why to work with the Linux kernel community +What is Free Software? + +Software that is +available in source code +is licensed in a way to allow unlimited distribution +allows modifications, and distribution of modifications +is not freeware, but copyrighted work +subject to license conditions, like any proprietary software +READ THE LICENSE + +What is Open Source? +Practically speaking, not much difference +Remainder of this presentation will use the term FOSS (Free and Open Source Software) + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00005.html b/2008/how_and_why_kernel-fht2008/html/mgp00005.html new file mode 100644 index 0000000..61b402d --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00005.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 5: How and why to work with the Linux kernel community
+
+Page 5
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00005.png b/2008/how_and_why_kernel-fht2008/html/mgp00005.png new file mode 100644 index 0000000..1650403 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00005.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00005.txt b/2008/how_and_why_kernel-fht2008/html/mgp00005.txt new file mode 100644 index 0000000..49d0b53 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00005.txt @@ -0,0 +1,14 @@ +How and why to work with the Linux kernel community +What is the FOSS Community? + +Diverse +any individual can contribute +no formal membership required +every project has it's own culture, rules, ... +International +the internet boasted FOSS development +very common to have developers from all continents closely working together +Evolutionary +developers come and go, as their time permits +projects evolve over time, based on individual contributions + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00006.html b/2008/how_and_why_kernel-fht2008/html/mgp00006.html new file mode 100644 index 0000000..68b8f99 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00006.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 6: How and why to work with the Linux kernel community
+
+Page 6
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00006.png b/2008/how_and_why_kernel-fht2008/html/mgp00006.png new file mode 100644 index 0000000..2dbed1c Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00006.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00006.txt b/2008/how_and_why_kernel-fht2008/html/mgp00006.txt new file mode 100644 index 0000000..e835e0d --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00006.txt @@ -0,0 +1,10 @@ +How and why to work with the Linux kernel community +Development Process + +"Rough concensus and running code" +Decisions made by technically most skilled people +Reputation based hierarchy +Direct Communication between developers +Not driven by size of a target market +Release early, release often + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00007.html b/2008/how_and_why_kernel-fht2008/html/mgp00007.html new file mode 100644 index 0000000..6b3e528 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00007.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 7: How and why to work with the Linux kernel community
+
+Page 7
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00007.png b/2008/how_and_why_kernel-fht2008/html/mgp00007.png new file mode 100644 index 0000000..7843ef3 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00007.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00007.txt b/2008/how_and_why_kernel-fht2008/html/mgp00007.txt new file mode 100644 index 0000000..c6069ec --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00007.txt @@ -0,0 +1,10 @@ +How and why to work with the Linux kernel community +FOSS Community likes + +generic solutions +portable code +vendor-independent architecture +clean code (coding style!) +open standards +good technical documentation + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00008.html b/2008/how_and_why_kernel-fht2008/html/mgp00008.html new file mode 100644 index 0000000..2b2c36e --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00008.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 8: How and why to work with the Linux kernel community
+
+Page 8
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00008.png b/2008/how_and_why_kernel-fht2008/html/mgp00008.png new file mode 100644 index 0000000..e24bfcd Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00008.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00008.txt b/2008/how_and_why_kernel-fht2008/html/mgp00008.txt new file mode 100644 index 0000000..2e381df --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00008.txt @@ -0,0 +1,10 @@ +How and why to work with the Linux kernel community +FOSS Community dislikes + +monopolistic structures +e.g. intel-centrism +closed 'industry forums' with rediculous fees +e.g. Infiniband, SD Card Association +standard documents that cost rediculous fees +NDA's, if they prevent development of FOSS + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00009.html b/2008/how_and_why_kernel-fht2008/html/mgp00009.html new file mode 100644 index 0000000..a090e74 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00009.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 9: How and why to work with the Linux kernel community
+
+Page 9
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00009.png b/2008/how_and_why_kernel-fht2008/html/mgp00009.png new file mode 100644 index 0000000..aefde40 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00009.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00009.txt b/2008/how_and_why_kernel-fht2008/html/mgp00009.txt new file mode 100644 index 0000000..7e3cb63 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00009.txt @@ -0,0 +1,14 @@ +How and why to work with the Linux kernel community +The "Linux" System + + +What is a so-called Linux system +The Linux operating system kernel +The X.org X11 windowing system +Various non-graphical system-level software +A variety of different desktop systems (KDE, Gnome) +A variety of GUI programs + +In reality, this is a "Linux Distribution" +sometimes referred to as "GNU/Linux System" + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00010.html b/2008/how_and_why_kernel-fht2008/html/mgp00010.html new file mode 100644 index 0000000..78fe116 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00010.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 10: How and why to work with the Linux kernel community
+
+Page 10
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00010.png b/2008/how_and_why_kernel-fht2008/html/mgp00010.png new file mode 100644 index 0000000..60144c3 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00010.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00010.txt b/2008/how_and_why_kernel-fht2008/html/mgp00010.txt new file mode 100644 index 0000000..c78cd44 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00010.txt @@ -0,0 +1,11 @@ +How and why to work with the Linux kernel community +Entities in the Linux system + + +Free Software projects and their developers +So-called "Distributors" who create "Distributions" +Contributors +Users +Vendors of proprietary Linux software + + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00011.html b/2008/how_and_why_kernel-fht2008/html/mgp00011.html new file mode 100644 index 0000000..7dede14 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00011.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 11: How and why to work with the Linux kernel community
+
+Page 11
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00011.png b/2008/how_and_why_kernel-fht2008/html/mgp00011.png new file mode 100644 index 0000000..dbce51f Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00011.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00011.txt b/2008/how_and_why_kernel-fht2008/html/mgp00011.txt new file mode 100644 index 0000000..3bbbc01 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00011.txt @@ -0,0 +1,15 @@ +How and why to work with the Linux kernel community +FOSS Projects + + +Free Software projects and their developers +Linux Kernel, Xorg, KDE, Gnome, Apache, Samba + +Role +Development of the individual program +Very focused on their individual project +Portability and flexibility usually main concern +Interact based on practical neccessity + +Usually they just provide source code, no object code + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00012.html b/2008/how_and_why_kernel-fht2008/html/mgp00012.html new file mode 100644 index 0000000..239ae80 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00012.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 12: How and why to work with the Linux kernel community
+
+Page 12
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00012.png b/2008/how_and_why_kernel-fht2008/html/mgp00012.png new file mode 100644 index 0000000..a06395a Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00012.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00012.txt b/2008/how_and_why_kernel-fht2008/html/mgp00012.txt new file mode 100644 index 0000000..5135ff3 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00012.txt @@ -0,0 +1,15 @@ +How and why to work with the Linux kernel community +Distributions + + +Distributions (both commercial and community based) +Debian, Ubuntu, SuSE, Fedora, RedHat, Mandriva, ... + +Role +Aggregate thousands of individual FOSS programs +Find stable and compatible versions of those programs +Do 'software system integration' +Offer bianary software packages and installation media +Offer (security) updates to their users +Offer free/best effort or commercial support for professional users + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00013.html b/2008/how_and_why_kernel-fht2008/html/mgp00013.html new file mode 100644 index 0000000..a866e3f --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00013.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 13: How and why to work with the Linux kernel community
+
+Page 13
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00013.png b/2008/how_and_why_kernel-fht2008/html/mgp00013.png new file mode 100644 index 0000000..503f337 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00013.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00013.txt b/2008/how_and_why_kernel-fht2008/html/mgp00013.txt new file mode 100644 index 0000000..6682e20 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00013.txt @@ -0,0 +1,13 @@ +How and why to work with the Linux kernel community +Contributors + + +Contributors +are people not part of a specific development team +usually "very active users" of a particular program + +Role +find / document / fix bugs that they find themselves +contribute bug reports, documentation or code +participate in discussion on features or problems + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00014.html b/2008/how_and_why_kernel-fht2008/html/mgp00014.html new file mode 100644 index 0000000..a6362b5 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00014.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 14: How and why to work with the Linux kernel community
+
+Page 14
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00014.png b/2008/how_and_why_kernel-fht2008/html/mgp00014.png new file mode 100644 index 0000000..d2fb326 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00014.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00014.txt b/2008/how_and_why_kernel-fht2008/html/mgp00014.txt new file mode 100644 index 0000000..9a06cd0 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00014.txt @@ -0,0 +1,14 @@ +How and why to work with the Linux kernel community +Collaborative Software Development + + +How do projects communicate internally +Very rarely in physical meetings (people live too far apart) +Very rarely in phone conferences (people live in different timezones) +It's almost entirely text-based (e-mails, sometimes chat system) + +Mailing Lists +Usually every project has at least one list +Often there are separate lists for developers and users +Participation in the mailing list (reading and posting) open to anyone + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00015.html b/2008/how_and_why_kernel-fht2008/html/mgp00015.html new file mode 100644 index 0000000..e2b7f6c --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00015.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 15: How and why to work with the Linux kernel community
+
+Page 15
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00015.png b/2008/how_and_why_kernel-fht2008/html/mgp00015.png new file mode 100644 index 0000000..227d0ea Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00015.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00015.txt b/2008/how_and_why_kernel-fht2008/html/mgp00015.txt new file mode 100644 index 0000000..1382ee5 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00015.txt @@ -0,0 +1,13 @@ +How and why to work with the Linux kernel community +Collaborative Software Development + + +Project Management / Decision making +usually there's a small group (coreteam) or one leader +he is often the creator of the program, or it's maintainer +he has the final say in what is accepted or not +larger projects have 'subsystem maintainers' with delegated authority +so quite often, the structure is more hierarchical than people believe +rough concensus and running code + + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00016.html b/2008/how_and_why_kernel-fht2008/html/mgp00016.html new file mode 100644 index 0000000..6244454 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00016.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 16: How and why to work with the Linux kernel community
+
+Page 16
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00016.png b/2008/how_and_why_kernel-fht2008/html/mgp00016.png new file mode 100644 index 0000000..b3c58ae Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00016.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00016.txt b/2008/how_and_why_kernel-fht2008/html/mgp00016.txt new file mode 100644 index 0000000..25a974a --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00016.txt @@ -0,0 +1,13 @@ +How and why to work with the Linux kernel community +Linux and binary compatibility + + +Linux and binary compatibility +Drivers usually run inside the OS kernel +Linux doesn't have any stable kernel-internal ABI +Linux doesn't even have stable kernel-internal API +Only the ABI to userspace is stable/fixed + +Thus, every minor Linux release can break in-kernel ABI+API +This is why binary-only drivers simply don't work! + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00017.html b/2008/how_and_why_kernel-fht2008/html/mgp00017.html new file mode 100644 index 0000000..f37f1c8 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00017.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 17: How and why to work with the Linux kernel community
+
+Page 17
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00017.png b/2008/how_and_why_kernel-fht2008/html/mgp00017.png new file mode 100644 index 0000000..db9b7e1 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00017.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00017.txt b/2008/how_and_why_kernel-fht2008/html/mgp00017.txt new file mode 100644 index 0000000..2f0cf70 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00017.txt @@ -0,0 +1,10 @@ +How and why to work with the Linux kernel community +Linux and binary compatibility + + +I still don't believe! Why not binary-only drivers +because every distribution has a different base kernel revision +because every distribution can change their kernel version e.g. as part of a security update +users will end up in incompatibility nightmare +so please, don't do it. It will never work for the majority of your users + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00018.html b/2008/how_and_why_kernel-fht2008/html/mgp00018.html new file mode 100644 index 0000000..5fdbeb8 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00018.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 18: How and why to work with the Linux kernel community
+
+Page 18
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00018.png b/2008/how_and_why_kernel-fht2008/html/mgp00018.png new file mode 100644 index 0000000..798e484 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00018.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00018.txt b/2008/how_and_why_kernel-fht2008/html/mgp00018.txt new file mode 100644 index 0000000..5f189e5 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00018.txt @@ -0,0 +1,10 @@ +How and why to work with the Linux kernel community +Implications for Hardware Vendors + + +Implications for Hardware Vendors +Users are used to get all software from the distribution +They are not used to separate vendor-provided driver CD's +Thus, drivers need to be in the distribution +Goal: getting drivers into the distrubution + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00019.html b/2008/how_and_why_kernel-fht2008/html/mgp00019.html new file mode 100644 index 0000000..f42065f --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00019.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 19: How and why to work with the Linux kernel community
+
+Page 19
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00019.png b/2008/how_and_why_kernel-fht2008/html/mgp00019.png new file mode 100644 index 0000000..b7f3cd8 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00019.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00019.txt b/2008/how_and_why_kernel-fht2008/html/mgp00019.txt new file mode 100644 index 0000000..8a77a15 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00019.txt @@ -0,0 +1,13 @@ +How and why to work with the Linux kernel community +Implications for Hardware Vendors + + +How to get drivers into distributions? +You can talk directly to the distributions +But: Their code architecture/style requirements are high +But: Many of them do not accept binary-only drivers +But: There are many, many distributions. +Linux is only a certain portion of the market +Every distribution is only a small portion of the portion +Thus, new goal: Get your drivers in the mainline project + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00020.html b/2008/how_and_why_kernel-fht2008/html/mgp00020.html new file mode 100644 index 0000000..c471d27 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00020.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 20: How and why to work with the Linux kernel community
+
+Page 20
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00020.png b/2008/how_and_why_kernel-fht2008/html/mgp00020.png new file mode 100644 index 0000000..d0c61ae Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00020.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00020.txt b/2008/how_and_why_kernel-fht2008/html/mgp00020.txt new file mode 100644 index 0000000..9ae440a --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00020.txt @@ -0,0 +1,13 @@ +How and why to work with the Linux kernel community +Implications for Hardware Vendors + + +Getting drivers in the mainline project +ensures that all distributions will pick up the driver +ensures out-of-the box support of your hardware on all distributions +ensures best user experience +ensures least internal R&D resources +no need to provide binaries for 3 versions of 5 distributions +no need to constantly try to catch up with distribution kernel updates + + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00021.html b/2008/how_and_why_kernel-fht2008/html/mgp00021.html new file mode 100644 index 0000000..06e5e95 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00021.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 21: How and why to work with the Linux kernel community
+
+Page 21
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00021.png b/2008/how_and_why_kernel-fht2008/html/mgp00021.png new file mode 100644 index 0000000..223af95 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00021.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00021.txt b/2008/how_and_why_kernel-fht2008/html/mgp00021.txt new file mode 100644 index 0000000..aa840f5 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00021.txt @@ -0,0 +1,11 @@ +How and why to work with the Linux kernel community +Windows driver development model + + +MS defines stable APIs and ABIs for drivers and releases SDK (DDK) +All interfaces are specified by a single entity +The interface between driver and OS core is designed as binary interface +Hardware vendors develop drivers for their hardware component +Hardware vendors compile and package drivers for their hardware component +Hardware vendors sell bundle of hardware and software driver (object code) + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00022.html b/2008/how_and_why_kernel-fht2008/html/mgp00022.html new file mode 100644 index 0000000..26ab429 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00022.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 22: How and why to work with the Linux kernel community
+
+Page 22
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00022.png b/2008/how_and_why_kernel-fht2008/html/mgp00022.png new file mode 100644 index 0000000..774adb5 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00022.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00022.txt b/2008/how_and_why_kernel-fht2008/html/mgp00022.txt new file mode 100644 index 0000000..a4384e5 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00022.txt @@ -0,0 +1,12 @@ +How and why to work with the Linux kernel community +Linux driver development model + + +A community-driven process creates in-kernel driver API's +Drivers are written against those APIs +Drivers are submitted to the kernel developes for inclusion into the OS source tree +Because all (good) drivers are inside one singe source tree, OS developers can (and will) refine the APIs whenever apropriate +There are no stable in-kernel API's, and especially no stable in-kernel ABI's +Linux development community releases kernel source code +Hardware vendor sells hardware only. The Windows driver CD is unused. + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00023.html b/2008/how_and_why_kernel-fht2008/html/mgp00023.html new file mode 100644 index 0000000..abd5263 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00023.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 23: How and why to work with the Linux kernel community
+
+Page 23
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00023.png b/2008/how_and_why_kernel-fht2008/html/mgp00023.png new file mode 100644 index 0000000..8be6462 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00023.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00023.txt b/2008/how_and_why_kernel-fht2008/html/mgp00023.txt new file mode 100644 index 0000000..220e71d --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00023.txt @@ -0,0 +1,16 @@ +How and why to work with the Linux kernel community +Linux driver development model + + +Without proper support from HW vendor, Most hardware drivers are developed by people inside that community +sadly most of them have no relation to the HW manufacturer +even more sadly, many of them have to work without or with insufficient documentation (reverse engineering) + +Good HW vendors understand this and support Linux properly! + +Linux is a big market by now +Servers +Embedded devices (est. > 40% of all wifi/dsl router + NAS appliances) +Increasingly popular on the Desktop +Recently: Netbooks + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00024.html b/2008/how_and_why_kernel-fht2008/html/mgp00024.html new file mode 100644 index 0000000..438f4f6 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00024.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 24: How and why to work with the Linux kernel community
+
+Page 24
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00024.png b/2008/how_and_why_kernel-fht2008/html/mgp00024.png new file mode 100644 index 0000000..4fffaf4 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00024.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00024.txt b/2008/how_and_why_kernel-fht2008/html/mgp00024.txt new file mode 100644 index 0000000..2cdadaa --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00024.txt @@ -0,0 +1,11 @@ +How and why to work with the Linux kernel community +Linux driver development model, bad case timeline + + +Hardware vendor produces and ships hardware +Users end up getting that hardware without any Linux support +Somebody will start a driver and inquire about HW docs +Hardware vendor doesn't release docs +If hardware is popular enough, somebody will start reverse engineering and driver deevlopment +With some luck, the driver is actually useable or even finished before the HW product is EOL + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00025.html b/2008/how_and_why_kernel-fht2008/html/mgp00025.html new file mode 100644 index 0000000..5a4e8d6 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00025.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 25: How and why to work with the Linux kernel community
+
+Page 25
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00025.png b/2008/how_and_why_kernel-fht2008/html/mgp00025.png new file mode 100644 index 0000000..231ca75 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00025.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00025.txt b/2008/how_and_why_kernel-fht2008/html/mgp00025.txt new file mode 100644 index 0000000..32bc9c7 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00025.txt @@ -0,0 +1,11 @@ +How and why to work with the Linux kernel community +Linux driver development model, good case timeline #1 + + +Hardware vendor starts Linux driver development for new HW during HW R&D +Hardware vendor submits Linux driver for review / inclusion into mainline Linux kernel before HW ships +User installs HW and has immediate support by current Linux kernel +Hardware vendor publicly releases HW docs when the product ships, or even later +This enables the community to support/integrate the driver with new interfaces +It also enables the community to support hardware post EOL, at a point where the HW vendor + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00026.html b/2008/how_and_why_kernel-fht2008/html/mgp00026.html new file mode 100644 index 0000000..67bd053 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00026.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 26: How and why to work with the Linux kernel community
+
+Page 26
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00026.png b/2008/how_and_why_kernel-fht2008/html/mgp00026.png new file mode 100644 index 0000000..9a85c5b Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00026.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00026.txt b/2008/how_and_why_kernel-fht2008/html/mgp00026.txt new file mode 100644 index 0000000..150d39f --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00026.txt @@ -0,0 +1,11 @@ +How and why to work with the Linux kernel community +Linux driver development model, good case timeline #2 + + +Hardware vendor releases HW documentation during HW R&D or no later than the product start shipping +Somebody in the Linux development community might be interested in writing a driver +in his spare time because of technical interest in the HW +as a paid contractor by the HW vendor +In such cases it helps if the HW vendor provides free samples to trustworthy developers +That driver is very likely to get merged mainline + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00027.html b/2008/how_and_why_kernel-fht2008/html/mgp00027.html new file mode 100644 index 0000000..ffe6f54 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00027.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 27: How and why to work with the Linux kernel community
+
+Page 27
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00027.png b/2008/how_and_why_kernel-fht2008/html/mgp00027.png new file mode 100644 index 0000000..87d718a Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00027.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00027.txt b/2008/how_and_why_kernel-fht2008/html/mgp00027.txt new file mode 100644 index 0000000..6143c15 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00027.txt @@ -0,0 +1,12 @@ +How and why to work with the Linux kernel community +Why submit your code mainline? + + +Quantity-wise, most users use some Linux distribution +Every version of every distribution ships a different Linux kernel version +Most end-users are not capable of compiling their own kernel/drives (but way more than you think!) +Thus, +teaming up with one (or even two, three) Linux distributions only addresses a small segment of the user base +distributing your driver independently (bundled with hardware, ...) in a way that is ready-to-use for end-users is a ton of work and almost impossible to get right +the preferred option, with the least overhead for both user and HW vendor is to merge the driver mainline. + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00028.html b/2008/how_and_why_kernel-fht2008/html/mgp00028.html new file mode 100644 index 0000000..d14bfdc --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00028.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 28: How and why to work with the Linux kernel community
+
+Page 28
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00028.png b/2008/how_and_why_kernel-fht2008/html/mgp00028.png new file mode 100644 index 0000000..73cf956 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00028.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00028.txt b/2008/how_and_why_kernel-fht2008/html/mgp00028.txt new file mode 100644 index 0000000..f53d9bb --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00028.txt @@ -0,0 +1,14 @@ +How and why to work with the Linux kernel community +How to submit your code mainline? + + +The FOSS code quality requirements are _extremely_ high +It's not a surprise that Linux is generally considered much more stable than competitors +Code needs to be maintainable +Linux supports old hardware ages beyond their EOL +Thin of MCA, VLB, Decnet, IPX networking, ... +So unless you respect the development culture, your code is likely to get rejected! +Post your driver at the respective mailing lists +Release early, release often +Don't hesitate to ask for feedback and suggestions if you are not 100% sure what is the right way to implement a certain feature + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00029.html b/2008/how_and_why_kernel-fht2008/html/mgp00029.html new file mode 100644 index 0000000..033a660 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00029.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 29: How and why to work with the Linux kernel community
+
+Page 29
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00029.png b/2008/how_and_why_kernel-fht2008/html/mgp00029.png new file mode 100644 index 0000000..bdc8be6 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00029.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00029.txt b/2008/how_and_why_kernel-fht2008/html/mgp00029.txt new file mode 100644 index 0000000..b41dae8 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00029.txt @@ -0,0 +1,15 @@ +How and why to work with the Linux kernel community +What about other FOSS OS's + + +There are quite a number of other non-Linux FOSS OSs, among them +FreeBSD, OpenBSD, NetBSD, ... +Those are not as small as you might think +FreeBSD often used for internet severs (web, mail, ...) +OpenBSD often used in high-security environments +NetBSD a little more prominent in embedded +So how does this affect a HW manufacturer +In case the OS is used in a targetted market, developing a driver might make sense +In most cases, open docuentation is all those projects need +In other cases, dual-licensing a driver (GPL+BSD) makes sense so *BSD can use code from the Linux driver + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00030.html b/2008/how_and_why_kernel-fht2008/html/mgp00030.html new file mode 100644 index 0000000..2bcde11 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00030.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 30: How and why to work with the Linux kernel community
+
+Page 30
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00030.png b/2008/how_and_why_kernel-fht2008/html/mgp00030.png new file mode 100644 index 0000000..e1a5b67 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00030.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00030.txt b/2008/how_and_why_kernel-fht2008/html/mgp00030.txt new file mode 100644 index 0000000..8aa902b --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00030.txt @@ -0,0 +1,17 @@ +How and why to work with the Linux kernel community +Techncal differences + + +In the MS world, almost all interfaces are MS defined +In the Linux world, Linux is only the OS kernel +All other interfaces are specified by their respective projects +Often there are many alternatives, e.g. for graphical drivers +X.org project (X11 window server, typical desktop) +DirectFB project (popular in embedded devices like TV set-top boxes) +Qt/Embedded (popular in certain proprietary Linux-based mobile phones) +Every project has it's own culture, including but not limited to +coding style +patch submission guidelines +software license +communication methods + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00031.html b/2008/how_and_why_kernel-fht2008/html/mgp00031.html new file mode 100644 index 0000000..a04630a --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00031.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 31: How and why to work with the Linux kernel community
+
+Page 31
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00031.png b/2008/how_and_why_kernel-fht2008/html/mgp00031.png new file mode 100644 index 0000000..5d2868d Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00031.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00031.txt b/2008/how_and_why_kernel-fht2008/html/mgp00031.txt new file mode 100644 index 0000000..1663b68 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00031.txt @@ -0,0 +1,10 @@ +How and why to work with the Linux kernel community +Practical Rules + +1. Much more communication +It's not a consumer/producer model, but cooperative! +Before you start implementation, talk to project maintainers +It's likely that someone has tried a similar thing before +It's likely that project maintainers have already an idea how to proceed with implementation +Avoid later hazzles when you want your code merged upstream + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00032.html b/2008/how_and_why_kernel-fht2008/html/mgp00032.html new file mode 100644 index 0000000..13548ff --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00032.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 32: How and why to work with the Linux kernel community
+
+Page 32
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00032.png b/2008/how_and_why_kernel-fht2008/html/mgp00032.png new file mode 100644 index 0000000..e69f7ee Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00032.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00032.txt b/2008/how_and_why_kernel-fht2008/html/mgp00032.txt new file mode 100644 index 0000000..2b89c21 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00032.txt @@ -0,0 +1,10 @@ +How and why to work with the Linux kernel community +Practical Rules + +2. Interfaces +If there is a standard interface, use it +If insufficient: Don't invent new interfaces, try to extend existing ones +If there is an existing interface in a later (e.g. development) release upstream, backport that interface +Don't be afraid to touch API's if they're inefficient +Remember, you have the source and _can_ change them + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00033.html b/2008/how_and_why_kernel-fht2008/html/mgp00033.html new file mode 100644 index 0000000..a5e1194 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00033.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 33: How and why to work with the Linux kernel community
+
+Page 33
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00033.png b/2008/how_and_why_kernel-fht2008/html/mgp00033.png new file mode 100644 index 0000000..a9992bf Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00033.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00033.txt b/2008/how_and_why_kernel-fht2008/html/mgp00033.txt new file mode 100644 index 0000000..1ade7eb --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00033.txt @@ -0,0 +1,13 @@ +How and why to work with the Linux kernel community +Practical Rules + +3. Merge your code upstream +Initially you basically have to create a fork +Development of upsteram project continues sometimes at high speed +If you keep it out of tree for too long time, conflicts arise +Submissions might get rejected in the first round +Cleanups needed, in coordination with upstream project +Code will eventually get merged +No further maintainance needed for synchronization between your contribution and the ongoing upstream development +Don't be surprised if your code won't be accepted if you didn't discuss it with maintainers upfront and they don't like your implementation + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00034.html b/2008/how_and_why_kernel-fht2008/html/mgp00034.html new file mode 100644 index 0000000..c10da6c --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00034.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 34: How and why to work with the Linux kernel community
+
+Page 34
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00034.png b/2008/how_and_why_kernel-fht2008/html/mgp00034.png new file mode 100644 index 0000000..d2460e9 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00034.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00034.txt b/2008/how_and_why_kernel-fht2008/html/mgp00034.txt new file mode 100644 index 0000000..c57b356 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00034.txt @@ -0,0 +1,8 @@ +How and why to work with the Linux kernel community +Practical Rules + +4. Write portable code +don't assume you're on 32bit CPU +don't assume you're on little endian +if you use assembly optimized code, put it in a self-contained module + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00035.html b/2008/how_and_why_kernel-fht2008/html/mgp00035.html new file mode 100644 index 0000000..3d66281 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00035.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 35: How and why to work with the Linux kernel community
+
+Page 35
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00035.png b/2008/how_and_why_kernel-fht2008/html/mgp00035.png new file mode 100644 index 0000000..a901c34 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00035.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00035.txt b/2008/how_and_why_kernel-fht2008/html/mgp00035.txt new file mode 100644 index 0000000..a5a647e --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00035.txt @@ -0,0 +1,7 @@ +How and why to work with the Linux kernel community +Practical Rules + +5. Binary-only software will not be accepted +yes, there are corner cases like FCC regulation on softradios +but as a general rule of thumb, the community will not consider object code as a solution to any problem + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00036.html b/2008/how_and_why_kernel-fht2008/html/mgp00036.html new file mode 100644 index 0000000..c0155fc --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00036.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 36: How and why to work with the Linux kernel community
+
+Page 36
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00036.png b/2008/how_and_why_kernel-fht2008/html/mgp00036.png new file mode 100644 index 0000000..d21a5f6 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00036.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00036.txt b/2008/how_and_why_kernel-fht2008/html/mgp00036.txt new file mode 100644 index 0000000..eca6907 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00036.txt @@ -0,0 +1,6 @@ +How and why to work with the Linux kernel community +Practical Rules + +6. Avoid fancy business models +If you ship the same hardware with two different drivers (half featured and full-featured), any free software will likely make full features available on that hardware. + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00037.html b/2008/how_and_why_kernel-fht2008/html/mgp00037.html new file mode 100644 index 0000000..d4931c6 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00037.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 37: How and why to work with the Linux kernel community
+
+Page 37
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00037.png b/2008/how_and_why_kernel-fht2008/html/mgp00037.png new file mode 100644 index 0000000..3c63b25 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00037.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00037.txt b/2008/how_and_why_kernel-fht2008/html/mgp00037.txt new file mode 100644 index 0000000..d84c50e --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00037.txt @@ -0,0 +1,14 @@ +How and why to work with the Linux kernel community +Practical Rules + +7. Show your support for the Community +By visibly contributing to the project +discussions +code +equipment +By funding developer meetings +By making rebated hardware offers to developers +By contracting / sponsoring / hiring developers from the community + + + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00038.html b/2008/how_and_why_kernel-fht2008/html/mgp00038.html new file mode 100644 index 0000000..8f51709 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00038.html @@ -0,0 +1,9 @@ + +MagicPoint presentation foils + +[index] [text page] [<<start] [<prev] [next>] [last>>] +
Page 38: How and why to work with the Linux kernel community
+
+Page 38
+
Generated by MagicPoint + diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00038.png b/2008/how_and_why_kernel-fht2008/html/mgp00038.png new file mode 100644 index 0000000..d8a4d77 Binary files /dev/null and b/2008/how_and_why_kernel-fht2008/html/mgp00038.png differ diff --git a/2008/how_and_why_kernel-fht2008/html/mgp00038.txt b/2008/how_and_why_kernel-fht2008/html/mgp00038.txt new file mode 100644 index 0000000..06032e3 --- /dev/null +++ b/2008/how_and_why_kernel-fht2008/html/mgp00038.txt @@ -0,0 +1,13 @@ +How and why to work with the Linux kernel community +Thanks + +Please share your questions and doubts now! + +Please contact me at any later point, if you have questions + +I'm here to help understand Linux and Open Source! + +HaraldWelte@viatech.com +laforge@gnumonks.org +hwelte@hmw-consulting.de +Thanks for your Attention -- cgit v1.2.3