Linux 개요

bungouk6829·2020년 4월 28일
0

Linux

목록 보기
1/2

리눅스?

리눅스는 멀티유저, 멀티태스킹을 지원하는 유닉스처럼 보이는 운영체제이다. 하지만 리눅스는 유닉스와는 독립적으로 개발되었으므로 유닉스 계열 운영체제가 아니라 유닉스 클론(Clone) 운영체제이다.

리눅스는 핀란드의 리누스 토발즈(Linus Torvalds)에 의해 1991년에 개발되었으며 처음에는 인텔 CPU (80386)를 장착한 피시용으로 개발되었다. 그러나 뛰어난 기능으로 인해 요즈음은 인텔 CPU가 아닌 다른 CPU를 장착한 피시와 워크스테이션에까지 이식되고 있다.

리눅스의 개발 역사는 불과 6년이지만 리눅스는 성능과 안정성에서 몇 배의 개발 역사를 갖고있는 유닉스를 능가한다. 이는 유닉스가 한 회사나 조직 내에서 몇몇 사람에 의해 폐쇄적으로 개발, 유지되는데 비해 리눅스는 인터넷으로 연결된 전 세계의 수많은 자원자들에 의해 개발이 진행되기 때문이다.

리눅스 개발에 수많은 자원자들이 참여하는 이유는 리눅스는 프로그램의 소스를 공개하는 한 누구든지 자유로이 프로그램을 변경하여 유통시킬 수 있는 프리웨어(Freeware)이기 때문이다. 따라서 누구든 리눅스를 자신의 기호나 업무에 맞게 마음대로 바꿀 수 있고, 이에 대해서는 자신의 권리를 주장하지 못하므로, 얼마 후에는 다른 사람들이 여기에 또다른 기능을 추가시켜 내놓는다. 이런 연유로 리눅스는 거의 매달 새로운 기능과 성능 추가가 이루어지고 있다. 리눅스 커늘이나 드라이버, 리눅스용 프로그램에 어떤 버그가 있으면 그 프로그램이 인터넷에 올려진지 몇 시간 길어야 몇일 이내에 버그 패치가 올라온다.

리눅스는 GPL에서 찾아 볼 수 있듯이 Free Software다. Free Software란 , 공짜가 아닌 자유소프트웨어를 칭한다. 여기서의 자유는 "소프트웨어를 자유롭게 사용, 변경, 연구, 배포할 권리"를 뜻한다.

출처 : http://linuxlab.kr/docs/97-10-1.htm

자유 소프트웨어와 오픈소스의 차이점

자유 소프트웨어

자유 소프트웨어 재단의 창립자인 리처드 스톨먼이 1981년에 제창한 운동의 일환으로 시작되었다. 말 그대로 갖다 쓰는 것도 자유, 고쳐서 쓰는 것도 자유, 재배포도 자유, 팔아먹는 것도 자유인 소프트웨어를 의미한다. 조금 빡센 자유 소프트웨어 라이선스들에는 해당 소스를 수정해서 만든 프로그램의 경우 소스 코드를 공개할 의무까지도 포함한다. 소프트웨어의 수정 및 재배포를 위해서는 소스 코드가 있어야 하기 때문에 자유 소프트웨어는 소스를 공개하지만, 오픈 소스이면서 자유 소프트웨어가 아닌 경우도 있기 때문에 둘이 100% 동일하지는 않다.

오픈소스와의 차이점

자유 소프트웨어 운동을 시작한 리처드 스톨먼은 오픈 소스 운동에 반대하였다.
리처드 스톨먼은 미국 지디넷 스티브 보간 니콜스 컬럼니스트에 보낸 메일에서 "오픈 소스란 용어에서 흔한 오류가 나, 나의 일, 혹은 자유 소프트웨어와 연결되고 있다"며 "1998년 오픈 소스 슬로건은 자유 소프트웨어 운동의 철학을 거부한 사람들에 의해 채택됐다"고 밝혔다.
리처드 스톨먼은 "나는 자유의 사상인 자유 소프트웨어를 감추려는 의도기 때문에 오픈 소스를 거부했다"고 강조했다.
리처드 스톨먼은 "우리 자유소프트웨어 운동가들은 바꿀 수 없고 공유할 수 없는 소프트웨어는 잘못된 것이니 자유 반환을 위해 자유로워지자고 말한다"며 "오픈 소스는 단지 '당신이 당신의 코드를 사용자가 변경하게 한다면, 그들은 버그를 고칠 것'이라고 말한다"고 비교했다. 이어 "그게 잘못된 말은 아니지만 더 깊숙한 지점을 짚는 걸 피하는 연약한 것"이라고 덧붙였다.

