Linux란 무엇인가?


 

리눅스(Linux)는 유닉스(Unix)에 상응하는 강력한 운영체제로서 인텔(Intel) 386 호환 컴퓨터와 매킨토시(Power PC), 썬 스팍(Sun SPARC), 디지탈 알파(DEC ALPHA) 등의 시스템에서 동작하며 진정한 다중처리, 가상 메모리, 공유 라이브러리, 요구 메모리 적재, 뛰어난 메모리 관리 시스템, 그리고 강력한 TCP/IP 네트워킹을 지원한다.

리눅스는 현재 운영체제의 인터페이스 표준인 POSIX 운영체계 규격에 따라 유닉스의 두 가계인 SYSV와 BSD 확장을 덧붙여 완전히 새로 만든 독립적인 창작품(Independent implementation)이다. 소유권 문제가 있는 코드는 전혀 들어 있지 않으며, 리눅스는 "GNU(GNU's Not Unix) 공개 라이센스(GPL: GNU Public License)" 정신에 의거해 자유롭게 배포될 수 있다.

 

Linux의 역사


 

리눅스 개발은 1991년에 당시 커널(Kernel: 운영체제의 핵심부)을 개발 중이던 라이너스   토르발즈(Linus Torvalds)라는 핀란드의 헬싱키 대학에 다니던 젊은 학생에 의해 시작되었다. 그의 스승은 교육용 유닉스인 미닉스(Minix)를 이용하여 제자들을 교육하였고, 라이너스는 개인 PC인 인텔 386에서 그것을 어떻게 구현할 수 있을까 고민했다고 한다. 그래서 그 미닉스의 커널 소스를 고쳐서 미닉스 커널을 인텔 칩에 적용시켰고, 그것이 오늘날의 리눅스의 시조가 되었다. 오늘날에도 좁은 의미에서의 리눅스는 바로 이 커널을 의미한다.

그는 1991년에 작업을 시작하여 0.02 버전을 발표하였고, 이것을 인터넷을 통해 공개하여 전세계 개발자와 해커(Hacker)들의 도움을 받아 개발이 꾸준히 진행되어 1994년에는 리눅스 커널  버전 1.0을 발표하였다. 1996년 2.0 버전 발표를 거쳐, 1999년 1월말, 역사적인 2.2 버전의 발표로, 엔터프라이즈 환경에 진입할 수 있는 초석이 마련되었다.

<1991년>
사용자: 1
당시 21살 이였던 라이너스 토르발즈는 자신이 만든 운영체제에 임시로 "Linux"라는 이름을 붙였다. 이후 인터넷 소프트웨어 뉴스 그룹에 자신의 프로젝트를 알리면서, 다른 이들이   다운로드 받을 수 있도록  프로그램을 올렸다. 총 10명이 다운 받아서 그중 5명이 버그를 수정하고  코드를 향상하여 새로운 기능을 포함한 코드를 보내왔다. 12월에는 100명 이상의 전세계 개발자들이 LINUX Newsgroup, Mailing List에 참여했다.
버전: 0.01
크기: 10,000 라인

<1992년>
사용자: 1,000
데스크탑 리눅스 운영체제가 충분한 기능을 가지고, 인텔 x86 칩에서 돌아가기 시작했다.  그래픽 사용자 인터페이스가 추가되었다.
버전: 0.96
크기: 40,000 라인

<1993년>
사용자: 20,000
100명이 넘는 프로그래머들이 코드를 변경하는데 기여했다. 토발즈는 5개의 핵심그룹에   코드 리뷰 의무를 위임했다.
버전: 0.99
크기: 100,000 라인

<1994년>
사용자: 100,000
네트워킹 기능이 추가되었다.
버전: Linux 1.0
크기: 170,000 라인

<1995년>
사용자: 500,000
인텔, 디지탈, 썬 스팍 프로세서에서 수행할 수 있도록 수정되었고, 최초의 64비트 리눅스(알파 프로세서용)가 등장하였다.
LINUX 저널 발행 부수: 10,000
버전: LINUX 1.2
크기: 250,000 라인

