이번 포스팅에서는 운영체제에 대해 알아보겠습니다.
운영체제(Operating System)
우선 우리가 아는 운영체제의 종류에 대해 먼저 살펴볼게요!
많이 알고있는 운영체제들이죠? 그렇다면 운영체제가 어떤 역할을 하고있는지도 알고있나요?
운영체제의 핵심적인 역할에 대해 알아볼게요.
- 컴퓨터 하드웨어를 관리한다.
OS 없이 한글 프로그램을 RAM에 올려 CPU에 직접 실행명령을 내린다. 상상이 가시나요?
이처럼 운영체제는 사용자가 한글프로그램을 실행하는 명령(더블클릭)을 내리면,
하드디스크에서 한글프로그램을 찾아 RAM에 올리고 CPU에서 실행하는 역할을 합니다.
즉, 하드웨어를 관리하고 제어하는 역할을 합니다.
- 컴퓨터의 하드웨어를 효율적으로 사용한다.
여러분의 컴퓨터에 windows 98를 설치한다면, 현재의 windows만큼 하드웨어의 성능을 잘 이끌어 낼 수 있을까요?
예를 들어 유튜브 동영상을 최고화질로 재생한다 했을 때 windows 98 VS windows 10 어떤 운영체제에서 더 잘 돌아갈까요?
운영체제는 하드웨어 자원을 더 효율적으로 사용하기 위해 발전하고 있습니다.
- 사용자에게 편의성을 제공한다
Command Line Interface를 사용하는 리눅스는 일반 사용자가 사용하기 힘들겠죠?
어려운 명령어들을 다 외우고 있어야하니까요!
반면에 windows나 mac OS 같은 경우는 Graphic User Interface를 사용하기 때문에
사용자들이 화면을 보면서 내가 원하는 아이콘들을 클릭해 사용할 수 있습니다.
이처럼 운영체제는 사용자에게 편의성을 제공합니다.
컴퓨터 부팅(Booting)
컴퓨터에 전원을 올리면 어떤 방식으로 우리가 컴퓨터를 사용하게 될 수 있을까요?
자, 순서는 저렇게 되는 것을 알고 자세히 알아보겠습니다.
Power-On Self Test
전원을 올리게 되면 프로그램을 실행해야하는데 RAM은 휘발성 메모리라 아무런 프로그램이 할당되있지 않습니다.
그럼으로 비휘발성 메모리인 ROM을 활용하여 POST를 실행하게 됩니다.
테스트를 성공적으로 마쳤다면 다음작업인 Boot loader를 실행합니다.
Boot loader
아직까지는 RAM에 아무것도 할당하지 않았습니다. 그럼으로 RAM에서 Boot loader란 명령을 실행합니다.
자, 이제 RAM에 OS가 할당되었습니다. 그럼으로 이제 ROM의 역할을 끝이났고, 모든 하드웨어의 제어권은 OS에 맡겨지게 됩니다. OS를 통해 응용프로그램들을 실행 시킬 수 있게 됐어요~
커널(kernel), 명령 해석기(shell, command interpreter)
운영체제는 하드웨어를 관리한다고 했죠? 그림으로 표현하면 아래와 같습니다.
운영체제가 하드웨어를 감싸고 있고 애플리케이션이 운영체제를 감싸고 있습니다.
다시말하자면 하드웨어 위에 운영체제가 실행되고, 운영체제 위에서 애플리케이션이 실행되는 것입니다.
그런데 못보던 단어들이 나왔죠? kernel과 shell입니다.
kernel은 눈에 보이지 않는 내부적인 로직을 처리합니다. kernel은 다음에 자세히 다루어 볼게요!
shell은 이미 우리가 알고있는 것입니다.
windows에서 아이콘을 클릭하는 행위를 하면 어떤 일이 일어날까요?
명령 해석기인 shell은 사용자의 클릭명령을 해석하여 해당 아이콘의 프로그램을 실행하는 역할을 합니다.
다른 그림으로 하드웨어, 운영체제, 애플리케이션에 대해 알아보겠습니다.
Application [워드, 한글, 게임...]
-=================-
OS [프로세스관리, 메모리관리, io관리, file관리...]
-=================-
H/W [CPU, Memory, HDD...]
하드웨어 위에 OS, OS 위에 Application이 있습니다. 이는 OS가 하드웨어의 자원을 가져다가
Application을 구동하는 역할을 하는 인터페이스임을 알 수 있습니다.
오늘은 운영체제란 무엇인가?에 대해 알아보았습니다. 다음 포스팅도 기대해주세요~