GNU? GNOME?

GNU란 'GNU는 유닉스가 아니다'(Gnu is Not Unix)를 의미하는 재귀적 약어다. GNU는 유닉스와 완벽하게 호환하는 소프트웨어 시스템이며 사용 가능한 모든 이가 자유롭게 사용할 수 있도록 작성한 것이다.

그놈(GNOME: GNU Network Object Model Environment)은 데스크톱 프로그램 집합의 일종이기도 하며 이를 개발하는 프로젝트의 이름이기도 하다.
컴퓨터 운영 체제의 최상위 계층에서 동작하는 그래픽 사용자 인터페이스로서 완전히 소스 공개 자유 소프트웨어로 이루어져 있으며 프로젝트의 규모는 국제적이다.
GNU 프로젝트의 일부이며 다양한 유닉스 계열 운영 체제에서 사용할 수 있다. 우분투(~10.10), 페도라 등의 기본 데스크톱 환경으로서의 그놈과 솔라리스의 자바 데스크톱 시스템이 대표적이다.
그놈은 본래 GNU/리눅스 데스크톱으로 출발했지만, 현재는 대부분의 유사 유닉스 환경(BSD 류, AIX, IRIX, HP-UX, 솔라리스)에서 동작한다. 썬 마이크로 시스템즈는 또한 자바 데스크톱 시스템이란 이름의 수세 리눅스와 그놈 데스크톱 기반의 기업용 데스크톱을 출시했다. 또한 Cygwin을 통해 마이크로소프트 윈도에서도 사용할 수 있다.
그노픽스, 모픽스, 우분투 리눅스 등 그놈 기반의 라이브 CD도 여럿 있다. 라이브 CD를 이용하면 기존의 운영체제를 지우거나 변경할 필요 없이 CD에서 직접 컴퓨터를 부팅할 수 있다.
또한 그놈은 기본적으로는 C로 작성되었지만 C++, 자바, 루비, C#, 파이썬, 펄 등 많은 언어들에 대한 바인딩이 존재하기 때문에 C를 사용하지 않는 개발자라도 자신에게 맞는 언어로 그놈에서 사용하는 응용 프로그램을 작성할 수 있다.

출처 :http://ko.wikipedia.org/wiki/GNOME

GPL?

GNU General Public License. 줄임말은 GNU GPL 또는 GPL.
자유 소프트웨어 재단(FSF)에서 만든 오픈 소스 소프트웨어를 위한 라이선스다. 리처드 스톨먼이 변호사들과의 협의를 통해서 만들었다고 한다. 현재 버전은 3.0이며, 이와 비슷한 것은 크리에이티브 커먼즈 라이선스 중 CC BY-SA가 있다.[1] 그러나 사용에 대한 전염성 조항 때문에 CC BY-SA보다 제약이 크다. GPL과 GFDL, CC BY-SA는 서로 전혀 호환되지 않는다.

리눅스의 특징

리눅스는 도스나 윈도우와는 달리 진정한 32비트 운영체제이며 멀티태스킹과 멀티유저 기능을 갖고 있다. 윈95나 도스를 쓰는 사람치고 하루에 한 두번 피시를 리부팅 해보지 않은 사람이 드물 것이다. 하지만 리눅스를 몇 달 동안 한번도 끄지 않고 가동해왔다는 이야기는 전혀 자랑이 아니다. 몇 년 씩 말썽없이 사용한 경우가 흔히 있기 때문이다. 필자가 인터넷 서버용(www.linuxlab.co.kr)으로 사용 중인 리눅스(486DX-66)도 하드웨어 교체시나 정전시를 제외하고는 설치한지 2년이된 지금까지 한번도 다운된 적이 없다. 리눅스는 물론 만능은 아니다. 하지만 어느 단일 운영체제도 리눅스만큼 여러면에서 다재다능하지 못하다. 그래도 꼭 리눅스가 다른 운영체제보다 뛰어난 분야를 들라면 아래와 같다.

