학교 공부/운영체제(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, 임베디드 시스템, 가전제품 등
- 비휘발 메모리에 저장한다.