포스트

운영체제 2장 - 디버깅, 생성, 시스템 부팅

2.8 운영체제 디버깅


  • 디버깅 : 오류를 발견하고 수정하기
  • 장애(Failure) 분석
    • Log 파일 : 프로세스가 실패하면 오류 정보를 기록
    • Core dump 파일 : 오류 발생 프로세스의 메모리 내용을 저장
      • 초기 컴퓨터에서 메모리를 core라고 불렀다고 함
    • crash dump 파일 : 커널 장애시에 커널 메모리 내용을 저장
      • 커널 장애를 Crash 충돌이라고 부름
  • 성능 조정
    • 병목 지점을 제거하여 시스템 성능을 최적화
    • window task manager와 같은 성능 측정 및 표시 유틸리티 사용
  • DTrace
    • 사용자 프로세스와 커널에 동적으로 탐색점을 추가할 수 있는 유틸리티

2.9 운영체제 생성


  • 운영체제 생성(SYSGEN)
    • 배포 : 디스크. CD-ROM, DVD-ROM, ISO 형태, USB 등
    • 하드웨어 구성 정보를 파일을 통해 읽거나 직접 검사하여 얻음

2.10 시스템 부트


  • Bootstrapping(booting)
    • 커널을 적재하여 컴퓨터를 시작하는 절차
  • Bootstrap loader
    • 커널을 찾아서 메모리에 적재하고 수행하는 일을하는 ROM에 저장된 코드
    • 대개 시스템 진단 작업을 수행하고, 시스템 전체를 초기화 한 후 운영체제를 시작함
  • Firmware
    • 부트스트랩 코드의 변경이 가능하도록 ROM 대신 EPROM에 저장함
    • 하드웨어와 소프트웨어의 중간 특성을 가져서 펌웨어라고 부름
    • 실행 속도가 RAM에서 실행하는 것보다 느려, 빠른 수행을 위해 RAM에 복사하여 실행됨
  • 운영체제는 보통 2차 저장장치에 저장되지만, 일부 시스템은 운영체제 전체를 firmware에 저장함

    시스템 부트 과정

    1. Bootstrap loader : 부트디스크의 부트 블럭을 메모리에 적재 후 실행
    2. Simple boot code : 나머지 부트 스트랩 프로그램에 대한 디스크 주소와 길이만 알고있는 간단한 코드
    3. Complex boot code : 파일 시스템을 탐색하여 OS 커널을 찾고, 메모리에 적재하여 실행(GRUB)
    4. Operating system kernel : 운영체제가 커널을 실행하고 프로세스를 시작함
  • UEIF(Unified Extensible Firmware Interface)
    • BIOS를 대체할 목적으로 개발됨
    • 파일 시스템을 지원하여 boot selector에 의존 없이 OS 커널 부팅 가능
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.