<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

<author contact="mailto:zbrown@tumblerings.org">Zack Brown</author>

<issue num="217" date="23 May 2003 00:00:00 -0800" />

<stats posts="3112" size="15166" contrib="601" multiples="326" lastweek="218">

<person posts="94" size="288" who="Alan Cox" />
<person posts="90" size="452" who="Jens Axboe" />
<person posts="88" size="350" who="William Lee Irwin III" />
<person posts="80" size="383" who="Andrew Morton" />
<person posts="69" size="193" who="&quot;David S. Miller&quot;" />
<person posts="67" size="241" who="Greg KH" />
<person posts="60" size="180" who="Chuck Ebbert" />
<person posts="56" size="166" who="Christoph Hellwig" />
<person posts="50" size="302" who="Geert Uytterhoeven" />
<person posts="47" size="240" who="&quot;Martin J. Bligh&quot;" />
<person posts="41" size="143" who="Jamie Lokier" />
<person posts="36" size="117" who="Dave Jones" />
<person posts="33" size="212" who="Pavel Machek" />
<person posts="32" size="120" who="(davej)" />
<person posts="32" size="109" who="Timothy Miller" />
<person posts="30" size="107" who="Linus Torvalds" />
<person posts="29" size="205" who="Rusty Russell" />
<person posts="29" size="165" who="Bartlomiej Zolnierkiewicz" />
<person posts="29" size="124" who="Larry McVoy" />
<person posts="29" size="90" who="Jeff Garzik" />
<person posts="28" size="117" who="=?iso-8859-1?Q?J=F6rn?= Engel" />
<person posts="28" size="116" who="&quot;Richard B. Johnson&quot;" />
<person posts="27" size="84" who="Zwane Mwaikambo" />
<person posts="26" size="156" who=" (Eric W. Biederman)" />
<person posts="26" size="85" who="Ahmed Masud" />
<person posts="25" size="288" who="Jean Tourrilhes" />
<person posts="25" size="137" who="Adrian Bunk" />
<person posts="24" size="79" who="Yoav Weiss" />
<person posts="23" size="103" who="Russell King" />
<person posts="23" size="74" who="Helge Hafting" />
<person posts="22" size="119" who="David Mosberger" />
<person posts="22" size="76" who="&quot;H. Peter Anvin&quot;" />
<person posts="21" size="131" who="James Simmons" />
<person posts="20" size="131" who="rmoser" />
<person posts="20" size="69" who="Jesse Pollard" />
<person posts="18" size="73" who="Tuncer M &quot;zayamut&quot; Ayaz" />
<person posts="18" size="55" who="Arjan van de Ven" />
<person posts="17" size="65" who="Chris Friesen" />
<person posts="17" size="55" who="(Valdis.Kletnieks)" />
<person posts="16" size="176" who="Felipe Alfaro Solana" />
<person posts="16" size="46" who="Roman Zippel" />
<person posts="15" size="67" who="Terje Eggestad" />
<person posts="15" size="54" who="(mikpe)" />
<person posts="15" size="50" who="Trond Myklebust" />
<person posts="14" size="99" who="David van Hoose" />
<person posts="14" size="62" who="David Howells" />
<person posts="14" size="54" who="&quot;Downing, Thomas&quot;" />
<person posts="14" size="49" who="Ben Collins" />
<person posts="14" size="45" who="Werner Almesberger" />
<person posts="14" size="42" who="Davide Libenzi" />
<person posts="13" size="48" who="Pascal Schmidt" />
<person posts="13" size="42" who="Ulrich Drepper" />
<person posts="13" size="38" who="Andi Kleen" />
<person posts="12" size="388" who="Gerd Knorr" />
<person posts="12" size="293" who="zhangtao" />
<person posts="12" size="49" who="&quot;Perez-Gonzalez, Inaky&quot;" />
<person posts="12" size="42" who="Junfeng Yang" />
<person posts="12" size="41" who="&quot;Dean McEwan&quot;" />
<person posts="12" size="40" who="Pavel Machek" />
<person posts="12" size="37" who="Jos Hulzink" />
<person posts="12" size="35" who="Carl-Daniel Hailfinger" />
<person posts="12" size="32" who="(viro)" />
<person posts="11" size="37" who="Arnd Bergmann" />
<person posts="11" size="35" who="&quot;Randy.Dunlap&quot;" />
<person posts="11" size="32" who="Gregoire Favre" />
<person posts="10" size="119" who="Shawn" />
<person posts="10" size="66" who="chas williams" />
<person posts="10" size="65" who="Dave Hansen" />
<person posts="10" size="51" who="&quot;David Schwartz&quot;" />
<person posts="10" size="46" who="Muli Ben-Yehuda" />
<person posts="10" size="33" who="Stephan von Krawczynski" />
<person posts="10" size="27" who="Andi Kleen" />
<person posts="9" size="87" who="Michel =?ISO-8859-1?Q?D=E4nzer?=" />
<person posts="9" size="82" who="Francois Romieu" />
<person posts="9" size="61" who="Roland McGrath" />
<person posts="9" size="54" who="Boris Kurktchiev" />
<person posts="9" size="36" who="Simon Kelley" />
<person posts="9" size="31" who="&quot;Henning P. Schmiedehausen&quot;" />
<person posts="9" size="31" who="Bill Davidsen" />
<person posts="9" size="25" who="John Bradford" />
<person posts="8" size="113" who="Vojtech Pavlik" />
<person posts="8" size="86" who="Tomas Szepe" />
<person posts="8" size="70" who="Anders Karlsson" />
<person posts="8" size="57" who="Joel Becker" />
<person posts="8" size="41" who="Shane Shrybman" />
<person posts="8" size="38" who="Con Kolivas" />
<person posts="8" size="32" who="&quot;Adam J. Richter&quot;" />
<person posts="8" size="30" who="Daniele Pala" />
<person posts="8" size="27" who="Paul Mackerras" />
<person posts="8" size="27" who="Paul Fulghum" />
<person posts="8" size="25" who="Frank Cusack" />
<person posts="8" size="24" who="&quot;Dmitry A. Fedorov&quot;" />
<person posts="8" size="24" who="David Woodhouse" />
<person posts="8" size="22" who="Marc-Christian Petersen" />
<person posts="7" size="139" who="Matthias Andree" />
<person posts="7" size="133" who="David Howells" />
<person posts="7" size="61" who="Alexander Hoogerhuis" />
<person posts="7" size="44" who="Andre Hedrick" />
<person posts="7" size="37" who="Ed Tomlinson" />
<person posts="7" size="33" who="Neil Brown" />
<person posts="7" size="27" who="Christoph Hellwig" />
<person posts="7" size="25" who="Miles Bader" />
<person posts="7" size="24" who="David Brownell" />
<person posts="7" size="22" who="Daniel Phillips" />
<person posts="7" size="22" who="Willy Tarreau" />
<person posts="7" size="22" who="Robert Love" />
<person posts="7" size="20" who="Patrick Mochel" />
<person posts="6" size="78" who="&quot;Zephaniah E. Hull&quot;" />
<person posts="6" size="42" who="Rik van Riel" />
<person posts="6" size="42" who="Andreas Jellinghaus" />
<person posts="6" size="40" who="Hans Reiser" />
<person posts="6" size="32" who="Scott Robert Ladd" />
<person posts="6" size="30" who="Alex Riesen" />
<person posts="6" size="24" who="Max Krasnyansky" />
<person posts="6" size="24" who="&quot;Justin T. Gibbs&quot;" />
<person posts="6" size="23" who="&quot;Mudama, Eric&quot;" />
<person posts="6" size="23" who="paubert" />
<person posts="6" size="20" who="Terje Malmedal" />
<person posts="6" size="20" who="Ingo Oeser" />
<person posts="6" size="20" who="David Ford" />
<person posts="6" size="19" who="Clemens Schwaighofer" />
<person posts="6" size="19" who="&quot;Shaheed R. Haque&quot;" />
<person posts="6" size="19" who="Stian Jordet" />
<person posts="6" size="19" who="Patrick McHardy" />
<person posts="6" size="16" who="Oleg Drokin" />
<person posts="6" size="14" who="Pau Aliagas" />
<person posts="5" size="91" who="Andrey Panin" />
<person posts="5" size="61" who="Mike Galbraith" />
<person posts="5" size="52" who="Stephen Smalley" />
<person posts="5" size="42" who="Andy Pfiffer" />
<person posts="5" size="37" who="Bernhard Kaindl" />
<person posts="5" size="34" who="Lionel Bouton" />
<person posts="5" size="30" who="&quot;Riley Williams&quot;" />
<person posts="5" size="24" who="Balram Adlakha" />
<person posts="5" size="23" who="Jan-Benedict Glaw" />
<person posts="5" size="22" who="Andrea Arcangeli" />
<person posts="5" size="20" who="Xose Vazquez Perez" />
<person posts="5" size="20" who="Christopher Hoover" />
<person posts="5" size="19" who="Roland Dreier" />
<person posts="5" size="19" who="&quot;J.A. Magallon&quot;" />
<person posts="5" size="18" who="Mike Anderson" />
<person posts="5" size="18" who="Michael Buesch" />
<person posts="5" size="18" who="Matt Porter" />
<person posts="5" size="18" who="john stultz" />
<person posts="5" size="18" who="Maciej Soltysiak" />
<person posts="5" size="18" who="(markw)" />
<person posts="5" size="17" who="Peter Hicks" />
<person posts="5" size="17" who="Dave Peterson" />
<person posts="5" size="17" who="Andreas Schwab" />
<person posts="5" size="17" who="Matti Aarnio" />
<person posts="5" size="16" who="DevilKin" />
<person posts="5" size="15" who="Dirk Eddelbuettel" />
<person posts="5" size="13" who="James Morris" />
<person posts="5" size="13" who="&quot;Christopher Hoover&quot;" />
<person posts="5" size="13" who="Giuliano Pochini" />
<person posts="5" size="12" who="Damian =?iso-8859-2?Q?Ko=B3kowski?=" />
<person posts="4" size="37" who="&quot;Robert White&quot;" />
<person posts="4" size="35" who="Jeff Muizelaar" />
<person posts="4" size="31" who="Pete Zaitcev" />
<person posts="4" size="31" who="walt" />
<person posts="4" size="25" who="Hans-Georg Thien" />
<person posts="4" size="23" who="Elimar Riesebieter" />
<person posts="4" size="21" who="Bryan O'Sullivan" />
<person posts="4" size="18" who="Ravikiran G Thirumalai" />
<person posts="4" size="16" who="Bharata B Rao" />
<person posts="4" size="15" who="Daniel Jacobowitz" />
<person posts="4" size="14" who="Steven Cole" />
<person posts="4" size="14" who="shaheed" />
<person posts="4" size="14" who="Arnaldo Carvalho de Melo" />
<person posts="4" size="13" who="Andrew McGregor" />
<person posts="4" size="13" who="Hanna Linder" />
<person posts="4" size="13" who="Oliver Neukum" />
<person posts="4" size="12" who="Jan Harkes" />
<person posts="4" size="12" who="Peter Chubb" />
<person posts="4" size="12" who="petter wahlman" />
<person posts="4" size="12" who="Chris Wright" />
<person posts="4" size="12" who="Dave McCracken" />
<person posts="4" size="12" who="Miles Lane" />
<person posts="4" size="12" who="Dax Kelson" />
<person posts="4" size="12" who="Rusty Russell" />
<person posts="4" size="11" who="Sam Ravnborg" />
<person posts="4" size="11" who="Dipankar Sarma" />
<person posts="4" size="11" who="Stephen Hemminger" />
<person posts="4" size="11" who="Andreas Happe" />
<person posts="4" size="10" who="&quot;ismail donmez&quot;" />
<person posts="4" size="9" who="James Bottomley" />
<person posts="3" size="97" who="David Gibson" />
<person posts="3" size="63" who="Alan Cox" />
<person posts="3" size="32" who="&quot;Marcin Wiacek&quot;" />
<person posts="3" size="30" who="Daniel McNeil" />
<person posts="3" size="25" who="Mace Moneta" />
<person posts="3" size="15" who="CaT" />
<person posts="3" size="14" who="Chris Adams" />
<person posts="3" size="14" who="Derrick J Brashear" />
<person posts="3" size="14" who="Jaroslav Kysela" />
<person posts="3" size="13" who="Olivier Dragon" />
<person posts="3" size="13" who=" (Norbert Wolff)" />
<person posts="3" size="12" who=" (Linus Torvalds)" />
<person posts="3" size="12" who="&quot;Udo A. Steinberg&quot;" />
<person posts="3" size="12" who="&quot;Dr. David Alan Gilbert&quot;" />
<person posts="3" size="12" who="Martin Hicks" />
<person posts="3" size="12" who="Ivan Kokshaysky" />
<person posts="3" size="12" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="3" size="12" who="Philippe Elie" />
<person posts="3" size="11" who="&quot;jds&quot;" />
<person posts="3" size="11" who="&quot;Ming Lei&quot;" />
<person posts="3" size="10" who="Petr Vandrovec" />
<person posts="3" size="10" who="Henrik Persson" />
<person posts="3" size="10" who="Andries Brouwer" />
<person posts="3" size="9" who="Denis Vlasenko" />
<person posts="3" size="9" who="Shachar Shemesh" />
<person posts="3" size="9" who="Matt Mackall" />
<person posts="3" size="9" who="Nick Piggin" />
<person posts="3" size="9" who="Rene Rebe" />
<person posts="3" size="9" who="Xinwen Fu" />
<person posts="3" size="8" who="David Hinds" />
<person posts="3" size="8" who="Ian Molton" />
<person posts="3" size="8" who=" (David Wagner)" />
<person posts="3" size="8" who="Edgar Toernig" />
<person posts="3" size="8" who="Bill Huey (Hui)" />
<person posts="3" size="8" who="Adrian McMenamin" />
<person posts="3" size="6" who="Alex Davis" />
<person posts="2" size="83" who="Greg Boyce" />
<person posts="2" size="53" who="Matt Domsch" />
<person posts="2" size="38" who="Nagy Tibor" />
<person posts="2" size="34" who="Jose Luis Domingo Lopez" />
<person posts="2" size="31" who="&quot;Jeremy Jackson&quot;" />
<person posts="2" size="30" who="Nicolas" />
<person posts="2" size="28" who="Mark Hindley" />
<person posts="2" size="23" who="chas williams" />
<person posts="2" size="22" who="Philippe Troin" />
<person posts="2" size="21" who="(lkhelp)" />
<person posts="2" size="17" who="(root)" />
<person posts="2" size="17" who="Stacy Woods" />
<person posts="2" size="16" who="Chuck Berg" />
<person posts="2" size="15" who="&quot;Szonyi Calin&quot;" />
<person posts="2" size="14" who="David Caplan" />
<person posts="2" size="13" who="Stephen Torri" />
<person posts="2" size="13" who="(axel)" />
<person posts="2" size="13" who="Steve Snyder" />
<person posts="2" size="12" who="Corey Minyard" />
<person posts="2" size="10" who="Nicolas Pitre" />
<person posts="2" size="10" who="&quot;Nakajima, Jun&quot;" />
<person posts="2" size="9" who="&quot;Stephen C. Tweedie&quot;" />
<person posts="2" size="9" who="&quot;Paul E. McKenney&quot;" />
<person posts="2" size="9" who="&quot;Rachel&quot;" />
<person posts="2" size="9" who="James Bottomley" />
<person posts="2" size="9" who="(Matt_Domsch)" />
<person posts="2" size="9" who="Warren Togami" />
<person posts="2" size="9" who="&quot;STK&quot;" />
<person posts="2" size="8" who="&quot;Petr Vandrovec&quot;" />
<person posts="2" size="8" who="Bob McElrath" />
<person posts="2" size="8" who="&quot;Barry K. Nathan&quot;" />
<person posts="2" size="8" who="Nir Livni" />
<person posts="2" size="8" who="Ross Vandegrift" />
<person posts="2" size="8" who="Garance A Drosihn" />
<person posts="2" size="8" who="Thomas Hood" />
<person posts="2" size="8" who="&quot;Grover, Andrew&quot;" />
<person posts="2" size="8" who="Nigel Cunningham" />
<person posts="2" size="8" who="(contribution)" />
<person posts="2" size="8" who="Filip Van Raemdonck" />
<person posts="2" size="8" who="Tony 'Nicoya' Mantler" />
<person posts="2" size="7" who=" (Florin Iucha)" />
<person posts="2" size="7" who="Nicolas Turro" />
<person posts="2" size="7" who="Andrew Theurer" />
<person posts="2" size="7" who="Felix von Leitner" />
<person posts="2" size="7" who="Daniel Ritz" />
<person posts="2" size="7" who="&quot;Mr. James W. Laferriere&quot;" />
<person posts="2" size="7" who="Mark Haverkamp" />
<person posts="2" size="7" who="Kai Germaschewski" />
<person posts="2" size="7" who="&quot;Robert L. Harris&quot;" />
<person posts="2" size="7" who="Martin Waitz" />
<person posts="2" size="7" who="Kristian Peters" />
<person posts="2" size="7" who="Mike Touloumtzis" />
<person posts="2" size="7" who="&quot;Jon K. Akers&quot;" />
<person posts="2" size="7" who="Torrey Hoffman" />
<person posts="2" size="7" who="Jouni Malinen" />
<person posts="2" size="7" who="Jonathan Lundell" />
<person posts="2" size="6" who="Joe Korty" />
<person posts="2" size="6" who="Matthew Wilcox" />
<person posts="2" size="6" who="np" />
<person posts="2" size="6" who="Antonio Vargas" />
<person posts="2" size="6" who="Bob Gill" />
<person posts="2" size="6" who="YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" />
<person posts="2" size="6" who=" (Dick Streefland)" />
<person posts="2" size="6" who="OGAWA Hirofumi" />
<person posts="2" size="6" who="Zach Brown" />
<person posts="2" size="6" who=" (Andreas Jellinghaus)" />
<person posts="2" size="6" who="Chris Ricker" />
<person posts="2" size="6" who="Takashi Iwai" />
<person posts="2" size="6" who="J Sloan" />
<person posts="2" size="6" who="Alexander Atanasov" />
<person posts="2" size="6" who="&quot;Mukker, Atul&quot;" />
<person posts="2" size="6" who="Nathan Neulinger" />
<person posts="2" size="6" who="Christer Weinigel" />
<person posts="2" size="6" who="Muthian Sivathanu" />
<person posts="2" size="6" who="Nuno Monteiro" />
<person posts="2" size="6" who="Matthias Schniedermeyer" />
<person posts="2" size="6" who="Torsten Landschoff" />
<person posts="2" size="6" who="Bernhard Rosenkraenzer" />
<person posts="2" size="5" who="Matthew Kirkwood" />
<person posts="2" size="5" who="Martin Schlemmer" />
<person posts="2" size="5" who="(Nicolae_Popovici)" />
<person posts="2" size="5" who="&quot;Nguyen, Tom L&quot;" />
<person posts="2" size="5" who="Tom Rini" />
<person posts="2" size="5" who="Scott McDermott" />
<person posts="2" size="5" who="Dave Airlie" />
<person posts="2" size="5" who="Julien Oster" />
<person posts="2" size="5" who="Grzegorz Wilk" />
<person posts="2" size="5" who="&quot;Chandrasekhar&quot;" />
<person posts="2" size="5" who="Luc de Louw" />
<person posts="2" size="5" who="Gregoire Favre" />
<person posts="2" size="5" who="Andreas Dilger" />
<person posts="2" size="5" who="Matthew Jacob" />
<person posts="2" size="5" who="Ray Lee" />
<person posts="2" size="5" who="(Andries.Brouwer)" />
<person posts="2" size="5" who="Doug McNaught" />
<person posts="2" size="5" who="Mike Dresser" />
<person posts="2" size="5" who="Ricardo Galli" />
<person posts="2" size="5" who="&quot;ismail (cartman) donmez&quot;" />
<person posts="2" size="4" who="(fab)" />
<person posts="2" size="4" who="&quot;Paul Rolland&quot;" />
<person posts="2" size="4" who="Marcelo Tosatti" />
<person posts="2" size="4" who="Grzegorz Jaskiewicz" />
<person posts="2" size="4" who="michaeltone1975" />
<person posts="2" size="3" who="=?GB2312?B?0MLKsbT6zfg=?=" />
<person posts="1" size="47" who="Jose Luis Domingo Lopez" />
<person posts="1" size="37" who="Sven Krohlas" />
<person posts="1" size="35" who="watermodem" />
<person posts="1" size="35" who="Ian Jackson" />
<person posts="1" size="34" who="Forrest L Norvell" />
<person posts="1" size="34" who="Dave Olien" />
<person posts="1" size="26" who="&quot;J. Hidding&quot;" />
<person posts="1" size="25" who="=?ISO-8859-2?Q?Maciej_G=F3rnicki?=" />
<person posts="1" size="24" who="Jan Marek" />
<person posts="1" size="23" who="Udo Hoerhold" />
<person posts="1" size="23" who="DevilKin-LKML" />
<person posts="1" size="19" who="Matt Domsch" />
<person posts="1" size="19" who="(rwhron)" />
<person posts="1" size="17" who="&quot;Mark M. Hoffman&quot;" />
<person posts="1" size="16" who="Tom Winkler  (by way of Tom Winkler &lt;tom@qwws.net&gt;)" />
<person posts="1" size="15" who="Felix Triebel" />
<person posts="1" size="13" who="&quot;Grega Fajdiga&quot;" />
<person posts="1" size="12" who="Marc Zyngier" />
<person posts="1" size="12" who="Ken Ashcraft" />
<person posts="1" size="12" who="Cesar Eduardo Barros" />
<person posts="1" size="11" who="&quot;Vladimir B. Savkin&quot;" />
<person posts="1" size="10" who="Marek Habersack" />
<person posts="1" size="10" who="Joseph Pingenot" />
<person posts="1" size="9" who="Elladan" />
<person posts="1" size="9" who="Martin Diehl" />
<person posts="1" size="9" who="Jonathan Brown" />
<person posts="1" size="8" who="&quot;promotions manager&quot;" />
<person posts="1" size="8" who="&quot;=?iso-8859-1?B?Sm9z6SBFc3TqduNvIE1lbG8=?=&quot;" />
<person posts="1" size="8" who="(jordan.breeding)" />
<person posts="1" size="8" who="(Jason.Santos)" />
<person posts="1" size="7" who="Joel Jaeggli" />
<person posts="1" size="7" who="LeVA" />
<person posts="1" size="7" who="Axel Ludszuweit" />
<person posts="1" size="7" who="Adam Majer" />
<person posts="1" size="7" who="Gabriel Paubert" />
<person posts="1" size="7" who="Jon Portnoy" />
<person posts="1" size="7" who="Thomas Backlund" />
<person posts="1" size="6" who="Khalid Aziz" />
<person posts="1" size="6" who="Franz Sirl" />
<person posts="1" size="6" who="Bernhard Kaindl" />
<person posts="1" size="6" who="Yann COLLETTE" />
<person posts="1" size="6" who="Eric Piel" />
<person posts="1" size="6" who="Tom Lord" />
<person posts="1" size="6" who="Andreas Boman" />
<person posts="1" size="6" who="&quot;Al Sutton&quot;" />
<person posts="1" size="6" who="John M Flinchbaugh" />
<person posts="1" size="6" who="&quot;Robert Williamson&quot;" />
<person posts="1" size="6" who="Rolf Eike Beer" />
<person posts="1" size="5" who="Wolfgang Scherr" />
<person posts="1" size="5" who="&quot;Andrew Vasquez&quot;" />
<person posts="1" size="5" who="Matthew Dharm" />
<person posts="1" size="5" who="Nils Holland" />
<person posts="1" size="5" who="&quot;&quot;" />
<person posts="1" size="5" who="Ralf Oehler" />
<person posts="1" size="5" who="Livio Baldini Soares" />
<person posts="1" size="5" who="Ed Sweetman" />
<person posts="1" size="5" who="Monchi Abbad" />
<person posts="1" size="5" who="&quot;Amaru  Jaffar&quot;" />
<person posts="1" size="5" who="Jordan Breeding" />
<person posts="1" size="5" who="Taral" />
<person posts="1" size="5" who="Mark McClelland" />
<person posts="1" size="5" who="Ben Lau" />
<person posts="1" size="5" who="Toplica =?utf-8?q?Tanaskovi=C4=87?=" />
<person posts="1" size="4" who="(mcompengr)" />
<person posts="1" size="4" who="&quot;Ingo Wilken&quot;" />
<person posts="1" size="4" who="walt" />
<person posts="1" size="4" who="&quot;Mark F.&quot;" />
<person posts="1" size="4" who="Adam Belay" />
<person posts="1" size="4" who="(ark925)" />
<person posts="1" size="4" who="Disconnect" />
<person posts="1" size="4" who="Glenn McGrath" />
<person posts="1" size="4" who="Alan Glait" />
<person posts="1" size="4" who="&quot;tutu joseph&quot;" />
<person posts="1" size="4" who="&quot;tutu joseph&quot;" />
<person posts="1" size="4" who="Jerome Chantelauze" />
<person posts="1" size="4" who="Pavel Roskin" />
<person posts="1" size="4" who="Theodore Ts'o" />
<person posts="1" size="4" who="&quot;David Luyer&quot;" />
<person posts="1" size="4" who="solomonguei" />
<person posts="1" size="4" who="Jos Hulzink" />
<person posts="1" size="4" who="Jerry Cooperstein" />
<person posts="1" size="4" who="Brian Gerst" />
<person posts="1" size="4" who="(inquire)" />
<person posts="1" size="4" who="Jim He" />
<person posts="1" size="4" who="(healthiswealth)" />
<person posts="1" size="4" who="Krzysztof Halasa" />
<person posts="1" size="4" who="jw schultz" />
<person posts="1" size="3" who="Jurgen Kramer" />
<person posts="1" size="3" who="Shane Wegner" />
<person posts="1" size="3" who="basar tigris" />
<person posts="1" size="3" who="&quot;Shantanu.Gogate&quot;" />
<person posts="1" size="3" who="Dominik Vogt" />
<person posts="1" size="3" who="=?ISO-8859-1?Q?Mika_Penttil=E4?=" />
<person posts="1" size="3" who="Thomas Horsten" />
<person posts="1" size="3" who="Richard Curnow" />
<person posts="1" size="3" who="&quot;Feldman, Scott&quot;" />
<person posts="1" size="3" who="(esp)" />
<person posts="1" size="3" who="Daniel Callahan" />
<person posts="1" size="3" who=" (Joshua Kwan)" />
<person posts="1" size="3" who="Eli Carter" />
<person posts="1" size="3" who="Arjan van de Ven" />
<person posts="1" size="3" who="Karim Yaghmour" />
<person posts="1" size="3" who="Martijn Uffing" />
<person posts="1" size="3" who="Ragnar Hojland Espinosa" />
<person posts="1" size="3" who="Erik Mouw" />
<person posts="1" size="3" who="Olaf =?iso-8859-2?Q?Fr=B1czyk?=" />
<person posts="1" size="3" who="Nicholas Wourms" />
<person posts="1" size="3" who="&quot;Paolo Ciarrocchi&quot;" />
<person posts="1" size="3" who="Mike Fedyk" />
<person posts="1" size="3" who="Steven Augart" />
<person posts="1" size="3" who="&quot;Aniruddha M Marathe&quot;" />
<person posts="1" size="3" who="Andreas Haumer" />
<person posts="1" size="3" who="dvorak" />
<person posts="1" size="3" who="Dumitru Ciobarcianu" />
<person posts="1" size="3" who="Christophe Saout" />
<person posts="1" size="3" who="Philippe =?ISO-8859-15?Q?Gramoull=E9?=" />
<person posts="1" size="3" who="Mirar" />
<person posts="1" size="3" who="Bernardo Innocenti" />
<person posts="1" size="3" who="Jonathan Bastien-Filiatrault" />
<person posts="1" size="3" who="Patrick Mansfield" />
<person posts="1" size="3" who="Derek Atkins" />
<person posts="1" size="3" who="Jon Tibble" />
<person posts="1" size="3" who="&quot;John Stoffel&quot;" />
<person posts="1" size="3" who="Jim Penny" />
<person posts="1" size="3" who="Felipe Massia Pereira" />
<person posts="1" size="3" who="(wingel)" />
<person posts="1" size="3" who="&quot;Hua Zhong&quot;" />
<person posts="1" size="3" who="&quot;J. Bruce Fields&quot;" />
<person posts="1" size="3" who="Roger Larsson" />
<person posts="1" size="3" who="William Stearns" />
<person posts="1" size="3" who="Jan Dittmer" />
<person posts="1" size="3" who="&quot;Adam Majer&quot;" />
<person posts="1" size="3" who="Simon Kelley" />
<person posts="1" size="3" who="Ion Badulescu" />
<person posts="1" size="3" who="Josh Litherland" />
<person posts="1" size="3" who="Gerhard Mack" />
<person posts="1" size="3" who="Martin Josefsson" />
<person posts="1" size="3" who="Troels Walsted Hansen" />
<person posts="1" size="3" who="Tom Sightler" />
<person posts="1" size="3" who="Bryan Andersen" />
<person posts="1" size="3" who="&quot;Timothy D. Witham&quot;" />
<person posts="1" size="3" who="Mikael Pettersson" />
<person posts="1" size="3" who="DervishD" />
<person posts="1" size="3" who="Alex Riesen" />
<person posts="1" size="3" who="Manuel Estrada Sainz" />
<person posts="1" size="3" who="Joshua Kwan" />
<person posts="1" size="3" who="Russ Allbery" />
<person posts="1" size="3" who="Jesse Barnes" />
<person posts="1" size="3" who="Steffen Persvold" />
<person posts="1" size="3" who="Nikita Danilov" />
<person posts="1" size="3" who="&quot;Andrew Waterman&quot;" />
<person posts="1" size="3" who="Jonathan Lundell" />
<person posts="1" size="3" who="Andrei Ivanov" />
<person posts="1" size="3" who="(linux-kernel-owner)" />
<person posts="1" size="3" who="(brian)" />
<person posts="1" size="3" who="paubert" />
<person posts="1" size="3" who="Ragnar =?unknown-8bit?Q?Kj=F8rstad?=" />
<person posts="1" size="3" who="&quot;Maciej W. Rozycki&quot;" />
<person posts="1" size="3" who="Brad Boyer" />
<person posts="1" size="3" who="Zack Gilburd" />
<person posts="1" size="3" who="Simon Matthews" />
<person posts="1" size="3" who="&quot;Chandan S Pansare \(pcsbom\)&quot;" />
<person posts="1" size="3" who="Dave Zarzycki" />
<person posts="1" size="3" who="Faik Uygur" />
<person posts="1" size="3" who="(uaca)" />
<person posts="1" size="3" who="Jeff Dike" />
<person posts="1" size="3" who="Jeff Randall" />
<person posts="1" size="3" who="Rick Lindsley" />
<person posts="1" size="3" who="=?ISO-8859-1?Q?=20=22Reda=E7=E3o?= Comercial&quot;" />
<person posts="1" size="3" who="Richard Henderson" />
<person posts="1" size="3" who="'Christoph Hellwig'" />
<person posts="1" size="3" who="Dave Jones" />
<person posts="1" size="3" who="Jurriaan" />
<person posts="1" size="3" who="Stan Bubrouski" />
<person posts="1" size="3" who="Mika Kukkonen" />
<person posts="1" size="3" who="(venom)" />
<person posts="1" size="3" who="Adam Mercer" />
<person posts="1" size="3" who="Hugh Dickins" />
<person posts="1" size="3" who="Frank van Maarseveen" />
<person posts="1" size="3" who="Thomas Molina" />
<person posts="1" size="3" who="Michael Hunold" />
<person posts="1" size="3" who="Andrzej Krzysztofowicz" />
<person posts="1" size="2" who="Florian Weimer" />
<person posts="1" size="2" who="(cb-lkml)" />
<person posts="1" size="2" who="(Martin_List-Petersen)" />
<person posts="1" size="2" who="Gianni Tedesco" />
<person posts="1" size="2" who="&quot;pztlistasegmentada ngs&quot;" />
<person posts="1" size="2" who="&quot;George G. Davis&quot;" />
<person posts="1" size="2" who="Christian Muenscher" />
<person posts="1" size="2" who="Vivek Sharma" />
<person posts="1" size="2" who="Mark Mielke" />
<person posts="1" size="2" who="Douglas Gilbert" />
<person posts="1" size="2" who="Mikhail Kruk" />
<person posts="1" size="2" who="hugang" />
<person posts="1" size="2" who="Eyal Lebedinsky" />
<person posts="1" size="2" who="Rafal Bujnowski" />
<person posts="1" size="2" who="Brad Hards" />
<person posts="1" size="2" who="Steve Fletcher" />
<person posts="1" size="2" who="&quot;DillFritz&quot;" />
<person posts="1" size="2" who="Grzesiek Wilk" />
<person posts="1" size="2" who="(root)" />
<person posts="1" size="2" who="Bernd Schubert" />
<person posts="1" size="2" who="Michael Hunold" />
<person posts="1" size="2" who="&quot;Lee Chin&quot;" />
<person posts="1" size="2" who="Matan Ziv-Av" />
<person posts="1" size="2" who="dean gaudet" />
<person posts="1" size="2" who="Felipe Alfaro Solana" />
<person posts="1" size="2" who="Matthew Harrell" />
<person posts="1" size="2" who="Michael Knigge" />
<person posts="1" size="2" who="Andreas Gruenbacher" />
<person posts="1" size="2" who="Kurt Wall" />
<person posts="1" size="2" who="&quot;David Anderson&quot;" />
<person posts="1" size="2" who="Philipp Sadleder" />
<person posts="1" size="2" who="Jes Sorensen" />
<person posts="1" size="2" who="Paul Clements" />
<person posts="1" size="2" who="Jeffrey Souza" />
<person posts="1" size="2" who="Marcus Alanen" />
<person posts="1" size="2" who="Newsmail" />
<person posts="1" size="2" who="Kang Kai" />
<person posts="1" size="2" who="Miles Bader" />
<person posts="1" size="2" who="(admin438)" />
<person posts="1" size="2" who="Xavier Bestel" />
<person posts="1" size="2" who=" (Danny ter Haar)" />
<person posts="1" size="2" who="Douglas Gilbert" />
<person posts="1" size="2" who="Hirling Endre" />
<person posts="1" size="2" who="Michael Alan Dorman" />
<person posts="1" size="2" who=" (Klaus Dittrich)" />
<person posts="1" size="2" who="Paul Mundt" />
<person posts="1" size="2" who="John Levon" />
<person posts="1" size="2" who="Nir Livni" />
<person posts="1" size="2" who="Jean-Marc Lienher" />
<person posts="1" size="2" who="Benjamin Herrenschmidt" />
<person posts="1" size="2" who="Rob Ekl" />
<person posts="1" size="2" who="&quot;dirf&quot;" />
<person posts="1" size="2" who="wwp" />
<person posts="1" size="2" who="jjs" />
<person posts="1" size="2" who="Kmt Sundqvist" />
<person posts="1" size="2" who="Stefan Smietanowski" />
<person posts="1" size="2" who="&quot;Kevin P. Fleming&quot;" />
<person posts="1" size="2" who="Tigran Aivazian" />
<person posts="1" size="2" who="&quot;Krishnakumar. R&quot;" />
<person posts="1" size="2" who="&quot;Mark Tranchant&quot;" />
<person posts="1" size="2" who="Moritz Muehlenhoff" />
<person posts="1" size="2" who="Nicolae Popovici" />
<person posts="1" size="2" who="Kenneth Johansson" />
<person posts="1" size="2" who="Felipe W Damasio" />
<person posts="1" size="2" who="&quot;Fred Garvin&quot;" />
<person posts="1" size="2" who="Jeff Garzik" />
<person posts="1" size="2" who="Jeffrey Baker" />
<person posts="1" size="2" who=" (Brad Boyer)" />
<person posts="1" size="2" who="Paul Mackerras" />
<person posts="1" size="2" who="Herman Oosthuysen" />
<person posts="1" size="2" who="Diego Calleja =?ISO-8859-15?Q?Garc=EDa?=" />
<person posts="1" size="2" who="&quot;Walter Harms&quot;" />
<person posts="1" size="2" who=" (Miquel van Smoorenburg)" />
<person posts="1" size="2" who="Jose Luis Domingo Lopez" />
<person posts="1" size="2" who="Hal Duston" />
<person posts="1" size="2" who="Andrew Baumann" />
<person posts="1" size="2" who="Ducrot Bruno" />
<person posts="1" size="2" who="&quot;Shawn Starr&quot;" />
<person posts="1" size="2" who="Yoshinori Sato" />
<person posts="1" size="2" who="Marc Giger" />
<person posts="1" size="2" who="Anders Franzen" />
<person posts="1" size="2" who="=?ISO-8859-2?Q?Maciej G=F3rnicki?=" />
<person posts="1" size="2" who="Kyung-suk Lhee" />
<person posts="1" size="2" who="Pablo Donzis" />
<person posts="1" size="2" who="Mark J Roberts" />
<person posts="1" size="2" who="Ben Pfaff" />
<person posts="1" size="2" who="Pawan Deepika" />
<person posts="1" size="2" who="Mark Watts" />
<person posts="1" size="2" who="Chien-Lung Wu" />
<person posts="1" size="1" who="landrum Alfred" />
<person posts="1" size="1" who="Zoey" />
<person posts="1" size="1" who="dave young" />

