아니면 코드가 커널의 필수적인 부분이 아니기 때문에 오류를 극복하는 것이 가능합니까?
답변1
극복할 수 있다여기:
또한 모듈 실험, 개발 및 테스트를 어디서 수행할지 고려해야 합니다. 예제 모듈을 안전하고 정확하게 만들기 위해 최선을 다했지만 항상 오류가 발생할 가능성이 있습니다. 커널 코드의 버그로 인해 사용자 프로세스가 종료되고 때로는 전체 시스템이 종료될 수 있습니다. 일반적으로 디스크 손상과 같은 더 심각한 문제는 발생하지 않습니다. 그럼에도 불구하고, 손실되어서는 안 되는 데이터가 포함되어 있지 않고 필수 서비스를 수행하지 않는 시스템에서 커널 실험을 수행하는 것이 좋습니다. 커널 해커는 종종 새로운 코드를 테스트하기 위해 "희생" 시스템을 유지합니다.
답변2
커널 모듈에서 BUG()
또는 를 호출하여 BUG_ON(condition)
시스템을 충돌시킬 수 있습니다!
답변3
커널 모듈의 결함으로 인해 모듈이 프로세스 컨텍스트에서 실행 중인 경우 프로세스 종료(예: 시스템 호출로 인해)가 발생하거나, 모듈이 인터럽트 컨텍스트에서 실행 중인 경우 시스템 종료가 발생할 수 있습니다. 모듈을 등록/등록 취소하는 동안 오류가 발생하면 insmod/modprobe 프로세스가 중단될 수 있으며 물론 모듈을 제거할 수 없게 됩니다. 무한 루프로 인해 코어/CPU가 최고 속도로 실행되고 다른 프로세스에서는 사용할 수 없게 될 수 있습니다.