멀티 플랫폼 (Multiplatform)

리눅스는 모든 인텔 CPU(80386-SX 이상) 및 호환 CPU를 장착한 피시에서 사용 가능하다. 이외에도 모토로라사의 680X0 계열 CPU를 장착한 아미가(Amiga)나 아타리(Atari) 피시, DEC사의 알파시스템, 선(SUN)사의 Sparc과 애플사의 파워피시, MIPS 기종에 이식되었고 그 외의 여러 워크스테이션에 이식이 진행 중이다.

다른 운영체제에 대한 지원

리눅스는 피시에서 사용되는 대부분의 운영체제에 대해 지원 방안이 강구되어있다. 도스나 윈도우95의 파일을 읽거나 쓸 수 있으며 윈95의 8자 이상의 파일이름을 리눅스에서 볼 수 있다. DOSEMU를 쓰면 상당수의 도스 프로그램을 리눅스에서 실행할 수 있다. 윈도우3.1용 프로그램을 리눅스에서 실행시키기 위하여 WINE이라는 프로젝트가 진행중이며 이미 상당한 성과를 보고있다. 도스 파일시스템에 리눅스를 설치하는 것도 가능하므로 도스상태에서 바로 리눅스를 실행할 수 있다.

이외에도 OS/2, 맥킨토시의 파일을 읽을 수 있고, iBCS(Intel Binary Compatibitity Standard)의 포팅이 진행 중 이어서 피시용 유닉스인 SCO, SVR3, SVR4용으로 개발된 상당수의 프로그램이 리눅스에서 바로 실행 가능하다.

네트워킹

리눅스는 네트워크에 관한 한 타의 추종을 불허한다. 컴퓨터에서 구현된 네트워크 기능은 모두 리눅스에 있다고 보면된다. 리눅스는 이더넷(Ethernet), 토큰링(Token Ring), 아크넷(Arcnet) 등 3대 주요 랜 표준을 지원하며 ISDN, FDDI, ATM, X.25, Frame Relay 등의 주요 네트워크 장비를 리눅스에서 사용 가능하다. 리눅스에서 지원하는 네트워크 프로토콜과 네트워크 기능을 들면

 - IPX -  노벨 네트웨어 서버 및 클라이언트
 - Appletalk -  맥피시의 파일 및 프린터서버
 - NetBEUI(SAMBA) - Win95, Windows for Workgroup,
    랜매니저 피시와의 랜 구축
 - TCP/IP - NFS(Network File System) 서버, Telnet, FTP

또 리눅스 피시에 적절한 하드웨어를 결합하면 기존 제품보다 훨씬 저렴한 가격으로 브리지, 라우터, 게이트웨이를 만들 수 있다. 필자도 싱크보드에 리눅스를 써서 라우터를 만든 적이 있다.

인터넷

리눅스는 탄생 단계부터 인터넷을 이용하였으며 모든 개발자들이 거의 인터넷을 통해 정보를 주고 받고 있다. 인터넷이 없었다면 리눅스는 존재하지 않았을지도 모른다. 리눅스 개발자들이 모두 인터넷 사용자들이므로 리눅스가 인터넷의 모든 기능을 지원하는 것은 어쩌면 당연한 일인지도 모른다. 인터넷용 프로그램인 웹브라우저(네트스케이프, 모자익), 메일(pine, elm), 뉴스(tin, nn) 외에도

  -  웹서버 (Apache, CERN, NCSA)
  -  메일서버 (Sendmail, Smail)
  -  뉴스서버 (INND, C-News)
  -  DNS(Domain Name System) 서버
  -  IRC 서버등 유닉스에서 가능한 모든 인터넷서버의 기능을 리눅스에서
     사용할 수 있다.
     인터넷용 시리얼 프로토콜인 PPP, SLIP, CSLIP 등도 지원된다.

전세계의 상당수의 인터넷서비스 제공자(ISP: Internet Service Provider)가 리눅스를 인터넷 서비스에 사용하고 있으며, 이들을 위한 linux.admin.isp라는 뉴스그룹도 있다.

기타