</stats>

<section
  title="Status Of Digital Rights Management"
  subject="Flame Linus to a crisp!"
  posts="299"
  startdate="23 Apr 2003 19:59:45 -0800"
  enddate="09 May 2003 15:17:57 -0800"
>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>Microsoft</topic>
<topic>Patents</topic>

<p>Linus Torvalds said:</p>

<quote who="Linus Torvalds">

<p>Ok, there's no way to do this gracefully, so I won't even try. I'm going to
just hunker down for some really impressive extended flaming, and my
asbestos underwear is firmly in place, and extremely uncomfortable.</p>

<blockquote>

<p><i>  I want to make it clear that DRM is perfectly ok with Linux!</i></p>

</blockquote>

<p>There, I've said it. I'm out of the closet. So bring it on...</p>

<p>I've had some private discussions with various people about this already,
and I do realize that a lot of people want to use the kernel in some way
to just make DRM go away, at least as far as Linux is concerned. Either by
some policy decision or by extending the GPL to just not allow it.</p>

<p>In some ways the discussion was very similar to some of the software
patent related GPL-NG discussions from a year or so ago: "we don't like
it, and we should change the license to make it not work somehow".</p>

<p>And like the software patent issue, I also don't necessarily like DRM
myself, but I still ended up feeling the same: I'm an "Oppenheimer", and I
refuse to play politics with Linux, and I think you can use Linux for
whatever you want to - which very much includes things I don't necessarily
personally approve of.</p>

