linux와 운영체제

2021. 9. 6. 19:59IT기초/linux와 운영체제

우리는 컴퓨터를 사용할때 가장 먼저 사용하는 프로그렘을 알고있다. 그 이름은 바로 운영체제 라는 것 이다. 한국인이 가장 익숙해 하는 운영체제는 다른것도 아닌 당연히 MS사의 Windows일 것이다. 하지만 외국, 특히 미국이나 개발자의 경우 Apple사의 메킨도시나 linux를 자주 사용하기도한다. 이런 운영체제는 왜 하나로 되어있지 않으며 다양하게 나뉘어져 있을까? 

 

먼저 운영체제의 정의와 목적은 무엇일까에 대해 알아보도록 하자.


컴퓨터는 S/W,H/W로 나누어 진다. 물리적으로 존재하는 기기인 H/W(하드웨어)와 이 기기를 통해 운영되는 프로그렘인 S/W(소프트웨어)가 있다. H/W는 보통 CPU(프로세스) RAM, I/O(모니터 출력, 키보드로 입력, 마우스로 명령 입력 등)등등이 있으며 S/W는 윈도우, 리눅스와 같은 운영체제, Loader, Translator와 같은  System S/W, 한컴, 크롬, 게임 등의 App S/W로 나뉜다. 사람이 PC를 사용할때 App S/W를 실행하게 되면 이것은 System S/W을 컨트롤하여 H/W를 바탕으로 운영되게 된다.

여기서 운영체제는 무엇을 의미하는것일까

운영체제는 시스템의 하드웨어를 관리, App S/W를 실행하기 위한 하드웨어의 추상화 플렛폼과 공동 시스템 서비스를 제공하는 시스템 소프트웨어를 의미한다. 기술의 발전함에따라 물리적인 H/W가 아닌 VMware와 같은 가상화 소프트웨어를 통해서도 구현되고 실행될 수 도 있다. 또한 운영체제는 PC자원(RAM, H/W용량 등)을 관리해 사용자에게 최적화된 환경을 제공하기 위해 노력하는 프로그렘이다 라고 할 수 있다.

* 운영 스케쥴링
컴퓨터를 사용할때 메모장, 한글, AVI파일 등을 다양한 App을 동시에 실행할 때가 있다. 이때 운영체제는 스케쥴링 이라는 것을 실행한다. 컴퓨터는 특정 행동을 '하나씩 하나씩' 처리하는데 인간이 보기에는 동시에 자연스럽게 실행되는것처럼 보이게 해 주는 것 이다.

그렇다면  이런 운영체제를 만들고 사용하는것일까?
기본적으로 제한된 PC의 자원을 최대효율, 편의성을 제공하고자 하는것이 가장 큰 목적이다.
또한 H/W시스템의 성능 극대화를 위해 사용하는데 처리능력 향상, 반환 시간 단축, 신뢰도 향상, 사용자의 편의성 향상 등의 것과 관련이 있다. 큰 타이틀로 정리를 하자면 H/W의 자원관리와 스케쥴링, 인터페이스 제공, 데이터 공유, 오류처리를 등의 다양한 역할을 가진다.

 

운영체제의 주요 구성 요소로는 4가지가 있다.

CPU를 프로세스에 어떻게 할당한 것인지 정하여 프로세스의 상태가 어떤지 확인하는 등의 역할을 하는 프로세스 관리자, 적당한 요구를 할 경우(저장, 삭제)를 실행 등의 역할을 하는 주기억장치 관리자, 모든 장치, 체널, 제어장치를 모니터링하여 효율적으로 할당하는 등의 역할을 하는 장치관리자, 시스템의 모든 프로그렘을 모니터링하며 파일 접근권한을 관리하는 파일 관리자 가 있다.

 

운영체제의 종류는 그럼 어떤게 있을까??


먼저 운영체제의 종류는 처리방식에 따라 나뉘어지는데 일괄처리 운영체제, 대화형 운영체제, 실시간 운영체제, 하이브리드 운영체제로 총 4가지가 있다.

일괄처리 운영체제

작업을 하나로 모아서 처리하며 입력개념으로는 OMR/OCR을 사용한다. 초창기 PC가 생겼을때 나온 개념인 만큼 단순 처리된 작업수나 반환수를 기준으로 효율성을 파악하곤 한다. 또한 사용자와 특별한 상호작용이 없이 그냥 기기적으로 순서대로 행동 한다.

대화형 운영체제
시분할 시스템이라고 하는데 일괄처리보다 빠른 반환시간을 가지고 있다. 또한 사용자에 따라 즉각적인 피드백을 제공하는데 이런 응답시간은 사용자 수에 따라 수 분이나 수 초가 걸린다.

실시간 운영체제
말 그대로 작업을 바로바로 처리하는, 모든 시스템중에서 가장 빠른 응답시간을 가지고 있으며 데이터 처리가 매우 빠르며 반환시간이 중요한 환경에 적합하다.

하이브리드 운영체제
일괄처리 + 대화형처리 가 합쳐진 운영체제이다. 지금 사용하는 대부분의 운영체제가 여기에 속한다.

 

이렇게 다양한 체제와 역할들 중에서 유닉스에서 파생된 linux에 대한 사용법과 활용방안에 대해 알아보도록 하겠다.

리눅스의 특징은 대화형 시스템으로써 사용자와 리눅스가 서로 명령어를 통해 대화하며 사용할 수 있다.
다중 사용자, 작업용 시스템으로써 수많은 사람이 같은 PC에 동시에 접속해 다양한 작업을 동시에 사용할 수 있다. 접속방법으로는 주로 네트워크를 사용한다.

또한 높은 이식성, 확장성을 가지고 있는데 그 이유는 리눅스의 기반이 C언어이기 때문이다.
파일 관리를 위한 계층적인 트리 구조를 사용하고있다. 리눅스도 윈도우 처럼 C:\Windows\~~~ 의 구조를 가지고 있다는 의미 이다. 또한 프로그래밍 개발 및 디버깅 도구 등도 당연히 제공하고있다.

리눅스는 Kernel(커널), shell(쉘), 유틸리티와 파일 시스템으로 구성되어 있다.
커널같은 경우 운영체제의 핵심, 사람의 뇌와 같은 위치를 가지고있다. 시스템의 하드웨어를 관리하는 기능을 한다. 쉘은 사용자와 커널사이를 관리하는 관리자 역할을 한다. 즉 쉘을 통해서 사람은 pc에 명령을 내리고 커널은 쉘을 통해 결과값을 보여주는 것 이다.