프로그래밍 언어로서 C, C++, PERL, Java 등의 각종 언어를 지원하며 GUI 환경으로 X 윈도우가 있다. 통신용으로는 minicom, kermit, term 등과 여러 BBS 프로그램들이 있다. 아마추어무선에서 데이타통신에 사용하는 AX.25 프로토콜을 지원하기도 한다.

출처: http://linuxlab.kr/docs/97-10-1.htm

리눅스의 종류

리눅스의 종류는 그 용도에 따라 아주 다양하게 있다.

레드햇 계열 리눅스

레드햇 리눅스를 기반으로한 리눅스 운영체제이다. 유료버전, 무료버전 다양하게 존재한다.

CentOS

레드햇 계열이라고 볼 수 있다. 무료 배포판이며 RedHat Enterprise Advanced Server의 클론 버전으로 현재 실무에서 대부분 사용하는 레드햇 복제품이라고 볼 수 있다. 레드햇 패키지를 모두 사용할 수 있고, 안정성이 입증되었다.

Slackware

슬랙웨어는 초창기에 나온 배포판으로 1993년 패트릭 볼커딩이 개발하여 보급하였다. 하지만 현재 슬래웨어는 다른 배포판에 비해 다소 제한되어있는데 가장 큰 이유가 패키지 관리에 있다. 슬랙웨어는 구조가 간결하고 내용을 파악하기 쉬우며 관리도구가 간소하다. 하지만 대부분의 설정이 에디트에서 텍스트파일을 다시 써야하기 때문에 익숙하지 않은 사람에겐 어렵다. 초보자는 선택하지 않는 편이 좋다.

레드햇

1993년 설립된 미국의 리눅스 배포회사다. 리눅스 관련 기업중 가장 지명도가 높다. RPM 이라는 패키지 관리 시스템으로 시스템 관리를 편하게 하였다. 레드햇 리눅스는 레드햇사가 개발하던 리눅스 배포판으로, 유료로 지기술지원을 기업용 레드햇 엔터프라이즈와 페도라 프로젝트에서 개발하고 있는 페도라로 나뉘어 있다.

페도라

레드햇의 공식 후원과 개발 공동체의 지원아래에 개발된 일반적인 목적을 가진 RPM기반의 소프트웨어가 결합된 리눅스이다.

데비안 계열 리눅스

데비안은 자원봉사 모임인 데비안 프로젝트에서 만들어 배포하는 공개 운영체제이다.

우분투

리눅스를 쉽게 사용할 수 있도록 만들어진 배포판이다. 데비안 GNU/Linux 를 기반으로 하고있고, 카노니컬사의 지원을 받고있다. 우분투라는 이름은 남아프리카 반투어에서 유래된말로 "너가 있으니 내가 있다"라는 뜻이다. 일반적으로 6달마다 새로운 버전이 하나씩 나오는데 이것은 GNOME의 새로운 버전이 나오는 시기와 비슷하다. 사용자 편의성에 많은 초점을 맞추고 있다. 우분투는 배포판에 대한 수정, 편집, 재배포가 합법적인 소프트웨어로써, 지금까지 수많은 변형된 배포판이나 공식지원하지 배포판들이 등장했다.

칼리리눅스

백트랙의 후속 버전이다. 백트랙과 마찬가지로 모의 침투 테스트에 필요한 Tool들을 모아놨다. 즉, 해킹 툴이 설치되있는 리눅스이다. 뿐만아니라, 발견한 취약점을 의뢰인에게 보고하기 위한 레포팅 툴 등도 포함되어있다. 백트랙은 운영체제로써 완성도는 타 배포판의 베타정도로 떨어졌지만 Kali에서는 완성도를 끌어올렸다. 해킹툴도 보완했다. 백트랙에서 동작하지 않거나 중복되는 툴들을 제거하고 300개 이상의 침투테스트 툴들을 제공한다. 우분투 기반이던 백트랙과 달리 데비안 기반으로 바뀌었고 데비안 개발기준을 충족한다.

오픈수세

