Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I do not understand why the kernel module cfg80211 is also listed by ps aux as shown below:

$ ps aux | grep cfg80211
root 521 0.0 0.0 0 0 ? S< 16:09 0:00 [cfg80211]
share|improve this question
Lekensteyn: You have edited my question and given it a slightly wrong meaning The command and its response given is not by lsmod but rather by '$ ps aux'. – user43816 Jun 11 '12 at 18:14
Did izx's edits fix the problem in your post? – Thomas Ward Jun 11 '12 at 19:19

It is the standard behavior of ps to list kernel threads, as these too are processes--just a different kind of process, because they run in supervisor mode (which some people call "kernel mode").

If you run ps ax (or ps aux) without piping its output to grep, you'll see a whole bunch of kernel modules listed first (and then probably some others interspersed with user processes, if they were started later).

For example, here's the first 10 lines of the current output of ps ax on my system:

    1 ?        Ss     0:03 /sbin/init
    2 ?        S      0:01 [kthreadd]
    3 ?        S     97:17 [ksoftirqd/0]
    6 ?        S      0:00 [migration/0]
    7 ?        S      0:24 [watchdog/0]
    8 ?        S      0:00 [migration/1]
   10 ?        S      6:06 [ksoftirqd/1]
   12 ?        S      0:18 [watchdog/1]
   13 ?        S<     0:00 [cpuset]

lsmod will list loaded modules. ps aux will list current processes, including kernel processes associated with modules. These are different things, however. For example, a loaded kernel module might have any number of kernel processes associated with it (zero or more).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.