2010년 1월 24일 일요일

리눅스란? 이해하기/유닉스와의차이점

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

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

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

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

(네이버 백과사전)

 

1. 리눅스란 무엇인가?
 
  가. 리눅스 개발자
혹시 리눅스가 북극 근처 어느 나라에서 만들어진 것이려니 하고 생각했다면 정확히 알고 계신 겁니다. 그리고 펭귄이 리눅스를 대표하는 캐릭터라고 생각해도 무방하구요. 다음 두 캐릭터는 리눅스를 말할 때 가장 많이 사용되는 것들입니다.
  
리눅스는 1991년 핀란드 헬싱키 대학의 대학생인 리누스 토발즈(Linus B. Torvalds)에 의해 만들어졌습니다. 학교 프로젝트를 진행하는데 대형 컴퓨터에서 사용하는 유닉스를 PC에서 사용할 수 있도록 하기 위해서 만든 것이 현재 리눅스의 모태가 되었습니다. (ANDREW의 MINIX,학습용 운영체제  ■ UNIX화 ■ 리눅스)

또, 미국의 리처드 스톨만(Richard M. Stallman)이 '모든 소프트웨어는 공개해야 한다'는 생각을 진행하기 위해 FSF(Free Software Foundation)란 단체를 만들어 운영하던 중 소프트웨어를 자유롭게 사용하기 위해 그 소프트웨어를 설치해서 사용할 운영체제로 리누스 토발즈가 만든 리눅스를 채택하게 되었습니다.

나. 리눅스 배포
FSF 단체에서 제작한 프로그램들이 리눅스에서 작동하게 되고, 여기에 동참한 전세계 수많은 해커들이 모여 리눅스 프로젝트는 점차 모양을 갖추게 되었습니다.  그러면서 리눅스는 여러가지 이름으로 제작되기도 하고 GUI 환경인 X윈도우 사용자 인터페이스도 갖추게 되었습니다.
현재는 안정성신뢰도를 높이는 운영체제로 인정받으면서 공개 프로그램으로 세계 곳곳에서 널리 사용되고 있으며 이를 개발하고 있는 업체 및 개발자들로부터 수시로 업그레이드되고 있습니다.
국내에서 리눅스가 본격적으로 사용되는 것은 1993년경 부터이며, 386 PC에 PC용 유닉스를 사용하고 있었습니다. 미닉스나 제닉스라는 것도 있었지만 X윈도우를 사용하려면 비싼 워크스테이션에서 솔라리스라는 운영체제를 사용해야만 했습니다.
그러나 리눅스는 그 당시에도 X윈도우를 사용할 수 있었기 때문에 리눅스가 주로 사용되게 되었습니다. 그 때 몇몇 사람들이 가지고 있던 리눅스는 1.2M용 5.25인치 플로피 디스켓 50~60장씩 이고, 설치 과정에서 물어보는 것도 많았고 힘이 들었습니다.
하지만 곧 CD의 등장으로 자동으로 설치되며, 쉽고 빠르게 할 수 있게 되었습니다. 이 CD의 등장으로 본격적으로 리눅스가 보급되기 시작했고 새 버전과 새 이름으로 여러 컴퓨터 잡지 또는 인터넷에서 구하기 쉽게 되었습니다.

 

다. 리눅스용 애플리케이션
일반인들에게 가장 중요한 것이 이 부분이 아닐까 싶습니다. 어떤 프로그램을 쓸 수 있나요? 묻는다면 모든 프로그램이라고 답할 수 있습니다.
예를 들어 리눅스용 워드프로세서로 '한컴워드',한컴오피스1.5, 서버 'easyMail', 'X매니저', 그래픽 프로그램 'GIMP', 인터넷 웹브라우저 'K메일', 통신 프로그램 'GAU', 기타 게임 등 윈도에서 사용하던 모든 프로그램들이 준비되어 있고 각 리눅스 배포판에 모두 포함되어 설치된다는 것입니다.
         

 라. 리눅스와 유닉스

