강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터 1급 강좌 : 운영체제의 이해

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터 1급 강좌 : 운영체제의 이해


 

리눅스(Linux)는 운영체제 소프트웨어이다.

 

 

 

 

운영체제는 윈도우즈 8, MAC OS, FreeBSD 등이 있다.

 

 

 

 

우리가 흔히 유닉스(UNIX)라고 하는 것은 다양한 유닉스 운영체제를 통칭하여 하는 말인데, 유닉스도 운영체제이다.

 

리눅스는 유닉스에서 많은 아이디어를 얻어서 제작되었고 유닉스 시스템의 표준 인터페이스로 자리잡고 있는 POSIX 표준을 따르고 있으나, 진정한 자유 소프트웨어를 구현하기 위해 유닉스 소스코드 사용을 배제하고 모든 소스코드를 새로 작성했다.

 

 

 

 

초기의 리눅스는 i386 이상의 x86 CPU를 탑재한 PC에서 운영되는 것을 목표로 하였으나, 현재는 SPARC, MIPS, Alpha, PowerPC 등에서 동작하는 최고의 이식성을 자랑하는 운영체제가 되었다.

 

 

 

 

최근에는 안드로이드를 비롯한 리눅스가 스마트 기기에 탑재되어 수많은 사람들이 리눅스를 사용하게 되었다.

1.1.1 운영체제의 이해

개념

운영체제(Operating system)란 사용자가 컴퓨터 시스템을 손쉽게 사용하도록 하고 시스템 자원들, 즉 기억장치, 프로세서, 입출력 장치, 정보, 네트워크 및 데이터 등을 효율적으로 관리할 수 있도록 하는 프로그램들의 집합이라고 할 수 있다.

 

먼저, 운영체제란 사람이 컴퓨터를 사용할 수 있도록 하는 프로그램이라고 표현하기도 하는데, 조금 더 구체적으로는 사람이 사용하는 응용프로그램이 컴퓨터의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램이다.”라고 표현할 수 있다.

 

 

 

 

, 컴퓨터 내부에 장착되어 있는 하드웨어(Hardware)는 기계에 불과하며, 사람이 사용하는 응용프로그램(, 오피스, 게임 등)이 제대로 작동하기 위해서는 해당 프로그램을 하드웨어에 설치하여 사용해야 하는데, 이를 위해 운영체제는 사용하는 사람과의 인터페이스 역할을 한다.

 

 

 

 

그리고 운영체제는 컴퓨터가 부팅하면서 ROM-BIOS에서 제어권을 넘겨받아 컴퓨터의 입력, 출력 등 컴퓨터의 장치들에 대한 모든 제어를 담당하게 되며, 무엇보다 중요한 것은 운영체제가 메모리상에서 실행되고 있는 프로세스들을 제어하고 관리한다는 것이다.

 

 

 

 

이와 같은 측면에서 타넨바움은 운영체제의 기능을 사용자에게 하드웨어상에서 보다 프로그램하기 쉬운 확장된 머신 또는 가상 머신으로 규정하고 있다.

 

그리고 운영체제란 시스템 자원들, 즉 기억장치, 프로세서, 입출력 장치, 정보, 네트워크 및 데이터 등을 효율적으로 관리할 수 있도록 하는 프로그램들의 집합이라고도 할 수 있다.

 

 

 

 

이런 이유에서 운영체제는 각 프로그램을 유기적으로 결합시켜서 시스템 전체의 생산성을 향상시킬 목적으로 설계된다.

 

 

 

 

한편, 운영체제를 역할 중심으로 보면 자원 할당자(Resource Allocator) 혹은 제어 프로그램(Control Program)으로 구분할 수 있는데, 운영체제가 시스템의 모든 자원들을 할당시킨다는 의미에서 자원 할당자라고도 하며 컴퓨터의 부적절한 이용과 오류를 방지시키기 위해서 사용자 프로그램의 실행을 통제하는 제어 프로그램이라고 한다. 이런 측면에서 타넨바움은 운영체제의 기능을 복잡한 시스템의 모든 자원을 효율적으로 관리하는 자원 관리자로서 규정하고 있다.

 

운영체제의 목적과 주요 역할, 운영체제를 구성하는 요소 및 시스템 성능을 나타내는 4가지 요소에 대해서 살펴보면 다음과 같다.

