검수요청.png검수요청.png

리눅스

위키원
k8679026 (토론 | 기여)님의 2020년 8월 11일 (화) 22:18 판 (개요)
이동: 둘러보기, 검색
리눅스(Linux)
리눅스(Linux)

리눅스(Linux)는 유닉스(UNIX)를 기반으로 제작한 무료 오픈소스 운영체제(OS)이다. 1991년 11월에 핀란드 헬싱키 대학의 학생이었던 리누스 토르발스(Linus Torvalds)가 컴퓨터 운영체제에서 작동하던 유닉스를 386PC 기종의 개인 컴퓨터에서도 작동할 수 있도록 만들었다. 리눅스는 레드햇 리눅스(RHEL), 센트오에스(CentOS), 우분투(Ubuntu) 등 다양한 배포판이 존재하며 리눅스를 기반으로 안드로이드타이젠 등의 운영체제가 생겼다.

개요

리눅스의 모태가 되는 유닉스는 다중 사용자와 멀티태스킹 기능을 효과적으로 수행할 수 있는 운영체체를 만들기 위한 프로젝트에 참여한 미국 벨 연구소의 켄 톰슨(Ken Tompson)에 의해 1969년에 개발되었다. 그러나 유닉스는 피디피-7(PDP-7) 기종에 맞게 설계된 어셈블리 언어였기 때문에 다른 기종의 컴퓨터에서는 해당기종의 어셈블리 언어를 이용해서 운영체제를 다시 작성해야 한다는 불편함이 있었다. 이러한 문제는 1971년 벨 연구소에서, 상이한 기종간의 이식성을 높이기 위해서 어셈블리 언어가 아닌 새로운 방식의 프로그래밍 언어를 고안하여 해결했다. 마이크로 소프트사의 제닉스와 네덜란드 브리제 대학의 전산과 교수, 앤드루 타넨바움(Andrew S. Tanenbaum)이 만들어낸 미닉스(MIMIX)는 유닉스를 토대로 설계했기때문에 컴퓨터에서 멀티태스팅을 구현하기에 적절한 운영체제였고 학생들에게 소스코드와 함께 무료로 배포되었다. 그 결과 많은 사람들로부터 보다 나은 운영체제로 발전시키기 위한 제안을 받았고, 이 역할을 해낸 사람이 바로 리눅스 창시자인 헬싱키 대학의 리누즈 토발즈(Linus B.Torvalds)이다. 리누즈 토발즈는 유닉스의 커널을 컴퓨터에서 사용가능한 커널로 만들었다. 커널은 운영제체의 핵심으로 모든 작업에 우선하여 작동하는 프로그램으로 인터럽트 처리, 프로세스 관리, 메모리 관리, 파일 시스템 관리, 프로그래밍 인터페이스 제공 등, 운영체제의 기본적인 기능들을 제공하는 핵심부분이였다. 운영체제의 기능 향상은 주로 커널에서 이루어지기에 커널은 리누스 토발즈를 비롯한 수 많은 개발자들에 의해 이루어지고 있었다. 1991년, 리누즈 토발즈에 의해 최초 리눅스 0.01버전이 제작되었을 때 리눅스의 모습은 하드디스크 드라이버와 파일 시스템 뿐 이었으며 그 기능 또한 아주 미약했다. 때문에 0.01 버전은 발표되지도 않았으며, 최초로 공개된 0.02 버전을 통해 배쉬(bash)를 기반으로한 'gnu-make', 'gcc', 'compress' 등을 실행 할 수 있을 정도로 발전 했지만 이때까지도 리눅스는 교육용 이상을 가치를 갖지 못하는 단순한 형태였다. 이후 인터넷의 수많은 개발자들의 관심을 받아 코드 및 버그 수정을 통해 이때부터 리눅스는 발전하기 시작했다.

https://blueserene.tistory.com/211

역사

1984년도

공개 및 공유되어 왔던 소프트웨어 소스코드가 완전히 사유화, 제품화, 상품화되었다. 모든 소스를 공개하고 공유해서 개발해 왔던 MIT 연구소의 유닉스(UNIX) 개발자였던 리차드스토만은 유닉스가 기업의 수익을 위한 상품화된 것에 회의를 느끼게 되었으며 MIT의 리차드스톨만은 "소프트웨어는 공유되어야 한다" 라는 소신을 가지고 그 뜻을 실현하기 위하여 1984년 1월에 GNU 프로젝트를 시작했다. 프로젝트를 시작하면서 약 13년간 근무했던 MIT 연구소를 그만두고 이때부터 자유소프트웨어 운동을 시작했다. 이후 리차드스톨만은 소프트웨어의 소스코드 공개와 공유를 실현하기 위한 자유소프트웨어 운동을 전개하기 위하여 자유소프트웨어에 채택하기 위한 GNU 라이센스 개발에 착수하게 되었다.

