カーネルデーモンはどのように自動的に実行されますか?

カーネルデーモンはどのように自動的に実行されますか?

私はカスタム初期化(PID 1)スクリプトを作成しました。このスクリプトでは必要なファイルシステムをマウントしましたが、ps auxリストを実行すると次のようになります。

/ # ps aux
PID   USER     TIME  COMMAND
    1 root      0:00 /custom/init
    2 root      0:00 [kthreadd]
    3 root      0:00 [rcu_gp]
    4 root      0:00 [rcu_par_gp]
    5 root      0:00 [kworker/0:0-eve]
    6 root      0:00 [kworker/0:0H-kb]
    7 root      0:00 [kworker/u2:0-ev]
    8 root      0:00 [mm_percpu_wq]
    9 root      0:00 [ksoftirqd/0]
   10 root      0:00 [rcu_sched]
   11 root      0:00 [rcu_bh]
   12 root      0:00 [migration/0]
   13 root      0:00 [cpuhp/0]
   14 root      0:00 [kworker/0:1-eve]
   15 root      0:00 [kdevtmpfs]
   16 root      0:00 [netns]
   17 root      0:00 [kauditd]
   18 root      0:00 [kworker/u2:1-ev]
   21 root      0:00 [oom_reaper]
   22 root      0:00 [kworker/u2:2-ev]
  161 root      0:00 [writeback]
  162 root      0:00 [kcompactd0]
  164 root      0:00 [ksmd]
  165 root      0:00 [crypto]
  166 root      0:00 [kintegrityd]
  167 root      0:00 [kblockd]
  275 root      0:00 [kswapd0]
  289 root      0:00 [kworker/u3:0]
  443 root      0:00 [kthrotld]
  491 root      0:00 [iscsi_eh]
  518 root      0:00 [ipv6_addrconf]
  527 root      0:00 [kstrp]
  543 root      0:00 [ext4-rsv-conver]
  544 root      0:00 [kworker/0:1H-kb]
  546 root      0:00 /bin/ash
  547 root      0:00 ps aux

カスタム初期化スクリプトでこれを処理しなくても、これらのデーモンを生成するのは何ですか?

ベストアンサー1

ksoftirqdたとえば、スレッドはカーネルによって開始されます。kernel/softirq.c

おすすめ記事