① 유닉스
유닉스는 안전성과 네트워크에 강하기 때문에 주로 서버 운영체제로 많이 사용됩니다. 즉, 운영체제가 컴퓨터에서 동작 중 중지하는 경우가 거의 없다는 뜻입니다. 윈도NT나 98을 사용하다 보면 응용 프로그램을 설치하고 나서 새로 껐다가 켜야 하거나 영문도 모르고 다운되는 경우가 종종 있습니다.
유닉스는 윈도95/98에서 컴퓨터를 사용하다가 발생할 수 있는 여러 가지 문제를 해결할 수 있는 많은 기능을 가지고 있습니다. 따라서 유닉스를 사용하는 사용자나 관리자는 이런 기능을 배워야 하기 때문에 개인용 컴퓨터를 배우는 것보다 유닉스가 어렵게 느껴지는 이유일 것입니다.

 

② 리눅스의 모체 유닉스
리눅스는 유닉스를 모체로 하고 있습니다. 앞서 알아보았듯 유닉스는 대중에게 널리 알려진 운영체제는 아닙니다. 유닉스 운영체제를 사용할 수 있는 컴퓨터는 크기도 클 뿐만 아니라 가격도 고가이기 때문에 큰 기업이나 연구소에서 주로 사용했었습니다. 그렇기 때문에 어렵다고 느낄 수도 있습니다.
리눅스가 PC용 유닉스로 알려지면서 개인 사용자들도 PC에서 유닉스 운영체제를 맛보게 되었습니다. 처음에는 물론 어려웠을 겁니다. 처음 접하는 운영체제였으니깐 말이죠. 그러나 리눅스는 유닉스의 강력한 기능을 갖추면서 MS-윈도처럼 편하게 사용할 수 있도록 개발되어 누구라도 손쉽게 리눅스를 사용할 수 있게 되었습니다.
현재 국내외에서 발표된 리눅스 들은 거의 윈도98과 흡사한 환경을 제공하고 있습니다.
   

인터넷이 처음 사용된 운영체제 역시 유닉스였으며 따라서 초기에 연구소나 대학에서 사용했기 때문에 일반인들이 어렵게 생각했지만 지금은 PC를 사용하는데 기본이 될 정도로 쉬워졌습니다. 이렇게 발전한 이유는 MS에서 인터넷을 사용할 수 있도록 윈도 3.1에서 95로 운영체제를 업그레이드하면서 네트워크 기능을 강화시켰기 때문입니다.
 인터넷은 네트워크 기능이 지원되어야만 사용할 수 있는데, 도스나 윈도 3.1에는 네트워크 기능이 거의 없거나 약했습니다. 하지만 현재 많이 사용되는 운영체제인 윈도98이나 NT는 유닉스의 기능을 많이 가져와 사용하고 있어 강력한 운영체제(OS)로 발전할 수 있었습니다.
리눅스는 윈도우98처럼 컴퓨터를 사용하는데 필요한 운영체제이고 똑같은 컴퓨터에서 동작할 수 있습니다. 리눅스를 쉽게 이해하기 위해서 윈도우98과 비교해보면 다음과 같습니다.
리눅스가 윈도우98이나 NT 보다 강하다고 하는 이유는 보통 시스템 다운이라 불리우는 현상이 적기 때문입니다. 또한 새로운 프로그램을 설치하고 나서 재부팅하지 않고도 계속 사용할 수 있기 때문입니다. 또한 그 외에도 시스템 사양이 높지 않기 때문에 윈도우98이나 NT를 설치할 수 없는 컴퓨터일지라도 리눅스를 설치할 수 있다는 점도 강점입니다.

 

③ MS윈도와 X윈도우
 윈도우(Windows)는 컴퓨터를 좀더 쉽게 사용할 수 있도록 한 그래픽 사용자 인터페이스(GUI, Graphic User Interface)입니다. 컴퓨터를 처음 시작하는 초보자에게 텍스트 환경은 어렵게 느껴질 수 밖에 없고 그래픽 인터페이스가 쉽게 느껴집니다. 그래서 MS윈도와 X윈도우 그래픽 환경의 비교는 초보자를 기준으로 이야기한다고 해도 보통 MS윈도를 많이 사용했기 때문에 MS윈도가 더 쉽다고 생각할 수 있습니다.
 원래 유닉스는 MS윈도 같은 그래픽 인터페이스가 없었기 때문에 유닉스를 잘 사용하는 사람들은 커맨드 방식(MS-DOS 모드에서 사용하는 텍스트 방식)에 익숙해져 있습니다.
 그 이유는 리눅스나 유닉스 사용자들은 다양한 환경설정 파일을 한텀(Hanterm)이라는 도스 환경에서 변경해야 했기 때문입니다. 그렇지만 최근의 KDE나 GNOME이라 불리우는 X-Windows 환경이 보급되면서 편리하게 리눅스를 사용하는 사용자들이 늘어나고 있습니다. 특히 KDE의 경우 MS사의 윈도와 비슷해서 윈도95/98을 사용하던 사용자들도 쉽게 리눅스 환경을 사용할 수 있습니다.

 

