The linux-kernel mailing list FAQ 

These frequently asked questions are divided in various categories. Please contribute any category and Q/A that you may find relevant. You can also add your answer to any question that has already been answered, if you have additional information to contribute.

The base (U.S.) site is now available at http://www.tux.org/lkml/faq.html. Many thanks to Sam Chessman and David Niemi for hosting the FAQ on a high-bandwidth, professionally managed Linux server.
The original site was at http://www.altern.org/andrebalsa/doc/lkml-faq.html (France), but will not be maintained much longer.

The present FAQ builds on the previous linux-kernel mailing list FAQ maintained by Frohwalt Egerer. Frohwalt has gone on to other computing activities and consequently we will slowly merge his excellent but no longer maintained FAQ in the present one.


Hot off the Presses

Click here for the latest newsflash about official kernel releases and bugfixes.

Read this before complaining to linux-kernel about compile problems. Chances are a thousand other people have noticed and the fix is already published.

Index


Basic Linux kernel documentation

The following are Linux kernel related documents, which you should take a look at before you post to the linux-kernel mailing list:

Contributors and some special expressions

This is the list of contributors to this FAQ, in no particular order. The capitals between parentheses are used in the Answers sections below to identify the author(s) of each answer. Some English expressions for non-native English readers:

Question Index

 

Section 1 - General questions

  1. Why do you use "GNU/Linux" sometimes and just "Linux" in other parts of the FAQ?
  2. Why is the Linux kernel written in C/assembly?
  3. Why don't we rewrite it all in assembly language for processor Mega666?
  4. Why don't we rewrite the Linux kernel in C++?
  5. Why is the Linux kernel monolithic? Why don't we rewrite it as a microkernel?
  6. What is an experimental kernel version?
  7. What is a production kernel?
  8. What is a feature freeze?
  9. What is a code freeze?
  10. What is a f.g.hhprei kernel?
  11. Where do I get the latest kernel source?
  12. Where do I get extra kernel patches?
  13. What is a patch?
  14. How do I make a patch suitable for the linux kernel list?
  15. How do I apply a patch?
  16. Everybody is talking about a "CVS tree at vger". What's vger?
  17. And what's a CVS tree? Where can I find more information about CVS?
  18. Is there a CVS tutorial?
  19. How do I get my patch into the kernel?
  20. Why does the kernel tarball contain a directory called linux/ instead of linux-x.y.z/ ?

Section 2 - Driver specific questions

  1. Driver such and such is broken!
  2. Here is a new driver for hardware XYZ.
  3. Is there support for my card TW-345 model C in kernel version f.g.hh?
  4. Who maintains driver such and such?
  5. I want to write a driver for card TW-345 model C, how do I get started?
  6. I want to get the docs, but they want me to sign an NDA (Non-Disclosure Agreement).
  7. I want/need/must have a driver for card TW-345 model C! Won't anybody write one for me?
  8. What's this major/minor device number thing?
  9. Why aren't WinModems supported?

Section 3 - Mailing list questions

  1. How do I subscribe to the linux-kernel mailing list?
  2. How do I unsubscribe from the linux-kernel mailing list?
  3. Do I have to be subscribed to post to the list?
  4. Is there an archive for the list?
  5. How can I search the archive for a specific question?
  6. Are there other ways to search the Web for information on a particular Linux kernel issue?
  7. How heavy is the traffic on the list?
  8. What kind of question can I ask on the list?
  9. Is the list moderated?
  10. Can I be ejected from the list?
  11. Are there any implicit rules on this list that I should be aware of?
  12. Does the list get spammed?
  13. I am not getting any mail anymore from the list! Is it down or what?
  14. Is there an NNTP gateway somewhere for the mailing list?
  15. I want to post a Great Idea (tm) to the list. What should I do?
  16. There is a long thread going on about something completely offtopic, unrelated to the kernel, and even some people who are in the "Who's who" section of this FAQ are mingling in it. What should I do to fight this "noise"?

Section 4 - "How do I" questions

  1. How do I post a patch?
  2. How do I post an Oops?
  3. I think I found a bug, how do I report it?
  4. What information should go into a bug report?
  5. I found a bug in an "old" version of the kernel, should I report it?