<p>The GPL requires you to give out sources to the kernel, but it doesn't
limit what you can _do_ with the kernel. On the whole, this is just
another example of why rms calls me "just an engineer" and thinks I have
no ideals.</p>

<p>[ Personally, I see it as a virtue - trying to make the world a slightly
  better place _without_ trying to impose your moral values on other
  people. You do whatever the h*ll rings your bell, I'm just an engineer
  who wants to make the best OS possible. ]</p>

<p>In short, it's perfectly ok to sign a kernel image - I do it myself
indirectly every day through the kernel.org, as kernel.org will sign the
tar-balls I upload to make sure people can at least verify that they came 
that way. Doing the same thing on the binary is no different: signing a
binary is a perfectly fine way to show the world that you're the one
behind it, and that _you_ trust it.</p>

<p>And since I can imaging signing binaries myself, I don't feel that I can
disallow anybody else doing so.</p>

<p>Another part of the DRM discussion is the fact that signing is only the
first step: _acting_ on the fact whether a binary is signed or not (by
refusing to load it, for example, or by refusing to give it a secret key)
is required too.</p>

<p>But since the signature is pointless unless you _use_ it for something,
and since the decision how to use the signature is clearly outside of the
scope of the kernel itself (and thus not a "derived work" or anything like
that), I have to convince myself that not only is it clearly ok to act on
the knowledge of whather the kernel is signed or not, it's also outside of
the scope of what the GPL talks about, and thus irrelevant to the license.</p>

