Photo of Ben Collins

Ben Collins

Das Interview wurde geführt im: November 2006

Kurzdaten

IRC Nickname: BenC
Wohnort: Virginia, USA
Alter: 34
Beruf: Kernel Hacker
Blog: ben-collins.blogspot.com
Webseite: www.phunnypharm.org

Über Ubuntu

Was machst du für Ubuntu?

Ich warte Ubuntu's Linux Kernel.

Wieviel Zeit verbringst du mit Ubuntu?

Ich versuche nicht zu zählen. Weit mehr als ich sollte.

Wann und wie bist du bei Ubuntu involviert worden?

Ich habe vor etwas mehr als einem Jahr (kurz vor dem Breezy Release) angefangen für Ubuntu/Canonical zu arbeiten.

Wirst du für deine Arbeit an Ubuntu bezahlt?

Ja

An was arbeitest du für Feisty?

Mit Blick auf den Kernel arbeite ich an der Verbesserung unseres Hardware-Supports und der Stabilität. Wir stocken endlich das Kernel Team auf und ich hoffe, dass mir das mehr Zeit für die Arbeit an Bugs und neuen Features gibt.

Welche Funktion würdest Du in Ubuntu gern (verbessert) sehen?

Ich würde gerne eine bessere GUI (eigentlich überhaupt eine GUI, da es keine gibt) für das Geräte-Treiber-Management sehen.

Was ist alles in der Paketierung und der Überwachung des Linux Kernel für eine Distribution involviert?

Es ist eine riesige Unternehmung. Die meiste Zeit verbringe ich damit Bug Reports abzuarbeiten, Informationen über Abstürze zu sammeln und versuchen diese zu debuggen um passende Lösungen zu finden.

Mein Arbeitsalltag sieht ungefähr so aus:

Bis zu welchem Ausmaß gibt es Zusammenarbeit zwischen Kernel-Entwicklern unterschiedlicher Distributionen?

Der Kernel ist sehr distributionsspezifisch. Verschiedene Distributionen haben verschiedene Verfahren was sie mit dem Kernel machen. Manche bleiben so nah wie möglich am Ur-Kernel, andere sind bereit große Patches zu integrieren, die viel von den Core-Funktionalitäten ändern und somit stark vom Ur-Kernel abweichen. Distributionen haben auch verschiedene Ansichten, wenn es darum geht Treiber zu unterstützen, die nicht im Ur-Kernel sind. Dies könnten proprietäre Treiber oder Firmware sein, aber auch GPL-Treiber, die noch nicht im Ur-Kernel integriert sind. Während ich also versuche den Ubuntu Kernel für andere Distributionen verfügbar zu machen ist es unwahrscheinlich, dass unsere Verfahren mit den der anderen auch nur annährungsweise übereinstimmen. Ein Gebiet auf dem wir uns überschneiden und zusammen arbeiten, ist die Verwundbarkeit der Kernel Sicherheit. Debian und Ubuntu nutzen Subversion, ein gemeinsames Versionierungssystem, um ausstehende Probleme zu überwachen und Patches gemeinsam zu nutzen.

Für die meisten Leute ist der Kernel ein Rätsel, entweder ihre Hardware läuft oder läuft nicht. Wie kommst du Problemen im Kernel auf der Spur oder beschliesst, dass es eines der tausend Programme ist, das sich falsch verhält?

Im Allgemeinen ist es einfach herauszufinden, ob ein Bug im Kernel ist oder nicht. Es ist wahr, dass mit den riesigen Fortschritten und Abstraktionen, die es auf Grund besserer Desktop-Umgebungen (hal, udev, etc.) gab, es Benutzer schwer haben dies selbst herauszufinden, aber die Entwickler, die an Software arbeiten welche direkt mit dem Kernel interagiert, werden wissen, ob ein Bug, der in ihren Paketen auftrtitt, wirklich ein Kernel-Bug ist oder nicht. Was die Beseitigung von Problemen betrifft: in neun von zehn Fällen ist ein Bug, der von einem User gefunden wurde schon an einer anderen Stelle beseitigt, sei es in einer anderen Distribution oder in einer neueren Kernel-Version.

Wie können Entscheidungen, die bei der Implementierung des Kernels getroffen werden den Rest der Entwicklung der Distribution beeinflussen?

Es gibt ein paar Möglichkeiten warum solche Entscheidungen für Probleme sorgen können. Zum Beispiel wenn Distributionen anfangen sich von IDE-Treibern zu verabschieden und zu PATA-Treibern übergehen ändern sich die Bezeichnungen der Geräte (z.B. /dev/hda wird zu /dav/sda). Das hat uns zu ziemlich viel Entwicklung auf unserer Seite gezwungen, dass diese Migration reibungslos abläuft, besonders wenn man bedenkt, dass wir "in-place-upgrades" von einem Release zum nächsten unterstützen. Im Allegemeinen gibt es aber keinen Grund zur Sorge für das Kernel-Team in der Entwicklungsphase. Es ist selten, dass sich etwas an der Kernel/User API ändert und wenn doch, dann ist es lange genug vorher bekannt, so dass es keine Probleme verursacht.

