1991년에 핀란드의 대학생 리누스 토발스(Linus Torvalds)는 ‘리눅스’라고 이름지은 운영체제 커널을 개발하기 시작하였다. 리눅스라는 이름도 재밌게도 ‘Linux Is Not UniX’의 글자들을 딴 것이다. (GNU와 유사한 일종의 말장난) 이 커널은 자유로이 수정될 수 있고 매우 유용한 운영체제를 만들기 위해 FSF 산물과 다른 컴포넌트들 (특히 BSD 컴포넌트들의 일부와 MIT 의 X 윈도우 소프트웨어)과 병합될 수 있었다.


[그림 1] 리누스 토발스


 근래에 들어서는 쉬운 설치, 보다 많은 하드웨어 지원, KDE나 GNOME같은 GUI 데스크탑까지 지원 함으로서 일반 컴퓨터에 익숙한 사용자들이 집에서 PC에 설치 하기에도 무리가 없다.


 리눅스 공동체의 여러 조직들은 사용할 수 있는 컴포넌트들을 다르게 조합하였는데 각 조합은 ‘배포판’으로 부른다. 널리 알려진 배포판으로는 데비안(Debian), 우분투(ubuntu), 민트(mint),  레드햇(Red Hat), 페도라 등등이 있다. 인터넷으로 접속하는 많은 서버들의 운영체제가 리눅스이고 안드로이드와 같은 운영체제 역시  리눅스 기반으로 만들어졌으므로 리눅스는 우리 생활 전반에 보이지 않게 사용되고 있다고 할 수 있다.



[그림 2] 리눅스 배포판의 종류들


 리눅스의 특징은 다음과 같다.


  • 다중  플랫폼 지원. (인텔CPU, ARM, Sun Sparc, PowerPC 등)

  • 다양한 하드웨어 장치 지원.

  • 이식성이 뛰어남. (C언어 기반으로 프로그래밍과 포팅이 용이)

  • 다중 사용자(multi-user)가 동시에 사용할 수 있는 환경 제공.

  • 다중 작업(multi-tasking) 환경 제공.

  • 트리 형태의 계층적으로 구성된 파일 시스템.

  • 풍부한 소프트웨어 개발환경 제공 - 거의 모든 프로그래밍 언어 지원.

  • 강력한 네트워킹 기능 제공.

  • 오픈소스이고 무료로 제공되어 사용하는데 아무런 제한이 없다.


특히 리눅스는 서버(server) 영역과 임베디드(embedded) 시스템 영역에서 막강한 영향력을 가지며 모바일 운영체제와 최근에는 데스크탑 운영체제로도 주목을 받고 있다. 개인 PC용으로는 우분투(ubuntu)와 민트(Mint)가 널리 알려져 있으며  소형 임베디드 시스템에서 상대적으로 가벼운 데비안(Debian)이 많이 사용된다.


 Linux는 이미 검증받은 안정성으로 인하여 PC, 서버, 모바일기기 등의 OS로 널리 사용되고 있으나 초보자들이나 혹은 윈도같은 특정 GUI환경에만 익숙한 사용자들이 진입하기에는 다소 어렵게 느껴질 수 있다.


리눅스 강좌 전체 목록 >>>


c{linux},n{ln0004}

'맥,리눅스,윈도' 카테고리의 다른 글

리눅스의 파일 시스템  (0) 2015.05.16
리눅스의 커널(kernel)과 쉘(shell)  (0) 2015.05.16
자유 소프트웨어 재단 (FSF)의 설립  (0) 2015.05.16
유닉스(unix) 소개  (1) 2015.05.16
운영체제 개요  (0) 2015.05.16
Posted by 살레시오
,

 스톨만(R. Stallman)은 1971년 MIT 인공지능연구소 연구원 시절 처음으로 소프트웨어를 접했다. 그가 속한 연구팀은 PDP-10 이라는 컴퓨터에서 동작하는 시분할 운영체제(OS)를 어셈블리어로 개발했다. 그 당시만 해도 누구나 그 OS의 소스코드를 얻을 수 있었으며 수정하여 사용하는데 제약이 없었다.


 하지만 이후에 컴퓨터 제작사에서 제공하는 새로운 운영 체제를 사용하는데 있어서 이러한 자유는 더이상 허락되지 않았다. 상업적인 회사가 제공하는 하드웨어를 작동시키는 소프트웨어를 사용하는데 있어서 그 소스 코드를 보거나 수정할 수 없으며 그러한 일을 하지 않겠다는 합의서(비밀 유지 합의서)에 서명을 해야만 했다. 특히 같은 연구소에서 교류를 하던 연구원들이 심볼릭스(symbolics)라는 회사를 차리고 기존의 자유 소프트웨어를 그들만의 독점 소프트웨어로 바꾸는 작업을 적극적으로 시도했다.


 결국 1985년 3월에 스톨만은 ‘GNU 선언문’을 발표했다. GNU(그뉴)란 `GNU는 유닉스가 아니다'를 의미하는 영어 표현인 `Gnu is Not Unix'를 구성하는 단어들의 첫자를 따서 만든 약어이다. GNU는 유닉스와 완벽하게 호환되는 소프트웨어 시스템의 이름이며, 원하는 모든 사람이 자유롭게 사용할 수 있도록 만들어진 것이다. 이는 유닉스에 대항하여 자유로운 대안을 만들기 위한 스톨만의 의지와 동기를 역설한 것이다.