■ 리눅스를 사용하는 이유


 

마. 커널과 쉘(Kernel&Shell)
리눅스를 사용하다 보면 커널이나 쉘이라는 용어를 자주 사용하게 됩니다. 특히 커널 컴파일이란 것이 있어서 리눅스를 더 어렵게 느껴지게 만들기도 합니다. 쉘이란 것도 종류가 많고 쉘 프로그래밍이란 것도 있어서 리눅스를 사용하려면 기본적으로 쉘 프로그래밍을 해야되는 건가 싶기도 합니다. 이런 점들이 초보자에게는 부담스럽게 느껴집니다.
 이런 리눅스의 커널과 쉘을 이해하는데 있어서 도스를 알고 있다면 쉽게 이해할 수 있을 것입니다.

 

■커널은 도스의 IO.SYS나 MSDOS.SYS와 같은 기능을 합니다.

■쉘은 도스의 COMMAND.COM 같은 역할을 합니다.

① 커널(Kernel)이란?
 리눅스가 다른 운영체제에 비해 안정성이 뛰어나다는 얘기를 많이 하게 되는데 그 운영체제의 안정성과 밀접한 연관이 되는 것이 바로 커널입니다. 리눅스의 창시자인 리누즈가 한 일이 바로 유닉스의 커널을 PC에서 사용가능한 커널로 만들었다는 데에서 의미를 가지는 것처럼 커널은 리눅스라는 운영체제를 사용하게 만드는 근본이 되고 있습니다.
 현재 리눅스는 커널은 'kernel.org'에서 지속적으로 업데이트 되고 있고 리눅스 운영체제를 더욱 안정적으로 만들고 있습니다. 커널 컴파일이라는 것은 더욱 안전해진 커널을 사용하고 있는 시스템에 설치하기 위해서 꼭 필요한 작업입니다. 프롬프트에서 'rpm -q' 명령으로 확인할 수 있습니다. 업그레이드된 커널을 구하게 되면 커널 컴파일 과정을 거쳐서 현재 사용하는 리눅스의 커널을 업그레이드 할 수 있습니다.

 

② 커널과 쉘의 역할
도스에서 우리가 A라는 실행 파일을 B라는 실행 파일로 복사하기 위해서 다음처럼 입력하면 B.txt 파일이 하나가 더 생성이 됩니다.

 

 COPY 명령은 COMMAND.COM에서 컴퓨터로 전달하는 것이구요. A라는 실행 파일을 B라는 실행 파일로 복사를 하는 것은 IO.SYS와 MSDOS.SYS가 하는 것입니다. 복사하는 과정은 눈에 보이지 않지만 IO.SYS에 정의되어 있는 open, read, write 등의 명령이 내부적으로 바쁘게 작동하여 B라는 실행파일이 생기는 거죠.
 리눅스에서도 A.TXT를 B.TXT로 복사하는 다음 명령을 커널과 쉘이 담당하는 것은 도스와 비슷한 경우라고 볼 수 있습니다.

 

도스는 외부 명령과 내부 명령이 있습니다. FORMAT이나 FDISK 같은 명령은 외부에 실행 파일이 있어야 실행이 되므로 외부 명령, COPY나 DEL, MOVE 등은 파일이 없어도 실행되므로 내부 명령입니다. 이런 내부 명령은 COMMAND.COM에서 관리하듯이 리눅스에서는 쉘에서 관리합니다.
 리눅스의 쉘 명령어로는 cd, pwd, exit 등이 있고, 커널 명령어로는 fork, open, write, read, exec, iocntl 등이 있습니다. 리눅스의 외부 명령은 ls, rm, cpp, addusr 이외에 다른 실행 프로그램들이 있습니다.

 