Was denkst du wie wichtig das Backporting von Kernel-Treibern und Dinge wie suspend2 für LTS-Versionen sind?

Das Backporting von Treibern für Dapper LTS ist sehr wichtig. Wir haben ein Prozess in welchem wir diese Patches in vorgesehenen Updates testen, in der Hoffnung, dass sie sich irgendwann zu stabilen Releases entwickeln werden. Die einzigen Patches, die in Frage kommen sind diejenigen, die User davon abhalten könnten LTS überhaupt zu nutzen (z.B. neue Speicher- oder Netzwerktreiber). Dinge wie suspend2 werden es nie in ein LTS-Update schaffen. Obwohl wir versuchen die suspend/hibernate-Unterstützung zu verbessern wird es Leute nicht davon abhalten Ubuntu zu nutzen. Es ist schwer die Vor- und Nachteile von Patches abzuwiegen und nicht einfach dieses dann den Usern zu erklären. Die meisten sagen einfach: "Schmeiss es rein, bei mir läuft's!", aber realisieren nicht, dass der Kernel ein sehr kompliziertes bisschen Code ist, bei dem sogar der kleinste Patch das Potential hat den kernel zu ruinieren auf einer großen Anzahl von Rechnern, sogar wenn es bei einem einzelnen User funktioniert. Wir wurden von harmlos aussehenden Patches in der Vergangenheit gebissen, also haben wir den Fluss von Patches, die in den Kernel fliessen verringert.

Was sind deine Pläne zur Entwicklung eines Gerätemanagers?

Zuerst muss ich die Spezifikationen machen und genehmigt bekommen. :) Nebenbei habe ich die Arbeit daran schon aufgenommen. Ich habe vor meinen Plan für die Öffentlichkeit bald auf Launchpad zu stellen. Bis jetzt wird es Treiberinformationen und aktuelle Werte zeigen. An was ich noch arbeiten muss ist wie man all diese Informationen organisieren kann, dass User-Space das beste daraus macht, so wie die Integration von udev und initramfs-tools. Es gibt ausserdem einige Beschränkungen im kernel selbst, welche die Implementation so wie ich sie möchte nicht möglich machen. Ich werde mit Upstream-Kernel-Entwicklern zusammenarbeiten um die Details zu klären und hoffentlich Patches bereitstellen, die in den Ur-Kernel einfliessen werden.

Was denkst du darüber, dass binary firmware und Treiber ohne Quellcode in den Ubuntu-Kernels eingesetzt werden?

Ich persönlich finde, dass wir nur freie Treiber benutzen sollten. Ich habe ein starke Abneigung von Hardware-Anbietern, die den Leuten, die ihre Produkte kaufen keinen anständigen Support geben. Der Mangel an Spezifikationen ist ein fast sicherer Weg Verbraucher dazu zu bringen ein Betriebssystem zu nutzen, das sie nicht möchten. Aus praktischer Sicht ist es jedoch ein notwendiges Übel. Anwender, die gerade zu Linux wechseln sind über diese Probleme nicht informiert, es ist leicht diese Anwender ohne richtige Unterstützung zu lassen und zu sagen, sie sollen etwas anderes kaufen, aber das hilft uns gar nicht weiter. Mit dieser Ansicht würden Anwender wahrscheinlichen nie zu Ubuntu oder Linux allgemein wechseln. Den Ansatz den Ubuntu beschlossen hat, und mit dem ich einverstanden bin, sieht vor, dass das System so gut wie möglich out-of-the-box funktioniert, aber dass wir sie auch über die Probleme aufklären. Bei der Ubuntu Entwickler Konferenz in Mountain View haben wir an einer Spezifikation über genau dieses Problem gearbeitet und wir haben Diskussionen während der ganzen Woche darüber geführt. Wie können wir das Verwenden von proprietären Treibern und Firmware mit unseren Idealen von freier Software in Einklang bringen? Unsere Lösung sieht vor die User darüber zu informieren, dass ihr System solche Treiber verwendet und die Vor- und Nachteile davon aufzuzeigen. Wir hoffen zwei Ergebnisse zu sehen:

  1. User werden besser informiert sein und hoffentlich bessere Entscheidungen bei der Wahl der nächsten Hardware-Anschaffung treffen, während sie immer noch anfangen können Linux zu nutzen ohne Funktionalität zu verlieren.
  2. Hardware-Anbieter, die in diese Kategorie fallen, fangen an diesen Trend als schädlich für Ihren Ruf zu erkennen und wenn wir Hardware ihrer Konkurrenten empfehlen (z.B. nicht nVidia/ATI sondern Intel Graphics kaufen). Wir hoffen, dass das und der Druck der restlichen Community die richtige Nachricht an diese Anbieter schicken wird, während wir immer noch User zu Ubuntu anlocken.

