summaryrefslogtreecommitdiff
path: root/2008/how_and_why_kernel-fht2008
diff options
context:
space:
mode:
Diffstat (limited to '2008/how_and_why_kernel-fht2008')
-rw-r--r--2008/how_and_why_kernel-fht2008/how_and_why.mgp555
-rw-r--r--2008/how_and_why_kernel-fht2008/how_and_why.pdfbin0 -> 3432500 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/index.html45
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00001.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00001.pngbin0 -> 3512 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00001.txt16
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00002.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00002.pngbin0 -> 119215 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00002.txt14
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00003.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00003.pngbin0 -> 115376 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00003.txt17
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00004.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00004.pngbin0 -> 100833 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00004.txt15
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00005.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00005.pngbin0 -> 91347 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00005.txt14
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00006.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00006.pngbin0 -> 77306 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00006.txt10
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00007.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00007.pngbin0 -> 58791 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00007.txt10
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00008.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00008.pngbin0 -> 72125 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00008.txt10
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00009.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00009.pngbin0 -> 83254 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00009.txt14
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00010.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00010.pngbin0 -> 62200 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00010.txt11
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00011.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00011.pngbin0 -> 81637 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00011.txt15
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00012.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00012.pngbin0 -> 94964 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00012.txt15
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00013.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00013.pngbin0 -> 63774 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00013.txt13
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00014.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00014.pngbin0 -> 98837 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00014.txt14
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00015.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00015.pngbin0 -> 90485 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00015.txt13
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00016.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00016.pngbin0 -> 84979 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00016.txt13
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00017.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00017.pngbin0 -> 79869 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00017.txt10
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00018.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00018.pngbin0 -> 66453 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00018.txt10
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00019.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00019.pngbin0 -> 85017 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00019.txt13
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00020.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00020.pngbin0 -> 78656 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00020.txt13
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00021.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00021.pngbin0 -> 95943 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00021.txt11
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00022.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00022.pngbin0 -> 113614 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00022.txt12
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00023.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00023.pngbin0 -> 95260 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00023.txt16
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00024.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00024.pngbin0 -> 95233 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00024.txt11
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00025.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00025.pngbin0 -> 105925 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00025.txt11
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00026.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00026.pngbin0 -> 97707 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00026.txt11
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00027.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00027.pngbin0 -> 100169 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00027.txt12
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00028.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00028.pngbin0 -> 113044 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00028.txt14
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00029.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00029.pngbin0 -> 96060 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00029.txt15
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00030.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00030.pngbin0 -> 102839 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00030.txt17
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00031.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00031.pngbin0 -> 65504 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00031.txt10
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00032.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00032.pngbin0 -> 68794 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00032.txt10
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00033.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00033.pngbin0 -> 111621 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00033.txt13
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00034.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00034.pngbin0 -> 49826 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00034.txt8
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00035.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00035.pngbin0 -> 58022 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00035.txt7
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00036.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00036.pngbin0 -> 54660 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00036.txt6
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00037.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00037.pngbin0 -> 68820 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00037.txt14
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00038.html9
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00038.pngbin0 -> 82967 bytes
-rw-r--r--2008/how_and_why_kernel-fht2008/html/mgp00038.txt13
117 files changed, 1413 insertions, 0 deletions
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 <hwelte@hmw-consulting.de>
+
+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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/how_and_why.pdf
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="mgp00001.html"><IMG SRC="mgp00001.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 1"></A>
+<A HREF="mgp00002.html"><IMG SRC="mgp00002.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 2"></A>
+<A HREF="mgp00003.html"><IMG SRC="mgp00003.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 3"></A>
+<A HREF="mgp00004.html"><IMG SRC="mgp00004.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 4"></A>
+<A HREF="mgp00005.html"><IMG SRC="mgp00005.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 5"></A>
+<A HREF="mgp00006.html"><IMG SRC="mgp00006.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 6"></A>
+<A HREF="mgp00007.html"><IMG SRC="mgp00007.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 7"></A>
+<A HREF="mgp00008.html"><IMG SRC="mgp00008.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 8"></A>
+<A HREF="mgp00009.html"><IMG SRC="mgp00009.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 9"></A>
+<A HREF="mgp00010.html"><IMG SRC="mgp00010.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 10"></A>
+<A HREF="mgp00011.html"><IMG SRC="mgp00011.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 11"></A>
+<A HREF="mgp00012.html"><IMG SRC="mgp00012.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 12"></A>
+<A HREF="mgp00013.html"><IMG SRC="mgp00013.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 13"></A>
+<A HREF="mgp00014.html"><IMG SRC="mgp00014.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 14"></A>
+<A HREF="mgp00015.html"><IMG SRC="mgp00015.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 15"></A>
+<A HREF="mgp00016.html"><IMG SRC="mgp00016.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 16"></A>
+<A HREF="mgp00017.html"><IMG SRC="mgp00017.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 17"></A>
+<A HREF="mgp00018.html"><IMG SRC="mgp00018.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 18"></A>
+<A HREF="mgp00019.html"><IMG SRC="mgp00019.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 19"></A>
+<A HREF="mgp00020.html"><IMG SRC="mgp00020.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 20"></A>
+<A HREF="mgp00021.html"><IMG SRC="mgp00021.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 21"></A>
+<A HREF="mgp00022.html"><IMG SRC="mgp00022.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 22"></A>
+<A HREF="mgp00023.html"><IMG SRC="mgp00023.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 23"></A>
+<A HREF="mgp00024.html"><IMG SRC="mgp00024.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 24"></A>
+<A HREF="mgp00025.html"><IMG SRC="mgp00025.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 25"></A>
+<A HREF="mgp00026.html"><IMG SRC="mgp00026.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 26"></A>
+<A HREF="mgp00027.html"><IMG SRC="mgp00027.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 27"></A>
+<A HREF="mgp00028.html"><IMG SRC="mgp00028.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 28"></A>
+<A HREF="mgp00029.html"><IMG SRC="mgp00029.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 29"></A>
+<A HREF="mgp00030.html"><IMG SRC="mgp00030.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 30"></A>
+<A HREF="mgp00031.html"><IMG SRC="mgp00031.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 31"></A>
+<A HREF="mgp00032.html"><IMG SRC="mgp00032.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 32"></A>
+<A HREF="mgp00033.html"><IMG SRC="mgp00033.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 33"></A>
+<A HREF="mgp00034.html"><IMG SRC="mgp00034.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 34"></A>
+<A HREF="mgp00035.html"><IMG SRC="mgp00035.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 35"></A>
+<A HREF="mgp00036.html"><IMG SRC="mgp00036.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 36"></A>
+<A HREF="mgp00037.html"><IMG SRC="mgp00037.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 37"></A>
+<A HREF="mgp00038.html"><IMG SRC="mgp00038.idx.png" WIDTH=256 HEIGHT=192 ALT="Page 38"></A>
+<HR>
+Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+<BR>
+</BODY></HTML>
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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00001.txt>[text page]</A> [&lt;&lt;start] [&lt;prev] <A HREF=mgp00002.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 1: How and why to work with the <BR>
+<HR>
+<IMG SRC="mgp00001.png" WIDTH=1024 HEIGHT=768 ALT="Page 1"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00001.png
Binary files 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 <HaraldWelte@viatech.com>
+
+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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00002.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00001.html>[&lt;prev]</A> <A HREF=mgp00003.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 2: How and why to work with the kernel community<BR>
+<HR>
+<IMG SRC="mgp00002.png" WIDTH=1024 HEIGHT=768 ALT="Page 2"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00002.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00003.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00002.html>[&lt;prev]</A> <A HREF=mgp00004.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 3: How and why to work with the kernel community<BR>
+<HR>
+<IMG SRC="mgp00003.png" WIDTH=1024 HEIGHT=768 ALT="Page 3"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00003.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00004.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00003.html>[&lt;prev]</A> <A HREF=mgp00005.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 4: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00004.png" WIDTH=1024 HEIGHT=768 ALT="Page 4"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00004.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00005.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00004.html>[&lt;prev]</A> <A HREF=mgp00006.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 5: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00005.png" WIDTH=1024 HEIGHT=768 ALT="Page 5"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00005.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00006.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00005.html>[&lt;prev]</A> <A HREF=mgp00007.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 6: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00006.png" WIDTH=1024 HEIGHT=768 ALT="Page 6"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00006.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00007.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00006.html>[&lt;prev]</A> <A HREF=mgp00008.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 7: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00007.png" WIDTH=1024 HEIGHT=768 ALT="Page 7"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00007.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00008.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00007.html>[&lt;prev]</A> <A HREF=mgp00009.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 8: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00008.png" WIDTH=1024 HEIGHT=768 ALT="Page 8"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00008.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00009.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00008.html>[&lt;prev]</A> <A HREF=mgp00010.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 9: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00009.png" WIDTH=1024 HEIGHT=768 ALT="Page 9"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00009.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00010.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00009.html>[&lt;prev]</A> <A HREF=mgp00011.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 10: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00010.png" WIDTH=1024 HEIGHT=768 ALT="Page 10"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00010.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00011.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00010.html>[&lt;prev]</A> <A HREF=mgp00012.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 11: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00011.png" WIDTH=1024 HEIGHT=768 ALT="Page 11"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00011.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00012.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00011.html>[&lt;prev]</A> <A HREF=mgp00013.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 12: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00012.png" WIDTH=1024 HEIGHT=768 ALT="Page 12"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00012.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00013.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00012.html>[&lt;prev]</A> <A HREF=mgp00014.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 13: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00013.png" WIDTH=1024 HEIGHT=768 ALT="Page 13"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00013.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00014.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00013.html>[&lt;prev]</A> <A HREF=mgp00015.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 14: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00014.png" WIDTH=1024 HEIGHT=768 ALT="Page 14"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00014.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00015.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00014.html>[&lt;prev]</A> <A HREF=mgp00016.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 15: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00015.png" WIDTH=1024 HEIGHT=768 ALT="Page 15"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00015.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00016.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00015.html>[&lt;prev]</A> <A HREF=mgp00017.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 16: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00016.png" WIDTH=1024 HEIGHT=768 ALT="Page 16"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00016.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00017.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00016.html>[&lt;prev]</A> <A HREF=mgp00018.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 17: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00017.png" WIDTH=1024 HEIGHT=768 ALT="Page 17"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00017.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00018.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00017.html>[&lt;prev]</A> <A HREF=mgp00019.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 18: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00018.png" WIDTH=1024 HEIGHT=768 ALT="Page 18"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00018.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00019.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00018.html>[&lt;prev]</A> <A HREF=mgp00020.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 19: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00019.png" WIDTH=1024 HEIGHT=768 ALT="Page 19"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00019.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00020.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00019.html>[&lt;prev]</A> <A HREF=mgp00021.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 20: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00020.png" WIDTH=1024 HEIGHT=768 ALT="Page 20"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00020.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00021.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00020.html>[&lt;prev]</A> <A HREF=mgp00022.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 21: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00021.png" WIDTH=1024 HEIGHT=768 ALT="Page 21"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00021.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00022.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00021.html>[&lt;prev]</A> <A HREF=mgp00023.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 22: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00022.png" WIDTH=1024 HEIGHT=768 ALT="Page 22"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00022.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00023.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00022.html>[&lt;prev]</A> <A HREF=mgp00024.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 23: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00023.png" WIDTH=1024 HEIGHT=768 ALT="Page 23"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00023.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00024.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00023.html>[&lt;prev]</A> <A HREF=mgp00025.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 24: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00024.png" WIDTH=1024 HEIGHT=768 ALT="Page 24"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00024.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00025.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00024.html>[&lt;prev]</A> <A HREF=mgp00026.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 25: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00025.png" WIDTH=1024 HEIGHT=768 ALT="Page 25"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00025.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00026.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00025.html>[&lt;prev]</A> <A HREF=mgp00027.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 26: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00026.png" WIDTH=1024 HEIGHT=768 ALT="Page 26"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00026.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00027.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00026.html>[&lt;prev]</A> <A HREF=mgp00028.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 27: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00027.png" WIDTH=1024 HEIGHT=768 ALT="Page 27"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00027.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00028.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00027.html>[&lt;prev]</A> <A HREF=mgp00029.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 28: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00028.png" WIDTH=1024 HEIGHT=768 ALT="Page 28"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00028.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00029.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00028.html>[&lt;prev]</A> <A HREF=mgp00030.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 29: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00029.png" WIDTH=1024 HEIGHT=768 ALT="Page 29"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00029.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00030.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00029.html>[&lt;prev]</A> <A HREF=mgp00031.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 30: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00030.png" WIDTH=1024 HEIGHT=768 ALT="Page 30"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00030.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00031.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00030.html>[&lt;prev]</A> <A HREF=mgp00032.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 31: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00031.png" WIDTH=1024 HEIGHT=768 ALT="Page 31"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00031.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00032.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00031.html>[&lt;prev]</A> <A HREF=mgp00033.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 32: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00032.png" WIDTH=1024 HEIGHT=768 ALT="Page 32"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00032.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00033.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00032.html>[&lt;prev]</A> <A HREF=mgp00034.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 33: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00033.png" WIDTH=1024 HEIGHT=768 ALT="Page 33"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00033.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00034.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00033.html>[&lt;prev]</A> <A HREF=mgp00035.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 34: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00034.png" WIDTH=1024 HEIGHT=768 ALT="Page 34"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00034.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00035.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00034.html>[&lt;prev]</A> <A HREF=mgp00036.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 35: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00035.png" WIDTH=1024 HEIGHT=768 ALT="Page 35"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00035.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00036.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00035.html>[&lt;prev]</A> <A HREF=mgp00037.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 36: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00036.png" WIDTH=1024 HEIGHT=768 ALT="Page 36"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00036.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00037.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00036.html>[&lt;prev]</A> <A HREF=mgp00038.html>[next&gt;]</A> <A HREF=mgp00038.html>[last&gt;&gt;]</A>
+<BR>Page 37: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00037.png" WIDTH=1024 HEIGHT=768 ALT="Page 37"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00037.png
Binary files 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 @@
+<HTML>
+<HEAD><TITLE>MagicPoint presentation foils</TITLE></HEAD>
+<BODY>
+<A HREF="index.html">[index]</A> <A HREF=mgp00038.txt>[text page]</A> <A HREF=mgp00001.html>[&lt;&lt;start]</A> <A HREF=mgp00037.html>[&lt;prev]</A> [next&gt;] [last&gt;&gt;]
+<BR>Page 38: How and why to work with the Linux kernel community<BR>
+<HR>
+<IMG SRC="mgp00038.png" WIDTH=1024 HEIGHT=768 ALT="Page 38"><BR>
+<HR>Generated by <A HREF="http://member.wide.ad.jp/wg/mgp/">MagicPoint</A>
+</BODY></HTML>
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
--- /dev/null
+++ b/2008/how_and_why_kernel-fht2008/html/mgp00038.png
Binary files 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
personal git repositories of Harald Welte. Your mileage may vary