Linux history, development model and tools.
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Sun, 16 May 2010 13:22:41 +0000 (10:22 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Sun, 16 May 2010 13:22:41 +0000 (10:22 -0300)
01intro/intro [new file with mode: 0644]

diff --git a/01intro/intro b/01intro/intro
new file mode 100644 (file)
index 0000000..fe500aa
--- /dev/null
@@ -0,0 +1,131 @@
+%Introduction
+%Thadeu Cascardo
+
+# Linux History
+
+# What is Linux?
+
+Linux is a POSIX-compatible modern operating system developed since
+1991, released under the GPLv2, with contributions by thousands of
+people. It is mostly written in C, with some assembly code.
+
+It has grown from a non-portable Intel 386 code with thousands lines to
+a portable code with support for dozens of architectures and hundreds
+machines and millions of code.
+
+# When there was no Linux
+
+* The GNU system
+* Minix
+* The Usenet
+* Intel 386
+* Finnish student Linus Torvalds
+
+# The beginning
+
+* Licensing
+* Torvalds and Tanenbaum flamewar
+* People's contributions
+
+# Evolution
+
+Since version 1.2, it has supported more than only Intel x86
+architectures, including now SPARC, PowerPC, ARM, Alpha, M68K, MIPS,
+S/390, and many others.
+
+Since version 2.0, it has supported SMP systems, now running in systems
+with hundreds of processors, multi-core processors, etc. Since then, its
+SMP support has put to scale, with most bottlenecks removed.
+
+# Version control
+
+* CVS
+* Bitkeeper
+       - controversy
+       - Andrew Tridgell starts reverse-engineering the storage and
+         saves the day
+* Linus creates git
+
+# GregKH presentations
+
+* Linux's growth in the 2.6 cycle
+
+# Development model
+
+# The old development model
+
+* X.Y.Z
+* Major and minor versions and releases
+* Even minor versions are stable
+* Odd minor versions are for development
+
+# There is no Linux 2.7
+
+* Development cycles were getting long
+* Sometimes, people talk about 3.0 and breaking stuff
+* A new development model
+
+# The new versioning model
+
+* After a given release, there are stable point releases: 2.6.33.X
+* Release candidates are published by Linus: 2.6.34-rcX
+* There is a linux-next tree that will help development for the next
+  version: 2.6.35
+
+# The development model (or how Linus gets all those changes)
+
+* There are subsystems and there are maintainers for those
+* People Linus trusts who asks for pulls or send patches
+* People send patches to maintainers and to LKML for review
+* Andrew Morton does the "missing patches" collection
+
+# The documentation
+
+* Documentation/SubmittingPatches
+* Documentation/CodingStyle
+* Documentation/SubmitChecklist
+* MAINTAINERS
+
+# The tools people use
+
+* git
+* quilt
+* scripts/checkpatch.pl
+* scripts/get\\_maintainer.pl
+
+# Tools
+
+# ketchup
+
+* kernel.org distributes tarballs, patches and "subpatches"
+* ketchup makes it easier to get the right files
+* Reduces download time
+* Do not forget to import GPG keys or disable signature verification
+
+# diff
+
+* Compare two files or two trees
+* Recursive: -r
+* Include new files: -N
+* Unified diff: -u
+* Show C function: -p
+
+# patch
+
+* Apply changes in a patch file using standard input
+* patch file is generated using diff
+* Strip directory prefix: -p N
+* Reverse patch: -R
+
+# quilt
+
+* Organize patch series into a directory
+* QUILT\\_PATCHES environment variable
+* quilt new name.patch
+* quilt add src/file
+* quilt refresh
+* quile edit src/file
+* quilt top
+* quilt pop [-a]
+* quilt push [-a]
+* Never forget to do 'quilt add' before editing a file