Dinge aus der Computerwelt

Beteiligst Du Dich noch auf andere Weise an FLOSS?

Nicht so viel wie ich früher einmal habe. Ich habe freie Software für ca. acht Jahre gemacht (damals als ich mit Debian angefangen habe). Zwei Projekte, die ich habe sind sXid und libugci. Obwohl sXid nicht mehr betreut wird hilft es immer noch vielen Usern. Das libugci Projekt ist aus meinem Interesse an xMAME entstanden, mein eigenes Arcade Cabinet zu bauen. Ich war früher etwas in Linux 1394 involviert, aber diese Arbeit hat sich zu einem nicht bemerkbaren Teil reduziert. Die meiste Zeit verbringe ich mit Arbeit am Ubuntu-Kernel.

Welchen Fenstermanager/welche Desktop-Umgebung nutzt Du und was magst Du daran?

Bis ich mit Ubuntu angefangen habe, habe ich X nie benutzt, ausser um Firefox zu nutzen. Ich war ein Konsolen-Junkie. 12 VTs waren meine Arbeitsweise, mit VIM und mutt. Sogar für das Surfen im Web habe ich Links Firefox vorgezogen. Als ich dann anfing für Canonical zu arbeiten dachte ich wäre es an der Zeit X eine Chance zu geben und fand heraus, dass es mir tatsächlich einen Nutzen bringt eine graphische Benutzeroberfläche zu nutzen, etwas das früher nicht so war, als ich mit Linux anfing. Hauptsächlich habe ich es gemacht, dass ich in der gleichen Umgebung bin, wie die User, die ich unterstütze. Also ging es von mutt zu Evolution und VT Konsolen zu Gnome-terminals. Ich benutze immer noch VIM. :)

Welche Programme nutzt Du täglich?

Meine Session beinhaltet:

Desktop 1: Firefox, xChat-gnome, GAIM
Desktop 2: Evolution
Desktop 3: 4 gnome-terminals
Desktop 4: 4 gnome-terminals

Mein meist-genutztes Programm: VIM

Wie sieht Dein Arbeitsplatz aus?

Oh, jeder, der mich kennt wird dir sagen, dass ich ein Hardware-verrückter bin, also beschränke ich mich auf die Liste der Systeme, die eingeschaltet bleiben. :) Jedes System läuft unter Ubuntu, außer bei denen anderes vermerkt ist.

Build Systeme (Kernel kompilieren und testen):


Verschiedene Systeme (Desktop, etc.):
Hitech Rack Magnify Hitech Security Magnify Guard Cow Magnify

Das Foto bedarf wahrscheinlich etwas Erklärung. Ich bekomme viel Gelächter wegen dem Bild von meinen Kollegen. Ja, meine Primär-Systeme stehen in einer Scheune. Ich lebe auf einer Farm umschlossen von Kuh-Herden (nicht meine Kühe). Die Scheune bietet die beste Ventilation und Lärmreduzierung. Ausserdem ist sie von einem Hochspannungszaun und Kühen umgeben. Ich kann mir kein besseres Sicherheitssystem als einen Dieb in Schockarrest zu schicken oder von dem 1-Tonnen Bullen Lucky zertrampeln zu lassen, vorstellen.

Persönliche Dinge

Wo wurdest du geboren/Wo bist du aufgewachsen?

Geboren, aufgewachsen und immer noch in Virginia lebend. Ich habe nie mehr als 60 Meilen entfernt von meinem Geburtsort gewohnt.

Welche Erinnerung hast du vom Erwachsenwerden?

Ich erinnere mich an diese heisse Lehrerin, die ich in der 4. Klasse hatte ... warte, du willst wahrscheinlich etwas Computerverwandtes hören, richtig? Wie dem auch sei, ich wuchs während des Technologie-Booms auf. Mein Computer-Interesse hat mit einem Atari 400 angefangen und ging dann bald zum Apple //e über. Eins woran ich mich erinnere ist, als ich damals in der Schule Ärger bekommen habe und eine Satz dann 100mal schreiben musste. Stattdessen bin ich nach Hause gegangen und schrieb ein kleines BASIC-Programm das den Satz 100mal druckte, inklusive steigender Nummerierung (eine Leichtigkeit nach heutigen Standards, damals war es aber richtig cool). Der Lehrer bemerkte das nicht. Heute würde man damit nicht durchkommen. Kurz danach wechselten wir zu einem Mac Plus. Die Dinge an die ich mich am besten erinnere sind herauszufinden wie diese Maschinen funktionierten. Ich habe fast keine Spiele gespielt, ich habe sie auseinander genommen und habe viel programmiert. Mit meinem Apple //e baute ich einen Plotter aus ein paar DC Motoren und Zeug aus dem Hardware-Laden und steuerte sie über den Drucker Port. Ich habe nie einen passenden Druckertreiber geschrieben, aber ich konnte es programmtechnisch kontrollieren. Ich baute auch einen "light pen" und hab ihn erst letztens in ein paar Programmen verwendet. Das war mein erster Kontakt mit Hardware-Programmierung.

