본문 바로가기
Foreter [모든 글 보기]

OS [operating system, 운영체제]

by foreter 2008. 4. 10.
◎운영체제(OS)

Operation System의 약자로, 운영체제는 컴퓨터 하드웨어와 사용자 응용프로그램 사이에 위치하여 응용 프로그램이 하드웨어를 쉽게 사용할 수 있도록 해주고 전체적인 시스템의 효율을 극대화시키기 위해 하드웨어 및 소프트웨어 자원(resource)을 관리하는 프로그램들이라고 할 수 있다.


운영체제의 역할과 기능



CPU는 컴퓨터의 두뇌에 해당한다. 하지만, CPU는 운영체제가 없다면 무용지물이라고 할 수 있다. CPU가 사고하고 동작할 수 있는 가장 기본적인 환경을 만들어 주는 역할을 하는 것이 바로 운영체제이다. 운영체제는 컴퓨터를 사용하기 위해 필요한 가장 기본적인 소프트웨어로, 사용자 프로그램이 하드웨어 및 다른 소프트웨어를 이용하기 위하여 필요한 서비스를 제공해 준다. 전형적으로 운영체제가 하는 일은 크게 프로세스 관리, 기억장치 관리, 그리고 입출력 서비스 등으로 크게 나눌 수가 있다.



운영체제 서비스



사용자 프로그램은 입출력 등 시스템에 관계되는 작업을 직접 처리하지 못하고, 운영체제가 제공하는 기능을 호출하여 사용하게 된다. 이는 사용자로 하여금 복잡한 입출력 루틴을 작성하지 않아도 되게 하고, 시스템의 입장에서는 여러 사용자들 사이에 자원을 공유하게 함으로써 시스템의 이용 효율을 높일 수 있도록 한다. 이렇게 운영체제를 호출하는 것을 시스템 호출(system call) 또는 관리자 호출(SVC: supervisor call)이라 한다.



운영체제의 이식성



운영체제는 하드웨어의 제약을 받으므로 하나의 컴퓨터 시스템을 위해 하나씩의 운영체제가 존재하는 것이 보통이나, 어떤 운영체제는 설계 때부터 하드웨어에 비교적 무관하도록 구조가 짜여져 있어 다른 기계에서도 수행될 수 있도록 한 것이 있다. 이런 경우 이식성(portability)이 높다고 하며, 대표적인 것이 유닉스(UNIX)이다. 유닉스 운영체제는 고급언어인 C 언어로 짜여져 있어, 이론적으로 C 컴파일러가 있는 기종이면 어디나 이식할 수 있다. 실제 유닉스는 마이크로컴퓨터에서부터 수퍼컴퓨터에 이르기까지 수많은 컴퓨터에 이식되어 있다.



운영체제의 종류



운영체제는 사용방식에 따라 일괄처리 시스템(batch system), 실시간 처리 시스템(real-time processing system), 시분할 시스템(time-sharing system) 등으로 분류되고, 사용자의 입장에 따라 단일 사용자 시스템(single-user system), 다중 사용자 시스템(multi-user system) 등으로 구분된다. 제조회사별 운영체제는 썬 마이크로시스템즈의 Solaris를 비롯, 디지탈 이큅먼트의 Ultrix, 카네기 멜론 대학의 Mach, IBM과 애플의 PowerOpen, 애플의 System 7.0, IBM의 OS/2, 마이크로소프트의 DOS와 Windows, 유니벨의 Unixware, 넥스트의 Nextstep 등이 있다.



◎운영체제의 종류



MS-도스 (Microsoft-Disk Operating System)



디스크, 출력장치, 입력장치, 인쇄장치 등 퍼스널컴퓨터의 여러 장치들을 함께 제어해주는 마이크로소프트사(社)에서 개발한 범용 운영체제.
개인용 컴퓨터(PC)의 가장 대표적인 운영체제로, 1981년에 IBM사(社)가 16비트 PC를 발매할 무렵에 마이크로소프트사가 IBM PC용으로 개발한 단일 이용자용 및 단일 태스크용의 운영체제이다.



미국 시애틀 컴퓨터사(社)가 개발한 CP/M-86 호환의 DOS를 마이크로소프트사가 매수하여 IBM PC용으로 수정한 것이 최초의 판인데, 그 후에 16비트뿐만 아니라 32비트 PC용의 대표적인 OS로서의 지위를 확보하게 되었다. 1983년에 발표된 MS-DOS 2.0판에서는 유닉스적인 기능을 도입하였다. 계층 구조에 의한 파일 관리, 명령의 파이프 ·필터 기능, 네트워크 기능, MS-Windows와의 조합에 의한 GUI 환경 등이 도입되고, 기억 용량이 640KB로 확장되어 활용도가 향상되었다.



