운영체제 | 커널과 쉘

Faithful Dev·2025년 1월 25일

컴퓨터 공학

목록 보기
17/81

쉘(Shell)

  • 정의:
    • 사용자운영체제 사이에서 명령어를 입력받아 운영체제의 기능을 수행하는 인터페이스.
    • 쉘은 사용자 명령을 해석하고, 시스템 호출(System Call)을 통해 운영체제의 서비스를 요청.
  • 종류:
    • CLI (Command Line Interface): 명령어 기반 텍스트 인터페이스. (예: Bash, Zsh)
    • GUI (Graphical User Interface): 그래픽 기반 인터페이스. (예: GNOME, Windows Explorer)
  • 역할:
    • 사용자로부터 명령어를 입력받고, 이를 해석하여 적절한 작업을 수행.
    • 명령어에 따라 응용프로그램을 실행하거나 파일/프로세스를 관리.

시스템 콜(System Call)

  • 정의:
    • 응용프로그램이 운영체제의 커널 기능(자원 관리, 파일 시스템, 프로세스 관리 등)에 접근하기 위한 인터페이스.
    • 운영체제의 핵심인 커널과 사용자 공간(User Space) 사이를 연결하는 메커니즘.
  • 역할:
    • 응용프로그램이 직접 하드웨어에 접근하지 못하도록 하여 보안을 강화.
    • 시스템 자원(CPU, 메모리, I/O 등)에 대한 요청을 처리.
  • 예시:
    • 파일 읽기/쓰기: read(), write()
    • 프로세스 생성: fork(), exec()
    • 네트워크 작업: socket(), bind()

API(Application Programming Interface)

  • 정의:
    • 응용프로그램과 운영체제(혹은 다른 소프트웨어) 사이에서 동작하는 프로그래밍 인터페이스.
    • 시스템 호출을 추상화하여 응용프로그램 개발자가 보다 쉽게 운영체제의 기능을 사용할 수 있도록 지원.
  • 역할:
    • 시스템 호출을 직접 사용하는 복잡성을 감춤.
    • 표준화된 함수들을 통해 응용프로그램 개발이 간단해짐.
    • 운영체제와 무관하게 응용프로그램이 동작하도록 함. (예: POSIX API는 리눅스, macOS, 유닉스에서 사용 가능)
  • 예시:
    • 파일 I/O 작업: fopen(), fprintf()
    • 네트워크: send(), recv()
    • 스레드 관리: pthread_create()

정리

  • : 사용자가 운영체제와 상호작용할 수 있는 인터페이스.
  • 시스템 콜: 응용프로그램이 커널의 기능을 요청하기 위한 인터페이스.
  • API: 응용프로그램 개발자가 시스템 콜을 쉽게 사용할 수 있도록 제공하는 추상화 계층.
profile
Turning Vision into Reality.

0개의 댓글