observe_db

[OS] 2. 하드웨어와 소프트웨어(3) 본문

학교 공부/운영체제(OS)(3-1)

[OS] 2. 하드웨어와 소프트웨어(3)

쩡윤 2023. 3. 21. 00:14

소프트웨어

  • 디바이스 드라이버(Device driver)
    • 특정 하드웨어/장치를 제어하기 위한 커널의 일부로 동작하는 프로그램
    • 입출력 장치별로 각각의 드라이버가 커널에 통합되어 실행
    • 메모리에 상주
    • 장치를 파일처럼 취급 가능
    • (사진 추가 가능)
  • API(Application Programming Interface)
    • 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
    • 라이브러리 형태로 제공
    • 시스템콜 함수는 운영체제 기능을 사용하게 하는 API(API 함수 내부에서 시스템콜 함수 가능)
  • 컴파일러
    • 고급 언어를 기계어로 변환
    • 컴파일 과정
      • 렉서(Lexer): 코드 내의 문자를 tokenize
      • 파서(parse): 문법적으로 맞는 토큰의 집단화
      • 중간코드 생성기(intermediate code generator): 문장을 단순한 명령어로 변환
      • 최적화기(optimizer): 코드 실행 및 메모리 활용에 대한 개선
      • 코드 생성기(code generator): 기계어 코드로 변환
  • 링커(Linker)
    • 별도로 컴파일 된 여러 코드를 결합하여 하나의 실행코드 생성
    • 상대 주소(relative address)를 사용하여 결합
    • 코드 간의 외부참조(external reference)를 확인
    • 링킹 시기
      • 컴파일시(compile time)/적재시(loading time)/실행시(runtime)
  • 로더(loader)
    • 상대주소를 물리 주소(절대주소)로 변환
    • 명령어와 데이터를 메모리에 적재
  • 펌웨어(Firmware)
    • 특정 하드웨어에 대한 하위 수준 제어를 하는 소프트웨어.
    • BIOS, 임베디드 시스템, 가전제품 등
    • 비휘발 메모리에 저장한다.
Comments