본문 바로가기

IT/리눅스

리눅스 탄생과 자유정신

제 2장. 리눅스시스템 개론

 

 

 

1. 리눅스 탄생과 자유정신

 

 "리눅스(LINUX)", 이제 우리 생활에 가까이 다가와 있다. 다른 운영체제들이 그러하듯이 리눅스도 이제 우리 생활의 일부분이 되었다 우리나라의 거의 모든 국민들이 인터넷을 사용한다. 그리고 인터넷을 사용하는 사람이라면 Email, 웹사이트 서핑, 검색, 미니홈피 등과 같은 서비스를 이용할 것이고 이런 인터넷 서비스를 이용하는 분이라면 본인도 알지 못하는 사이에 리눅스라는 운영체제를 이용하고 있는 것이다. 이들 인터넷 서비스들이 리눅스라는 운영체제를 기반으로 운용되는 경우가 많기 때문이다. 리눅스를 서버용도로 활요하기 위해서는 공부한다는 것은 인터넷 서비스를 이용하는 클라이언트(Client) 로서가 아니라 서비스를 하는 주체인 서버(Server)로서의 실무적인 기술과 방법들을 익한다는 의미이다.

 

 따라서 앞으로 LINUX 또는 리눅스라고 지칭하는 것은 모두 리눅스 "서버"를 의미하는 것이다.

 

 


 

 

 

1-1. 리눅스의 탄생

 

 리눅스는 1991년 핀란드의 리누즈토발즈 (Linus B. Torvalds)라는 대학생에 의해 제일 처음으로 개발되었다. 리누즈는 자신이 가진 368PC에서 유닉스와 유사한 기능을 가진 운영체제를 개발하기 위하여 자신만의 프로젝트를 진행하여 그 결과물로서 리눅스가 탄생된 것이다. 1991년 10월 5일 리누즈는 리눅스의 첫번째 공식버전인 0.02를 당시 처음으로 발표하였다. 여기서 말하는 리눅스의 버전은 순수 Kernel 버전만을 의미한다. 참고로 0.01버전은 리누즈가 개인적으로 소장하고 있는 버전이었으며 공개하지는 않았다. 이어서 1993년 12월 말쯤엣 0.99p114버전이 발표되었으며 그리고 1994년 리누즈토발즈는 리눅스 커널버전 1.0 정식버전을 발표하게 되었다. 이후 리눅스 커널버전 1.0을 기반으로 한 많은 리눅스 배포판들이 발표되었다.

 

 이어서 1996년 6월 9일에 linux-2.0.tar.gz 가 발표되면서 드디어 현재 우리가 사용하고 있는 리눅스 커널버전 2.0 시대를 맞게 된 것이다. 2.0에서는 멀티프로세스(다중 cpu)를 지원하는 SMP 기능이 장착되었는데 이것은 리눅스가 서버용으로 사용될 수 있는 큰 기틀을 마련하게 된 당시에는 일종의 큰 사건이었다.

 

 


 

 

 

1-2. 리눅스는 공짜 프로그램이다?

 

 리눅스는 흔히 공짜 프로그램이라고 한다. 물론, 리눅스라는 운영체제를 사용함에 있어 아무런 비용부담없이 사용할 수 있는 것으로만 본다면 리눅스는 공짜 프로그램이 맞다. 리눅스를 이용하여 부가가치사업을 해도 리눅스를 사용하는 어떠한 대가를 지불하는 것도 아니다.

 

 하지만 리눅스는 절대 공짜 프로그램이 아니다.

 

 리눅스는 GNU(GNU is not UNIX) GPL 를 따르는 스프트웨어로서 누구나 자유롭게 사용하고 개발에 참여할 수 있으며 리눅스의 개작을 통해 공개된 배포를 할 수도 있는 자유개념을 지닌 자유소프트웨어이다. GNU GPL(General Public License)이란 개발되고 업그레이드되는 소프트웨어들이 소스와 함께 지속적으로 공개될 수 있도록 보장하고 있는 일종의 라이센스 정책이다. 즉 자유롭게 소스를 공유함으로서 "정보의 독식"으로 인하여 유발될 수 있는 여러가지 문제점들과 부작용들을 근절하기 위한 것이다. 이외에도 다름 여러가지 목적들이 있지만 그에 대한 자세한 부분은 GNU 선언문에 잘 나타나 있으므로 참조하기 바라며 한가지 꼭 확인하고 넘어가야하는 것이 있다. 즉 리눅스를 언급할 때 누구나 자유롭게 사용할 수 있는 운영체제라고 얘기한다. 여기서 말하는 "자유"라는 단어에는 두가지가 있다.

 

