유저 레벨 프로세스와 커널 레벨 프로세스 차이

글쓴이: 익명 사용자 / 작성시간: 수, 2021/09/08 - 3:28오전
안녕하십니까! KLDP에서 항상 많이 배우고 있는 학생 입니다.
다름이 아니라 제가 보고 있는 책에서 궁금한 점이 생겼는데 검색을 해봐도 찾지 못하겠어서 질문 드리게 됬습니다.
"커널 프로세스는 커널 모드에서 생성된 프로세스, 유저 프로세스는 유저 모드에서 생성된 프로세스"
일단 책에서 정의하는 커널, 유저 프로세스는 위와 같습니다.
여기서 추가로 "유저 프로세스는 init 프로세스를 통해, 커널 프로세스는 kthreadd 프로세스를 통해 생성된다" 고 적혀 있는데
여기서 제가 궁금한 것은 커널 모드에서, init을 통해 생성된 프로세스는 뭐냐입니다.
예를 시스템 콜을 통해 제가 미리 작성해둔 드라이버로 연결 되도록 한 뒤
그 드라이버 내에서 kthread_create가 아니라 do_fork를 직접 사용해서 분기를 하게 된다면
이 때 분기된 프로세스 or 스레드는 유저 레벨 이라고 해야 할까요 커널 레벨이라고 해야 할까요?
+) 만약 저렇게 분기된 스레드가 있고 그걸 커널 스레드라고 한다면.
이 때 말하는 커널 스레드는 kthreadd를 통해 만드는 유저 스택이 없는 커널 스레드와 같은 개념일까요?
( https://kldp.org/node/92987 이 글을 봤는데 여전히 잘 모르겠네요 ... )
너무 궁금합니다....
읽어 주셔서 감사하고 좋은 하루 되시길 바랍니다!
Forums:
댓글 달기