운영 체제는 일반적으로 어떻게 디버깅됩니까? 간단한 콘솔 프로그램과 같은 디버거를 사용하여 단계를 밟을 수는 없으며 빌드 시간이 너무 길어 반복적으로 작은 변경을 수행하고 전체를 다시 컴파일 할 수 있습니다.운영 체제는 어떻게 디버깅됩니까?
답변
이들은 멀티 기가 바이트 프로그램으로 디버깅되지 않습니다! :)
개별 사용자 모드 구성 요소를 의미하는 경우 일반 프로그램 및 라이브러리와 마찬가지로 디버그 할 수 있습니다 (은 일반 프로그램/라이브러리 인이기 때문에!).
커널 모드 구성 요소의 경우 각 OS마다 고유 한 메커니즘이 있습니다. here은 Windows에서 커널 디버깅을 수행하는 방법에 대한 정보입니다. 직렬 포트 등을 통해 디버깅중인 컴퓨터에 연결된 다른 컴퓨터의 도움을 받아 수행 할 수 있습니다. 나는 프로세스 자체에 익숙하지 않지만, 그것이 어떻게 작동하는지에 대한 요지입니다. (시스템이 디버거가 가능한 한 빨리 연결될 수 있도록 일부 부트 로더 옵션을 설정해야합니다.)
운영 체제의 어느 부분에 대해서 이야기하고 있는지에 따라 다릅니다. MSFT에서 일하면서 IE 팀에서 일했습니다. 우리는 IE와 셸 (Windows 탐색기)을 Visual Studio에서 디버깅하고 하루 종일 라인을 통해 밟았습니다. 때때로 NTSD와 같은 command line tool을 사용하여 디버그하는 것이 더 쉽습니다.
그러나 OS 커널이나 디바이스 드라이버와 같은 커널 영역의 디버깅을 원할 경우 커널 디버거를 사용해야합니다. kd라는 명령 행 도구 인 Windows의 경우 일반적으로 한 시스템에서 디버거를 실행하고 대상을 원격으로 디버그합니다.
콘솔에서 깜박이는 표시 등에서 ICE와 같은 하드웨어 장치 사용, 상당히 표준적인 디버거를 사용하는 최신 기술에 이르기까지 전체 기술 집합이 있습니다. OS 개발자와 응용 프로그램 개발자간에 공통적으로 사용되는 기술 중 하나는 코어 덤프 분석입니다. solaris의 mdb와 같은 것을보고 Solaris 커널 개발자가 디버깅을 수행하는 방법에 대한 아이디어를 얻으십시오. 또한 추적 기술이 사용됩니다. dtrace와 같은보다 현대적인 기술에 이르기까지 어느 곳에서나 쉽게 로깅 패키지를 생성 할 수 있습니다.
사용되는 기술은 소프트웨어 계층에 따라 달라집니다. 초기 부팅은 손가락을 넣기가 꽤 어려운 곳입니다. 그러나 그 후에 현대 운영 시스템의 환경은 점점 더 당신이 사용하고있는 응용 프로그램 설정과 유사 해 보입니다. 결국, 모든 코드입니다 :)
- 1. 프로그램은 어떻게 실행됩니까? 운영 체제는 어디에서 작동합니까?
- 2. 운영 체제는 파일 크기를 어떻게 계산합니까?
- 3. barest bare-boned 운영 체제는 무엇입니까?
- 4. J2ME을 지원하는 모바일 운영 체제는 무엇입니까?
- 5. 서버에 가장 적합한 운영 체제는 무엇입니까?
- 6. PHP 개발 또는 일반 개발에 가장 적합한 운영 체제는 무엇입니까?
- 7. .NET 2 버전이 내장 된 운영 체제는 무엇입니까?
- 8. Java 운영 체제의 빠른 부팅 및 시작에 가장 적합한 주요 운영 체제는 무엇입니까?
- 9. 운영 체제는 내 앱에서 사용중인 메모리 양을 어떻게 알 수 있습니까? (그리고 왜 쓰레기 수거를하지 않습니까?)
- 10. 모바일 장치 운영 체제
- 11. 학습을위한 최상의 교육용 운영 체제?
- 12. 임베디드 운영 체제 비교?
- 13. 운영 속도
- 14. 운영 체제 루프 변수 스택 질문
- 15. 운영 체제에서 멀티 태스킹은 어떻게 수행됩니까?
- 16. 운영 체제에서 스택 오버플로를 어떻게 감지합니까?
- 17. 임베디드 운영 체제와 데스크톱 운영 체제의 차이점
- 18. 어떤 운영 체제가 메모리 누수를 없애 냅니까?
- 19. 운영 메뉴
- 20. PHP 운영 순서
- 21. 운영 체제 인터럽트
- 22. 영어 사이트의 운영 체제
- 23. 운영 체제가 추상화되어 있습니까?
- 24. 자바 스크립트 달력 운영
- 25. 운영 체제에 대한 초 당 지침
- 26. 허드슨 일반 운영
- 27. 운영 시스템 상태도
- 28. Clojure에서 운영 체제 검색
- 29. 운영 체제 VBS 스크립트
- 30. JQuery와 : 시간 운영