<p>That's the short and sweet of it. I wanted to bring this out in the open,
because I know there are people who think that signed binaries are an act
of "subversion" (or "perversion") of the GPL, and I wanted to make sure
that people don't live under mis-apprehension that it can't be done.</p>

<p>I think there are many quite valid reasons to sign (and verify) your
kernel images, and while some of the uses of signing are odious, I don't
see any sane way to distinguish between "good" signers and "bad" signers.</p>

<p>Comments? I'd love to get some real discussion about this, but in the end
I'm personally convinced that we have to allow it.</p>

<p>Btw, one thing that is clearly _not_ allowed by the GPL is hiding private
keys in the binary. You can sign the binary that is a result of the build
process, but you can _not_ make a binary that is aware of certain keys
without making those keys public - because those keys will obviously have
been part of the kernel build itself.</p>

<p>So don't get these two things confused - one is an external key that is
applied _to_ the kernel (ok, and outside the license), and the other one
is embedding a key _into_ the kernel (still ok, but the GPL requires that
such a key has to be made available as "source" to the kernel).</p>

</quote>

<p>Greg KH said, regarding embedding public keys in the Linux binary, <quote
who="Greg KH">I know a lot of people can (and do) object to such a potential
use of Linux, and I'm glad to see you explicitly state that this is an
acceptable use, it helps to clear up the issue.</quote> And Linus replied:</p>

<quote who="Linus Torvalds">

<p>The reason I want to make it very explicit is that I know (judging from the
private discussions I've had over the last few weeks) that a lot of people
think that the GPL can be interpreted in such a way that even just the act
of signing a binary would make the key used for the signing be covered by
the GPL. Which obviously would make the act of signing something totally
pointless.</p>

<p>And even if some lawyer could interpret it that way (and hey, they take
limbo classes in law school explicitly to make sure that the lawyers _are_
flexible enough.  Really! Look it up in the dictionary - right next to
"gullible"), I wanted to make sure that we very explicitly do NOT interpret
it that way.</p>

<p>Because signing is (at least right now) the only way to show that you
trust something. And if you can't show that you trust something, you can't
have any real security.</p>

<p>The problem with security, of course, is exactly _whom_ the security is
put in place to protect. But that's not a question that we can (or should)
try to answer in a license. That's a question that you have to ask yourself
when (and if) you're presented with such a device.</p>

</quote>

<p>Elsewhere, Andre Hedrick also replied to Linus' initial post, saying:</p>

<quote who="Andre Hedrick">

<p>First Point: DRM is going to happen regardless.<br />
Fact: NCITS T10 adopted MMC3 which is part of SCSI<br />
Fact: MMC3 is the home of CSS.<br />
Fact: SCSI by default supports DRM because of MMC3, see /dev/sg.</p>

<p>Second Point: ATA is a state machine driven protocol.<br />
Fact: DRM requires an alternative state machine.<br />
Fact: Hollywood forced this issue not Linus or me.</p>

<p>Third Point: DRM would be more difficult, had I not introduced Taskfile.<br />
Fact: By forcing the native driver to execute a command sequencer, DRM
      requires more than simple command operations.<br />
Fact: DRM would have happend regardless, so the best one can do is attempt
      to manage the mess.</p>

<p>Fourth Point: The Electronic Frontier Foundation is to BLAME!<br />
Fact: I single handed forced Intel, IBM, Toshiba, and Matshustia to agree
      to an on-off mode for DRM with enduser control lock outs.<br />
Fact: Feb 2001, EFF played a wild card and destroyed the deal.<br />
Fact: IBM (4C) withdraws proposal, under firestorm.<br />
Fact: April 2001, General Purpose Commands happen, Son-of-CPRM. <br />
Fact: GPC creates 16-19 flavors of DRM with backdoor renable register
      banging methods.</p>

<p>I can not show the unpublished version of the of the proposal, unless
4C agrees to disclose.  Given the simple fact CPRM/DRM is present now,
the only solution was to control it.  I and a few others on the NCITS T13
committee with the help of MicroSoft had managed to make it so the enduser
could disable the feature set.  Again this is all about choice not single
minded dictatorships of nothing or nothing, aka EFF.  The simple fact is
some people may want to use DRM, and to prevent them is to cause a license
twist on GPL.  So now everyone has to live with the fact that DRM is here
and it is now in the hardware.</p>

<p>Now the digital signing issue as a means to protect possible embedded or
distribution environments is needed.  DRM cuts two ways and do not forget it!
We as the opensouce community can use DRM as a means to allow or deny
an operation.  Now the time has come to determine how to use this tool.
Like fire, control DRM/CPRM and you recieve benefits.  Let it run wild and
you will be burned.</p>

<p>For those not aware, each and every kernel you download from K.O is DRM
signed as a means to authenticate purity.</p>

<p>I suspect, this will fall in to the same arena as LSM, and that is where
I am going to move to push it.  DRM/CPRM has its use, and if managed well
and open we can exploit it in ways that may even cause Hollywood people to
back off.</p>

</quote>

<p>To Andre's statement that DRM cut both ways, Linus replied:</p>

<quote who="Linus Torvalds">

<p>This is _the_ most important part to remember.</p>

<p>Security is a two-edged sword. It can be used _for_ you, and it can be
used _against_ you. A fence keeps the bad guys out, but by implication the
bad guys can use it to keep _you_ out, too.</p>

<p>The technology itself is pretty neutral, and I'm personally pretty
optimistic that _especially_ in an open-source environment we will find that
most of the actual effort is going to be going into making security be a
_pro_consumer_ thing. Security for the user, not to screw the user.</p>

<p>Put another way: I'd rather embrace it for the positive things it can do
for us, than have _others_ embrace it for the things it can do for them.</p>

</quote>

<p>Elsewhere, William Lee Irwin III also replied to Linus' initial post,
saying, <quote who="William Lee Irwin III">I'm not particularly interested
in the high-flown moral issues, but this DRM stuff smelled like nothing
more than a transparent ploy to prevent anything but bloze from booting on
various boxen to me.</quote> To which Linus said:</p>

<quote who="Linus Torvalds">

<p>Let's be honest - to some people that is _exactly_ what DRM is. No ifs,
buts and maybes.</p>

<p>And hey, the fact is (at least as far as I'm concerned), that as long as
you make the hardware, you can control what it runs.</p>

<p>The GPL requires that you make the software available - but it doesn't
require that the hardware be made so that you can always upgrade it.</p>

<p>You could write a kernel binary into a ROM, and solder it to the
motherboard. That's fine - always has been. As long as you give out the
sources to the software, there's nothing that says that the hardware has to
be built to make it easy - or even possible - to change the binary there.</p>

<p>The beauty of PC's is how _flexible_ they are, and I think a lot of us
take that kind of flexibility for granted. But the fact is, 99% of the
worlds CPU's tend to go into devices that are _not_ general-purpose or
flexible. And it shouldn't offend us (at most it might make us pity the poor
hobbled hardware).</p>

<p>And there are projects for doing "Open Hardware" (like <a
href="http://opencores.org">opencores.org</a> etc), and that may well end
up being a hugely important thing to do. But Linux is about open source,
not open hardware, and hardware openness has never been a requirement for
running Linux.</p>

</quote>

<p>In his same post, William also said, <quote who="William Lee Irwin III">I'm
largely baffled as to what this has to do with Linux kernel hacking, as DRM
appeared to me to primarily be hardware- and firmware- level countermeasures
to prevent running Linux at all, i.e. boxen we're effectively forbidden from
porting to. Even if vendors distribute their own special Linux kernels with
patches for anti-warezing checks that boot on the things, the things are
basically still just off-limits.</quote> And Linus said:</p>

<quote who="Linus Torvalds">

<p>It has almost zero to do with the kernel code itself, since in the end
all the DRM stuff ends up being at a much lower level (actual hardware,
as you say, along with things like firmware - bioses etc - that decide on
whether to trust what they run).</p>

<p>So in that sense I don't believe it has much of anything to do with the
kernel: you're very unlikely to see any DRM code show up in the "kernel
proper", if that's what you're asking. Although obviously many features in
the kernel can be used to _maintain_ DRM control (ie somehting as simple
as having file permissions is obviously nothing but a very specific form of
rights management).</p>

<p>HOWEVER. The discussion really does matter from a "developer expectation"
standpoint. There are developers who feel so strongly about DRM that they do
not want to have anything to do with systems that could be "subverted" by a
DRM check. A long private thread I've had over this issue has convinced me
that this is true, and that some people really do expect the GPL to protect
them from that worry.</p>

<p>And I do not want to have developers who _think_ that they are protected
from the kinds of controls that signed binaries together with a fascist
BIOS can implement. That just leads to frustration and tears. So I want
this issue brought out in the open, so that nobody feels that they are being
"taken advantage" of.</p>

<p>Again, from personal email discussions I know that this is a real
feeling.</p>

<p>So I really want to set peoples _expectations_ right. I'd rather lose a
developer over a flame-war here on Linux-kernel as a result of this discussion,
than having somebody unhappy later on about having "wasted their time" on
a project that then allowed things to happen that that developer felt was
inherently morally _wrong_.</p>

<p>And this is where it touches upon kernel development. Not because I
expect to apply DRM patches in the near future or anything like that: but
simply because it's better to bring up the issue so that people know where
they stand, and not have the wrong expectations of how their code might be
used by third parties.</p>

</quote>

<p>William, Jamie Lokier and others started talking about how to deal with a
situation in which it could actually become necessary to design and produce
their own hardware, just in order to run Linux or other good operating systems.
Jamie remarked, <quote who="Jamie Lokier">If the hardware that comes out of
industry won't let you hack, hey you still have basic materials like SiO2
from the real world to make your own.</quote> John Bradford replied, <quote
who="John Bradford">We should be doing this _anyway_.  With open hardware
designs, there would be no problem with documentation not being available to
write drivers.  With open hardware designed by Linux developers, we could
have hardware _designed_ for Linux.</quote> He added, <quote who="John
Bradford">Incidently, using the Transmeta CPUs, is it not possible for the
user to replace the controlling software with their own code?  I.E. not
bother with X86 compatibility at all, but effectively design your own CPU?
Couldn't we make the first Lin-PU this way?</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>Well, I have to say that Transmeta CPU's aren't exactly known for their
openness ;)</p>

