본문 바로가기
IT

운영체제 #2

by 내일은교양왕 2025. 8. 15.

시스템 콜(System Call)

  • 정의: 응용 프로그램이 OS가 제공하는 서비스를 이용하기 위한 프로그래밍 인터페이스
  • 사용 방법: API를 통해 접근 (예: C 표준 라이브러리는 Unix/Linux 시스템 콜 인터페이스 제공)
  • 6대 기능 범주
    1. 프로세스 제어(Process Control)
    2. 파일 관리(File Management)
    3. 장치 관리(Device Management)
    4. 정보 유지 관리(Information Maintenance)
    5. 통신(Communication)
    6. 보호(Protection)

 

링커

컴파일된 여러 개의 오브젝트 파일과 라이버리를 하나로 묶어 실행 파일을 만든다.

  • 심볼 결합 (Symbol Resolution)
    • 여러 소스 파일에서 정의 및 참조된 함수와 변수를 서로 연결
    • 예: main.c에서 print() 함수를 호출하면, 링커가 print()가 정의된 오브젝트 파일이나 라이브러릴 위치를 찾아 연결
  • 재배치 (Relocation)
    • 함수나 변수가 실제 메모리 주소에 맞게 재배치되도록 코드 수정
    • 컴파일 시에는 심볼의 실제 주소를 알 수 없으므로, 링커가 실행 파일 생성 시 확정
  • 라이브러리 링크
    • 정적 라이브러리 (.a, .lib) > 실행 파일에 코드가 포함됨
    • 동적 라이브러리 (.so, .dll) > 실행 중 로딩 됨

로더(Loader)

실행 파일을 메모리에 적재 후 CPU에서 실행 가능 상태로 준비

 

주요 단계

  1. 실행 파일 포맷 분석: ELF(Linux), PE(Windows) 등 실행 파일 헤더 읽어서 코드, 데이터, 스택, 힙 배치 위치 결정
  2. 메모리 적재: 코드 섹션(.text), 데이터 섹션(.data, .bss) 등을 해당 메모리 영역에 복사
  3. 동적 라이브러리 로드: 실행 파일이 사용하는 공유 라이브러리 (.so, .dll)를 로딩하고 심볼 연결
  4. 프로그램 진입점 설정: main()이 호출되기 전 초기화 작업 후 CPU 제어를 넘김

부트 로더(Boot Loader)

OS를 메모리에 적재하고 초기화, 시스템 실행 시작

 

동작과정

  1. 펌웨어 단계: 하드웨어 초기화, 부팅 장치 탐색
  2. 부트 로더 로드: 부팅 장치의 Master Boot Record 또는 EFI 파티션에서 부트 로더를 메모리에 로딩
  3. 운영체제 커널 로드: 부트 로더가 OS 커널 이미지를 메모리에 적재, 필요 시 초기 RAM 디스크 로딩
  4. 커널 실행 시작: 부트 로더가 CPU 제어를 커널에 넘김 > OS 초기화 > 로그인 화면 또는 GUI 표시

 

'IT' 카테고리의 다른 글

운영체제 #4  (3) 2025.08.17
운영체제 #3  (2) 2025.08.16
운영체제 #1  (3) 2025.08.14
admob 정책 위반 예방 5가지  (0) 2025.04.28
Geo-blocking Regulation (EU) 2018/302  (0) 2025.04.23