Linux Lunacy™ 6 Seminars

Alaska • September 16th – 23rd, 2007

Linux Kernel Development (quarter day)

Speaker: Andrew Morton

Curious as to how, why, and whose code finds its way into the Kernel? This high-level, after-hours discussion (and Q&A) will cover the various roles and responsibilities of Kernel developers, resourcing, motivational, and management issues and how these have changed over time. Also the kernel's requirements, development, review, and testing processes will be revealed. The audience will come away with an understanding of why Kernel developers do what they do — and how they do it.

Introduction to 'git': The Next-Generation Source Code Manager (quarter day)

Speaker: Randal Schwartz

When you have hundreds of people simultaneously patching 25000 files of the Linux Kernel in sometimes conflicting ways, you might need some scheme or plan to sort all that out before you can build your next kernel and reboot. The Linux team uses "git" for their source code repository management, a homegrown solution that is optimized for highly distributed development, working with huge sets of files, merging independent work at multiple levels, and seeing who broke what. (Git has also since been notably adopted by the Cairo, x.org, and Wine teams, and is being transitioned to by the Mozilla codebase.) In my talk, I describe what "git" is and isn't, and why you should use it instead of CVS, Subversion, SVK, Arch, Darcs, Mercurial, Monotone, Bazaar, and just about every other repository manager. I'll also walk though the basic concepts so that the manpages might start making sense.

Synchronization Primitives and Other Basic Tools
in the Linux Kernel (half day)

Speaker: Andrew Morton