③ 쉘의 종류
 리눅스에서 쉘은 여러 종류가 있고 쉘마다 특징이 있습니다. 쉘은 크게 본쉘(bash), C쉘(csh), 콘쉘(ksh)이 있으며, 한컴리눅스 OS에서는 기본으로 본쉘(bash)을 사용하고 있습니다. 본쉘은 최초의 유닉스 쉘이었으며 현재 사용하고 있는 유닉스 시스템에서 대부분에서 본쉘을 사용하고 있습니다. 쉘 프로그래밍이 쉬운 반면 다른 쉘보다는 사용자와 상호 작용이 부족합니다.
 C쉘은 본쉘보다 사용자와의 상호작용이 더 좋습니다. C 언어에 익숙한 사용자들이 쉘 프로그래밍을 C언어와 비슷하게 할 수 있지만 쉘 프로그래밍의 인터페이스는 본쉘보다 떨어집니다. 콘쉘은 본쉘과 C쉘의 단점을 제거하여 효율적이고 상호작용과 프로그래밍 인터페이스가 모두 좋은 쉘입니다. 미지 리눅스에서는 사용하는 본쉘(bash)은 콘쉘보다 뛰어난 기능을 가지고 있습니다.
 이처럼 쉘을 구분하는 것은 인터페이스니 쉘 프로그래밍이니 복잡한 단어로 구분되기 때문에 초보자에게는 어렵고 골치 아픈 얘기입니다. 그러나 쉘은 현재 리눅스를 사용하는 환경을 정의하거나 기능을 바꾸는데 밀접한 연관이 되어 있으므로 나중에 리눅스 사용에 자신이 생기면 더 깊이 있게 접해볼 필요성이 있습니다.

 root 폴더에서 숨김 파일들을 볼 수 있도록 [보기(V)-숨김파일 보기]를 체크하고 나서 살펴보면 '.bashrc'와 '.cshrc' 그리고 '.tcshrc'를 볼 수 있습니다. 각각 bash, csh, tcsh을 나타내며 리눅스를 사용하는 환경을 정의하고 있습니다.

 그 중에서 .bashrc 파일의 내용은 다음과 같습니다. 몇가지 알리아스들을 정의하고 있는 것이 보입니다.
 .cshrc 파일의 내용에도 몇가지 alias(알리아스)를 정의하고 있으며 PATH도 정의하고 있습니다

 

④ 쉘 프로그래밍
쉘 프로그래밍은 도스에서 BAT 파일과 같은 역할을 합니다. 도스의 AUTOEXEC.BAT 파일 안에는 부팅할 때 어떤 것들을 실행하고 내부적인 세팅에 사용되는 명령어들을 모아서 한꺼번에 실행하는 것입니다.
 유닉스는 도스보다도 많은 명령어들이 있고 하나의 작업을 하는데 많은 명령어를 일일이 타이핑하는 것은 비효율 적이기 때문에 쉘 프로그래밍으로 대치합니다. 많은 작업들을 처리하려다 보니 일반 프로그래밍에서 사용되는 언어적인 개념까지 도입되어 있습니다.
 리눅스 초보자에게는 복잡한 내용이 될 것이기 때문에 여기에서는 생략하겠습니다. 전문적인 내용을 원하는 독자는 'man' 명령어를 이용하시거나 다른 책을 참고하기 바랍니다.

 

 

바. 리눅스를 쓰려면 어떤 PC로?

 리눅스를 어느 목적으로 사용할 것이냐에 따라 시스템 사양이 달라질 수 있습니다. 개인 PC에서 그냥 맛을 보기 위해서 사용하거나 인터넷이나 기타 게임 등을 한다면 사양이 꼭 좋을 필요는 없습니다. 그러나 웹 서버나 메일 서버 등을 하려면 시스템 사양이 높아야 사용하는데 불편하지 않을 것입니다.
 그냥 사용하는 데는 386 시스템에 8MG 이상이면 설치와 커맨드 상태로 사용이 가능합니다. 그러나 X윈도우를 사용하기 위해서는 펜티엄 급의 CPU와 32M의 램을 갖춘 시스템이 필요합니다. 그렇지 않다면 속도가 너무 느리기 때문에 사용하시는데 상당히 불편함을 느끼시게 될 것입니다. 현재 윈도95나 98을 사용하고 계시는 분들은 별도의 장비 추가없이 그대로 리눅스를 설치해서 사용하실 수 있습니다.