1991년

핀란드 헬싱키대학의 학생이었던 리누즈토발즈는 자신의 386PC 에서 당시 유닉스와 유사한 기능을 가진 운영체제를 개발하기 시작했고 그 결과물로서 1991년 10월 5일 리누즈토발즈는 리눅스 커널의 첫번째 공식버전인 0.02(linux kernel)를 당시 처음으로 뉴스그룹에 발표했다. 이것이 현재의 리눅스로 발전하게 된 본격적인 계기가 되었다. 그리고 0.02 버전에는 GPL 라이센스가 채택되었다. 리눅스 커널소스가 공개된이 시점 이후부터 리눅스는 리누즈토발즈의 개인 프로젝트가 아닌 수많은 개발자들이 공동으로 개발하는 공개프로젝트로 진행되기 시작했다. 리눅스 커널의 이런 공개프로젝트로의 개발방식은 리차드 스톨만이 진행하고 있던 자유소프트웨어운동 즉 GNU 프로젝트가 그 기반이 되었다는 매우 큰 의미를 가진다.

1993~1997년

1993년 12월말경에 리눅스커널 0.99 버전이 발표되었으며, 이와 거의 동시에 아파치 웹서버 프로젝트(Apache WebServer Project)가 시작되었다. 리눅스커널 1.0 정식버전이 공식적으로 발표되고 이때부터 리눅스커널 1.0 버전을 기반으로한 많은 배포판들이 나오게 되었다. 1994년, 리눅스커널 1.0을 기반으로한 리눅스배포판을 개발하기 위해 레드햇(Redhat)이 설립하게 되었다. 1996년 6월 9일, 리눅스커널 2.0 버전을 공식적으로 발표했다. 리눅스커널 2.0의 가장 큰 특징은 SMP 기능으로 당시 한개의 프로세서만을 사용할 수 있었던 리눅스에 다중프로세서를 장착하여 사용할 수 있는 계기가 되었고 이것은 리눅스가 PC 뿐아니라 서버용으로 그 가능성을 가지게 되었다. 1997년 3월, 에릭레이몬드(Eric Raymond)가 "성당과 시장" 이라는 논문을 발표했다. 그리고 이구엘 드 이카자가 이끌고 레드헷이 후원하는 지놈(GNOME) 데스크탑 프로젝트가 시작되었다.

1998~2007년

오픈소스(Opensource)라는 용어가 탄생되어 사용되었다. 이때까지는 자유소프트웨어라는 용어를 사용했으나 "자유" 라는 용어에 한계를 느낀 에릭레이몬드를 주축으로 한 오픈소스 운동가들에 의해 "자유소프트웨어" 라는 용어 대신 "오픈소스 소프트웨어" 라는 용어를 사용하게 되었다. 넷스케이프사가 에릭레이몬드의 논리를 수용하여 당시 인기있었던 웹브라우저인 커뮤니케이터(Communicator)의 소스코드를 공개한다고 발표했다. 1999년, 2001년에 각각 리눅스커널 2.2버전과 2.4 버전이 발표되었다. 2.4 버전에는 리눅스에서 사용가능한 프로세스가 16개까지 확장했으며 당시 IBM, SUN, HP 등이 주축이던 엔트프라이즈급 대형 시스템에도 리눅스가 사용될 수 있다는 것을 입증했다. 2003년, 리눅스커널 2.6 버전이 발표되었다. 아울러 리눅스가 대형 엔트프라이즈급 시스템에서도 본격적으로 사용하게 되었다. 2007년, 많은 논의 토론끝에 GPL3 정식버전이 발표되었다. 오픈소스 라이센스의 종류에는 약 50여가지 이상이 있으며 어떤 라이센스를 채택할 것인가는 오픈소스를 처음 개발했던 개발자나 단체에서 결정하게 된다. 하지만 GPL 1과 GPL2, 그리고 GPL3는 가장 대표적인 오픈소스 소프트웨어의 공식적인 라이센스로서 가장 많은 오픈 소스들이 GPL을 라이센스로 채택하고 있으며 이후 다양한 분야에 리눅스가 도입이 되고 있다.


