커널 산책 - 운영체제가 뭐지?

커널을 이야기 하면서 빠지지 않고 등장하는 말이 운영체제란 말입니다. 

도대체 운영체제가 뭘까요?

그래서 위키에서 찾아 봤습니다. 

매우 많은 내용이 있지만 첫번째 요약문에는 다음과 같이 나옵니다. 

(*) 운영체제
------------------------------------------------------------------------------------------------

운영 체제(運營體制, 문화어: 조작체계) 또는 오퍼레이팅 시스템(OS, operating system)은 

시스템 하드웨어를 관리할뿐 아니라 응용 소프트웨어를 실행하기 위하여 

하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 

최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 한다.

------------------------------------------------------------------------------------------------

흠...

제가 원하는 답이 아니군요.. 철저하게 공돌이 다운 말입니다. 

문제는 저도 공돌이라서 저 이상의 설명은 힘들 듯 합니다.

그런데 

초등학교 다니는 제 아들이 운영체제가 뭐야? 라고 물었을 때 

저 위에 대한 글 읽어 주면 

아들은 바로 알아 들을 수 있을까요?

아.마.도... 못 알아 들을 겁니다. 

그럼 어떻게 해야 제 아들이 알아 들을수 있을까요?

너 컴퓨터 켰을 때 나오는 화면 있지?

그게 운영체제야..

니가 게임하기 위해서 컴퓨터 키고 나서 처음 나오는 화면을 운영체제라고 부른단다.

이렇게 설명하는 것이 맞을까요? 틀릴까요?

전 맞다고 봅니다.

운영체제라는 말은 컴퓨터에서 내가 하고 싶은 프로그램을 동작 시킬수 있는 

모든 것을 지칭하는 말이거든요.

컴퓨터는 게임을 하던 워드를 치던 하고자 하는 기능이 동작해야 합니다.

원하는 기능을 하려면 당연히 프로그램이 실행 되어야 합니다. 

그것이 게임 프로그램이던 인터넷 브라우저이던 말입니다. 

이 프로그램을 동작하기 위해서는 여러가지가 필요합니다. 

화면도 나와야 하고 키보드입력도 되어야 하고 파일을 읽을 수도 있어야 하고 

마우스를 움직일수도 있어야 합니다. 물론 인터넷 통신도 되어야 하지요

이런 모든 것중 하나라도 없으면 프로그램 수행도 안되고 원하는 작업을 할 수 없습니다. 

이런 모든 것을 지원하기 위해서는 여러가지가 필요합니다. 

그것이 프로그램 형태로 있어야 하는 것도 있고 - 윈도우 탐색기, 쉘 프로그램

라이브러리 형태로 있어야 하는 것도 있습니다. - MFC 라이브러리, glibc  라이브러리

이런것들을 수행하는 화면도 제공해야 합니다.  - 윈도우 화면, 리눅스 데스크탑 화면

현대의 컴퓨터는 너무 많은 기능을 제공하다보니 무척 지원해야 하는 것이 무지막지 하게 많습니다. 

어찌되었던 이런 것들을 모두 아울러서 운영체제라고 합니다. 

안드로이드? 그것도 운영체제라고 하면 맞습니다. 

아주 작은 운영체제도 있지요.. 펌웨어 라이브러리...

하여간 

제 생각에는

컴퓨터라고 지칭할 수 있는 기계에 

원하는 일을 하는 프로그램을 제외한 모든 것이 운영체제입니다.

그 운영체제를 구성하는 것에  CPU도 있고 메모리도 있습니다. 하드 디스크도 있고요

다양한 프로그램 들도 있는 거지요

그중에 커널이라고 하는 소프트웨어도 있습니다. 

전 커널을 소프트웨어라고 부르기 보다는 라이브러리라고 부릅니다. 

그 이유는 나중에 설명하기로 하고 ..

일단 운영체제라는 말은 완전히 짬봉된 말이라는 거죠..

특별히 이것만이 운영체제라고 하기에는 무리가 있는 거죠..

그래서 전 아들에게 편하게 설명하려고 합니다. 

컴퓨터 키고 난 후 마우스 클릭 할수 있지?

그 화면이 운영체제야 

써 놓고 보니 더 헷깔리는 군요..

뭐 제 생각이니까 뭐라고 하지 마십시오 

아직까지는 그냥 공원 입구에서 헤메니까요 ㅋㅋ

참고로 생각나서 한번 써 보는 토막글 

아이슈타인은 상대성 이론이 개발 회사에 적용될 수 있음을 알까?

개발자  : 사장님 이거 언제까지 끝내면 되겠습니까?
사장    : 아! 그거? 빠를수록 좋지.
개발자  : 예 알겠습니다. 
사장    : 그래? 그럼 언제쯤 끝날 것 같아?
개발자  : 예? 최대한 노력하면 바로 끝날 것 같습니다. 
사장    : 오? 그래 고생 좀 해 주게..
    
다음날 
    
사장 : 다 됐나? 
개발자  : 예?
사장 : 바로 끝난다며?
개발자  : 예? 전 한달 정도를 말씀 드린건데요?
사장 : 엉? 바로가 어떻게 한달씩이나 되나?
개발자  : 아니 어떻게 그일이 하루만에 끝납니까?
개발자의 시간과 사장의 시간은 다르게 간다. 

제가 사장입니다. ㅠㅠ