<1996년>
사용자: 1,500,000
여러 개의 프로세서를 한번에 사용할 수 있는 컴퓨팅 파워가 추가되었다.
버전: LINUX 2.0
크기: 400,000 라인

<1997년>
사용자: 3,500,000
월간 LINUX 잡지가 일본, 폴란드, 독일, 유고슬라비아, 그리고 영국에서 발간되기 시작하였으며, 새로운 리눅스 버전이 매주마다 포스팅되기 시작하였다.
버전: LINUX 2.1
크기: 800,000 라인

<1998년>
사용자: 7,500,000
약 10,000명의 프로그래머가 뉴스그룹에서 코드 향상과 테스팅에 참여하고 있다.
버전: LINUX 2.1.110 (2.1의 110번째 갱신 버전)
크기: 1,500,000 라인


<1999년>
사용자: 10,000,000
대칭형 다중처리(SMP) 기능의 공식 지원으로 최대 16개까지의 CPU를 장착 가능하게 되었으며, 최대 동시 접속 사용자수가 2048명까지 지원되었다.
버전: LINUX 2.2
크기: 1,600,000 라인

우리가 리눅스를 말할 때는 두 가지를 의미한다. 하나는 커널을 의미하고 다른 하나는 커널 및 여러 응용 소프트웨어를 포함하는 것을 의미한다. 앞의 것은 좁은 의미에서 커널의 안정 버전을 기준으로 하여 그 이름이 붙는다. 그리고, 보통 레드햇(Redhat) 리눅스 6.0이라고 했을 때 그것은 넓은 의미에서의 리눅스이고, 그 앞의 이름으로 그 리눅스를 만든 회사의 이름이나 별도의 이름이 들어가게 된다. 이러한 이유로 리눅스 배포판 회사별로 버전이 다른 것이다.

 

Linux의 특징 및 기능


 

♠ 진정한 다중 사용자, 다중 처리 시스템

다수의 사용자들이 각각 하나 이상의 여러 개의 애플리케이션을 동작시킬 수 있으며, 각각의 응용 프로그램은 다른 응용 프로그램에 보호적으로 동작하여 하나의 응용 프로그램 오작동이 전체 시스템을 다운시키는 것을 완벽히 보호한다.

리눅스는 하드웨어 드라이버 구동을 시스템 차원에서 철저히 분리하여 관리함과 동시에   응용 프로그램의 하드웨어 드라이버 접근을 철저히 시스템의 감시 하에 둠으로써 시스템을 완벽하게 보호하며 시스템의 안정성을 보장한다.

♠ 뛰어난 신뢰성, 동급 최고의 성능
 
기업환경에서 강력한 서버 제품군에 주로 사용되는 유닉스의 기본 설계에 따라 더욱 효율적인 설계방식을 추가하여 시스템의 자원을 아주 효율적으로 사용하여, 가장 많이 사용되는 PC 서버에서도 엔터프라이즈급의 성능과 안정성을 발휘할 수 있다.

♠ 폭 넓은 하드웨어 장치 지원

일반적인 유닉스 기반 운영체제는 제작사의 하드웨어에서만 동작하도록 만들어져 있어서  지원되는 주변장치나 하드웨어들이 극히 적다. PC를 비롯한 다양한 하드웨어에서 돌아가는 유닉스의 경우에도 역시 지원되는 하드웨어 수가 그리 많지 않은 것이 현실이다. 리눅스의 경우 유닉스 기반의 운영체제로는 가장 많은 수의 하드웨어를 지원한다. 운영체제 커널의 소스가 공개가 되어 있기 때문에 하드웨어 지원이 필요할 경우, 다양한 채널을 통해 하드웨어 드라이버가 제작, 추가되어 현재에 이르렀는데 일반적인 PC 수준의 널리 알려진 하드웨어의 경우 대부분이 지원되고 있다. 윈도우즈 NT 뿐만 아니라 서버용 OS중에서 하드웨어 장치 지원 부분에서는 비교할 수 없을 정도로 우위에 있다.

♠ 뛰어난 안정성과 보안성