This discussion will cover in some depth a wide range of the low-level tools which are available to Kernel programmers for managing multiprocessor and multithread synchronisation. Topics covered will include spinlocks, read-write locks, mutexes, semaphores, read-write sempahores, bit spinlocks, waitqueues, wakeups, atomic types, the new `local_t' type, read-copy-update etc.

We will also cover the memory management APIs which the core Kernel offers — what the differences are, which API to choose, usage caveats, etc.

We will conclude the discussion with coverage of Kernel development techniques such as defensive programming, use of the various compile-time and runtime code-checking tools and Kernel debugging tools and techniques.

Hidden Secrets of the TCP Protocol (quarter day)

Speaker: Theodore Ts'o

The Transmission Control Protocol, or TCP has been around for a long time, and we take it for granted. It's just part of the infrastructure on top of which we build ssh, http, ftp, and a whole host of Internet Protocols. But there is a lot of sophisticated engineering and architecture inside the TCP layer. This talk will cover what makes TCP/IP tick, from its retransmission algorithms to Path MTU discovery and everything in between. This talk will also cover how to tune Linux's TCP/IP for better application performance depending on the application's needs.

Perl 6 for Perl 5 Programmers (two days)

Speaker: Damian Conway

Perl 6 will be a major improvement on Perl 5 in many ways: syntactically, semantically, performance-wise. This class looks in depth at the features of the new version of Perl, and at many of the programming techniques those features make available. Numerous real-world examples of porting Perl 5 code to Perl 6 are shown.

Day 1, AM: Perl 6 Fundamentals

Overview of the project, virtual machine architecture, compilers, new dereferencing syntax, new sigil syntax, variable declarations, static variables, constants, concatenation operator, Unicode, strictures and warnings, new output statement, interpolation blocks, new heredoc syntax, ranges, string lists, key lists, pairs, string manipulation methods, other operator changes, pipelines, defaulting operators, operator precedence, hyperoperators, reductions, junctions, sets, chainable comparators, smartmatching, variable binding, subroutines, option pairs, switch statement, contextual awareness, filehandles, autochomping, serialization, file slurping.

Day 1, PM: Perl 6 Core features

Introspection, pod rationalization, modules, blocks, closures, and subroutines, implicit parameter lists, argument binding, control statements, topics, C-style for statement, Perl-style for statement, no assignments in conditionals, sorting, operator overloading, stubbing, error variables, exceptions.

Day 2, AM: Object Oriented Perl 6
regexes, rules, and grammars

Classes, attributes, methods, class attributes and methods, implicit invocants, inheritance, submethods, object construction, reflexive method calls, object creation, object destruction, multiple dispatch, roles, subtypes, enums.

Day 2, PM: Perl 6 pattern matching: regexes, rules, and grammars

Regular expressions, unchanged features, modifiers, changed metacharacters, new metacharacters, new regex repetition qualifier, bracket rationalization, variable (non-)interpolation, extensible metasyntax, backslash reform, backtracking control, regex match variable, regex capture variables, hierarchical regex captures, subrule capturing, hypothetical variables, matching against non- strings, regex declarations, named regexes, grammars.

High Performance Computing (full day)

Speaker: Bebo White

When the term 'High Performance Computing (HPC)' is used these days it is more often than not referring to large "farms" or arrays of small, low-cost computers working together to accomplish a compute-intensive problem rather than to so-called supercomputers. Such "farms" provide high throughput, are scaleable, use inexpensive components and open-source software, and are fault tolerant. Sounds great! How hard can it be to design such a system?

In this seminar you will learn about the different hardware architectures and programming models currently available for building HPC systems. If you are involved with the design or use of HPC systems, this class is for you! The outcome of the tutorial will be your understanding of the role that HPC might play in satisfying your compute needs and requirements.

Topics that will be covered include:

Hardware models

Software models

Real-Time Linux (half day)

Speaker: Theodore Ts'o

"Linux and Real-Time?" Sounds like a contradiction in terms? So was "Linux on non-x86 architectures" and "Linux and SMP" at one point. Today, using the latest patches, it is possible to get 50 microsecond or better latencies on real-time tasks on a real-time Linux Kernel while the system is loaded by multiple Kernel compiles, ping floods, and massive disk and network transfers occurring in the background.

This presentation will cover various historical approaches to provide hard- and soft- real-time capabilities on Linux or Linux-like systems, what features are available in the mainline Kernel, and patches such as Ingo Molnar's CONFIG_PREEMPT_RT. It will discuss what techniques are being used to achieve these results, and what the future may bring. Finally, it will explore some of the applications that can take advantage of a real-time Linux system.

Voice over TCP/IP (VoIP) and Asterisk (half day)

Speaker: maddog

You have heard the hype, now get the scoop on how to save money and improve your love life by taking control of your phone system. Without all the jargon, learn how to set up an Asterisk PBX (Private Branch Exchange … o.k. a fancy switchboard) using the (relatively) easy to set up "Asterisk at Home". Learn about a variety of VoIP devices and how to tie those into your phone system, including wireless VoIP. Even good for a small business or college dorm, Asterisk allows you to integrate your business with your phone system. Other VoIP services such as Vonage and Skype will be covered. Can you hear me now?

Comparison of Distributions (half day)

Speaker: maddog

Wonder if you should be using Red Hat, Red Hat Enterprise, Fedora, SuSE, Ubuntu, Debian, Xandros, Mandriva, Slackware … man, Microsoft never made it so confusing — they just TOLD you what to use! But now you have CHOICE, and it is killing you. This talk will go over the features of some of the major distributions and help you decide which distribution is best. From the original author of "Linux for Dummies".

Open Source Software — A Collaboration Platform
for Web Applications (keynote)

Speaker: Bebo White

Web development has led to some of the most successful and well-known open source projects. Notable examples include Apache, Mozilla/Firefox, PHP, Zope, and numerous others. These projects demonstrate that open source isn't just about a software license, but about human interaction and individual motivation. It is about sharing ideas and technology implementations. Open standards efforts within the Web research and development community will ensure that open-source software will continue to play a major role in the evolution of Web-based technologies.

Linux Kernel Memory Reclaim (quarter day)

Speaker: Andrew Morton

In this seminar you will learn about the design and implementation of the 2.6 kernel’s caching, swapping, and memory reclaim architecture.

Some of the topics we will cover include:

The discussion will also cover the reclaim of VFS cache memory and the balancing between page reclaim and VFS cache reclaim.

New Features in the ext2/3/4 Filesystem (quarter day)

Speaker: Theodore Ts'o

The ext2/3/4 filesystem has one of the broadest developer communities, with engineers from IBM, Red Hat, ClusterFS, SuSE, OSDL, and many, many others — and they have been hard at work. Some of the new features that will be discussed will include extents, delayed allocation, persistent preallocation, and support for large disks.

561 Windsor Drive, Menlo Park, CA 94025 • 650-787-5665      Geek Cruises Home Page << Linux Lunacy 6 Home Page << Linux Lunacy 6 Seminars