리눅스 (Linux)



워크스테이션이나 개인용 컴퓨터에서 주로 사용되는 유닉스와 유사한 오퍼레이팅시스템.



1989년 핀란드 헬싱키대학에 재학중이던 리누스 토르발스(Linus Torvalds)가 유닉스를 기반으로 개발한 공개용 오퍼레이팅시스템(OS)으로, 1991년 11월 버전 0.10이 일반에 공개되면서 확대 보급되기 시작하였다. 유닉스(Unix)가 중대형 컴퓨터에서 주로 사용되는 것과는 달리, 리눅스는 워크스테이션이나 개인용 컴퓨터에서 주로 활용한다.



리눅스는 소스 코드를 완전 무료로 공개하여 전세계적으로 약 5백만 명이 넘는 프로그램 개발자 그룹을 형성하게 되었으며, 이들에 의해 단일 운영체제의 독점이 아닌 다수를 위한 공개라는 원칙하에 지속적인 업그레이드가 이루어지고 있다.



파일구성이나 시스템기능의 일부는 유닉스를 기반으로 하면서, 핵심 커널 부분은 유닉스와 다르게 작성되어 있다. 인터넷 프로토콜인 TCP/IP를 강력하게 지원하는 등 네트워킹에 특히 강점을 지니고 있으며, 유닉스와 거의 유사한 환경을 제공하면서 무료라는 장점 때문에 프로그램 개발자 및 학교 등을 중심으로 급속히 사용이 확대되고 있다.



리눅스는 각종 주변기기에 따라 혹은 사용하는 시스템의 특성에 맞게 소스를 변경할 수 있으므로 다양한 변종이 출현하고 있다.



바이오스 (Basic Input Output System)



컴퓨터에서 전원을 켜면 맨 처음 컴퓨터의 제어를 맡는 프로그램.



컴퓨터의 가장 기본적인 기능을 처리해 주는 프로그램들의 집합을 의미한다. 즉, 운영체제(OS)에서 입출력장치나 주변장치을 구동하기 위한 루틴들의 집합체로서 운영체제 가장 하위에 있는 부분이다. IBM-PC 호환기종에서는 롬에 들어 있기 때문에 롬바이오스라고도 한다.



소프트웨어는 계층별로 수행하도록 작성되었을 때 가장 잘 작동한다. 각 층은 할당된 일을 수행하고 상위층은 하위층이 하는 일에 대해서는 간섭하지 않는다. 이 중 바이오스는 가장 낮은 곳에 있는 층이고 다른 소프트웨어는 모두 이 층을 기반으로 하여 움직인다.



역할은 컴퓨터 하드웨어의 '즉시 응답 요구'를 처리하고, 프로그램을 하드웨어와 관계 없이 수행시켜 주는 것이다. 말하자면 바이오스는 하드웨어와 소프트웨어 사이의 연결과 번역 기능을 담당하는 인터페이스다.



바이오스를 구성하는 루틴으로는 스타트업(start-up) 루틴과 서비스 처리 루틴, 하드웨어 인터럽트 처리 부분이 대표적이다. 스타트업 루틴은 컴퓨터가 켜질 때 자동으로 실행되어 컴퓨터의 상태를 검사하고(POST:Power-On Self Test) 시스템을 초기화(initialize)하는 작업을 하며, 초기화 작업 중에 어떤 주변장치가 연결되어 있는지 확인한다.



오에스투 (OS/2)



미국 컴퓨터·정보기기 제조업체인 IBM사와 마이크로소프트사가 PS/2에서 사용할 목적으로 만든 컴퓨터 운영체제.