출처: https://12bme.tistory.com/220 [길은 가면, 뒤에 있다.]

종류

블록라인.png
이 그림에 대한 정보
데비안 로고.png
데비안
레드햇 로고.png
레드햇 리눅스
붉은별 로고.png
붉은별
센트오에스 로고.png
센트오에스
엑스윈도우 로고.png
엑스윈도우
우분투 로고.png
우분투
페도라 로고.png
페도라
  • 데비안(Debian) : 이안 머독이 개발한 오픈소스 기반의 리눅스 운영체제이다. 데비안을 기반으로 우분투가 개발되었다.
  • 레드햇 리눅스(RHEL) : 미국 레드햇이 만든 기업용 리눅스 운영체제이다. 무료 오픈소스이지만 기술지원은 유료로 제공되고 있다.
  • 붉은별(Red Star) : 북한의 조선콤퓨터중심(KCC)이 개발한 리눅스 기반의 운영체제이다. 페도라 리눅스를 참조하여 개발했다.
  • 센트오에스(CentOS) : 레드햇 리눅스(RHEL)와 호환되는 오픈소스 기반의 무료 운영체제이다. '센토스'라고 읽기도 한다. 레드햇 리눅스를 포크하여 Red Hat 상표만 삭제하고 다시 컴파일하여 만든 리눅스 제품으로서, 레드햇 리눅스와 사실상 동일하게 작동한다. 다만 미국 레드햇 회사의 유료 기술지원을 받을 수 없다.
  • 엑스윈도우(X Window) : 1984년 미국 매사추세츠 공과대학교(MIT)에서 개발한 리눅스 계열의 운영체제이다. GUI 기반의 화려한 그래픽을 사용한다. 'X11' 또는 'X'라고도 한다.
  • 우분투(Ubuntu) : 남아프리카공화국 출신의 영국인인 마크 셔틀워스가 개발한 오픈소스 기반의 리눅스 운영체제이다. 우분투는 남아프리카의 반투어로 "네가 있기에 내가 있다"는 뜻으로서 '다른 사람에 대한 인간적 배려'를 의미한다. 기존의 데비안포크하여 개발했다.
  • 페도라(Fedora) : 오픈소스 기반의 리눅스 운영체제이다. 페도라를 기반으로 레드햇 리눅스가 개발되었다.


현재

상당수의 웹서버와 모바일 장치(안드로이드, 미고 등…)를 구동하는 운영체제이다. 데스크탑 시장과는 반대의 상황이다. 모바일 시장에서 안드로이드의 압도적인 위상이야 말할 필요가 없을 정도이고, 가정용 공유기의 운영체제의 대부분이 리눅스를 기반으로 해서 한다. 공유기 외의 많은 임베디드 장비에도 리눅스가 들어가고 있다. 심지어 윈도우 10에서는 Windows Subsystem for Linux라는 이름으로 윈도우 커널 내부에 리눅스가 다이렉트로 탑재되기까지 했다. 현재 마이크로소프트 스토어에서는 우분투, 데비안, openSUSE, SUSE Enterprise, 칼리 리눅스가 제공되고 있다. 여담이지만 리눅스 개발자인 리누스 토르발스레드햇 등의 리눅스 관련 회사들이 감사의 의미로 주식을 조금 줬는데 그 덕에 부자가 되었다. 일단 죽을 때까지는 딱히 돈 걱정은 없을 듯하다. [1]