<p>Also, the native mode is not very pleasant at all, and it really is
designed for translation (and with a x86 flavour, too). You might as well
think of it as a microcode on steroids.</p>

<p>If open hardware is what you want, FPGA's are actually getting to the
point where you can do real CPU's with them. They won't be gigahertz, and
they won't have big nice caches (but hey, you might make something that
clocks fairly close to memory speeds, so you might not care about the
latter once you have the former).</p>

<p>They're even getting reasonably cheap.</p>

</quote>

<p>Jeff Garzik replied, <quote who="Jeff Garzik">Check out <a
href="http://www.opencores.org/">http://www.opencores.org/</a> At least one
CPU there already can boot Linux.  I'm waiting for the day, in fact, when
somebody will use the OpenCores tech to build an entirely open system...
They seem to have most of the pieces done already, though I dunno how
applicable Wishbone technology is to PC-like systems.</quote></p>

<p>Earlier, Jamie had also remarked, <quote who="Jamie Lokier">It only
gets _really_ bad when it becomes illegal to make your own hardware</quote>
And Daniel Phillips replied:</p>

<quote who="Daniel Phillips">

<p>Actually, that's where we were a few years ago with hardware, because nearly
anything anybody would want to print on a wafer was covered by patents or
copyrights.  It's getting better by leaps and bounds.  Now, a lot of patents
have expired, a lot of non-proprietary cores are available, and it's mainly
the EDM tools that are non-free.  That's where we coders can help.</p>

<p>Until the EDM tools get free, their current owners will continue to dictate
what you can and can't design.</p>

</quote>

<p>Elsewhere, in a completely different subthread, Linus also said:</p>

<quote who="Linus Torvalds">

<p>Quite frankly, I suspect a much more likely issue is going to be that
DRM doesn't matter at all in the long run.</p>

<p>Maybe I'm just a blue-eyed optimist, but all the _bad_ forms of DRM look
to be just fundamentally doomed.  They are all designed to screw over
customers and normal users, and in the world I live in that's not how
you make friends (or money, which ends up being a lot more relevant to
most companies).</p>

<p>Think about it.  Successful companies give their customers what they
_want_.  They don't force-feed them.  Look at the total and utter
failure of commercial on-line music: the DRM things that has been tried
have been complete failures.  Why? I'm personally convinced the cost is
only a minor issue - the _anti_convenience of the DRM crap (magic file
formats that only work with some players etc) is what really kills it in
the end.</p>

<p>And that's a fundamental flaw in any "bad" DRM. It's not going away.</p>

<p>We've seen this before. Remember when dongles were plentiful in the
software world? People literally had problems with having dongles on top
of dongles to run a few programs. They all died out, simply because
consumers _hate_ that kind of lock-in thing.</p>

<p>This is part of the reason why I have no trouble with DRM - let the
people who want to try it go right ahead. They'll only screw themselves
over in the end, because the people who do _not_ try to control their
customers will in the end have the superior product. It's that simple.</p>

<p>As to the quake-on-PC issue - it's a completely made-up example, but it
does show the same thing.  Nobody in their right mind would ever _do_ a
DRM-enabled quake on a PC, because it limits you too much.  PC's are
_designed_ ot be flexible - that's what makes the PC's.  DRM on a PC is
a totally braindead idea, and I _hope_ Microsoft goes down that path
because it will kill them in the end.</p>

<p>The place where client authentication makes sense is on specialty boxes.
On a dedicated game machine it's an _advantage_ to verify the client,
exactly to make sure that nobody is cheating.  I think products like the
PS2 and the Xbox actually make _sense_ - they make it convenient for the
user, and yes they use DRM techniques to "remove rights", but that's
very much by design and when you buy the box 99.9% of all people buy it
_because_ it only does one thing.</p>

</quote>

</section>

<section
  title="Binary Firmware And The GPL"
  subject="Binary firmware in the kernel - licensing issues."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/1127.html"
  posts="32"
  startdate="06 May 2003 03:38:54 -0800"
  enddate="08 May 2003 15:36:42 -0800"
>
<topic>PCI</topic>

<mention>Alan Cox</mention>

<p>Simon Kelley said:</p>

<quote who="Simon Kelley">

<p>I'm currently working on the drivers for Atmel PCMCIA and PCI wireless
adaptors with the aim of getting up to snuff for inclusion in 
the mainline kernel.</p>

<p>I'm working from source drivers released by Atmel themselves last
year under the GPL so there are no problems with the code - each
source file from Atmel has a GPL notice at the top.</p>

<p>BUT. These things need firmware loaded, at least the ones without 
built-in flash. The Atmel drivers come with binary firmware
as header files full of hex, with the following notice.</p>

<blockquote>

<pre>------------------------------------------------------------------
            Copyright (c) 1999-2000 by Atmel Corporation

This software is copyrighted by and is the sole property of Atmel
Corporation.  All rights, title, ownership, or other interests
in the software remain the property of Atmel Corporation.  This
software may only be used in accordance with the corresponding
license agreement.  Any un-authorized use, duplication, transmission,
distribution, or disclosure of this software is expressly forbidden.


This Copyright notice may not be removed or modified without prior
written consent of Atmel Corporation.


Atmel Corporation, Inc. reserves the right to modify this software
without notice.

Atmel Corporation.
2325 Orchard Parkway               literature@atmel.com
San Jose, CA 95131                 http://www.atmel.com
------------------------------------------------------------------</pre>

</blockquote>

<p>It isn't clear what the license agreement referred to in the above
actually is, but I don't think it's reasonable to just assume it's the
GPL and shove these files into the kernel as-is.</p>

<p>I shall contact Atmel for advice and clarification but my question for
the list is, what should I ask them to do? It's unlikely that they will
release the source to the firmware and even if they did I wouldn't want
firmware source  in the kernel tree since the kernel-build toolchain
won't be enough to build the firmware. What permissions do they have to
give to make including this stuff legal and compatible with the rest of
the kernel?</p>

<p>Given the current SCO-IBM situation I don't want to be responsible for
introducing any legally questionable IP into the kernel tree.</p>

<p>This situation must have come up before, how was it solved then?</p>

</quote>

<p>Various folks offered advice, but Alan Cox pointed out that only a lawyer
could really give a useful interpretation. But Simon felt that this was not
an antagonistic legal situation, and that Amtel really had their heart in
the right place, <quote who="Simon Kelley">given that the company itself
published the source under the GPL and put them up on Sourceforge. What I
need is the correct legalese to replace the above which makes it legal to
redistribute (easy) and to combine with the GPL'd bulk of linux - that's
the difficult bit. Once I have said legalese I'll put it to Atmel with the
message "this is what I think you _meant_ to say."</quote></p>

</section>

<section
  title="Process Attribute API for Security Modules"
  subject="[PATCH] Process Attribute API for Security Modules 2.5.69"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/1264.html"
  posts="7"
  startdate="06 May 2003 08:13:25 -0800"
  enddate="16 May 2003 12:08:26 -0800"
>
<topic>FS: ext2</topic>
<topic>FS: ext3</topic>

<mention>Jan Harkes</mention>
<mention>Alexander Viro</mention>
<mention>Andrew Morton</mention>

<p>Stephen Smalley said, <quote who="Stephen Smalley">This patch against
2.5.69 implements a process attribute API for security modules via a set of
nodes in a /proc/pid/attr directory.  Credit for the idea of implementing
this API via /proc/pid/attr nodes goes to Al Viro.  Jan Harkes provided
a nice cleanup of the implementation to reduce the code bloat.</quote> In
response to some technical criticism from Alexander Viro and Andrew Morton,
Stephen said, <quote who="Stephen Smalley">This updated patch against 2.5.69
merges the readdir and lookup routines for proc_base and proc_attr, fixes the
copy_to_user call in proc_attr_read and proc_info_read, moves the new data
and code within CONFIG_SECURITY, and uses ARRAY_SIZE, per the comments from Al
Viro and Andrew Morton.  As before, this patch implements a process attribute
API for security modules via a set of nodes in a /proc/pid/attr directory.
Credit for the idea of implementing this API via /proc/pid/attr nodes goes
to Al Viro.  Jan Harkes provided a nice cleanup of the implementation to
reduce the code bloat.</quote> Andreas Gruenbacher remarked:</p>

<quote who="Andreas Gruenbacher">

<p>The Process Attribute API, Ext2 xattr handler, and Ext3 xattr handler
look clean, so I have no objections, either. It remains to be seen how useful
this API will be.</p>

<p>It will be necessary to document which security attributes are defined,
and which are their valid values. These things will eventually have to be
incorporated into e2fsck, so that after a file system check it is guaranteed
that the file system is in a consistent state.</p>

</quote>

<p>Alexander said Stephen's patch looked sane to him, and Stephen posted
a new version, saying, <quote who="Stephen Smalley">This patch, relative
to the /proc/pid/attr patch against 2.5.69, fixes the mode values of the
/proc/pid/attr nodes to avoid interference by the normal Linux access checks
for these nodes (and also fixes the /proc/pid/attr/prev mode to reflect
its read-only nature).  Otherwise, when the dumpable flag is cleared by
a set[ug]id or unreadable executable, a process will lose the ability to
set its own attributes via writes to /proc/pid/attr due to a DAC failure
(/proc/pid inodes are assigned the root uid/gid if the task is not dumpable,
and the original mode only permitted the owner to write).  The security
module should implement appropriate permission checking in its [gs]etprocattr
hook functions.  In the case of SELinux, the setprocattr hook function only
allows a process to write to its own /proc/pid/attr nodes as well as imposing
other policy-based restrictions, and the getprocattr hook function performs
a permission check between the security labels of the current process and
target process to determine whether the operation is permitted.</quote></p>

</section>

<section
  title="Problems With BitKeeper-To-CVS Gateway"
  subject="bkcvs not up-to-date?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/1550.html"
  posts="7"
  startdate="07 May 2003 03:15:54 -0800"
  enddate="10 May 2003 09:47:30 -0800"
>
<topic>CREDITS File</topic>
<topic>Version Control</topic>

<p>Pavel Machek noticed that the BitKeeper-to-CVS gateway was not uptodate, or
at least he wasn't able to get the latest tree from it. John Levon confirmed,
<quote who="John Levon">I have the same problem, the CVS gateway got stuck some
point in the middle of 2.5.68 and has had no apparen t updates since.</quote>
Pavel Machek added, <quote who="Pavel Machek">Its even worse: part of updates
gets there.  Like CREDITS file is up-to-date but Makefile is not.</quote> At
some point in the discussion, Larry McVoy said, <quote who="Larry McVoy">This
should be fixed now.  We had a bad disk on kernel.bkbits.net.</quote> Pavel
still had a problem; but the thread ended.</p>

</section>

<section
  title="Kernel Policy On Link-Order Dependencies"
  subject="The magical mystical changing ethernet interface order"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/1570.html"
  posts="26"
  startdate="07 May 2003 05:14:58 -0800"
  enddate="11 May 2003 10:41:03 -0800"
>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>Version Control</topic>

<mention>Chuck Ebbert</mention>

