유저 어플리케이션에서는 할당했던 메모리 영역이 페이징되는걸 전혀 신경쓸 필요가 없습니다 왜냐하면 MMU 가 알아서 페이지폴트 처리를 해주니까요
하지만 커널 디바이스드라이버를 제작할때는 할당된 메모리가 페이징되는걸 걱정해줘야 합니다
왜 커널 디바이스 드라이버를 작성할때는 페이징을 신경써야할까요? MMU 가 이것도 같이 처리 못해주는 이유가 있나요?
커널 디바이스 드라이버 작성 시, 페이지 폴트 처리를 해줘야 한다는 것은 처음듣는 얘기이네요.
.init 섹션에 포함되어 있는 코드영역을 제외한 커널코드는 부팅 시 메모리에 한번 올라가게되면 해제 되지 않고, 가용가능한 메모리로 잡히지도 않습니다.
커널모듈도 insmod 에 전체모듈에 대해서 pagefault의 메카니즘을 이용해서 로딩이 되는 것으로 알고 있으나, insmod 시에 전체가 로딩되며 rmmod 전에는 해제되지 않는 것으로 알고 있습니다.
음..
커널 디바이스 드라이버 작성 시, 페이지 폴트 처리를 해줘야 한다는 것은 처음듣는 얘기이네요.
.init 섹션에 포함되어 있는 코드영역을 제외한 커널코드는 부팅 시 메모리에 한번 올라가게되면 해제 되지 않고,
가용가능한 메모리로 잡히지도 않습니다.
커널모듈도 insmod 에 전체모듈에 대해서 pagefault의 메카니즘을 이용해서 로딩이 되는 것으로 알고 있으나,
insmod 시에 전체가 로딩되며 rmmod 전에는 해제되지 않는 것으로 알고 있습니다.