오픈수세는 오픈수세 프로젝트 커뮤니티가 추진하고 있으며, 수세리눅스를 개발하고 유지하는 노벨사의 후원을 받는다. 이는 과거의 "수세 리눅스 프로페셔널"에 상당하는 것으로 노벨이 수세 리눅스를 인수한 이후 커뮤니티에서 개발 과정의 중요한 부분을 맡게 했다. 오픈수세 배포판 외에도, 오픈수세 프로젝트에서는 커뮤니티 참여를 위한 웹 포털을 제공하고 있다. 오픈수세 커뮤니티는 노벨의 대표 개발자들과 함께 오픈수세 빌드 서비스 전체 코드에 기여하며, 문서 작성, 삽화 디자인, 오픈 메일링 리스트와 IRC에서의 토론, 오픈수세 사이트와 위키 인터페이스를 개선하고 있다. 배포판 지원 외에도 오픈수세는 커뮤니티 관계를 위해 웹 포털을 제공하고 있다. 커뮤니티는 코드를 편집하고, 커뮤니티는 문서를 쓰고, 아트워크를 디자인하고, 오픈 메일링 리스트와 IRC를 통해 토론하고, 위키 인터페이스의 오픈수세 사이트를 발전시키고 있다. 대부분의 배포판들과 같이 오픈수세는 기본 그래픽 사용자 인터페이스와 명령 줄 인터페이스를 동시에 포함한다. 설치 중에는 사용자가 원하는 그래픽 사용자 인터페이스(그놈, KDE, XFCE)를 선택할 수 있도록 하였다(텍스트 모드로도 설치 가능). 오픈수세에는 오픈 소스/자유 소프트웨어로 개발한 소프트웨어 꾸러미를 대부분 지원한다.

유닉스?

유닉스 운영체제는 벨 연구소의 연구원인 켄 톰슨(Ken thompson)과 데니스 리치(Deniss Ritchie)의 작품이었다. 그때 켄 톰슨은 우주 여행(Space Travel)이라는 프로그램을 작업 중이었는데 태양계에서 행성의 움직임을 모의 실험하는 프로그램이었다. 이 프로그램은 GE(General Electric)6000 시리즈 컴퓨터에서 실행되었고, 다중 사용자 환경을 처음 제공하는 운영체제 중 하나인 Multics라는 운영체제에서 실행되었다. 그러나 Multics는 부피가 크고 속도는 느리고 상당한 컴퓨터 자원을 요구하였다. 톰슨은 더 작은 컴퓨터를 찾아서 우주여행 프로그램을 옮겼다. 더 작은 컴퓨터는 DEC(Digiral Equipment Corporation)사에서 만든 기계시리즈중 하나인 PDP-7이었다. 이 컴퓨터에서 톰슨은 유닉스(UNIX)라는 새로운 운영체제를 만들었다. 그리고 이 운영체제는 개선된 Multics 개념의 일부를 수용하였다. 다른 운영체제들은 성능이 더 좋거나 나쁜 것들도 있었는데, 유닉스는 이들이 가장 원하는 부분을 결합한 운영체제가 되었다.

유닉스는 1970년에 PDP-11/20에 이식되었고 그 다음에 PDP-11/40, PDP-11/45 그리고 마침내는 PDP-11/70에 이식되었다. 이 기계들은 유닉스가 지원할 수 있는 복잡한 하드웨어들이 점차적으로 추가되는 특징들이 점차적으로 추가되는 특징을 가지고 있었다. 데니스리치와 벨연구소에 있는 사람들은 텍스트 처리기와 같은 유닉스 유틸리티를 계속해서 추가하는 작업을 하였다.

이 당시 유닉스는 대부분의 운영체제처럼, 어셈블리언어로 작성되었다. 어셈블리 언어는 컴퓨터 구조에 의존하는 원시적인 명령의 집합이었다. 어셈블리 언어로 작성된 프로그램들은 기계에 의존적이고 단지 한 컴퓨 터에서만 또는 같은 계열의 컴퓨터에서만 동작된다. 따라서 한 컴퓨터에서 다른 컴퓨터로 유닉스를 이식하는 것은 프로그램을 다시 작성하는 일이 수반되었다.

출처 : http://blog.naver.com/PostView.nhn?blogId=ashly77&logNo=120125895857

유닉스와 리눅스의 차이점

참고자료 : https://pante.blog/481

유닉스의 특징

이식성(Portablility)

