Computer Science/운영체제

운영체제의 개념

winter0pear 2023. 9. 28. 12:30

1. 컴퓨터 구조

컴퓨터 구조

컴퓨터의 구조는 그림에서 보는 바와 같이 구성되어 있다. 하드웨어에 대해서는 보통 어떤 것인지 잘 알고 있기 때문에 이번 글에서는 건너띄고 지금 이 글을 작성하는 도중에도 잘 사용하고 있지만.. 누군가가 물어봤을 때 '그 왜 윈도우에서 프로그램 그거!!'라고 밖에 대답이 나오지 않는 소프트웨어에 대해 자세히 알아보고자 한다

 

먼저 소프트웨어는 위와 같이 사용자 프로그램과 운영체제로 나뉘어져 있으며 사용자 프로그램은 어제도 플레이 했었던 롤, 구글 크롬 등 컴퓨터를 이용하는 말 그대로 사용자가 직접 사용할 수 있는 프로그램을 말하고 운영체제는 윈도우, 리눅스, Mac과 같이 롤과 구글 크롬이 잘 작동할 수 있는 그런 환경을 만들어주는 프로그램이며 앞선 사용자 프로그램과는 달리 사용자가 직접 접근해서 사용할 수 없는 프로그램들을 말한다

 

맨 오른쪽 그림을 보면 운영체제는 또 커널과 OS 라이브러리, OS외 라이브러리로 나뉘어지게 되는데 아래에서 좀 더 자세히 이야기해 보도록 하자

 

2. 커널(Kernel)

여러개의 커널이 설치 되어 있음

나는 현재 우분투를 운영체제로 사용하고 있는데 현재 시스템에 설치 되어 있는 커널이 여러개라 우분투 시스템이 시작하기 전에 커널을 선택하는 창이 나오고 만약 기존에 사용하고 있던 커널을 선택하지 않고 다른 커널을 선택해서 우분투를 부팅하게 되면 기존에 잘 작동하던 스피커와 블루투스 등 여러가지 하드웨어들이 정상적으로 작동하지 않게 된다. 왜 이런일이 벌어지게 되는 것일까?

 

커널은 운영체제에서 모든 프로그램을 제어하는 프로그램으로 작동하는데 하는 일을 좀 더 자세하게 알아보면

  • 프로그램 실행 : 프로그램을 메모리에 올리고 실행
  • I/O operations : 유저가 직접 I/O 디바이스를 컨트롤하지 않고 사용할수 있게함
  • File-system 조작 : 디렉토리 이름을 짓거나 특정 파일을 검색하는 등
  • Communication : 프로세스들끼리 정보교환
  • Resource Allocation :  다수의 프로그램이 동시에 실행될 때 각 프로세스에 자원(CPU, Memory, Storage 등)을 할당

크게 5 가지를 실행하게 하게 된다

 

따라서 커널을 변경했을 때 스피커와 블루투스와 같은 하드웨어들이 제대로 작동하지 않

았던 이유는 각 하드웨어들이 드라이버를 통해 제어하게 되는데 그 드라이버가 변경된 커널에 의해 제대로 제어 되지 않았기 때문에 발생한 일 이라고 할 수 있다.

 

3. 쉘 (Shell)

그럼 사용자는 영원히 운영체제를 직접 컨트롤 할 수 없는 것은 아니고 ...

 

위의 그림과 같이 쉘 이라는 것을 통해 운영체제와 상호작용이 가능한데

현재 보이는 창에 명령어를 적게 되면 그 명령어를 따라 운영체제를 컨트롤 할 수 있게 된다

 

쉘의 종류에는 여러가지가 존재한다 대표적으로 bash, zsh가 존재하며 zsh를 사용한다면 oh my zsh를 통해 커스텀해서 쉘을 사용할 수 있게 된다