<p>Russell King asked:</p>

<quote who="Russell King">

<p>Does anyone know if there's a reason that the ethernet driver initialisation
order has changed again in 2.5?</p>

<p>In 2.2.xx, we had eth0 = NE2000, eth1 = Tulip<br />
In 2.4, we have eth0 = Tulip, eth1 = NE2000<br />
And in 2.5, it's back to eth0 = NE2000, eth1 = Tulip</p>

<p>Both interfaces are on the same bus:</p>

<p>00:0a.0 Ethernet controller: Digital Equipment Corporation DECchip 21142/43 (rev 30)<br />
00:0d.0 Ethernet controller: Winbond Electronics Corp W89C940F</p>

<p>Its rather annoying when your dhcpd starts on the wrong interface.</p>

</quote>

<p>Randy Dunlap replied:</p>

<quote who="Randy Dunlap">

<p>What version of 2.5?</p>

<p>There was a patch 17 days ago by Chuck Ebbert (merged by akpm) that
"fixed" PCI scan order in 2.5 to be same as 2.4.  Comment in changelog
says "Russell King has acked this change."</p>

<p><a href="http://linus.bkbits.net:8080/linux-2.5/cset@1.1042.19.12?nav=index.html|ChangeSet@-3w">http://linus.bkbits.net:8080/linux-2.5/cset@1.1042.19.12?nav=index.html|ChangeSet@-3w</a></p>

<p>An alternative is to use 'nameif' to associate MAC addresses with
interface names.  See here for mini HOWTO:</p>

<p><a href="http://www.xenotime.net/linux/doc/network-interface-names.txt">http://www.xenotime.net/linux/doc/network-interface-names.txt</a></p>

</quote>

<p>Russell said he'd noticed the change in 2.5.69; for the code comment
attributed to him, he said:</p>

<quote who="Russell King">

<p>Yes, that affects the order of PCI devices on the global list when
you have multiple PCI buses present.  This machine has only one PCI
bus, so is not affected by this issue.</p>

<p>Note that I haven't been running 2.5 kernels on NetWinders until recently,
so I couldn't say when it changed.</p>

</quote>

<p>As a wild stab in the dark, he guessed that perhaps the init ordering
changed. And Andrew Morton replied, <quote who="Andrew Morton">Well stabbed.
The relative ordering of tulip and ne2k in drivers/net/Makefile got changed.
Maybe we should reorganise the 2.5 Makefile to copy the 2.4 Makefile's
ordering.  How pleasant.  I suspect the linker is at liberty to reorder
these anyway.</quote> Dave Hansen said, <quote who="Dave Hansen">The linker
will order things in the final object in the order that you passed them.
We depend on this for getting __init functions run in the right order: <a
href="http://groups.google.com/groups?selm=linux.kernel.27361.1016068035%40kao2.melbourne.sgi.com">http://groups.google.com/groups?selm=linux.kernel.27361.1016068035%40kao2.melbourne.sgi.com</a></quote>
David S. Miller replied:</p>

<quote who="David S. Miller">

<p>This is absolutely not guarenteed.  The linker is at liberty to
reorder objects in any order it so desires, for performance reasons   
etc.</p>

<p>Any reliance on link ordering is broken and needs to be fixed.</p>

</quote>

<p>But Linus Torvalds said:</p>

<quote who="Linus Torvalds">

<p>No. Last time this came up rth spoke up and said that link ordering _is_
guaranteed.</p>

<p>The kernel depends on this in a lot more ways than just initcalls, btw:
all the exception handling etc also depend on the linker properly preserving
ordering of text/data sections.</p>

<p>If the linker ever starts re-orderign things, we'll just either not upgrade
to a broken linker, or we'll require a flag that disables the re-ordering.</p>

<p>End of discussion.</p>

</quote>

<p>Folks like Jeff Garzik disagreed with Linus on this, but acknowledged
that <quote who="Jeff Garzik">Well, The Leader Has Spoken.</quote></p>

</section>

<section
  title="HFS+ Filesystem Rewrite"
  subject="[ANNOUNCE] HFS+ driver"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/1603.html"
  posts="11"
  startdate="07 May 2003 07:06:59 -0800"
  enddate="12 May 2003 01:58:59 -0800"
>
<topic>Version Control</topic>

<p>Roman Zippel said:</p>

<quote who="Roman Zippel">

<p>I'm proud to announce a complete new version of the HFS+ fs
driver. This work was made possible by Ardis Technologies (<a
href="http://www.ardistech.com">www.ardistech.com</a>). It's
based on the driver by Brad Boyer (<a
href="http://sf.net/projects/linux-hfsplus">http://sf.net/projects/linux-hfsplus</a>).</p>

<p>The new driver now supports full read and write access. Perfomance has
improved a lot, the btrees are kept in the page cache with a hash on top of
this to speed up the access to the btree nodes.  I also added support for
hard links and the resource fork is accessible via &lt;file&gt;/rsrc.</p>

<p>This is a beta release. I tested this a lot, so I consider it quite safe
to use, but I can't give any guarantees at this time of course. There is
also still a bit to do (e.g. the block allocator needs a bit more work).</p>

<p>The driver can be downloaded from <a
href="http://www.ardistech.com/hfsplus/">http://www.ardistech.com/hfsplus/</a>.
The README describes how to build the driver.</p>

<p>If something should go wrong, I also
have patch for Apple's diskdev_cmds (available from <a
href="http://www.opensource.apple.com/darwinsource/10.2.5/">http://www.opensource.apple.com/darwinsource/10.2.5/</a>),
which ports newfs_hfs and fsck_hfs to
Linux and fixes the endian problems.  The patch is at <a
href="http://www.ardistech.com/hfsplus/diskdev_cmds.diff.gz">http://www.ardistech.com/hfsplus/diskdev_cmds.diff.gz</a>.
After applying the patch the tools can be built with 'make -f
Makefile.lnx'.</p>

</quote>

<p>Jeffrey Baker said, <quote who="Jeffrey Baker">This is a huge development
for iPod and other mac users.</quote> and Miles Lane replied, <quote
who="Miles Lane">Yes!  Will this driver be accepted into the 2.4 and 2.5
trees any time soon?</quote> Daniele Pala also said, <quote who="Daniele
Pala">Wow , great! thx a lot for that. ;) So the major thing to fix now on
macs is the sound part which is quite poor for now...at least on my old iMac
DV...the problem is that i don't even know which audio chipset it uses! Gotta
start searching better for info...well let's hope Apple gives info about
this :)</quote></p>

<p>Brad Boyer also replied to Roman's initial post, saying, <quote who="Brad
Boyer">If you don't mind, I'll start merging your changes into the CVS
tree on SourceForge. I assume this is all GPL code, since you started from
my original patches... I'll wait to hear back from you before merging it
in, since it's a pretty big change.</quote> Roman said, <quote who="Roman
Zippel">Yes, of course it is.</quote></p>

</section>

<section
  title="Status Of Centrino Wireless Support"
  subject="status of Centrino wireless support"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.1/0006.html"
  posts="4"
  startdate="07 May 2003 21:30:08 -0800"
  enddate="13 May 2003 21:32:46 -0800"
>

<p>Andrew Baumann asked:</p>

<quote who="Andrew Baumann">

<p>does anyone know anything more than "Intel have a driver internally,
depending who you ask, and might release it at at unspecified time, if they
feel like it" about the Centrino wireless adapter (Intel PRO/Wireless 2100
LAN MiniPCI Adapter).</p>

<p>I've heard several interesting rumours along those lines, but nothing
more.  Just wondering if anyone knows about or is working on support for
this device.</p>

</quote>

<p>Anders Karlsson said he hadn't heard any good news on this front; he said,
<quote who="Anders Karlsson">I sent e-mails to Scott McLaughlin at Intel and
he said he forwarded my queries and comments to some internal team looking
into what they were doing.  From what I can gather, there is little happening
from Intel to make the drivers available.</quote> Timothy D. Witham replied,
<quote who="Timothy D. Witham">I am also working on getting something to
address this issue.</quote> And Anders said:</p>

<quote who="Anders Karlsson">

<p>I just had a response from Mr McLaughlin at Intel. They appear to have a
centrino team where all requests about/for the drivers are forwarded to to
gauge the interest in the drivers.</p>

<p>A guess is that the more people are interested in the drivers, the bigger
the chance that they some day will become available, one way or another. I
have made my interest known to Intel, not sure I could do any more than
that. (Not really got any close pals in Oregon...)</p>

</quote>

</section>

<section
  title="Documentation For Embedded Systems"
  subject="[ANNOUNCE] embedded book / embeddedTUX.org"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.1/0171.html"
  posts="1"
  startdate="08 May 2003 09:34:37 -0800"
>
<topic>Small Systems</topic>

<p>Karim Yaghmour said:</p>

<quote who="Karim Yaghmour">

<p>For some time now I have been working on putting together documentation to
help developers use Linux in embedded systems without requiring the purchase
of any product or the use of any pre-packaged distribution:</p>

<p><a
href="http://www.oreilly.com/catalog/belinuxsys/">http://www.oreilly.com/catalog/belinuxsys/</a></p>

<p>The approach I've documented requires only that you have an Internet
connection to download the various packages straight from the source. The
complete procedure to obtain a functional embedded system based on those
packages is detailed in the book.</p>

<p>In order to further increase the level of technical discussion around
the use of Linux in embedded systems and provide up-to-date information,
I've also set up a web site and a mailing list at:</p>

<p><a href="http://www.embeddedtux.org/">http://www.embeddedtux.org/</a></p>

<p>As the site states, hype and other marketing-related material aren't
welcome on <a href="http://embeddedTUX.org">embeddedTUX.org</a>. I think
many will agree that there has been enough of that already on the subject of
"embedded Linux."</p>

<p>My intent with writing the book and building the site was to bridge the
gap that exists between embedded systems developers that use open source and
free software packages, and the open source and free software community that
produces these packages. My hope is that we will see mainstream embedded
developers make more contributions to the open source and free software
packages they use in building embedded Linux systems. Ultimately, this will
ensure Linux remains the best choice for an embedded OS.</p>

<p>[There is, of course, more detail to these ideas than I can fit in
an email. I invite you to take a look at the book and the site if you're
interested.]</p>

</quote>

</section>

<section
  title="Linux Test Project 20030508"
  subject="[ANNOUNCE]Linux Test Project May Release Announcement"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.1/0231.html"
  posts="1"
  startdate="08 May 2003 13:59:34 -0800"
>
<topic>Bug Tracking</topic>
<topic>Device Mapper</topic>
<topic>POSIX</topic>
<topic>Security</topic>
<topic>Version Control</topic>

<mention>Marty Ridgeway</mention>
<mention>Andreas Jaeger</mention>
<mention>Ulrich Drepper</mention>
<mention>Dan Kegel</mention>

<p>Robert Williamson said:</p>

<quote who="Robert Williamson">