유닉스의 대용품으로 사용되는 윈도우즈 NT와 SCO OpenServer, UnixWare, BSDi의 BSD/OS보다 확실히 안정성이 높고 보안성이 뛰어나다. 리눅스에서의 버그와 보안 결점은 단 몇 시간 안에 보고되지만, 그 외의 상용 OS는 패치나 버그 수정을 발표하는 데 걸리는 시간만 해도 몇 달이 소요된다. 대표적인 예로, PING 보안 헛점에 의한 버그의 경우,  리눅스는 단 4시간만에 보고되어 수정되었지만, 마이크로소프트 윈도우즈 NT의 경우 자사의  서버가 이 버그로 인해 서비스를 못하게 되어서 몇 주 지나서야 이러한 문제를 시인했다. 아울러, 리눅스는 세계에서 가장 효율적인 네트웍 OS를 만들며 네트웍 코드를 향상시키는 작업을 상시적으로 하고 있는 엄청난 수의 전문 프로그래머들이 지원을 아끼지 않고 있다.

♠ 다양한 업무 환경을 만족시키는 다양한 배포판의 존재

리눅스에는 서로 다른 여러 리눅스 배포본이 있으며, 기본적인 내용은  동일하다.  그 중에서 가장 많이 사용되고, 완벽하며, 안정적인 배포판은  레드햇(RedHat), 데비안(Debian), 그리고 슬랙웨어(Slackware) 등이며 이러한 배포판들의 차이는 시스템 관리방식 및 구성되는 응용 프로그램의 종류나 범위 등에 따라 차이가 나게 된다. 따라서 고객이 필요한 분야에 적합한 배포판을 구해 설치함으로써 자신에게 필요한 응용 프로그램을 인터넷에서 다운   받아 추가적으로 설치해야 하는 번거로움을 줄일 수가 있다. 레드햇과 데비안 배포본의   경우 일반적인 유닉스 시스템에서는 지원하지 않는 새로운 패키지 관리 시스템을 도입하여  응용 프로그램의 업그레이드로 인한 시스템 구성 요소의 의도하지 않았던 삭제나 변형을  방지하기 때문에 시스템의 안전한  업그레이드를 보장하며 새로운 소프트웨어의 설치를   쉽게 할 수 있도록 도와준다.

♠ 다양하고 완벽한 네트워킹 기능

하드웨어 수준에서 가장 널리 쓰이는 이더넷(Ethernet), IBM사의 ARCnet,  FDDI(광케이블 인터페이스) ISDN, 심지어 아마추어 HAM 라디오를  이용한 네트웍를 구성하는 데 필요한 AX.25를 위한 드라이버를 지원하며, 최근에는 네트웍을 이용한 병렬처리 컴퓨터에 리눅스가 사용되면서 여기에 부산물로 Gigabyte 이더넷 드라이버와 ATM 드라이버가 나오기   시작하고 있어 리눅스 2.2 버전에서부터 지원되고 있다. 현재 최다 프로토콜의 지원과 가장 많은 네트워킹 서비스와 기능을 제공한다. 하드웨어 계층의 바로 윗 계층인 전송 층에서  현재 인터넷  비지니스에서 널리 사용되고 있는 TCP/IP 프로토콜은 물론, 노벨(Novell)사의  넷웨어(Netware)를 위한 IPX 프로토콜, IBM의 SNA 프로토콜, 애플(Apple)사의 AppleTalk  프로토콜, 마이크로소프트 윈도우즈 워크그룹에 사용되는 SMB 프로토콜 등을 사용하여 특정 프로토콜만을 지원하는 시스템간의 브리지 서버(Bridge Server) 역할을 할 수 있다.  부가적으로 저렴한 모뎀을 이용한 PPP프로토콜을 지원하여 PPP 서버로서의 기능을 수행 할 수 있다.

이렇게 가장 활용성이 높은 서비스를 운영체제 수준에서 기본적으로 제공하고  여기에 이러한 프로토콜을 이용하여 많은 부가적인 서버로서의 기능을 수행하게 된다. 기본적으로 웹 서버, FTP 서버, NFS 서버 등을 제공하며, 디렉토리 서비스를 제공하는 파일 서버와 프린터 서버, 팩스 서버 및 뉴스서버 등의 역할을 아주 훌륭히 수행하고 있다.