1) 운영체제의 목적과 주요 역할

운영체제의 목적은 크게 다음과 같이 나누어 말할 수 있다.

 

효율적 사용(efficient use) : 컴퓨터 자원의 효율적인 활용을 보장한다.

사용자 편리성(user convenience) : 컴퓨터 시스템의 편리한 사용법을 제공한다.

비간섭(noninterference) : 운영체제 사용자들의 활동에 간섭을 방지한다.

 

그리고 이러한 목적에 따른 운영체제의 주요 역할은 다음과 같다.

 

컴퓨터의 하드웨어를 제어한다.

사용자들 간의 하드웨어 자원을 공유할 수 있도록 한다.

시스템 자원을 스케줄링하여 효율적으로 활용할 수 있게 한다.

입출력이 용이하게 하는 기능을 제공한다.

응용 프로그램의 작성과 실행을 편리하게 한다.

오류의 발생을 막고 복구를 지원한다.

데이터의 조직화, 네트워크 통신 처리 기능을 수행한다.

편리한 사용자 인터페이스를 제공한다.



2) 운영체제를 구성하는 요


운영체제를 구성하는 요소는 크게 제어 프로그램과 처리 프로그램으로 구분한다.

 

제어 프로그램 : 시스템을 운영하기 위한 기능을 수행하는 프로그램으로 감시(Supervisor) 프로그램, 테이터 관리 프로그램, 작업 관리 프로그램 등이 있다.

처리 프로그램 : 컴퓨터가 실제적으로 작업을 수행하기 위한 기능을 지원하는 프로그램으로 언어 번역 프로그램, 서비스 프로그램과 사용자에 의해 비롯된 문제 처리 프로그램 등과 같이 컴퓨터 제작 회사로부터 제공된 프로그램이 속한다.



3) 시스템 성능을 나타내는 4가지 요



Throughput : 단위 시간당 처리 능력을 나타냄

Turnaround Time : 작업이 제출되어서 결과를 얻을 때까지의 총 소요 시간

신뢰도(Reliability) : 시스템이 얼마나 정확하게 작동되는지를 나타냄

사용 가능도(Availability) : 시스템에서 곧 사용할 수 있는 정도를 나타냄

 

이러한 운영체제에 대해, 좁은 의미에서 운영체제는 순수하게 컴퓨터 장치를 제어하는 프로그램만을 의미한다고 할 수 있다.

 

 

 

 

, 운영체제의 가장 핵심적인 부분을 차지하는 것은 커널이고 리눅스에서는 이것을 리눅스 커널(linux kernel)이라고 하며 리누스 토발즈가 개발하여 발표한 리눅스는 커널 부분만을 의미하는 것으로 가장 좁은 의미에서 리눅스를 지칭할 때에는 이 리눅스 커널을 의미한다.

 

 

 

 

그리고 넓은 의미에서 운영체제는 이러한 컴퓨터 장치의 제어뿐만 아니라 실제의 데이터 처리 작업을 담당하는 프로그램을 포함한다.

 

이러한 운영체제는 다음과 같은 다섯 부분으로 나눌 수 있다.

 

커널(Kernel) : 모든 운영체제에 포함되어 있다.

 

 

 

 

항상 메모리에 상주하고, 장치들을 관리한다.


(Shell) : 커널과 사용자, 커널과 애플리케이션들과의 대화수단이 되는 프로그램이다.

파일 시스템(File System) : 데이터 및 장치 관리의 객체가 되는 파일 시스템 구조체이다.


시스템 소프트웨어(System Software) : 커널 외에 시스템 자원 관리를 위한 소프트웨어이다.

애플리케이션(Application) : apache, mysql, vsftpd 등과 같이 운영체제에 기본적으로 포함되어 제공되는 수많은 응용프로그램들이다.

 

 

 

 

 

 

그리고 위의 다섯 부분을 다음과 같이 분류할 수 있다.


가장 좁은 의미의 운영체제 : 커널

보편적인 의미의 운영체제 : 커널 + + 파일 시스템

가장 넓은 의미의 운영체제 : 커널 + + 파일 시스템 + 시스템 소프트웨어 + 애플리케이션

 

그러나 운영체제가 제대로 운영되려면, 위의 요소들 가운데 커널, 쉘 및 파일 시스템은 갖추고 있어야 한다.

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  86 명