Verheiratet, Freundin oder zur Adoption freigegeben?

Siet fast 12 Jahren verheiratet.

Hast Du Kinder oder Haustiere?

Drei Jungs, 10, 6 und 2 Jahre alt. Ein Hund. Meine Frau würde sagen, dass sie 4 Kinder hat. Ich glaube nicht, dass ich erwachsen geworden bin bis jetzt. :)

Was kannst Du jemandem empfehlen, der Dein Land besucht?

Es gibt so viele großartige Orte, es ist schwer nur einen zu nennen. Wenn du im Herzen noch ein Kind bist (so wie ich) musst du zu Disney World gehen. einer meiner liebsten Orte ist eine Fahrt zum 'Blue Ridge Parkway' durch die Appalachen im Herbst. Es ist wunderschön.

Was ist Dein Lieblingsurlaubsort?

Campen, und das eigentlich überall.

Wofür kannst Du Dich begeistern?

Eines meiner Lieblingshobbys ist Poker. Einige Leute sehen es nur als Glücksspiel, aber ich spiele es aus verschiedenen Gründen. Zum einen ist Poker ein sehr gemeinschaftliches Spiel. Ich mag es mit Leuten zu interagieren und Denk- und Strategiespiele zu spielen. Poker verlangt von einem gute Einschätzungen zu machen, die auf sehr wenig Informationen und normalerweise auf die kleinsten Details an die man denken muss, die Stunden vor der Entscheidung getoffen worden, basieren. Man braucht ausserdem Fähigkeiten in Mathe, Möglichkeiten herausfinden und im schnellen Berechnen von Wahrscheinlichkeiten. Ich liebe es das Spiel zu studieren. Es ist eines dieser Dinge, die man nie meistert, aber viel Spass hat es zu versuchen.

Was bedeutet Erfolg für dich?

Erfolg bedeutet inzwischen für mich etwas anderes als früher. Meine Kinder sind der einzige Maßstab für mich. Ich möchte, dass sie stolz sagen können ich bin ihr Vater. Wenn ich in ihren Augen erfolgreich war, dann bin ich glücklich.

Was bewunderst du am meisten?

Das hört sich vielleicht typisch an, aber ich bewundere Jobs und Wozniak. Sie waren eine seltene Kombination aus Innovation und der Vision diese den Massen zu bringen. Egal was man von dem einen oder dem anderen denkt, Apple wäre nicht das was es heute ist ohne die beiden zusammen. In meiner Karriere habe ich meinstens gehofft Teil von etwas großartigem wie dem zu sein. Vielleicht eines der Dinge, die man nicht erkennt während sie passieren ... vielleicht bin ich gerade im Moment ein Teil davon. :)

Lieblingszitat?

Zitat eines Freundes von mir warum Mädchen keine Haare am Hintern haben: "Es ist nicht in ihrer Hygiene!"

Lieblingsessen?

Alles was man grillen kann. Egal ob Hot Dogs, Hamburger, Steak oder Fisch/Meeresfrüchte. Ich liebe es zu kochen und ein paar Bier mit Freunden zu trinken.

Was machst du in deiner Freizeit?

Ich fische, spiele Paintball und mag es Dinge zu bauen (Kartoffel-Kanone irgendwer? Anm. d.). Hauptsächlich mag ich es draussen zu sein. Ich höre alles möglich an Musik. Lieblings-Genres sind Rock, Metal und Rap. Ich schaue gerne Filme. Ich hab demletzt erst "Let's go to Prison" gesehen. Mein Lesen beschränkt sich hauptsächlich auf technische Dokumente. Du interessierst dich wohl nicht für meine Bücher-Liste, es sei denn du interessierst dich für die letzte IEEE Spezifikationen oder Hardware Dokumentation.

Empfiehlst du uns eine nicht-Ubuntu-Webseite?

Ein Link aus meinen Lesezeichen: www.homelandstupidity.us Dies ist eine Seite die zeigt, wie dumm die US-Regierung sein kann. Nichts neues für viele, aber dennoch interessant.