운영체제1 (운영체제 기본과 시스템콜)

한지훈·2025년 1월 15일
0

Computer Science

목록 보기
1/2
post-thumbnail

운영체제 (OS, Opreating System)은 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스입니다.

즉, 운영체제(OS)에서의 인터페이스는 컴퓨터 사용자와 컴퓨터 하드웨어 사이의 매개체 역할을 합니다. 즉, 사용자가 복잡한 컴퓨터 명령어를 직접 입력하지 않고도 마우스 클릭, 키보드 입력 등 직관적인 방식으로 컴퓨터를 조작할 수 있도록 연결해 주는 중간다리라고 할 수 있습니다.

운영체제의 구조

GUI, 시스템콜, 커널, 드라이버 부분이 바로 운영체제를 지칭합니다.
참고로 GUI가 없고, CUI만 있는 리눅스 서버도 있습니다.

  • GUI
    사용자가 장치와 상호작용할 수 있도록 하는 사용자 인터페이스의 한 형태. 단순 명령어가 아닌 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호작용할 수 있도록 해준다.
  • 드라이버 (Driver)
    컴퓨터와 하드웨어를 연결하는 다리: 컴퓨터와 키보드, 마우스, 프린터 같은 하드웨어 기기들은 서로 다른 언어를 사용하는데. 드라이버는 이 두 가지 언어를 번역해 주는 역할을 하여 컴퓨터가 하드웨어를 제대로 인식하고 사용할 수 있도록 해주는 소프트웨어입니다.
    예시: 새 프린터를 구매하면 드라이버를 설치해야 프린터를 사용할 수 있는 것처럼, 대부분의 하드웨어는 드라이버가 필요합니다.
  • CUI (Character User Interface)
    명령어를 입력해서 사용하는 방식: GUI와는 반대로, 텍스트로 된 명령어를 직접 입력하여 컴퓨터에게 명령을 내리는 방식입니다.
    예시: DOS 창이나 리눅스 터미널에서 명령어를 입력하여 파일을 복사하거나 프로그램을 실행하는 것이 CUI의 예입니다.
  • 커널(Kernel)
    커널은 운영체제 중 항상 메모리에 올라가 있는 운영체제의 핵심 부분으로 컴퓨터의 모든 자원들(소프트웨어 + 하드웨어)을 관리하는 소프트웨어이다.

시스템콜(System Call)

시스템콜이란 운영 체제의 커널(Kernel)이 제공하는 서비스에 대해 유저의 프로그램이 운영체제의 서비스를 받기 위한 인터페이스입니다.

응용 프로그램이 무엇인가를 하고 싶을 때, 직접 하드웨어를 건드리지 못한다.그렇기 때문에 시스템 콜을 통해 커널에 접근해 작업을 한다.

ex) 유저 프로그램이 I/O 요청을 통해 파일을 읽기 위해 fs.readFile()이라는 함수가 실행되었을 때?

  1. 파일을 읽기 위해 운영체제에 open()이라는 시스템콜(System Call)을 호출한다.
  2. 운영체제는 시스템콜 요청을 받으면, 커널 모드로 전환된다.
  3. 커널은 전달받은 파일 경로를 이용해, 파일 시스템에 접근하여 해당 파일을 찾는다.
  4. 커널은 읽어온 파일을 유저 프로그램이 접근할 수 있는 버퍼로 복사한다.
  5. 유저 프로그램은 커널로부터 받은 파일을 읽어올 수 있다.

modebit

시스템콜이 작동될 때, modebit을 통해 유저 모드와 커널 모드를 구분한다. modebit은 1 또는 0의 값을 가지는 Flag 변수이다.
만약 유저모드를 기반으로 카메라가 켜진다면, 사용자가 의도하지 않았음에도 공격자가 갑자기 카메라를 킬 수 있는 등의 위협때문에 카메라, 키보드 등 디바이스는 운영체제를 통해서만 제어할 수 있다.

업로드중..

  1. 유저 프로그램이 카메라를 이용하려 할 때 => 시스템콜 호출
  2. modebit을 1에서 0으로 바꾸어, 커널모드로 변경 후 카메라 자원을 이용한 로직 수행
  3. modebit을 0에서 1로 바꾸어, 유저모드로 변경하고 이후 로직 실행
  • 유저 모드
    유저가 접근할 수 있는 영역을 제한적으로 두어, 컴퓨터 자원에 함부로 침범하지 못하는 모드
  • 커널 모드
    모든 컴퓨터 자원에 접근할 수 있는 모드
profile
노력하는 개발자

0개의 댓글