Operating System/2의 약어로서, 당시에는 80286컴퓨터를 위하여 설계되었는데 80386이나 80486컴퓨터에서 사용할 수 있도록 점차 업그레이드되면서 일반 퍼스널 컴퓨터(PC)에서 사용될 수 있도록 통합 버전까지 나왔다. 32비트 커널과 디바이스 드라이버를 사용하기 때문에 하드웨어를 바이오스에서 인식시키고 난 후 운영체제 자체의 32비트 전용 디바이스 드라이버를 로드해서 시스템을 제어하는 방식이다. 따라서 일반 PC용 운영체제보다 안정성이 좋았다. 또 32비트 선점형 멀티태스킹 기법으로 구현되었기 때문에 MS-DOS에 기반을 둔 윈도우3.1과 같은 운영체제에서 흔히 볼 수 있는 메모리 운영방식의 한계점으로 발생하는 응용프로그램에 의한 시스템 다운 같은 현상이 없었다. 그리고 파일 시스템 관리 기법으로 UNIX와 MS-DOS의 파일 시스템을 절충한 HPFS(high performance file system) 방식을 사용하기 때문에 파일 시스템 차원에서의 캐싱이 이루어지며, FAT보다 파일 손실 가능성이 줄어들고 디스크의 단편화 현상이 적었다.



또한 GUI 방식의 사용자 인터페이스인 WPS(work place shell)을 사용하여 직관적으로 화면 관리가 가능하고 폴더 개념의 파일 관리를 하는 장점이 있었다. 그러나 OS/2를 기반으로 한 응용프로그램을 개발하려는 소프트웨어 개발자가 없었고 OS/2의 초기 버전이 MS-DOS 프로그램을 제대로 실행하지 못했기 때문에 OS/2의 수요가 거의 없었다. 그 이후 여러 가지 단점을 극복한 OS/2 버전이 속속 발표되었지만 사용자에게는 좀더 매력적인 윈도우에 밀려 빛을 보지 못했다.



유닉스 (Unix)



1969년 미국의 전신전화회사 AT & T사의 벨연구소에서 개발한 오퍼레이팅시스템.



1969년 미국 AT & T사의 벨연구소 켄 톰슨(Ken Thompson)이 DEC사의 미니 컴퓨터 PDP-7에서 어셈블리언어로 단일 사용자용인 유닉스(Unix)의 제1버전을 개발하였으며, 1972년 데니스 리치(Dennis Ritchie)가 고급언어인 C언어로 다시 작성하였다.



유닉스를 탑재한 워크스테이션의 발매와 함께 보급되어 현재는 개인용 컴퓨터, 대형 컴퓨터, 마이크로 컴퓨터에 이르기까지 많은 종류의 컴퓨터에서 사용되고 있으며, 거의 어떤 컴퓨터에도 이식이 가능하다. 유닉스는 멀티태스킹, 멀티유저를 지원하는 오퍼레이팅시스템(OS)으로 프로그램개발, 문서처리, 전자우편 등의 기능이 뛰어나다.

지금까지의 유닉스 시스템은 크게 두 부류로 발전되어 왔다. 하나는 AT & T사가 상품화한 유닉스 시스템 시리즈이고, 다른 하나는 버클리대학에서 만든 BSD(Berkeley Software Distribution) 유닉스이다.



이들은 각각 독자적인 기능을 부여하여, 같은 유닉스지만 호환성이 없고 이식성이 떨어지는 혼란을 가져왔다. 이러한 유닉스의 혼란을 방지하기 위하여 미국의 유닉스 사용자 모임은 1984년 표준화위원회를 설립하여 유닉스의 표준화를 시도하였다. 이러한 표준화작업으로 유닉스 사용자는 시스템마다 프로그램을 변경하지 않고 실행할 수 있으며, 사용자 인터페이스를 공유하여 공통된 환경을 사용할 수 있는 등 많은 이익을 얻게 되었다.



윈도우즈(for PC)



도스를 대체한 MS의 운영체제로 1983년 버전 1.0이 최초로 탄생되었다. 그후 90년 3.0 92년 3.1이 이어지고 95년 윈도우 95, 98년 윈도우 98이 출시되었다. 윈도우 3.1의 경우 완벽한 운영체제가 아니었지만 윈도우 95부터 완전한 운영체제로 도스를 완벽하게 대처할 수 있게 되었다.



윈도우 3.1은 반쪽짜리 운영체제로 도스가 없이는 동작하지 못한다. 즉 윈도우 3.1 만으로는 운영체제가 설치조차 되지 않을 뿐 아니라 도스로 부팅한 후에 윈도우 3.1을 실행해야 한다. 전체적인 구조도 도스에 의존하는 바가 너무 컸다. 반면 윈도우 95는 도스 없이 사용이 가능하며 오히려 도스가 윈도우에 흡수되었는데 이렇게 포함된 도스는 7.0 버전이다.