♠ 다양하고 완벽한 네트워킹 기능

일반적으로 운영체제는 자기 고유의 파일 시스템만을 지원하는 것이 보통이다. 이것은 다른 시스템에서 만들어진 자료 기록을 읽을 수 없게  만든다.  파일 시스템상의 자료 중 대부분은 네트웍을 통해 전송이 되기도 하지만 그렇지 못한 경우 다른 시스템에서 만들어진 자료를 읽을  방법이 없다. 리눅스를 위해 만들어져 경이적인 성능을 발휘하는 EXT2 파일 시스템은 기술적으로나 실용적으로나 여타의 파일 시스템에 비해 압도적인 퍼포먼스와 안정성을 자랑한다. 리눅스는 자신의 파일 시스템 외에도 공통적으로 사용되는 다양한  파일 시스템을 지원한다. 윈도우즈 NT의 NTFS를 비롯하여 윈도우즈 95의 VFAT, DOS의 FAT 파일 시스템, 그리고 노벨 넷웨어를 이용한 원격 파일 시스템을 비롯한 공통적으로 많이 사용되는 것들과 CD ROM에서 사용하는 ISO 9660 파일 시스템, OS/2의 HPFS과 SCO, Coherent 같은 상용 유닉스 파일 시스템, 아미가(Amiga) 컴퓨터에서 사용되는 FFS, Sun OS, Free BSD, Net BSD, NextStep의 파일 시스템인 UFS 및 교육용 유닉스인 미닉스 파일 시스템의 기본적인 지원으로 해당 시스템에서 만들어진 자료의 기록매체로부터 데이터를 직접   읽어들일 수 있음으로써, 가히 현존하는 서버용 OS 중에서 가장 높은 유연성을 보유하고 있다.

♠ 풍부한 응용프로그램의 제공

리눅스에는 컴퓨터 하드웨어와 직접 교신하는 소프트웨어인 커널과 표준 응용 프로그램   모음이 포함되어 있다.  표준 리눅스 설치는 기본 운영 체제와 X 윈도우 시스템(전체 그래픽 사용자 인터페이스 포함), 네트워크 도구(FTP, WWW, IRC, 그리고 NEWS 등의  서버와 클라이언트)와 같은 많은 응용 프로그램, 마이크로소프트 윈도우즈 응용 프로그램 실행기(WINE)와 도스 에뮬레이터(DOSEMU), TeX와 같은 조판 시스템, 편집기(Emacs, Joe, Jed, Vi, 그리고 Pico), 개발 도구(그래픽 전위 프로그래밍을 가능하게 해주는 GTK+와 Tcl/Tk, 자바 환경을 제공하는 JDK, GNU C/C++의 컴파일러인 gcc 및 g++, 소스 코드   수준의 디버거인 gdb, 유닉스 make의 GNU 버전인 gnumake, 유닉스의 yacc와 호환되는 파서 생성기인 bison, 베이직, Python, Perl, 어셈블러, 포트란, 그리고 파스칼 등), 게임과 그 이상을 포함하고 있다.

♠ 강력한 SMP(대칭형 다중 처리) 아키텍처 지원
리눅스 2.0 버전에서부터 SMP 지원이 강화되었으며, 개발 버전인 2.1  버전에서부터 인텔 CPU 아키텍처에 대한 SMP 지원이 지속적으로 이루어지고 있다. 현재 인텔 프로세서에  대해 최대 16 프로세서까지 지원되고 있다.

♠ 다양한 사용자 지원 체계

여타의 서버 운영체제가 자체의 제작회사 위주의 서비스를 펼치고  있지만 리눅스는 필요로 하는 사용자 및 고객에 대한 다양한 수준과 형태의 서비스를 전개하고 있다.  리눅스 서버 운영체제와 관련하여 전세계적 범위로 전개되는 서비스의 종류에는 크게 상용 서비스와   비상용 서비스로 구분할 수  있다.

