말 그대로 Operating System, OS이다. 컴퓨터 공학의 정수, "추상화" 그 중 가장 low한 hardware에 대한 추상화를 제공해주는 일종의 프로그램이다.
우리는 OS를 통하여 하드웨어를 컨트롤한다. 그 외에도 OS는 메모리 관리, I/O, Process 스케쥴링 등등... 다양한 일을 말단에서 우리가 모르게 처리해준다.
OS의 중요한 2가지 역활
OS는 커널모드와 유저모드로 나뉘게 된다. 우리가 일반적으로 실행하는 프로그램은 유저모드에서 실행되게 된다. 하지만, 만일 특정한 상황(하드웨어에 대한 접근 등등)에 처하게되면 커널 모드로 전환되며 인터럽트에 걸리게 된다. 이에 대한건, 추후에 더 자세하게 서술하겠다.
천공카드를 쓰던 시절부터, 현대의 전자식 컴퓨터까지 너무나도 많은 역사가 있지만 중요하다 생각되는 부분만 짧게 집고 넘어가겠다.
사실 컴퓨터 공학도로서 수업에서 레지스터, 어셈블리어 등등을 배우고 있다보면 우리가 전자과인지 헷갈리곤 하였다. 도대체 왜 배우나?? 이런 의문만 가득했는데, 운영체제를 배우다보니 알것도 같다. 정리를 해보자면
이건 사실 배울때 내 골머리를 꽤나 썩혔던 주제이긴하다. 다음 장에서 조금더 자세히 다룰예정이지만, 간단히 요약을 하자면
나의 지난 3년(사실 2학년때부터 시작한 컴공생활이니까 2년이긴하다 엄밀하게)을 회고하는 velog의 첫 스타트이다. 가장 어려웠으며, 난해하던 분야인 OS. 그래도 어디가서 컴퓨터 공학을 전공했다고 말할려면 적어도 OS,알고리즘,자료구조 이 3가지의 분야에 대해서는 빠삭해야한다고 생각하기에 가장 먼저 작성해본다.