Moved operating systems into introduction.
[cascardo/kernel/old_slides/.git] / 00.intro / 00.intro.xml
index c7e9a4e..4aa5ff2 100644 (file)
@@ -50,4 +50,101 @@ has put to scale, with most bottlenecks removed.
 </para>
 </foil>
 
+<!--
+<foil>
+<intro>Linux evolution</title>
+<para>
+TODO: introduce a graphic with the number of lines of code.
+</para>
+</foil>
+-->
+
+<foil>
+<title>Linux evolution</title>
+<para>
+Linux source code and interfaces have changed a lot in all these years. Some
+programs require the sysfs interface, for example. Some drivers may require new
+interfaces and not build on old linux versions. They may also use obsolete or
+replaced unexisting interfaces and not build on new linux versions.
+</para>
+<para>
+Better practice is to release the driver under GPLv2 or other compatible
+license and send it to mainline. And maintain it even after it's there.
+</para>
+</foil>
+
+<!--
+<foil>
+TODO: talk about linux versions, we have a very good odt for that
+</foil>
+-->
+
+<foil>
+<title>Outdated book</title>
+<para>
+Since Linux is in constant change, the book is already outdated. It's almost
+five years old.
+</para>
+<para>
+One example of outdated interface is the workqueue, whose updated functions we
+will see later.
+</para>
+</foil>
+
+<foil>
+<title>Modules</title>
+<para>
+Linux is modular. Its modules may be inserted and removed at will, making it
+very flexible. Modules may be device drivers and may work as many other
+funciotns as well, like filesystems, network protocols, power management
+policies, etc.
+</para>
+</foil>
+
+<foil>
+<title>Mechanism and Policy</title>
+<para>
+Drivers should provide mechanism. As in many other cases, splitting mechanism
+and policy is desirable. In the case of kernel code, this is no exception.
+Kernel space code and user space code are good split points to provide that
+separation.
+</para>
+</foil>
+
+<foil>
+<title>Recommendations</title>
+<itemizedlist>
+<listitem>
+Check every possible error.
+</listitem>
+<listitem>
+Do not trust received data nor do send unzeroed data.
+</listitem>
+<listitem>
+Use a machine you can spare.
+</listitem>
+</itemizedlist>
+</foil>
+
+<foil>
+<title>Operating Systems</title>
+<itemizedlist>
+<listitem>
+<emphasis>Process</emphasis>Management
+</listitem>
+<listitem>
+<emphasis>Memory</emphasis>Management
+</listitem>
+<listitem>
+Input/Output/Hardware Management
+</listitem>
+<listitem>
+Filesystems
+</listitem>
+<listitem>
+Network
+</listitem>
+</itemizedlist>
+</foil>
+
 </slides>