Section 5 - "Who's who" questions

Names are in alphabetical order (last name) to avoid stepping on toes.
If someone doesn't appear here, check /usr/src/linux/CREDITS.
  1. Who is in charge here?
  2. Who is H. Peter Anvin?
  3. Who is Donald Becker?
  4. Who is Alan Cox?
  5. Who is Richard E. Gooch?
  6. Who is Paul Gortmaker?
  7. Who is Bill Hawes?
  8. Who is Mark Lord?
  9. Who is Larry McVoy?
  10. Who is David S. Miller?
  11. Who is Linus Torvalds?
  12. Who is Theodore Y. T'so?
  13. Who is Stephen Tweedie?
  14. Who is Roger Wolff?
  15. Why don't we have a Linux Kernel Team page, same as there are for other projects?
  16. Why doesn't <any of the above> answer my mails? Isn't that rude?
Some people haven't contributed yet with a few lines about themselves, and the policy of this FAQ dictates that nobody is going to write about anybody else without authorization. Hence the missing links e.g. if you are not Linus, don't insist, we are not going to add your information about Linus.

Other OS developers:

Section 6 - CPU questions

Is this a matter of taste or what?
  1. What is the "best" CPU for GNU/Linux?
  2. What is the fastest CPU for GNU/Linux?
  3. I want to implement the Linux kernel for CPU Hyper123, how do I get started?
  4. Why is my Cyrix 6x86/L/MX detected by the kernel as a Cx486?
  5. What about those x86 CPU bugs I read about?
  6. I grabbed the standard kernel tarball from ftp.kernel.org or some mirror of it, and it doesn't compile on the Sparc, what gives?
  7. Does the Linux kernel execute the Halt instruction to power down the CPU?
  8. I have a non-Intel x86 CPU. What is the [best|correct] kernel config option for my CPU?

Section 7 - OS questions

OS theory and practical issues mix.
  1. OS $toomuch has this Nice feature, so it must be better than GNU/Linux.
  2. Why doesn't the Linux kernel have a graphical boot screen like $toomuch OS?
  3. The kernel in OS CTE-variant has this Nice-very-nice feature, can I port it to the Linux kernel?
  4. How about adding feature Nice-also-very-nice to the Linux kernel?
  5. Are there more bugs in later versions of the Linux kernel, compared to earlier versions?
  6. Why does the Linux kernel source code keep getting larger and larger?
  7. The kernel source is HUUUUGE and takes too long to download. Couldn't it be split in various tarballs?
  8. What are the licensing/copying terms on the Linux kernel?
  9. What are those references to "bazaar" and "cathedral"?
  10. What is this "World Domination" thing?
  11. What are the plans for future versions of the Linux kernel?
  12. Why does it show BogoMips instead of MHz in the kernel boot message?
  13. I installed kernel x.y.z and package foo doesn't work anymore, what should I do?
  14. People talk about user space vs. kernel space. What's the advantage of each?
  15. What are threads?
  16. Can I use threads with GNU/Linux?
  17. You mean threads are implemented in user space? Why not in kernel space? Wouldn't that be more efficient?
  18. Can GNU/Linux machines be clustered?
  19. How well does Linux scale for SMP?
  20. Can I lock a process/thread to a CPU?

Section 8 - Compiler/binutils questions

Kernel compilation problems.
  1. I downloaded the newest kernel and it doesn't even compile! What's wrong?
  2. What are the recommended compiler/binutils for building 2.0.x kernels and 2.2.x kernels?
  3. Why gcc 2.7.2? I like xyz-compiler better.
  4. Can I compile the kernel with gcc 2.8.x, egcs, (add your xyz compiler here)? What about optimizations? How do I get to use -O99, etc.?
  5. I compiled the kernel with xyz compiler and get the following warnings/errors/strange behavior, should I post a bug report to the list? Should I post a patch?
  6. Why does my kernel compilation stops at random locations with: "Internal compiler error: program cc1 caught fatal signal 11."?