FSF의 창시자 Richard Stallman


 그리고 얼마 후 그는 비영리 기과인 자유 소프트웨어 재단(FSF)를 설립했다.  1989년에는 ‘일반 공동 사용 허가서(GPL)’ 내에 카피레프트(copyleft)의 개념을 적용하였다. GPL은 가장 널리 알려진 강한 카피레프트 사용 허가이며, 이 허가를 가진 프로그램을 사용하여 새로운 프로그램을 만들게 되면 파생된 프로그램 역시 같은 카피레프트를 가져야 한다. 이러한 철학에서 GPL은 컴퓨터 프로그램을 이용하는 사람에게 자유 소프트웨어의 권한을 누리며 카피레프트를 사용함으로써 그러한 자유가 보전되고, 심지어는 그러한 작업이 변형되거나 추가될 수도 있는 자유마저 있다.


카피레프트(copyleft)란 독점적인 의미의 저작권(copyright)에 반대되는 개념이며, 저작권에 기반을 둔 사용 제한이 아니라 저작권을 기반으로 한 정보의 공유를 위한 조치이다. 카피레프트를 주장하는 사람들은 보통, 지식과 정보는 소수에게 독점되어서는 안 되며, 모든 사람에게 열려 있어야 한다고 주장한다. 카피레프트는 정보를 사용할 권리를 2차저작물의 저작자에게 전달하며, 또 이러한 권리의 전달을 막지 않을 것을 주요 요건으로 삼고 있다.



 스톨먼은 자유로이 사용될 수 있고, 읽혀질 수 있고, 수정될 수 있고, 재배포될 수 있는 소프트웨어의 의미로 ‘free’를 사용했다. FSF는 C컴파일러(gcc), 텍스트 에디터 (emacs)와 많은 기본적인 도구를 포함해 엄청나게 많은 유용한 컴포넌트들을 성공적으로 구축하였다.


 그러나 1990년대 FSF는 OS 커널을 개발하는데 어려움을 겪었으며 커널이 없다면 그들의 나머지 소프트웨어들은 소용이 없었을 것이다. (커널 - 쉘이나 응용프로그램에 기본적인 서비스를 제공하는 OS의 핵심적인 부분)





'맥,리눅스,윈도' 카테고리의 다른 글

리눅스의 파일 시스템  (0) 2015.05.16
리눅스의 커널(kernel)과 쉘(shell)  (0) 2015.05.16
리눅스(Linux) 소개  (0) 2015.05.16
유닉스(unix) 소개  (1) 2015.05.16
운영체제 개요  (0) 2015.05.16
Posted by 살레시오
,

유닉스(UNIX)에 대해서 이해하기 전에 40여년 전의 시간으로 돌아가서 그 시대의 기술에 대해서 알아볼 필요가 있다. 그 시대의 컴퓨터는 집을 꽉 채우거나 심하면 운동 경기장만한 크기를 가지고 있었다. 크기보다 더 큰 문제는 컴퓨터마다 운영체제(OS)가 달랐다는 점이다. 특정 시스템에서 돌아가는 소프트웨어는 반드시 커스터마이즈 과정을 거쳐야 했으며 한 시스템에서 돌아가는 프로그램은 다른 시스템에서는 동작하지 않았다. 또한 어떤 시스템으로 작업을 수행할 수 있는 기술자가 다른 시스템을 다룰 수 있는 것이 아니었다.


