본문 바로가기
IT

GNU/Linux - 역사 및 특징

by 미니송 2017. 7. 13.


GNU/리눅스


리눅스(linux)에 대한 역사 및 장점에 대해 설명을 하도록 하겠습니다. 많은 분들이 리눅스라는 단어는 많이 들어보셨으리라 생각됩니다. 컴퓨터를 배우지 않더라도 들어봤을 수 있고, 리눅스와 비슷한 유닉스라는 단어는 컴퓨터활용능력시험과 같은 컴퓨터 기초 혹은 컴퓨터의 역사에 대해 설명할 때 빠지지 않고 나오고 있습니다. 이러한 리눅스가 무엇인지에 대해 알아보도록 하겠습니다. 아직 공부 중이라 정확하지 않은 내용이 포함되어 있을 수 있습니다.


역사

리눅스는 1989년 핀란드 헬싱키대학에 재학중이던 리누스 토발스(Linus Tovalds)가 유닉스를 기반으로 개발한 공개용 OS(운영체제), 1991 11월에 공개되면서 확대 보급되기 시작하였습니다. 유닉스(Unix)가 중대형 컴퓨터에서 주로 사용되는 것과는 달리, 리눅스는 워크스테이션이나 개인용 컴퓨터에서 주로 활용하기 위해 만들어 졌다고 합니다. (개인용 컴퓨터, 즉 데스크탑을 위해 개발되었지만 개발자의 생각과는 다르게 현재 마이크로소프트의 윈도우즈가 데스크탑의 약 50%이상을 차지하고 있습니다. 리눅스는 약 2%정도 됩니다.)


GNU "GNU is not Unix"를 줄인 말이다. GNU MIT대학에서 프로그래밍을 전공한 엔지니어 리처드 스톨만(Richard Stallman) GNU 프로젝트를 통해 개발한 유닉스 계열 컴퓨터 운영 체제입니다. 스톨만은 1983년에 상업적인 유닉스(Unix) 운영 체제와 호환되면서도 그와는 차별적인 방식으로 개발될 오픈소스 방식의 프로젝트를 제안했습니다. 스톨만의 이 프로젝트는 1983 9 27일 유즈넷 그룹을 통해 일반에 알려졌습니다. GNU 프로젝트에서는 누구나 자유롭게 "소프트웨어 소스를 실행, 복사, 수정, 배포"할 수 있다. 스톨만은 1985 GNU 프로젝트를 지원하기 위해 자유소프트웨어재단(FSF : Free Software Foundation)을 설립했다.


리눅스는 GNU의 일부로서 이용자와 인터페이스를 담당하는 커널 부분의 프로그램이다. 오픈소스 운동의 일환으로서 FSF의 철학을 적용해 GNU를 일반인이 사용하기 쉽게 개발한 소프트웨어가 리눅스이고, 이것도 오픈소스의 철학을 받아들이고 있다. 1991년 핀란드의 프로그래머 리누스 토발즈(Linus Benedict Torvalds) GNU와 호환되는 리눅스 커널 프로그램 소스를 배포한 후 여러 프로그래머들이 협력해 리눅스를 더욱 발전시켰다. 1992년 리눅스가 GNU 시스템과 통합됨으로써 완전한 공개 운영 체제 GNU/Linux가 탄생하게 되었습니다.

 

장점 및 특징

리눅스의 가장 큰 장점은 오픈 소스코드로 모든 코드가 공개되어 있는 것입니다. GPL(General Public License)라는 소스공개 및 자유로운 이용을 원칙으로 하는 라이센스가 있습니다. 이로 인해 소스 코드를 완전무료로 공개하여 관심 있는 누구든 소스코드를 수정/배포를 할 수 있도록 되어 있습니다. 수정하여 판매해도 되지만 판매한 소스코드조차 오픈소스로 되므로 판매에 의미가 없습니다. (Redhat과 같이 상용소프트웨어와 무료소프트웨어를 따로 공개하는 경우는 있으며, 판매 및 유지보수 비용을 받는 것으로 알고 있습니다.) 


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


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


또한 리눅스는 각종 주변기기에 따라 혹은 사용하는 시스템의 특성에 맞게 소스를 변경할 수 있습니다. 따라서 은행 ATM기기도 안의 운영체제를 보면 Linux를 사용하는 경우가 있습니다. 또한 다양한 리눅스 변종이 출현하고 있습니다. 변종의 종류들은 먼저 계열로 분류를 할 수 있습니다. 가장 유명한 계열로는 레드헷(Redhat), 데비안(Debian), 안드로이드(Android), 아치 리눅스, 슬랙웨어 등으로 구분할 수 있습니다.


데스크탑에서의 점유율은 마이크로소프트에게 밀리고 있지만 리눅스를 기반으로 한 안드로이드의 점유율은 많이 높다고 할 수 있습니다. 조사기관마다 다르지만 안드로이드의 점유율은 약 60%이상인 것으로 나타나고 있습니다. 또한 저 위에 있는 레드헷, 데비안, 아치 리눅스 등의 계열에도 여러가지 배포판들이 존재하고 있습니다. 이 모든것을 여기서 설명할 수 없으므로 나중에 한 개씩 따로 설명하도록 하겠습니다.



GUI/CLI

리눅스의 환경은 거의 CLI 환경으로 동작한다. 이 부분을 단점으로 생각하는 유저들이 많지만, CLI만의 매력이 있기도 하고 매니아층을 형성하고 있습니다.


그렇지만 거의 모든 기능을 GUI(Graphic User Interface)로 구현 가능하고 옵션으로 윈도우 CMD처럼 CLI환경을 제공하는 것입니다. 물론 리눅스 고수들이야 CLI로 시작해서 CLI로 끝내버리고 소스코드로 컴파일하여 모든 것을 해결하며 커널 단까지 제어하는데 막 시작하는 단계에서 여기까지는 꿈일 뿐입니다. 리눅스 하면 CLI를 많이 연상하는 이유는 리눅스의 각종 강좌나 팁이 GUI로 설명하는 것보다 CLI로 설명하는 것이 압도적으로 많기 때문이고, GUI에서 못하거나 어려운 것이 CLI에서 가능한 경우가 의외로 많기 때문입니다.


사실, 리눅스의 쉘은 sh, bash, ksh, csh등 종류도 많고 기능도 다양하여 사용법만 안다면 다량의 파일/디렉토리 관리 시 매우 강력한 UI가 될 수 있지만 이러한 쉘에 대한 설명도 나중에 따로 다루는 것이 낫다고 생각합니다. CLI GUI 모두 써본 결과 개인적으로는 GUI가 편하다는 것을 알 수 있었습니다. 그러나 리눅스 매니아층에서는 CLI로 컨트롤할 수 있는 소위 말해 삽질(?)을 해야 실력이 늘기 때문에 CLI도 연습을 해보도록 하겠습니다.

 

여기까지가 리눅스에 대한 기본적인 설명을 했습니다. 물론 기본정보로 부족할 수도 있지만 어느정도 무엇인지에 대해 이해할 수 있을 것이라고 생각합니다. 기본 바탕을 알고 시작해야 좀 더 접근하기 쉬울 것이라고 생각합니다. 제가 리눅스에 대한 기본정보를 올린 이유는 리눅스에 대한 정보를 올리려고 하는 것도 있지만 집에 있는 라즈베리파이에 대한 설명 및 사용법에 대해서도 포스팅하기 위해서 입니다




§글에 틀린점이 있다면 충분히 수정의 의지가 있으니 고운말로 지적 부탁드립니다. 

댓글