상용 리눅스 버전 구입 고객은 상용 서비스와 공개 서비스를 모두 받을 수 있으며, 비상용 리눅스 사용자도 질 높은 공개 서비스를 받을 수 있다. 상용 리눅스 버전 구입 고객은 해당 제품을 구입한 벤더, 가령  리눅스코리아에서 제품을 구입한 고객은 리눅스코리아를   통해,  레드햇 소프트웨어 사에서 제품을 구입한 고객은 레드햇 소프트웨어 사에서 제품에 대해  제공하는 서비스를 받을 수 있다.  그리고 OS 자체 이외에 대 고객 서비스 기능 지원, 서버 유지보수, 네트웍 유지보수 및 OS와 관련된 심화된 유료 서비스를 별도로 신청할 수 있다. 미국 인포월드(InfoWorld)는 1997년 한해동안 최고의 기술지원을 전개한 회사 및 단체를  선정했는데, 여기에 리눅스 공동체가 1위에 올랐다. 이것은 어지간한 상용 회사에서 제공하는  수백 수십 만원 하는 유료 서비스보다 리눅스 공동체에서 제공하는 무료 상호 서비스가 훨씬 뛰어나다는 것을 의미한다.

리눅스 공동체에서 제공하는 상호 기술지원 서비스로는 다양한 뉴스그룹을 통한 신속한   지원, 전자우편을 통한 메일링 리스트 서비스, 다양한 형태와 분야를 가지는 공식, 비공식 웹을 통한 서비스 등이 있으며, 한국에는 추가적으로 국내 대형 BBS에 구성되어 있는    리눅스 동호회 모임과 한국 리눅스 사용자 모임 및 각 지역별 리눅스 사용자 모임이 구성되어 있어 활발하고 자발적이고 질 높은 사용자 지원 활동을 벌이고 있다.

 

시스템 요구사항


 

▶ 인텔 및 호환 시스템의 경우
리눅스는 처음부터 인텔 호환 아키텍처에서 개발되어서 다른 플랫폼으로 이식되었기 때문에 현재 인텔 호환 시스템에 가장 최적화 되어있다.

♠ 최소사양
386 프로세서
60MB의 HDD 여유 공간
4MB RAM
♠ 권장사양
486SX 33MHz 이상의 프로세서
250MB 이상의 HDD 여유 공간
8MB 이상의 RAM

▶ 디지탈 알파 시스템
리눅스 개발이 안정시기에 접어들면서 디지털사의 하드웨어 상에서  빠른 시간내에 포팅되었으며, 현재 인텔 i386기종과 함께 최적의 성능을 발휘하도록 설계되어 있다. 현재는 일반적인 알파용 마더보드에 PC용 주변기기를 장착하여 저렴한 가격의 시스템으로 높은 성능을 얻을 수 있다.

♠ 최소사양
21066칩이나 21064/APECS칩, 21164/ALCOR칩에 기초한 모든 시스템
170Mb HDD
8Mb RAM