또한 컴퓨터는 굉장히 고가의 기기였으며 한 시스템을 구입하여 사용자들이 작동법을 익혔다 하더라도 추가적인 비용이 드는 구조였다. 컴퓨팅 파워를 사용하기 위해서는 막대한 비용이 소요되었다. 기술적으로 진보가 이루어지지 않았으므로 그러한 사이즈의 컴퓨터를 가지고 작업을 이후로도 십 몇년 동안이나 더 해야만 했었다.


 그러던 중 1969년에 AT&T의 Bell 연구소에 근무하는 데니스리치(Dennis Ritchie)를 포함한 기술자팀이 이러한 호환성 문제를 해결하기 위해서 작업을 시작하였다. 이들은 MULTICS라는 운영 체제(1964년에 개발된 시분할 개념을 도입한 초기 운영 체제)의 여러 개념을 구현해 보기 위해 켄톰슨(Ken Thomson)과 함께 PDP-7이라는 컴퓨터 시스템을 이용하여 새로운 운영 체제를 만들기 시작하였다.



[그림 1] Dennis Ritchie with the PDP-7


이들이 개발하는 운영체제는 다음과 같은 사항들을 지향했다.


  1. 간결하면서도 명쾌하다.

  2. 어셈블리어 대신 C언어로 작성한다.

  3. 코드를 재사용할 수 있어야 한다.


벨연구소 개발자들은 그들의 프로젝트를 “UNIX”라고 명명했으며 1972년에 PDP-11/45기종으로 초기의 유닉스를 이식하면서 OS를 C 언어로 다시 작성하였다.


코드의 재사용성은 매우 중요한 개념이다. 그 당시 시판되는 모든 컴퓨터 시스템들은 그 시스템에서만 사용되는 프로그램을 이용하였다. 반면 유닉스는 커널(kernel)이라고 불리는 작은 부분의 시스템 적용 코드만 요구되었다. 유닉스 운영 체제와 모든 기능들은 이러한 커널 위에 구축되었으며 고수준 언어인 C언어로 개발되었다. C언어 자체가 유닉스 시스템을 개발하기 위한 목적으로 만들어졌다. 이러한 새로운 기술로 인해 서로 다른 컴퓨터 시스템을 동작시키는 운영 체제가 훨씬 더 용이하게 만들어 질 수 있었다. 더불어서 C언어도 대표적인 프로그래밍 언어로 자리매김되었다. 그리고 1979년에 유닉스 7번째 버전 V7 이 발표되었으며 이는 모든 현존하는 유닉스 시스템의 대부격이 되었다.


소프트웨어 판매사들은 이러한 신기술을 재빨리 채용하여 추가적인 노력없이도 열 배 이상의 소프트웨어를 팔아치울 수 있었다. 사용자는 시스템이 바뀌어도 추가적인 교육이나 노력없이도 작업을 계속할 수 있었다. 유닉스는 서로 다른 기종에 같은 사용자 환경을 성공적으로 제공하였다.


그 다음 20여년이 지나는 동안에도 유닉스 개발은 계속되었다. 다양한 기능이 추가되었고 하드웨어나 소프트웨어 판매사들은 그들의 제품에 유닉스를 지원하게 되었다. 초창기에는 유닉스는 메인프레임(mainframe)이나 미니컴퓨터(minicomputer - 서버나 워크스테이션)에 적용되었다. (여기서의 미니컴퓨터는 중소형 시스템을 지칭하는 것이고 현재의 PC는 마이크로컴퓨터에 해당된다.) 일반인이 유닉스 시스템을 접하려면 대학 연구소에서 일하던가 정부 기관이나 대형 금융회사 같은 곳에서 일을 해야만 했다.


 유닉스가 유명해지자 유닉스를 모방한 많은 운영체제들이 나타났는데, 이들을 표준화하기 위해 POSIX라는 표준이 등장했다. POSIX 표준을 만족하는 것들을 유닉스 계열 운영체제라고 한다. 리눅스, Mac OS X가 대표적인 유닉스 계열 운영체제이다. 대부분의 리눅스 배포판들은 POSIX의 거의 모든 상세스펙을 따르고 있다.


소형 컴퓨터들이 그 이후에 개발되었으며 80년대 후반에는 많은 사람들이 가정용 컴퓨터(PC)를 갖게 되었다. 그 시점에서는 PC를 위한 몇몇 유닉스가 있었지만 무료로 자유롭게 사용할 수 있는 운영 체제는 없었고 속도가 매우 느렸다. 그래서 많은 이들인 MS DOS 나 윈도우즈3.1 을 사용하였다.





'맥,리눅스,윈도' 카테고리의 다른 글

리눅스의 파일 시스템  (0) 2015.05.16
리눅스의 커널(kernel)과 쉘(shell)  (0) 2015.05.16
리눅스(Linux) 소개  (0) 2015.05.16
자유 소프트웨어 재단 (FSF)의 설립  (0) 2015.05.16
운영체제 개요  (0) 2015.05.16
Posted by 살레시오
,