<p>The Linux Test Project test suite
ltp-full-20030508.tgz has been released. Visit our website (<a
href="http://ltp.sourceforge.net">http://ltp.sourceforge.net</a>) to download
the latest version of the testsuite that contains 1800+ tests for the Linux OS.
Our site also contains other information such as: test results, a Linux test
tools matrix, an area for keeping up with fixes for known blocking problems
in the 2.5 kernel releases, technical papers and HowTos on Linux testing,
and a code coverage analysis tool.</p>

<p>Lists of test cases that are expected to fail for
specific architectures and kernels are located at: <a
href="http://ltp.sourceforge.net/expected-errors.php">http://ltp.sourceforge.net/expected-errors.php</a></p>

<p>These lists also contain expected LTP compiler warnings for each
architecture and kernel.</p>

<p>Highlights:</p>

<p>

<ul>

<li>An updated and revised HowTo is now posted on the website.</li>

<li>Updates to allow build and execution in NPTL environments.</li>

<li>Open POSIX Test Suite 0.9.0 merged into test suite.</li>

<li>New 'ltpmenu' ncurses-type GUI available.</li>

<li>New tests added for device mapper, sockets, and 2.5 timers.</li>

</ul>

</p>

<p>We encourage the community to post results, patches, or new tests on our
mailing list, and to use the CVS bug tracking facility to report problems
that you might encounter. More details available at our web-site.</p>

<pre>CHANGELOG
---------
LTP-20030508

- Updated the LTP to build and execute on NPTL    ( Robbie Williamson )
  installed systems
- Applied 'ash' compatibilty patch                ( Dan Kegel )
- Applied "CFLAGS+=" Makefile patch               ( Vasan Sundar )
- Created "/testscripts" directory and relocated  ( Robbie Williamson )
  scripts to it
- Fixed kill problem with genload's stress.c      ( Amos Waterland )
- Added checking for users and sys groups to      ( Robbie Williamson )
  IDcheck.sh. Also, called the script from
  runalltests.sh before executing tests to support
  cross-compiled platforms
- Added 'ltpmenu' GUI                             ( Manoj Iyer
                                                    Robbie Williamson )
- Applied "posixfy" patches                       ( Vasan Sundar )
- Updated runalltests.sh to use -o for            ( Robbie Williamson )
  redirecting output.
- Added code to runalltests.sh to prompt for      ( Robbie Williamson )
  RHOST and PASSWD when running network tests.
- Updated Open POSIX Test Suite header file to    ( Robbie Williamson )
  allow timer tests to build.
- Compiler warnings cleanups.                     ( Robbie Williamson )
- Corrected buffer overflow in inode02.           ( Dan Kegel )
- Updated disktest to 1.1.10 and fixed for        ( Robbie Williamson )
  systems w/o O_DIRECT
- Completed merge of Open POSIX Test Suite 0.9.0  ( Robbie Williamson )
- Applied ia64 specific patches                   ( Jacky Malcles )
- Updated Makefiles to allow use of "-j"          ( Nate Straz )
- Correct fork05 for use in newer glibc/kernels   ( Ulrich Drepper )
- Applied "type" fixes to recvfrom and recvmsg    ( Andreas Jaeger )
- Applied x86_64 specific patches                 ( Andreas Jaeger )
- Applied MSG_CMSG_COMPAT fix for 64bit 2.5       ( Bryan Logan )
  kernels.
- Added new testcase for setegid.                 ( Dan Kegel )
- Modified syslog tests to use test apis          ( Manoj Iyer )
- Added 2.5 timer tests.                          ( Aniruddha Marathe )
- Added Device Mapper tests.                      ( Marty Ridgeway )
- Added sockets tests.                            ( Marty Ridgeway )
- Removed fptest03 due to use of obsolete         ( Robbie Williamson )
  syscalls that perform 48bit math operations</pre>

</quote>

</section>

<section
  title="QLogic FC Driver Rewrite"
  subject="[ANNOUNCE] QLogic FC Driver for Linux kernel 2.5 available."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.1/0239.html"
  posts="1"
  startdate="08 May 2003 14:25:52 -0800"
>
<topic>Ioctls</topic>

<p>Andrew Vasquez said:</p>

<quote who="Andrew Vasquez">

<p>QLogic is pleased to announce the availability of a completely new
version of the QLogic FC driver (8.00.00b1) for its
ISP21xx/ISP22xx/ISP23xx chips and HBAs.  Our desire after community
review and continued driver development is inclusion of this work into
the Linux 2.5 kernel tree.</p>

<p>This driver contains support for Linux kernels 2.5.x and above *only*
(all 2.4.x support has been removed).  It's based on the QLogic 6.x   
driver which is qualified with a number of OEMs and is functionally
equivalent to the 6.05.00b9 driver.</p>

<p>The new driver contains a number of key functional changes,
initialization (device scanning), I/O handling -- command queuing
refinements (front-end), ISR rewrite (backend).  The last two notables
should assist in a reasonable performance improvement.  Details
pertaining to the these changes and the development direction of this
work can be found towards the end of this email.</p>

<p>Driver tar-balls are available in two-forms from our SourceForge site:</p>

<p><a href="http://sourceforge.net/projects/linux-qla2xxx/">http://sourceforge.net/projects/linux-qla2xxx/</a></p>

<pre>   o Kernel tree drop-in tarball (synced with 2.5.69):  

        qla2xxx-kernel-v8.00.00b1.tar.bz2

        Extract the contents directly in the kernel tree:

                # cd /usr/src/linux-2.5.69
                # tar xvfj /tmp/qla2xxx-kernel-v8.00.00b1.tar.bz2
                # make config
                # ...

   o External build tarball:

        qla2xxx-src-v8.00.00b1.tar.bz2

        Extract the contents to your build directory:

                # mkdir /tmp/qla-8.00.00b1
                # cd /tmp/qla-8.00.00b1
                # tar xvfj /tmp/qla2xxx-src-v8.00.00b1.tar.bz2
                # make -C /usr/src/linux-2.5.69 SUBDIRS=$PWD modules</pre>

<p>Please note, this is a (pre)beta release.  Testing has been performed
against a number of storage devices (JBODs, and FC raid boxes), but
certainly has not received the level of test coverage present with the
6.x series code -- basic error injection (cable-pulls and recovery).</p>

<p>NOTE: The driver group will try to address any issues with this work
within the linux-scsi and linux-kernel mailing lists.  Please do not
contact QLogic technical support regarding this driver.</p>

<p>Details:</p>

<p>This driver is and will continue to be in a very fluid state.  Changes
thus far include basic infrastructure and semantic rewrites of some core
components of the driver:</p>

<pre>        o Initialization:
          - pci_driver scanning.
          - Fabric scanning:
            - GID_PT (if not supported, fallback to GA_NXT).
            - SNS registration - RFT_ID, RFF_ID RNN_ID, RSNN_ID.
          - ISP abstractions:
            - Firmware loading mechanism.
            - NVRAM configuration.
          - 2k port login support (ISP23xx only).
          - SRB pool allocations.

        o Queuing mechanisms:
          - Rewrite command IOCB handling.

        o Command response handling:
          - Rewrite ISR -- simplification.
          - Bottom-half handling via work queues.

        o Code restructuring.

        o Kernel 2.5 support -- currently in sync with 2.5.69.</pre>

<p>Additional work to be done include:</p>

<pre>        o Further fabric scanning refinements:
          - Minimizing SNS queries.
          - Asynchronous fabric logins.

        o Review Locking mechanisms -- there are still a number of
          structures which depend on our high-level hardware lock for
          mutual exclusion.

        o Internal device-list management unification.

        o Rework mailbox and IOCTL request handling:
          - To use wait queues.

        o Logging mechanisms.  The current debugging requirement is to
          recompile the driver in 'debug' mode.  Once included in the
          kernel tree, recompilation is not a guaranteed option.
          Make use of 'Extended error logging' NVRAM parameter to enable
          additional debug statements.

        o Kernel 2.5 support:
          - module_param() interface.</pre>

</quote>

</section>

<section
  title="Deep, Dark, Boot Vector Weirdness"
  subject="[PATCH] Use correct x86 reboot vector"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.1/0567.html"
  posts="37"
  startdate="09 May 2003 18:56:34 -0800"
  enddate="13 May 2003 11:27:02 -0800"
>

<p>Andi Kleen said:</p>

<quote who="Andi Kleen">

<p>Extensive discussion by various experts on the discuss@x86-64.org mailing
list concluded that the correct vector to restart an 286+ CPU is f000:fff0, not
ffff:0000. Both seem to work on current systems, but the first is correct.</p>

<p>See the "DPMI on AMD64" and "Warm reboot for x86-64 linux" threads on <a
href="http://www.x86-64.org/mailing_lists/list?listname=discuss&amp;listnum=0">http://www.x86-64.org/mailing_lists/list?listname=discuss&amp;listnum=0</a>
for more details.</p>

</quote>

<p>Jamie Lokier replied:</p>

<quote who="Jamie Lokier">

<p>You are right.  That's what a 286 does when the RESET signal is
asserted.</p>

<p>Which is amazing, because I wrote that ffff:0000 and I was reading from
the Phoenix BIOS book at the time.  It was long ago but I'm fairly sure I
got that address from the book.</p>

<p>I just did some Googling and found that there examples of DOS code
fragments using both vectors.  Also, the original IBM BIOS (as they say)
had a long jump at the vector, which is presumably one of the many de facto
ABIs which real mode programmers grew to depend on.</p>

</quote>

<p>Randy Dunlap replied, <quote who="Randy Dunlap">This seems to be a
difference from 8086/8088 to the 286.  My iAPX 286 Hardware Reference Manual
says that the RESET signal initializes CS to 0FF0000H and IP to 0FFF0H,
while my iAPX 86,88 User's Manual says that RESET sets CS to 0FFFFh and IP
to 0.</quote> And Jos Hulzink also said to Jamie:</p>

<quote who="Jos Hulzink">

<p>The 16 byte code space is very small, and usually only contains that LONG
jump to an usable address space.</p>

<p>When the vector f000:fff0 is used, we can survive BIOSes that use relative
jumps with negative offsets or indirect short jumps instead.</p>

<p>When the vector ffff:0000 is used, the code segment effectively contains
only 16 bytes (or someone must abuse the 8086 wraparound), can't think of
negative offset short jumps there. As the code is read-only in this early
stage, (BIOS code is RW after the BIOS copied itself to RAM) self modifying
code (which uses absolute addressing) can be excluded too.</p>

<p>Okay... now, as 386 and newer cpus need a far jump to unlock A20-A31, I
think it is safe to assume all BIOSes will do a far jump as soon as possible,
which means it doesn't matter which vector is used.</p>

<p>For the sake of bad behaving BIOSes however, I'd vote for the f000:fff0
vector, unless someone can hand me a paper that says it is wrong.</p>

</quote>

<p>Jamie replied, <quote who="Jamie Lokier">I agree, for the simple reason
that it is what the chip does on a hardware reset signal.</quote> At this
point Linus Torvalds came in with:</p>

<quote who="Linus Torvalds">

<p>Hmm.. Doesnt' a _real_ hardware reset actually use a magic segment that
isn't even really true real mode? I have this memory that the reset value
for a i386 has CS=0xf000, but the shadow base register actually contains
0xffff0000. In other words, the CPU actually starts up in "unreal" mode,
and will fetch the first instruction from physical address 0xfffffff0.</p>

<p>At least that was true on an original 386. It's something that could
easily have changed since.</p>

<p>In other words, you're all wrong. Nyaah, nyaah.</p>

</quote>

<p>Jos replied:</p>

<quote who="Jos Hulzink">

<p>Source: 80386 Programmers Reference Manual, Intel (1986)</p>

<p>EIP is set 0000FFF0H
CS is set F000H</p>

<p>After RESET, lines A31-A20 are FORCED high till a far JMP is done.</p>

<p>So, unfortunately we have to say Linus is right once again. Damn ;-) My
conclusion is that we are unable to use the CPU reset as the reference for
warm boots, for we can't control A312-A20 in real mode. But as far as I can 
see, my arguments still hold...</p>

</quote>

<p>Jamie replied, <quote who="Jamie Lokier">I got my info from an article
on the net which says that a 386 does behave as you say, but it is possible
for the system designer to arrange that it boots into the 286-compatible
vector at physical address 0x000ffff0.  It states that the feature is
specifically so that system designers don't have to create a "memory hole"
(that's as much detail as it gives).</quote> Davide Libenzi pointed out that
0xfffffff0 and 0x000ffff0 amounted to the same thing, <quote who="Davide
Libenzi">since the hw remaps the bios. Being picky about Intel specs, it
should be f000:fff0 though.</quote> Eric W. Biederman replied, <quote who="Eric
W. Biederman">The remapping is quite common but it usually happens that after
bootup: 0xf0000-0xfffff is shadowed RAM.  While 0xffff0000-0xffffffff still
points to the rom chip.  Now if someone could tell me how to do a jump to
0xffff0000:0xfff0 in real mode I would find that very interesting.</quote>
Linus said:</p>

<quote who="Linus Torvalds">

<p>You should be able to do it the same way as you enter unreal mode, ie:</p>

<p>

<ul>

<li>

<p>in protected mode cpl0, crate a segment that has index 0xf000 (ie you
   need a large GDT for this to work), and has the right attributes (ie
   base 0xffff0000, 16-bit, etc).</p>

<p>   Make sure you reload the other segments with something sanish and be
   16-bit clean.</p>

</li>

<li>clear the PE bit, but do _not_ do the long jump to reload the segment
   that intel says you should do - just do a short jump to 0xfff0.</li>

</ul>

</p>

<p>One problem is that the code segment you create this way will have the
right base and size, but it will be non-writeable (no way to create a
writable code segment in protected mode), so it will be different in other
ways.</p>

<p>And because you'll have to do some of the the setup with that new and
inconvenient CS, you'll either have to make the limit be big (and wrap
around EIP in order to first execute code that is in low memory), or
you'll have to play even more tricks and clear both PE and PG at the same
time and just "fall through" to the code at 0xfffffff0.</p>

