본문 바로가기
linux

Unix 와 Linux

by 상레알 2009. 11. 9.

Unix란?

 

유닉스의 탄생은 1973년에 최초로 고급언어(C언어)를 이용하여(90%)만들
어진 운영체제이다. Unix는 탄생초기부터 가격도 쌀뿐더러 소스까지 제공
해주는 덕분에 그 발전 및 성장이 다른 O/S들에 비해 월등히 컸다.

Unix는 간결하면서도 유연한 명령어구성으로 이루어졌으며, 무엇보다 이
식성이 강한(하드웨어에 무관하게) 개방형 시스템이다. 현존하는 대부분
의 컴퓨터 시스템이 이 이식성때문에 네트워크상에서 Unix를 채택하고있
다.
특히 시분할 시스템에서(서버로의) 멀티유저의 접근을 허용하며, 멀티테
스킹 시스템으로 동시에 여러프로세스를 처리할수있다.


Unix 시스템은 크게 3가지로 되어있다.

가) 커널(Kernel) :
커널은 시스템의 핵심을 말한다. 도스에서 msdos.sys나 io.sys등이이에
해당되며, 하드웨어의 제어를 맞고있다. 메모리, CPU, 디스크, 단말기,
프린터등의 시스템자원의 활용도를 높이기 위해 스케즐링과 작업관리를
하는 핵심이라 할수 있다. MS WINDOWS를 사용하다보면 가끔 오류가뜨면
서 Kernel오류라고 나올경우가 있다. 그것은 운영체제의 핵심인 커널이
안정하지 못하기때문이다.

 

나) 쉘(Shell) :
쉘이란 명령어 해석프로그램으로서 도스의 commamd.com과 동일한 것이라
생각하면되겠다. 이는 커널과 사용자간의 다리역활을 하는 것으로서 종류
로는 sh(표준쉘), csh(c쉘), ksh(콘쉘), rsh(원격쉘)등이 있다.

 

다) 유틸리티(Utillity) :
말그데로 유틸리티다. 대표적인 유틸리티는 vi편집기가 있다. dos의 edit
와 비슷하나 vi편집기는 아주 강력하다.


2. Unix 파일 시스템의 구조

UNIX는 기본적으로 도스의 디렉토리 시스템과 유사한 계층 구조 파일 시스템을
가진다. 최상위의 root 디렉토리 및으로 사용자 디렉토리(USER DERECTORY)와 그
속에 각종 파일 및 서브 디렉토리를 가지게 된다. 일반적으로 파일은
UNIX 시스템에의해서 원시 프로그램 파일, 문서파일, 실행파일 등으로 구분하여 기록되며
DOS에서처럼 확장자를 꼭 사용하지 않아도 된다.

한 디렉토리 내에는 파일, 디렉토리, 특수 파일을 저장할 수 있으며 각 파일의
디스크상의 위치를 가리키는 포인터로 이루어져 있는데 이것을 인덱스 노드(i - node)라고 한다.
쉽게 생각해서 DOS의 FAT이라고 보면 된다.

UNIX 시스템의 디스크에는 기본적 주요 디렉토리가 존재하는데 그 의미는 다음과같다.

/bin (binaries) : 대부분의 실행파일을 포함하고 있다.

/usr : 사용자와 관계되는 파일들을 포함한다.

/etc : 암호 파일등 시스템 관리에 필요한 파일을 포함한다.

/dev (device) : 입출력 장치와 관련된 특수파일을 포함한다.

/lib (libraries) : 프로그래밍 라이브러리 들을 포함한다.

/user : 사용자 계정(여러분)을 위한 디렉토리

/incoming : 자료실로 자주 쓰인다.

 

Linux란?

 

리눅스는 멀티유저, 멀티태스킹을 지원하는 유닉스처럼 보이는 운영체제이다. 하지만 리눅스는 유닉스와는 독립적으로 개발되었으므로 유닉스 계열 운영체제가 아니라 유닉스 클론(Clone) 운영체제이다.


리눅스는 핀란드의 리누스 토발즈(Linus Torvalds)에 의해 1991년에 개발되었으며 처음에는 인텔 CPU (80386)를 장착한 피시용으로 개발되었다. 그러나 뛰어난 기능으로 인해 요즈음은 인텔 CPU가 아닌 다른 CPU를 장착한 피시와 워크스테이션에까지 이식되고 있다.


리눅스의 개발 역사는 불과 6년이지만 리눅스는 성능과 안정성에서 몇 배의 개발 역사를 갖고있는 유닉스를 능가한다. 이는 유닉스가 한 회사나 조직 내에서 몇몇 사람에 의해 폐쇄적으로 개발, 유지되는데 비해 리눅스는 인터넷으로 연결된 전 세계의 수많은 자원자들에 의해 개발이 진행되기 때문이다.