Section 9 - Feature specific questions

Miscellaneous kernel features questions.
  1. GNU/Linux Y2K compliance?
  2. What is the maximum file size supported under ext2fs? 2 GB?
  3. GGI/KGI or the Graphics Interface in Kernel Space debate?
  4. How do I get more than 16 SCSI disks?
  5. What's devfs and why is it a Good Idea (tm)?
  6. Linux memory management? Zone allocation?
  7. How many open files can I have?
  8. When will the Linux accept(2) bug be fixed?
  9. What about STREAMS? I noticed Caldera has a STREAMS package, when will that go in the kernel source proper?
  10. I need encryption and steganography.  Why isn't it in the kernel?
  11. How about an undelete facility in the kernel?
  12. How about tmpfs for Linux?

Section 10- "What's changed between kernels 2.0.x and 2.2.x" questions

  1. Size (source and executable)?
  2. Can I use a 2.2.x kernel with a distribution based on a 2.0.x kernel?
  3. New filesystems supported?
  4. Performance?
  5. New drivers not available under 2.0.x?
  6. What are those __initxxx macros?
  7. I have seen many posts on a "Memory Rusting Effect". Under what circumstances/why does it occur?
  8. Why does ifconfig show incorrect statistics with 2.2.x kernels?
  9. My pseudo-tty devices don't work any more.  What happened?
  10. Can I use Unix 98 ptys?
  11. Capabilities?
  12. Kernel API changes

Section 11- Primer documents

Please, if you wish to contribute a Q/A in this section, provide a very short answer defining the topic and then a URL to a longer text/Web page. Like that we can have various URL's for a single Q, each with a different point of view. Another advantage of this approach is that each contributor has to sit down and write a coherent HTML page or text file. Having to structure a written answer gives ample time to think about the issues and the topic as a whole. It also allows frequent independent revisions, which would be impossible on the FAQ itself.

Note that writing the longer text/Web page on some relevant Linux kernel topic and providing a Q/A in this section confers you instant Guru status. Some people would *kill* for this. Now go and write your stuff. ;)

  1. What's a primer document and why should I read it first?
  2. How about having I/O completion ports?
  3. What is the VFS and how does it work?
  4. What's the Linux kernel's notion of time?
  5. Is there any magic in /proc/scsi that I can use to rescan the SCSI bus?

Section 12- Kernel Programming Questions

Answers to common questions about kernel programming details.
  1. When is cli() needed?
  2. Why do I see sometimes a cli()-sti() pair, and sometimes a save_flags-cli()-restore_flags sequence?
  3. Can I call printk() when interrupts are disabled?
  4. What is the exact purpose of start_bh_atomic() and end_bh_atomic()?
  5. Is it safe to grab the global kernel lock multiple times?

Section 13- Mysterious kernel messages

We sometimes get these messages in our system logs and wonder what they mean...
  1. What exactly does a "Socket destroy delayed" mean?

Answers

Section 1 - General questions

  1. Why do you use "GNU/Linux" sometimes and just "Linux" in other parts of the FAQ?
  2. Why is the Linux kernel written in C/assembly?
  3. Why don't we rewrite it all in assembly language for processor Mega666?
  4. Why don't we rewrite the Linux kernel in C++?
  5. Why is the Linux kernel monolithic? Why don't we rewrite it as a microkernel?
  6. What is an experimental kernel version?
  7. What is a production kernel?
  8. What is a feature freeze?
  9. What is a code freeze?
  10. What is a f.g.hhprei kernel?
  11. Where do I get the latest kernel source?
  12. Where do I get extra kernel patches?
  13. What is a patch?
  14. How do I make a patch suitable for the linux kernel list?
  15. How do I apply a patch?
  16. Everybody is talking about a "CVS tree at vger". What's vger? And what's this CVS tree?
  17. Where can I find more information about CVS?
  18. Is there a CVS tutorial somewhere?
  19. How do I get my patch into the kernel?
  20. Why does the kernel tarball contain a directory called linux/ instead of linux-x.y.z/ ?