<p>Sounds like it might work, at least on a few CPU's.</p>

</quote>

</section>

<section
  title="Support For PPP Encryption"
  subject="MPPE in kernel?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.1/1061.html"
  posts="12"
  startdate="12 May 2003 03:59:29 -0800"
  enddate="12 May 2003 20:38:31 -0800"
>
<topic>Compression</topic>
<topic>Networking</topic>

<p>Frank Cusack asked:</p>

<quote who="Frank Cusack">

<p>What are the chances of getting MPPE (PPP encryption) into the 2.4.21
and/or 2.5.x kernels?</p>

<p>For 2.4.21, sha1 and arcfour code needs to be added, so I don't have too
much hope :-) even though the code is trivial to integrate.</p>

<p>For 2.5.x, just the arcfour code is needed (since sha1 is already there).
I've written a public domain implementation, which I'd be willing to relicense
under GPL (although I don't see the point), but in any case the algorithm
is easy and could be written by anyone.</p>

<p>In addition to the crypto, the mppe compressor module is required.</p>

<p>I'm not so concerned about getting any of that included though; what I
really want is for the changes to ppp_generic.c to be included.  It's not
so much fun to have to maintain patches.  The changes required are generic,
don't require crypto, and are generally uneventful.  Getting the crypto bits
and the mppe compressor itself included would just be a bonus.</p>

</quote>

<p>Paul Mackerras replied, <quote who="Paul Mackerras">The fundamental
problem is that MPPE is misusing CCP (compression control protocol) for
something for which it was never intended.  The specific place where this
is a problem is that the compression code in ppp_generic doesn't guarantee
that it will never send a packet out uncompressed, but MPPE requires that.
How do you get around that problem?</quote> Frank said:</p>

<quote who="Frank Cusack">

<p>I have the compressor return a 3-valued return code (&lt;0, 0, &gt;0)
instead of two-valued (&gt;0, other).  A negative value tells ppp_generic
to drop the packet.  0 means the same as it does now--the compressor failed
for some reason.  (All current compressors always return 0 or &gt;0, so the
negative return is compatible.)</p>

<p>0 could also mean that CCP isn't up yet, but pppd userland doesn't allow
NCP's to come up until CCP completes (iff trying to negotiate MPPE).</p>

<p>Note that ECP would have this same problem, it's addressed the same way.</p>

</quote>

<p>Paul replied:</p>

<quote who="Paul Mackerras">

<p>are you sure that nothing can cause CCP to go down?  If it does then
ppp_generic will send data uncompressed.  What would happen if an attacker
managed to insert a CCP terminate-request into the receive stream somehow?</p>

<p>I think the whole thing needs a careful audit.  The idea that you fall back
to sending and receiving uncompressed data if CCP goes down or a compressor
fails is pretty fundamental to the CCP implementation in ppp_generic.</p>

</quote>

<p>Frank thought he had a way to keep CCP from going down, but Paul felt more
was needed; and the thread ended.</p>

</section>

<section
  title="kconfig Enhancements"
  subject="[PATCH] new kconfig goodies"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.1/1089.html"
  posts="18"
  startdate="12 May 2003 05:39:11 -0800"
  enddate="14 May 2003 16:21:19 -0800"
>
<topic>FS: CIFS</topic>
<topic>FS: FAT</topic>
<topic>FS: JFS</topic>
<topic>FS: NTFS</topic>
<topic>FS: ext2</topic>
<topic>FS: ext3</topic>
<topic>Microsoft</topic>

<p>Roman Zippel announced:</p>

<quote who="Roman Zippel">

<p>There is a new kconfig patch at <a
href="http://www.xs4all.nl/~zippel/lc/patches/kconfig-2.5.69.diff.gz">http://www.xs4all.nl/~zippel/lc/patches/kconfig-2.5.69.diff.gz</a>
It adds a few new features, which were requested a few times:</p>

<p>

<ul>

<li>ability to force the value of a config symbol</li>
<li>defaults accept now an expression</li>
<li>easier way to define derived symbols</li>
<li>support for ranges</li>

</ul>

</p>

<p>BTW this clears my todo list of important features for the kconfig syntax
itself, if you think there is something missing, please tell me now,
otherwise it might have to wait for 2.7. After this I work a bit more on
xconfig and the library interface.</p>

<p>The changes in detail:</p>

<p>

<ol>

<li>

<p>Working with derived symbols becomes simpler, e.g. this:</p>

<pre>config FS_MBCACHE
        tristate
        depends on EXT2_FS_XATTR || EXT3_FS_XATTR
        default y if EXT2_FS=y || EXT3_FS=y
        default m if EXT2_FS=m || EXT3_FS=m</pre>

<p>can now also be written as:</p>

<pre>config FS_MBCACHE
        def_tristate EXT2_FS || EXT3_FS
        depends on EXT2_FS_XATTR || EXT3_FS_XATTR</pre>

<p>There are two new keywords "def_bool" and "def_tristate", which behave
like "default", except that they also set the type of the config symbol.
Defaults also accept expressions now, the result of it will be used as
default (this works of course only with boolean and tristate symbols).</p>

</li>

<li>

<p>There is a new keyword "enable", which can be used to force the value
of another config value, e.g.</p>

<pre>config NLS
        bool
        depends on JOLIET || FAT_FS || NTFS_FS || NCPFS_NLS || SMB_NLS || JFS_FS || CIFS || BEFS_FS
        default y</pre>

<p>this could be written as:</p>

<pre>config NLS
        def_bool JOLIET || FAT_FS || NTFS_FS || NCPFS_NLS || SMB_NLS || JFS_FS || CIFS || BEFS_FS</pre>

<p>but this is now possible as well:</p>

<pre>config NLS
        bool

config JOLIET
        bool "Microsoft Joliet CDROM extensions"
        enable NLS

config FAT_FS
        tristate "DOS FAT fs support"
        enable NLS

...</pre>

<p>This means the information that a file system needs NLS is now specified
with the file system itself and if the file system is selected, so is NLS.</p>

<p>Another example:</p>

<pre>config AGP
        tristate "/dev/agpgart (AGP Support)" if !GART_IOMMU
        default y if GART_IOMMU</pre>

<p>this can be changed into:</p>

<pre>config AGP
        tristate "/dev/agpgart (AGP Support)"

config GART_IOMMU
        bool "IOMMU support"
        enable AGP</pre>

<p>This will cause AGP to be selected if GART_IOMMU is selected.</p>

<p>To better understand how this new feature works, it might help to describe
how a config value is calculated:</p>

<pre>        config value = (user input &amp;&amp; visibility) || reverse dependency</pre>

<p>Visibility are the normal dependencies and limit the maximum value a user
can select. Reverse dependencies on the other hand limit the minimum value
a user can select. In above example this means there is a reverse
dependency of GART_IOMMU added to AGP, so that value of AGP cannot be less
than GART_IOMMU anymore.</p>

<p>This feature can be easily abused, so please use it with care, don't use
it to take the choice away from user, e.g. only enable another subsystem
if it would result in compile errors otherwise. If you're not sure, just
ask. To avoid bigger mistakes I finally added the code to check for
recursive dependencies.</p>

</li>

<li>

<p>Finally I added support for ranges, so that this becomes possible:</p>

<pre>config LOG_BUF_SHIFT
        int "Kernel log buffer size" if DEBUG_KERNEL
        range 10 20
        ...</pre>

<p>Right now this is only used to check the direct user input, this means
directly editing .config will ignore the range (please don't rely on this
feature :) ).</p>

</li>

</ol>

</p>

</quote>

<p>Dave Jones was happy to see this, but asked, <quote who="Dave
Jones">However, will this still offer the CONFIG_AGP tristate in the menu? If
IOMMU is on, there must be no way to switch off the agpgart support on
which it depends.</quote> Roman replied, <quote who="Roman Zippel">Yes,
you will see AGP, but you can't change it.</quote> And Dave said, <quote
who="Dave Jones">Perfect!</quote></p>

</section>

<section
  title="Support For The ARM26 Architecture"
  subject="ARM26 [NEW ARCHITECTURE]"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.1/1466.html"
  posts="10"
  startdate="13 May 2003 06:33:15 -0800"
  enddate="13 May 2003 15:13:18 -0800"
>

<p>Ian Molton said, <quote who="Ian Molton">I want to submit the ARM26
architecture. its still broken, but its getting there. now a couple
more people want to hack on it, so I'd appreciate it if you could put the
non-invasive parts into the kernel tree for me.  I have two patches - one to
add arch/arm26 and another to add the corresponding incluse/asm-arm26.</quote>
Alan Cox remarked, <quote who="Alan Cox">I guess its no crazier than the
MacII port. What does Russell think about it however and also is this 2.4
or 2.5 targetted ?</quote> Ian replied, <quote who="Ian Molton">it is 2.5
targetted currently 2.5.30, but the arch/ and asm/ stuff is independant as far
as the rest of the tree is concerned, so it may as well go in as 'current' and
then I can submit smaller patches to 'catch up' with the rest.  it actually
compiles on 2.5.30 (at least, some of it does ;-) and runs, excpet so far,
mm stuff fails and user-land falls over HARD ver early.</quote> He added that
Russell King was OK with the whole idea; and Russell put in for himself:</p>

<quote who="Russell King">

<p>I'm fine with it; I'd rather someone else (who has more interest
in the machines) picked it up.</p>

<p>The basic idea is to rip out the arm26 code from arch/arm and
include/asm-arm, thereby allowing include/asm-arm/proc-armv to
be collapsed into include/asm-arm, removing some clutter.</p>

<p>Separating it out should also allow arm26 to shrink down to
something smaller, which is fairly critical for these machines.</p>

</quote>

</section>

<section
  title="Proposal For Digital Rights Management"
  subject="Digital Rights Management - An idea"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.1/1883.html"
  posts="23"
  startdate="14 May 2003 00:30:39 -0800"
  enddate="15 May 2003 02:46:01 -0800"
>
<topic>Access Control Lists</topic>
<topic>Executable File Format</topic>

<p>Dean McEwan proposed, <quote who="Dean McEwan">I had an idea for DRM,
what about a kernel that forces everything downloaded to have a valid
signature, and doesn't let the file/program be accessed otherwise?</quote>
Alan Cox replied, <quote who="Alan Cox">You can set this up with both rsbac
and selinux,</quote> but Dean said, <quote who="Dean McEwan">Im thinking of
much more...  It would be set up so that files have an internal signature
(ELF format might have to be fiddled with). It would verify itself by sending
info to the creator of the contents PC OR server asking for verification of
itself, files could be limited lease, rented, or automatically expire after
some time.</quote> Alan replied:</p>

<quote who="Alan Cox">

<p>That way around doesnt actually work because I'll simply lie, fake the
server or firewall you (in fact any serious business firewalls all outgoing
traffic from end users). If you want to do it for internal trust and you
control the systems (the useful case) you set SELinux or RSBAC up so that
all applications create files in a "non runnable" class. The only way to
transition an app is a single user application which does your key checking
and other processing then transitions the binary to "safe". I guess you also
add a general rule that writing to a file moves it back into non runnable.</p>

<p>One of the problems with this is interpreters. Its easy to do this with
ELF binaries but you have to extend it to scripts and that normally means
more pain 8)</p>

</quote>

</section>

<section
  title="Support For The Virtual Redundancy Router Protocol (VRRP)"
  subject="VRRP"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.2/0056.html"
  posts="3"
  startdate="16 May 2003 05:19:10 -0800"
  enddate="16 May 2003 06:17:12 -0800"
>

<p>Chien-Lung Wu asked, <quote who="Chien-Lung Wu">Do anyone know that Linux
is able to support  VRRP (Virtual Redundency Router protocol)?</quote> Gianni
Tedesco gave a link to <a href="http://keepalived.sf.net/">Keepalived</a>,
and Maciej Soltysiak also said to Chien-Lung:</p>

<quote who="Maciej Soltysiak">

<p>Read about vrrpd in:<br />
<a href="http://lartc.org/howto/lartc.other.html">http://lartc.org/howto/lartc.other.html</a></p>

<p>Try looking for packages for your linux distro. Debian, RedHat have vrrpd
packages.</p>

<p>Also try:<br />
<a href="http://sourceforge.net/projects/svrrpd/">http://sourceforge.net/projects/svrrpd/</a></p>

</quote>

</section>

</kc>

