운영체제
운영 체제(運營 體制, 문화어: 조작 체계) 또는 오퍼레이팅 시스템(영어: operating system, OS)은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다.
-위키피디아-
조금 더 쉽게 말하자면 운영체제는 "컴퓨터 자원 관리자" 이다.
여기서 말하는 컴퓨터 자원이란 CPU, 키보드, 마우스, 램, 하드디스크 등등 컴퓨터 부품들을 말한다.
사람이 컴퓨터 자원을 직접 관리하기는 힘들고 위험하기 때문에 사람은 명령만 내리고(시스템 콜) 직접적으로 H/W를 관리하는 프로그램(커널)을 만든것이 운영체제이다.
그런데 H/W마다 특징,환경들이 다르다보니 매번 H/W에 맞게 변경시켜 줘야한다. 이는 매우 비효율적이기때문에 H/W에 상관없이 사용하기 위해서 공통적인 틀을 소프트웨어적으로 만드는 것은 하드웨어 추상화라고 한다.
대표적인 예로, 리눅스의 task_struct 구조체는 cpu를, mm_struct 구조체는 메모리를 추상화시킨것이다.
운영체제 구조
운영체제의 핵심 기능을 모아놓은것을 커널이라고 한다.
이 커널을 사용자가 사용하기 쉽게 인터페이스를 가진 형태로 만들게 되는데 대표적인 예로 유닉스/리눅스의 쉘이 있다.
시스템 콜과 드라이버
시스템 콜 : 시스템 콜은 커널이 자신을 보호하기 위해 만든 인터페이스이다. 커널은 사용자나 응용프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근한는것을 차단한다. 따라서 자원을 이용하려면 시스템 호출이라는 인터페이스를 이용해서 접근하여야 한다.
드라이버 : 드라이버는 커널과 하드웨어 사이의 인터페이스이다. 위에서 언급했듯이 커널은 하드웨어를 추상화해서 만들었기때문에 H/W에 독립적으로 구동되지만, 반대로 각 H/W에 기본적인 기능만 동작이 가능하다. 그렇기 때문에 각 하드웨어의 특성을 반영한 소프트웨어가 필요하다. 이를 드라이버라 부른다.
※공부해가면서 정리하는 내용들이라 부족한 부분이 많습니다. 틀린 내용이나 부족한 부분에 대한 지적은 언제든 환영합니다.
댓글