Section 2 - Driver specific questions

  1. Driver such and such is broken!
  2. Here is a new driver for hardware XYZ.
  3. Is there support for my card TW-345 model C in kernel version f.g.hh?
  4. Who maintains driver such and such?
  5. I want to write a driver for card TW-345 model C, how do I get started?
  6. I want to get the docs, but they want me to sign an NDA (Non-Disclosure Agreement).
  7. I want/need/must have a driver for card TW-345 model C! Won't anybody write one for me?
  8. What's this major/minor device number thing?
  9. Why aren't WinModems supported?

Section 3 - Mailing list questions

  1. How do I subscribe to the linux-kernel mailing list?
  2. How do I unsubscribe from the linux-kernel mailing list?
  3. Do I have to be subscribed to post to the list?
  4. Is there an archive for the list?
  5. How can I search the archive for a specific question?
  6. Are there other ways to search the Web for information on a particular Linux kernel issue?
  7. How heavy is the traffic on the list?
  8. What kind of question can I ask on the list?
  9. Is the list moderated?
  10. Can I be ejected from the list?
  11. Are there any implicit rules on this list that I should be aware of?
  12. Does the list get spammed?
  13. I am not getting any mail anymore from the list! Is it down or what?
  14. Is there an NNTP gateway somewhere for the mailing list?
  15. I want to post a Great Idea (tm) to the list. What should I do?
  16. There is a long thread going on about something completely offtopic, unrelated to the kernel, and even some people who are in the "Who's who" section of this FAQ are mingling in it. What should I do to fight this "noise"?

Section 4 - "How do I" questions

  1. How do I post a patch?
  2. How do I post an Oops?
  3. I think I found a bug, how do I report it?
  4. What information should go in a bug report?
  5. I found a bug in an "old" version of the kernel, should I report it?

Section 5 - "Who's who" questions

  1. Who is in charge here?
  2. Who is H. Peter Anvin?
  3. Who is Donald Becker?
  4. Who is Alan Cox?
  5. Who is Richard E. Gooch?
  6. Who is Paul Gortmaker?
  7. Who is Mark Lord?
  8. Who is Larry McVoy?
  9. Who is David S. Miller?
  10. Who is Linus Torvalds?
  11. Who is Theodore Y. T'so?
  12. Who is Roger Wolff?
  13. Why don't we have a Linux Kernel Team page, same as there are for other projects?
  14. Why doesn't <any of the above> answer my mails? Isn't that rude?

Other OS developers

Rogier Wolff (REW) suggested we add a section on OS developers who influenced/preceded the design of Linux.

Section 6 - CPU questions

  1. What is the "best" CPU for GNU/Linux?
  2. What is the fastest CPU for GNU/Linux?
  3. I want to implement the Linux kernel for CPU Hyper123, how do I get started?
  4. Why is my Cyrix 6x86/L/MX/MII detected by the kernel as a Cx486?
  5. What about those x86 CPU bugs I read about?
  6. I grabbed the standard kernel tarball from ftp.kernel.org or some mirror of it, and it doesn't compile on the Sparc, what gives?
  7. Does the Linux kernel execute the Halt instruction to power down the CPU?
  8. I have a non-Intel x86 CPU. What is the [best|correct] kernel config option for my CPU?

Section 7 - OS questions

  1. OS $toomuch has this Nice feature, so it must be better than GNU/Linux.
  2. Why doesn't the Linux kernel have a graphical boot screen like $toomuch OS?
  3. The kernel in OS CTE-variant has this Nice-very-nice feature, can I port it to the Linux kernel?
  4. How about adding feature Nice-also-very-nice to the Linux kernel?
  5. Are there more bugs in later versions of the Linux kernel, compared to earlier versions?
  6. Why does the Linux kernel source code keep getting larger and larger?
  7. The kernel source is HUUUUGE and takes too long to download. Couldn't it be split in various tarballs?
  8. What are the licensing/copying terms on the Linux kernel?
  9. What are those references to "bazaar" and "cathedral"?
  10. What is this "World Domination" thing?
  11. What are the plans for future versions of the Linux kernel?
  12. Why does it show BogoMips instead of MHz in the kernel boot message?
  13. I installed kernel x.y.z and package foo doesn't work anymore, what should I do?
  14. People talk about user space vs. kernel space. What's the advantage of each?
  15. What are threads?
  16. Can I use threads with GNU/Linux?
  17. You mean threads are implemented in kernel space in GNU/Linux? Why not a hybrid kernel/user space implementation? Wouldn't that be more efficient?
  18. Can GNU/Linux machines be clustered?
  19. How well does Linux scale for SMP?
  20. Can I lock a process/thread to a CPU?