▶ 리눅스와 호환되는 알파 시스템
ALCOR
AS 600
AS 500 5/3xx  
AS 500 5/5xx
XL-300/366/433
AVANTI
AS 200 4/*   
AS 205 4/*  
AS 250 4/*
AS 255 4/*
AS 300 4/*
AS 400 4/*
EB164         
AlphaPC164    
AlphaPC164-LX
AlphaPC164-SX
EB64+
EB64+        
AlphaPC64    
AlphaPCI-64  
EB66          
EB66+         
NONAME
AXPpci33    
UDB        
Personal Workstation
PWS 433a or 433au
PWS 500a or 500au
PWS 600a or 600au
RUFFIAN
Deskstation RPX164-2     
Samsung AlphaPC164-UX/BX
TAKARA
XL
XL-233/266

▶ 썬 마이크로시스템즈 울트라 스팍 및 스팍 시스템
썬 마이크로시스템즈(Sun Microsystems)의 스팍(SPARC) 시스템에서 구동되는 리눅스의  포팅은 오래된 머신을 활용하자는 생각에서 시작되었다. 현재 너무 오래된 스팍 시스템 몇몇을 제외하고는 대부분의 시스템상에서 잘 수행되며 신형 시스템에 대한 지원이 거의 완료되었다. 스팍 시스템의 경우 각 부품별로 판매하는 것이 아닌 시스템 단위로 판매하기    때문에 부품별 시스템 사양을 기술하기가 힘들기 때문에 지원하는 모델명만을 명시한다. 그리고 썬 마이크로시스템즈 사의 공식적인 리눅스 지원 방침에 따라 앞으로 지원하는 모델은 늘어날 것이며, 스팍 리눅스의 성능은 오래된 모델에서 SunOS를 구동하는 것보다 속도가 빠르다.

▶ 리눅스와 호환되는 스팍 시스템
SPARC 1, 1+, IPC, IPX, SLC, ELC, 2 (Sun4c 아키텍처)
Sun 4/3xx (Sun4)
SPARC 2 w/ weitek PowerUP
SPARC Classic, Voyager, LX, 5 (except 170) (Sun4m 아키텍처)

아래의 프로세서 모듈을 포함하는 SPARC 10, 20 (Sun4m):
(다중 프로세서 포함) Model 50, 51, 60, 75 SuperSPARCs
HyperSPARC 에 기반한 모든 모듈 Cypress modules
SPARCcenter 1000/2000 (Sun4d)
Ultra 1, 2 (Sun4u) (울트라 리눅스)
Ultra 5,10,30,450
UltraSPARC Enterprise machines (3000,4000,10000)
Most 100% compatible SPARC clones (Axil, Ross, etc.)

▶ Apple Power PC 시스템
애플 파워 PC를 위한 리눅스 버전에는 두 가지가 있다. 하나는 애플사가 Mach 커널을 기반으로 하여, 리눅스 커널을 지원하도록 개발한 MkLinux와 원래의 리눅스 커널 소스에서 Power PC용으로 포팅을 한 Native Linux이다. 커널을 어떤 것을 사용하느냐의 차이점 외에 두 배포본의 다른 구성 파일의 차이점은 없다. 시스템 성능면에서는 Native Linux가 MkLinux보다 우위에 있으며, 지원하는 하드웨어에서 차이를 가지고 있다. MkLinux의 경우 파워 맥 전 기종을 지원하고, Native Linux의 경우 초기의 NuBus 방식의 파워 맥은 지원하지 않는다. 이것은 Native Linux가 PCI 버스를 지원하기 때문이다. 애플 파워 맥에서 리눅스를 사용하기 위한 최소 사양은 다음과 같다.

▶ MkLinux 버전 호환 시스템
PowerMac 6100 모델
8Mb RAM
500Mb HDD

▶Native Linux 버전 호환 시스템
PowerMac 6200 모델
8Mb RAM
500Mb HDD

▶ 지원하는 클라이언트 환경
Windows 95
Windows 98
Windows NT Workstation
Windows NT Server
Apple Macintosh
MS-DOS
OS/2
Linux
UNIX

 

사용성 및 관리성


 

우리가 일반적으로 많이 사용하고 있는 세 가지 시스템인 유닉스, 매킨토시, 그리고 마이크로소프트 윈도우즈는 그들만의 독특한 GUI(Graphic User Interface)를 가지고 있다.

유닉스의 대표적인 GUI인 X 윈도우의 개발 역사를 살펴보면 1984년에 개발이 시작되었고 1986년에 버전 10.4가 처음으로 상품화되어서 현재  X11 R6 버전에 이르기까지 유닉스   플랫폼에서 사용되고 있다.

애플사의 경우는 매킨토시의 첫 시제품을 1984년에 출시했다. 이때 당시 마이크로소프트는 아주 열심히 도스나 만들고 있었던 회사였다. 일반적으로 윈도우즈 NT가 유닉스보다 사용과 관리가 쉽다고 생각하기가 쉽다. 물론 전체 유닉스 쪽에서 보면 GUI 타입의 관리 도구가 부족한 점이 없지 않아 있다. 그러나 그것은 관리자들의 경험에 의한 편리성을 추구한 결과이다. 사용자가 조금이라도 많은 서버를 관리하고 지리적으로 분산되어 있는 서버를 관리해야 할 때면 단일 사용자 시스템에 걸 맞는 NT의 설계상 단점이 분명하게 드러나게 된다.

다중 사용자 설계인 유닉스는 여러 가지 수준의 원격 접근을 지원한다. 설정 파일을 편집하기 위해서는 텔넷을 이용하여 문자 방식으로 접근할 수 있고 네트웍이 연결된 X 윈도우  시스템이라면 GUI 도구를 실행할 수도 있으며 지금은 자바로 된 시스템 관리 도구를 사용할 수도  있다.

단일 사용자 시스템을 기본으로 하고 있는 윈도우즈 NT에서는 원격을 통한 관리가 거의 불가능하며, 설령 있다고 하더라도 서드파티(Third party)의 제품군으로 별도의 비용을   주고 새로 구입해야 한다.  GUI 타입의 관리 도구들이 편리한 것이 사실이기는 하지만, 이것이 효율성 면이나 유용성 면에서 더 좋다고는 할 수 없다. 대규모의 사용자 입력과 같은 경우 만약 인원이 1000명이면 4∼5000번의 마우스 클릭이 필요로 하는 아주 단순 반복 작업이 된다.

이 경우는 오히려 스크립트 언어를 이용한 자동화 처리 방식이 더 효율적이다. 그러나 마이크로소프트 윈도우즈 NT는 이러한 스크립트 언어를 지원하지 않고 있거나 지원이 가능하다고 해도 서드파티의 제품을 구입해야 하는 경우가 대부분이다.

 

Linux의 사용과 관리의 용이성


 

리눅스는 다양한 형태의 GUI를 지원한다. 그 중에 가장 쉽고도 강력한 데스크탑 환경으로 그놈(Gnome)과 KDE 환경이 있다. 이 두 GUI는 마이크로소프트 윈도우즈 GUI와 유사하여 별도의 교육을 거치지 않고도 바로 사용할 수 있으며, 통합적인 관리 인터페이스를 지원함으로써 관리자와 사용자 모두에게 강력하면서도 쉬운 인터페이스라는 두 가지 측면을 모두 만족시킨다.

리눅스는 관리 시스템에 있어서 일반적으로 관리자가 생각하는 수준보다 다양한 고효율   설정 방식을 지원한다. 그 중 하나가 원격의 작업용 PC에서 서버에 웹을 통해 시스템의  모든 사항을 설정할 수 있도록 제공하는 linuxconf이다. linuxconf는 원격 텔넷 로그인을 통한 메뉴식 설정 기법을 지원하며, X 윈도우를 통한 그래픽 방식의 동일한 설정 방법도 아울러 제공한다. 즉, 서버가 있는 작업실에서부터 수백만 킬로 떨어진 출장지에서도 서버 시스템의 모든 사항을 다양한 방법으로 동일한 메뉴를 통해 설정할 수  있다.

 

신뢰성


 

서버 운영체제라는 관점에서 신뢰성은 두 가지 측면에서 고려해 볼 필요가 있다. 하나는 기록하고 있는 데이터를 얼마나 신뢰성 있게 보호할 수 있는가 하는 문제이며, 또 하나는   서버로서 프로그램이 요구하는 기능을 운영체제가 얼마나 신뢰성 있게 제공하느냐 하는 것이다.

리눅스에서는 귀중한 데이터 보호를 위해 RAID 0,1,5 메커니즘을  제공한다. 여기에서 정의된 데이터 보존의 신뢰성을 위한 기능은 과거에는 대부분 하드웨어를 통해 해결해 왔다. 그러나 가격이 고가였기 때문에 대용량의 메인 프레임이나 슈퍼 컴퓨터 급에서만 채용되었다. 리눅스에서는 이러한 RAID 기능을 운영체제에서 소프트웨어적으로 서비스한다.

리눅스에서 제공하는 RAID 레벨은 선형모드, RAID 0, 1, 4, 5이다.

RAID  레벨 0은 데이터를 한 곳에 모아서 기록하는 것이 아닌 여러 개의  물리적인 저장장치에 분산시켜 기록하는 것으로 데이터를 찾거나 읽을 때 그 속도를 빠르게 하는데 목적이 있다. RAID 레벨 1은 데이터를  저장할 때 똑같은 내용을 여러 번 서로 다른 장소에 나누어 저장하여 한 쪽의 데이터 손실을 다른 쪽의 데이터로 복구하는 것을 제공하는 기능이다. RAID 4, 5 레벨은 각각 하나, 또는 여러 개의 드라이브에  패리티(parity) 정보를 저장하여 장애 시에 데이터 복구를 할 수 있도록 한다.

이러한 기능은 대용량 자료를 취급하거나 처리해야 하는 경우에 유용하며, 현재 저가형의 하드 디스크를 묶어서 RAID 기능을 사용하여 하나의 저장 장치처럼 대용량의 자료를 저장하는 FTP 미러링을 서비스 해주는 사이트가 많이 있다.

중요한 업무를 수행하는 파일 시스템이 손상을 입었을 때 이것을  어떻게 복구할 것인가  하는 문제도 아주 중요하다. 파일 시스템 상에서 자체 내에 복구 기능을 염두 해 두고 설계  하느냐에 크게 좌우되는데 리눅스의 EXT2 파일 시스템은 이러한 것을 설계에 반영하여  일반적인 에러에 대해 복구율이 상당히 높다.

기업을 비롯한 다양한 기관들은 자사의 고객에 대해 어떠한 형태로든  제공하는 서비스가 있다. 이러한 서비스는 24시간 안정적으로  수행되어야 하며, 관리 기능 또한 신뢰성 있어야 한다. 서버  운영체제는 잘못된 프로그램 동작이 다른 사용자나 프로그램을 방해하거나 운영체제 자체를 다운시키는 것을 막을 수 있어야  신뢰성이 있다고 볼 수 있다. 적어도 서버 운영체제 자체가  응용 프로그램으로 인해 다운을 당하는 경우는 없어야 한다. 과거 일반적으로 사용되던 PC용 운영체제인 도스의 경우 이러한 일이 비일비재했다. 그리고 바로 그 회사의 차기버전인 어떤 운영체제(?)는 시스템 다운을 정당하게 알리는 파란 스크린 화면 으로 악명이 높았었고 지금도 그러하다.

리눅스는 응용프로그램의 수행을 시스템 모드와 사용자 모드로 명확히 구분하여 응용 프로그램의 작동을 수시로 감시하며, 커널 시스템 영역을 함부로 접근하지 못하도록 하고 있으므로, 오작동을 유발하는 프로그램일지라도 시스템에 영향을 미치지 않으며 커널이 응용  프로그램의 오작동을 즉각 감지하여 수행을 중단시키므로, 현재 수행되고 있는 다른 서비스에 대해서 보호 작동을 한다.

 

상호 운영성


 

리눅스는 업무환경에서 사용하는 모든 종류의 클라이언트를 지원한다. 따라서 조직 내에서 투자한 자원을 보호함은 물론 사용도가 낮은 클라이언트 시스템까지 효율을 높일 수 있다. 리눅스는 현존하는 서버용 OS중에서 가장 많은 프로토콜 및 기술을 공급하고 있다.

리눅스는 마이크로소프트사의 윈도우즈 95, 98은 물론, 윈도우즈 NT 서버, 워크스테이션을 비롯한 준 서버급 운영체제, OS/2, 유닉스, 노벨 넷웨어, 애플 매킨토시를 클라이언트로   사용하여 리눅스 서버와 네트워크를 구성할 수 있도록 기본 지원한다.

리눅스는 인터넷의 기본을 이루고 있는 TCP/IP에 대한 완벽한 지원과  방대한 응용 프로그램 차원의 지원, IPX/SPX, NetBEUI, AppleTalk, DHCP, HTTP, FTP, SNMP, POP3 등을 지원하고 있다.

♠ 기본 지원 프로토콜 및 기술 명세
ARCNet, Appletalk, ATM, AX25, DECNet, DHCP, EQL, Ethernet, FDDI, Frame Relay, IP Accounting, IP Aliasing, IP Firewall, IPIP Encapsulation, IPX, IPv6, ISDN, IP Masquarade, IP Transparent Proxy, Mobile IP, Multicast, NAT(Network Address Translation), NetRom, PLIP, PPP, Rose protocol, SAMBA(NetBEUI, NetBios), SLIP client, SLIP server, SNMP, NMTP, FTP, POP3, IMP4, STRIP(Starmode Radio IP), Token Ring, X.25, Wavelan Card