1. 금전적인 대가를 지불하지 않아도 된다는 의미

2. 모든 구속으로부터 자유롭다는 의미

 

 위의 두가지를 동시에 내포하고 있다는 것을 정확하게 이해해야 한다.

하지만 이부분에서 우리가 잘못 생각하기 쉬운 것이 있다. 공개되어 자유롭게 사용할수 있는 소프트웨어들 가운데 우리가 사용하는 배포판리눅스들에는 상업적인 목적으로 만들어져 함부로 복사 및 유통해서는 안되는 소프트웨어들이 들어있다는 점이다. 흔히 가장 일반적으로 사용하는 레드햇리눅스에는 공개적으로 자유롭게 사용할 수 있는 리눅스 커널과 함께 레드햇사에서 자체 개발한 여러가지 소프트웨어들이 함께 들어가있다. 이들 중 레드햇사에서 자체 개발한 소프트웨어들은 GNU GPL을 따르지 않는 소프트웨어들도 다수 있으므로 이들은 레드햇사의 자체 저작물이며 레드햇사의 라이센스 정책을 따르고 있다. 이부분을 조심해야 한다고 강조하고 있는 것이다.

 

 결국 리눅스가 공짜 프로그램이 아니라는 말의 의미는 리눅스 사용에 있어 어떤 금전적인 대가를 지불한다는 읨가 아니라 자유를 공유할 의무를 가져야한다는 뜻이라는 것을 거듭 강조한다.

 

 


 

 

 

2. 리눅스의 특징

 

 흔히 리눅스는 유닉스를 그대로 본떠 만든 운영체제라고 하면서 유닉스와 거의 동일하다고 말하는 사람들이 있다. 유닉스가 만들어진 시점과 리눅스가 개발된 시점과는 무려 20여년이나 차이가 나기 때문에 그렇게 생각될 수도 있을 것이다. 하지만 리눅스의 개발이 유닉스를 모델로 한 것은 틀림없는 사실이다. 그렇다고 해서 리눅스는 결코 유닉스일 수 없다. 리눅스에는 유닉스에 없는 많은 것들이 있다.

 

 가장 대표적으로는 이식성이 굉장히 높다는 점이다. 유닉스는 하드웨어 특성에 다소 종속되는 운영체제라고 할 수 있다. 예를 들어 sun solaris 는 sun시스템이라는 하드웨어에 가장 적합하도록 개발된 운영체제이고 (현재는 solaris 소스를 공개하였다) AIX는 IBM 시스템이라는 하드웨어용 운영체제로 개발되었기 때문이다. 하지만 리눅스는 웬만한 플랫폼에는 거의 다 설치하여 사용할 수 있다. 우리가 사용하고 있는 pc에도 리눅스를 설치하여 운영할 수 있다. 자, 그럼 이런 리눅스의 특징에는 어떤 것들이 있는지 정리해보자.

 

1. 리눅스는 자유로이 사용할 수 있는 오픈소스 소프트웨어이다.

 

2. 리눅스는 GNU(GNU is not UNIX)를 따르는 자유정신을 표방한다.

 

3. 리눅스는 유닉스(UNIX)를 모델로 개발되었다.

 

4. 리눅스는 강력한 네트워크환경을 제공한다.

 

5. 리눅스는 멀티유저(Multi User), 멀티태스킹(Multi Tasking), 멀티프로세싱(Multi Processing)이 가능한 운영체제이다.

 

6. 리눅스는 인터넷 서버로서의 기능들을 훌륭히 제공한다.

 

7. 리눅스는 서버용 시스템구축에 있어 가장 경제적인 효과를 볼 수 있다.

 

8. 리눅스는 강력한 자체 보안기능을 수행한다.

 

9. 리눅스는 인터넷서비스에 필요한 거의 모든 서비스데몬(어플리케이션)을 포함하고 있다.

 

 

 위에서 열거한 것들이 리눅스를 말할 때 흔히 표현되는 특징이다. 이외에도 리눅스는 굉장히 많은 특징들을 가지고있다.