Section 8 - Compiler/binutils questions

  1. I downloaded the newest kernel and it doesn't even compile! What's wrong?
  2. What are the recommended compiler/binutils for building 2.0.x kernels and 2.2.x kernels?
  3. Why gcc 2.7.2? I like xyz-compiler better.
  4. Can I compile the kernel with gcc 2.8.x, egcs, (add your xyz compiler here)? What about optimizations? How do I get to use -O99, etc.?
  5. I compiled the kernel with xyz compiler and get the following warnings/errors/strange-behavior, should I post a bug report to the list? Should I post a patch?
  6. Why does my kernel compilation stops at random locations with: "Internal compiler error: program cc1 caught fatal signal 11."?

Section 9 - Feature specific questions

  1. GNU/Linux Y2K compliance?
  2. What is the maximum file size supported under ext2fs? 2 GB?
  3. GGI/KGI or the Graphics Interface in Kernel Space debate?
  4. How do I get more than 16 SCSI disks?
  5. What's devfs and why is it a Good Idea (tm)?
  6. Linux memory management? Zone allocation?
  7. How many open files can I have?
  8. When will the Linux accept(2) bug be fixed?
  9. What about STREAMS? I noticed Calderahas a STREAMS package, when will that go in the kernel source proper?
  10. I need encryption and steganography*.  Why isn't it in the kernel?
  11. How about an undelete facility in the kernel?
  12. How about tmpfs for Linux?

Section 10 - "What's changed between kernels 2.0.x and 2.2.x" questions

  1. Size (source and executable)?
  2. Can I use a 2.2.x kernel with a distribution based on a 2.0.x kernel?
  3. New filesystems supported?
  4. Performance?
  5. New drivers not available under 2.0.x?
  6. What are those __initxxx macros?
  7. I have seen many posts on a "Memory Rusting Effect". Under what circumstances/why does it occur?
  8. Why does ifconfig show incorrect statistics with 2.2.x kernels?
  9. My pseudo-tty devices don't work any more.  What happened?
  10. Can I use Unix 98 ptys?
  11. Capabilities?
  12. Kernel API changes

Section 11 - Primer documents

  1. What's a primer document and why should I read it first?
  2. How about having I/O completion ports?
  3. What is the VFS and how does it work?
  4. What's the Linux kernel's notion of time?
  5. Is there any magic in /proc/scsi that I can use to rescan the SCSI bus?

Section 12 - Kernel Programming Questions

  1. When is cli() needed?
  2. Why do I see sometimes a cli()-sti() pair, and sometimes a save_flags-cli()-restore_flags sequence?
  3. Can I call printk() when interrupts are disabled?
  4. What is the exact purpose of start_bh_atomic() and end_bh_atomic()?
  5. Is it safe to grab the global kernel lock multiple times?

Section 13 - Mysterious kernel messages

  1. What exactly does a "Socket destroy delayed" mean?
 

Contributing

Contributions are welcome on this FAQ. These can be submitted by Email to either Rafael, Richard or Andrew (see the Contributors section above). Note that Andrew has disappeared from the 'net since around September 1998, so if you send him a contribution, make sure you Cc it to Rafael or Richard.

Sometimes, we may feel your contribution is controversial and/or incomplete and/or could be improved somehow. Also, the turnaround cycle may take up to 2-3 days. In any case, we will write back to you with comments/acknowledgments. Q/A's that are in principle accepted but still in the "process queue" are marked as [WIP].


Last updated on 15 May 1999 by Richard Gooch. This document is GPL'ed by its various contributors.