C언어의 사용은 유닉스를 이식가능한 운영체제로 만들었다. 오늘날 유닉스 운영체제는 마이크로 컴퓨터에서 슈퍼컴퓨터까지 다양한 범위의 기계에서 동작한다. 이식성은 한 시스템에서 다른 시스템으로 바꾸었을 때 사용자가 배우는 시간을 줄이는데 도움이 된다. 또, 여러하드웨어 판매자들로 부터 좋은 선택을 제공해 준다.

다중 사용자 능력

유닉스에서 여러 사용자들이 동시에 컴퓨터 자원을 공유한다. 사용되는 기계에 따라 유닉스는 백명이상의 사용자를 지원할 수 있고 각 사용자는 서로 다른 프로그램을 실행 할 수 있다. 유닉스는 사용자에게 자신들이 허가권한을 가진 데이터와 프로그램에만 접근을 허용하는 보안대책을 제공한다.

다중 작업 능력

유닉스는 사용자에게 작업을 초기화하고 그 다음 원래 작업이 백그란운드로 실행되는 동안 다른 작업의 수행을 계속하는 것을 허용한다. 유닉스는 또한 사용자에게 작업들 간에 백그라운드와 포그라운드 작업을 교환하는 것을 허가한다.

계층적인 파일 시스템

유닉스의 모든 파일들은 루트(root: /)라고 부르는 하나의 점으로부터 시작해서 검색할 수 있는 나무형구조(tree-structure)를 이루고 있다. 나무형 구조에서 나뭇잎은 파일에 해당 되며, 가지는 디렉토리에 해당된다. 만일 어떤 파일을 찾아 가려면, 루트(/)로부터 정확히 경로를 추적함으로써 찾을 수 있는 계층적 파일 구조를 가지고 있다.

장치 독립적인 입/출력 가능

입력과 출력 동장은 장치에 독립적이다. 왜냐하면 유닉스파일로 모든 장치를 다루기 때문아다.

유닉스에서 사용자는 어떤 장치 또는 파일에 대한 명령의 출력을 재지정(redirect)할 수 있다. 이재지정 처리는 또한 입력데이터와 함께 사용 가능하다. 사용자는 터미널로 들어오는 입력을 디스크로부터 들어오도록 재지정할 수 있다.

사용자 인터페이스: 쉘(shell)

복잡하고 정교한 사용자 인터페이스인 유닉스 쉘은 여러 가지 혁신적이고 좋은 특정들을 제공한다.

사용자는 기존의 명령들을 결합함으로써 새로운 기능을 만들 수 있다. 예를 들어 data ; lp라는 명령은 라인 프린터 상에서 현재 날짜를 출력하기 위한 date와 lp 명령의 결합이다.

쉘 스크립트(shell script) - 많은 데이터 처리 응용이 빈번하게(메일,주 또는 어떤 규칙적인 기간동안) 실행된다. 또 다른 상황에서 명령어 집합을 여러 번 입력되어야 한다. 동일한 명령어 집합을 여러 번 입력하는 것은 귀찮고 실수를 범하기 쉬운 과정이다. 이 어려움을 제거하기 위한 방법은 쉘 스크립트를 작성하는 것이다. 쉐 스크립트는 명령어의 연속으로 구성된 파일이다.

유틸리티

유닉스 시스템은 대규모 프로젝트를 개발할 경우, 필요한 모든 프로그램을 새로 만들어 제공하기 보다는 기존에 있는 작은 유틸리티 프로그램을 조합하여 해결할 수 있는 환경을 만드는데 많은 비중을 두고 개발되엇다. 그리고 유닉스는 프로그래머를 위하여 프로그래머에 의해서 고안되었기 때문에 항상 대화식으로 진행되며, 프로그램 개밭을 효과적으로 수행할 수 있도록 하는 도구를 많이 만드는 데 역점을 두어 왔다. 그러한 도구를 예로 들면 make,SCCS(source code control system) 등이 있는데 이러한 폭넓고 다양한 유틸리티는 매우 큰 프로그램을 관리하고 개발하는데 상당한 도움을 줄뿐만 아니라 개발 시간도 단축시켜 준다.

출처 : http://blog.naver.com/PostView.nhn?blogId=ashly77&logNo=120125895857

profile
개발스터디

0개의 댓글