특징

  • 다중 사용자 및 다중 처리 시스템 : 하나의 시스템에 다수의 사용자들의 동시에 접속하여 사용할 수 있고, Multi-user, 각 접속자들은 다수의 응용 프로그램을 실행할 수 있다.
  • 완전히 공개된 시스템 : 운영체제의 핵심 커널 뿐만 아니라, 같이 내장되어 배포되는 응용 프로그램이 소스가 공개된 프로그램 이다.
  • 뛰어난 네트워크 환경 : 가장 널리 쓰이는 이더넷, SLIP, PPP, ATM 등의 다양한 네트워크 환경을 지원하며, TCP/IP, IPX, Appletalk 등 대부분의 네트워크 프로토콜을 지원한다.
  • 다양한 파일 시스템 지원 : 리눅스는 프로그램과 자료를 저장하기 위해 리눅스 고유의 파일 시스템인 ex2,ex3,ex4등을 지원하게 된다.
  • 뛰어난 이식성 :리눅스는 약간의 어셈블리와 대부분의 c언어로 작성되어 있다. 따라서 c를 컴파일 할 수 있으면 어셈블리 부분만 새롭게 만들고 c부분을 다시 컴파일함 으로써 쉽게 다시 시스템에 이식할 수 있다.
  • 유연성과 확장성 :리눅스는 상업용 유닉스(UNIX)의 모든 특성을 가지고 있으며, 유닉스의 표준인 포직스(POSIX)를 준수하고 있다.
  • 뛰어난 안정성과 보안성 : 리눅스는 커널 소스가 공개되어 있어서 WINDOWS와 같은 패쇄형 운영체제에 비해 보안상의 취약점이 쉽게 노출된 가능성이 있으나, 공개용 소프트웨어를 지지하는 수많은 전문 프로그래머들이 상용 운영체제보다 빠르게 오류 수정과 보안 관련된 패치를 발표하고 있다.
  • 우수한 가격대 성능비 :기업환경에서 서버로 사용되는 유닉스를X86 시스템에 최적화 시켜 효율적인 방식으로 설계하였기 때문에 PC급 서버에서도 엔터프라이즈 급의 성능을 발휘할 수 있다.
  • 다양한 응용 프로그램의 제공 :리눅스에서 운영체제의 핵심인 커널을 비롯하여 다양한 응용 프로그램을 제공한다.
  • 다양한 배포판의 존재 :리눅스 서버,개인용,PC용 등 다양한 목적으로 사용 가능하고, 이에 따른 다양한 배포판이 존재한다. 국외에는 레드헷, 데미안, 우분투, 수세 등이 있고, 국내에는 한컴 리눅스,SULinux 등이 있다. [2]

활용

리눅스는 서버 운영체제의 유닉스를 기반으로 탄생하였고, 리눅스가 탄생한 년도에는 데스크톱보다는 서버가 대를 이루는 시기였기 때문에 초기에는 주로 서버로 이용되었다. 그러나, 비용 부담이 없고 소스가 공개된 자유 소프트웨어라는 점이 아주 이점이 되었다. 현 리눅스 활용분야는 서버, 데스크톱개발, 임베디드 분야로 나눠지고 있다. 리눅스는 전통적인 서버 및 데스크톱 분야 뿐만 아니라 모바일 기기, 자동차, 가전기기 등 다양한 분야에 활용되 클라우드 컴퓨팅 인프라 구축빅데이터사물인터넷 환경에서도 중추적인 역할을 수행할 것으로 보여진다.[3]

문제점과 대안

  • 기술지원의 부족 : 리눅스에서 사용되는 대부분의 응용 프로그램들이 비상업적인 제품이다. 따라서 전 세계에 흩어져 있는 개발자들이 일일이 기술지원을 하는 것이 불가능하다.
  • 특정 하드웨어에 대한 지원이 부족 : 리눅스가 다른 운영체제에 비해 이식성, 확장성 등이 뛰어나지만 특정한 하드웨어 설치가 어렵고 모든 플랫폼 에서 작동하지는 않는다.
  • 사용자의 숙련도나 기술이 요구 : 리눅스에서 Windows기반 환경이 보편화 되면서 초기 텍스트 기반의 명령어를 입력하는 환경에 비해 쉬워 졌지만, 아직도 중요한 설정 명령어를 입력하거나 관련 환경 설정 파일을 편집을 사용해서 수정해야 한다. 다른 운영체제에 비해 사용자의 숙련된 기술이 요구된다. [2]

평가와 전망

IoT, 클라우드 기술, 슈퍼컴퓨터, AI를 지배하고 있는 리눅스는 상당한 가속도로 증가 하고 있다. 최소형 기기부터 가장 강력한 슈퍼컴퓨터까지 리눅스는 앞으로 그 어느 때보다도 중요성이 더해질 것이다.

각주

  1. 인용 오류: <ref> 태그가 잘못되었습니다; .EB.A6.AC.EB.88.85.EC.8A.A4라는 이름을 가진 주석에 제공한 텍스트가 없습니다
  2. 2.0 2.1 ITmaker, 〈리눅스의 특징〉, 《네이버 블로그》, 2019-07-14
  3. ITmaker, 〈리눅스 활용분야〉 , 《네이버블로그》 , 2019-07-22

참고 자료

같이 보기


  검수요청.png검수요청.png 이 리눅스 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.