리눅스를 사용하는데 필요한 최소사양과 고급사양을 알아보겠습니다. 최소 사양의 경우 간단하게 쓰기 위해서 필요한 것이고, 고급 사양의 경우 서버나 보다 빠른 성능으로 사용 가능한 시스템입니다. 서버 급은 여러 사람이 동시에 사용할 수 있기 때문에 가능하면 고급 사양이면 더 좋겠습니다.

 그 외에 그래픽 프로그램을 다룰 분은 그래픽 카드를 좋은 것을 사용하구요. 통신을 많이 하시는 분은 고속 모뎀, CD를 많이 굽는 분은 좋은 CDR (CD-Rom Writer)을 갖추면 됩니다.

 

■리눅스를 사용할 수 있는 최소와 고급 사양
      

2. 리눅스 관련 프로젝트

가. GNU GNU는 'Gnu is Not Unix'의 약자로이며 프로젝트 이름입니다. 프로젝트의 내용을 GNU의 공식 홈페이지에서 표현한 것에 따라 설명한다면 다음과 같습니다.
 GNU 프로젝트는 GNU 시스템이라고 불리는 유닉스 형태의 완벽한 자유 운영체제를 개발하기 위해서 1984년부터 시작되었습니다.  즉, 리누스 토발즈에 의해서 최초에 만들어졌고, 이후 GNU 프로젝트의 중심으로 부상한 Linux를 만든 프로젝트 이름인 것입니다. GNU 프로젝트는 '자유 소프트웨어 재단'을 통해서 만들어진 기금과 자원봉사자들의 노력으로 수행되어 졌고, 지금의 리눅스의 모습을 성공적으로 만들어 낸 프로젝트 중 하나입니다.

GNU 프로젝트와 '자유 소프트웨어 재단'을 이해하려면 '리차드 스톨만'을 설명해야 합니다. 현재 스톨만이 가장 많은 관심을 쓰고 있는 부분은 아마존의 특허소송에 대한 불매운동입니다.

리눅스와 GNU를 이해하려면 이 모든 일의 중심에 서 있는 리차드 스톨만의 핵심은 다음과 같습니다(단, 이것은 저자의 개인적인 견해이며 스톨만박사의 사고에 반하거나 생각을 왜곡했다면 스톨만박사의 의사가 우선합니다).
 


 이러한 그의 사고는 자유 소프트웨어 재단으로 확대되었고 GNU를 통해서 지금의 리눅스 만들어지게 된 것입니다.

<참고> 리눅스 유저들이 벌인 아마존 불매운동 불매운동의 배경은 아마존은 인터넷을 통해 책을 판매하면서 사용자들이 손쉽게 활용할 수 있는 다양한 기술을 개발하고 있었습니다.
 예를 들면 한 번 사용자들이 자신에 관한 정보를 입력하면, 반복해서 입력할 필요가 없는 기술 같은 것 등입니다. 그런데 이 기술을 반스 앤 노블(미국 최대 대형서점 체인업체로 아마존의 성공을 보고 인터넷서점 및 상점시장에 진출)이란 대형 서점업체 홈페이지에서 따라하기 시작했습니다.
 이것은 지적재산권 분쟁의 소지를 안고 있었던 사항이었고, 아마존은 강력한 경쟁사였던 반스 앤 노블에 저자권 소송을 벌이게 되었습니다. 이점이 자유 소프트웨어 재단을 자극하게 된 것입니다.
 

아마존이 이 소송에서 승리하게 되면 수많은 인터넷 업체들은 지적재산권분쟁에 휘말릴 것이고, 리눅스와 인터넷의 근간을 삼아온 정보와 지식의 공유라는 큰 틀은 깨지게 되는 것입니다.
 이러한 사항을 고려해서 리차드 스톨만은 인터넷과 리눅스 공동체를 지키기 위해 아마존 불매운동을 벌이게 된 것입니다.

 

※출저: 네이버지식인

댓글 없음:

댓글 쓰기