리눅스 개발에 수많은 자원자들이 참여하는 이유는 리눅스는 프로그램의 소스를 공개하는 한 누구든지 자유로이 프로그램을 변경하여 유통시킬 수 있는 프리웨어(Freeware)이기 때문이다. 따라서 누구든 리눅스를 자신의 기호나 업무에 맞게 마음대로 바꿀 수 있고, 이에 대해서는 자신의 권리를 주장하지 못하므로, 얼마 후에는 다른 사람들이 여기에 또다른 기능을 추가시켜 내놓는다. 이런 연유로 리눅스는 거의 매달 새로운 기능과 성능 추가가 이루어지고 있다. 리눅스 커늘이나 드라이버, 리눅스용 프로그램에 어떤 버그가 있으면 그 프로그램이 인터넷에 올려진지 몇 시간 길어야 몇일 이내에 버그 패치가 올라온다.

 

- 리눅스가 과연 중요한 운영체제인가?

 

미국의 애플사는 리눅스를 파워피시에 이식하는 것을 지원하였다. DEC은 자사의 알파피시에 리눅스를 이식하였다. 현재 알파피시 판매에서 리눅스 운영체제가 차지하는 비중이 상당히 높다고 한다. 미국의 피시 전문잡지인 Byte지 96년 2월호에 나온 리눅스 소개 기사의 제목은 "Linux matters."이다. 즉 '리눅스가 중요하다'라는 의미이다.


인터넷에서 가장 많은 게시물을 기록하는 뉴스그룹중의 하나가 리눅스 관련 뉴스그룹이며 피시 주변기기의 대부분이 리눅스용 드라이버를 제공하고 있다. 유닉스용 상용 프로그램도 거의 리눅스용으로 나와있다. 리눅스 전문잡지도 이미 2종이 나와있고 매달 몇 권씩 리눅스 관련 책들이 발간되고 있다.

 

얼마 전에 우주 왕복선에 탑재된 식물성장 실험장치를 작동하는 메인컴퓨터의 운영체제에

리눅스가 사용되었고, 일본의 후지쓰사는 엘리베이터 관리 프로그램에 리눅스를 쓰고 있다. 리눅스 판매와 컨설팅 및 지원을 전문으로 하는 회사가 미국에서만 수십 개에 이르고 있다. 어떤 유닉스 전문가는 피시가 컴퓨터 하드웨어에서 혁명을 가져왔다면 리눅스는 운영체제에서 혁명을 가져왔다고 말하는 정도다.


리눅스가 왜 피시 운영체제에서 이처럼 각광을 받고 있는가? 이유는 간단하다. 리눅스는 또 다른 유닉스가 아니기 때문이다. 리눅스는 기존의 어느 단일 운영체제가 이루지 못한 것을 이미 이루고 있으며 그 뛰어난 성능에도 불구하고 무료로 사용할 수 있다는 가장 큰 이점이 있다.

 

- 리눅스의 특징

 

리눅스는 도스나 윈도우와는 달리 진정한 32비트 운영체제이며 멀티태스킹과 멀티유저 기능을 갖고 있다. 윈95나 도스를 쓰는 사람치고 하루에 한 두번 피시를 리부팅 해보지 않은 사람이 드물 것이다. 하지만 리눅스를 몇 달 동안 한번도 끄지 않고 가동해왔다는 이야기는 전혀 자랑이 아니다. 몇 년 씩 말썽없이 사용한 경우가 흔히 있기 때문이다. 필자가 인터넷 서버용(www.linuxlab.co.kr)으로 사용 중인 리눅스(486DX-66)도 하드웨어 교체시나 정전시를 제외하고는 설치한지 2년이된 지금까지 한번도 다운된 적이 없다. 리눅스는 물론 만능은 아니다. 하지만 어느 단일 운영체제도 리눅스만큼 여러면에서 다재다능하지 못하다. 그래도 꼭 리눅스가 다른 운영체제보다 뛰어난 분야를 들라면 아래와 같다.

 

1. 멀티 플랫폼 (Multiplatform)

 

리눅스는 모든 인텔 CPU(80386-SX 이상) 및 호환 CPU를 장착한 피시에서 사용 가능하다. 이외에도 모토로라사의 680X0 계열 CPU를 장착한 아미가(Amiga)나 아타리(Atari) 피시,  DEC사의 알파시스템, 선(SUN)사의 Sparc과 애플사의 파워피시, MIPS 기종에 이식되었고 그 외의 여러 워크스테이션에 이식이 진행 중이다. 

 

