Por que o módulo do kernel cfg80211 também está listado como um processo do kernel [cfg80211]?

3

Eu não entendo porque o módulo de kernel cfg80211 também está listado por ps aux como mostrado abaixo:

$ ps aux | grep cfg80211
root 521 0.0 0.0 0 0 ? S< 16:09 0:00 [cfg80211]
    
por user43816 11.06.2012 / 19:16

1 resposta

4

É o comportamento padrão de ps listar os encadeamentos do kernel, já que estes também são processos - apenas um tipo diferente de processo, porque eles são executados em modo supervisor (que algumas pessoas chamam de" modo kernel ").

Se você executar ps ax (ou ps aux ) sem canalizar sua saída para grep , verá vários módulos do kernel listados primeiro (e provavelmente alguns outros intercalados com processos do usuário, se eles forem começou mais tarde).

Por exemplo, aqui estão as primeiras 10 linhas da saída atual de ps ax no meu sistema:

  PID TTY      STAT   TIME COMMAND
    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 listará os módulos carregados. ps aux listará os processos atuais, incluindo os processos do kernel associados aos módulos. Estas são coisas diferentes, no entanto. Por exemplo, um módulo de kernel carregado pode ter qualquer número de processos de kernel associados a ele (zero ou mais).

    
por Eliah Kagan 11.06.2012 / 21:36