2. 다른 운영체제에 대한 지원

리눅스는 피시에서 사용되는 대부분의 운영체제에 대해 지원 방안이 강구되어있다. 도스나 윈도우95의 파일을 읽거나 쓸 수 있으며 윈95의 8자 이상의 파일이름을 리눅스에서 볼 수 있다. DOSEMU를 쓰면 상당수의 도스 프로그램을 리눅스에서 실행할 수 있다. 윈도우3.1용 프로그램을 리눅스에서  실행시키기 위하여 WINE이라는 프로젝트가 진행중이며 이미 상당한 성과를 보고있다. 도스 파일시스템에 리눅스를 설치하는 것도 가능하므로 도스상태에서 바로 리눅스를 실행할 수 있다.


이외에도 OS/2, 맥킨토시의 파일을 읽을 수 있고, iBCS(Intel  Binary Compatibitity Standard)의 포팅이 진행 중 이어서 피시용 유닉스인 SCO, SVR3, SVR4용으로 개발된 상당수의 프로그램이 리눅스에서 바로 실행 가능하다.

 

3. 네트워킹

리눅스는 네트워크에 관한 한 타의 추종을 불허한다. 컴퓨터에서 구현된 네트워크 기능은 모두 리눅스에 있다고 보면된다. 리눅스는 이더넷(Ethernet), 토큰링(Token Ring), 아크넷(Arcnet) 등 3대 주요 랜 표준을 지원하며 ISDN, FDDI, ATM, X.25, Frame Relay 등의 주요 네트워크 장비를 리눅스에서 사용 가능하다. 리눅스에서 지원하는 네트워크 프로토콜과 네트워크 기능을 들면

     - IPX -  노벨 네트웨어 서버 및 클라이언트
     - Appletalk -  맥피시의 파일 및 프린터서버
     - NetBEUI(SAMBA) - Win95, Windows for Workgroup,
        랜매니저 피시와의 랜 구축
     - TCP/IP - NFS(Network File System) 서버, Telnet, FTP

또 리눅스 피시에 적절한 하드웨어를 결합하면 기존 제품보다 훨씬 저렴한 가격으로 브리지, 라우터, 게이트웨이를 만들 수 있다. 필자도 싱크보드에 리눅스를 써서 라우터를 만든 적이 있다.

 

4. 인터넷

리눅스는 탄생 단계부터  인터넷을 이용하였으며 모든 개발자들이 거의 인터넷을 통해 정보를 주고 받고 있다. 인터넷이 없었다면 리눅스는 존재하지 않았을지도 모른다. 리눅스 개발자들이 모두 인터넷 사용자들이므로 리눅스가 인터넷의 모든 기능을 지원하는 것은 어쩌면 당연한 일인지도 모른다. 인터넷용 프로그램인 웹브라우저(네트스케이프, 모자익), 메일(pine, elm), 뉴스(tin, nn) 외에도

      -  웹서버 (Apache, CERN, NCSA)
      -  메일서버 (Sendmail, Smail)
      -  뉴스서버 (INND, C-News)
      -  DNS(Domain Name System) 서버
      -  IRC 서버등 유닉스에서 가능한 모든 인터넷서버의 기능을 리눅스에서
         사용할 수 있다.
         인터넷용 시리얼 프로토콜인 PPP, SLIP, CSLIP 등도 지원된다.

전세계의 상당수의 인터넷서비스 제공자(ISP: Internet Service Provider)가  리눅스를 인터넷 서비스에 사용하고 있으며, 이들을 위한 linux.admin.isp라는 뉴스그룹도 있다.

 

5. 기타

프로그래밍 언어로서 C, C++, PERL, Java 등의 각종 언어를 지원하며 GUI 환경으로 X 윈도우가 있다. 통신용으로는 minicom, kermit, term 등과 여러 BBS 프로그램들이 있다. 아마추어무선에서 데이타통신에 사용하는 AX.25 프로토콜을 지원하기도 한다.

 

내용출처 : 리눅스월드

'linux' 카테고리의 다른 글

glade 하던중 ㅠ  (0) 2010.04.20
xvkbd - virtual keyboard for X window system  (0) 2010.04.05
상대 ping 거부하기..  (0) 2010.04.02
echo  (0) 2010.03.18
러닝리눅스 [개정5판] - 한빛미디어  (0) 2009.11.09
gcc 옵션  (0) 2009.08.14
rlogin  (0) 2009.08.12
스레드 동기화 API  (0) 2009.08.09
쓰레드를 사용해보자...ㅋㅋ  (0) 2009.07.28
셸 프로그래밍  (0) 2009.07.24