본문 바로가기
정리/시스템

리눅스의 개요

by 정재희 2017. 10. 5.



1. 리눅스란?

리눅스는 유닉스(Unix) 운영체제를 모델로 만든 운영체제입니다. 운영체제는 여러가지 프로그램의 모음으로, 이 프로그램을 이용해 컴퓨터를 사용하고 다른 프로그램을 실행하기도 합니다.

운영체제는 컴퓨터에 필요한 여러 가지 기초적인 프로그램으로 구성되어 있고, 이 프로그램을 이용해 사용자는 컴퓨터와 의사소통을 하고 컴퓨터에 지시를 내립니다. 예를 들어 하드 디스크, 테이프, 프린터로 데이터를 보내거나 여기에서 데이터를 읽어들이며, 메모리 사용을 제어하고, 다른 프로그램을 실행합니다. 

운영체제의 가장 중요한 부분이 바로 커널입니다, GNU/리눅스 시스템에서 리눅스는 커널 부분을 말합니다. 시스템의 나머지 부분은 기타 프로그램으로 구성되며, GNU 프로젝트가 많은 부분을 개발했습니다. 리눅스 커널 그 자체만으로는 시스템을 구성할 수 없기 때문에, 우리는 흔히 리눅스라고 호칭하는 시스템을 GNU/리눅스라는 이름으로 사용하며 어느 누구도 리눅스를 소유하지 않습니다. 자원자의 힘으로 리눅스의 상당 부분을 개발했습니다.

리눅스 커널은 리누스 토발즈라는(Linus Torvalds) 핀란드의 한 컴퓨터 과학 대학생이 1991년 유즈넷 뉴스그룹 comp.os.minix에 미닉스(Minix)를 대체하는 커널의 초기 버전을 발표하면서 처음으로 그 모습을 세상에 드러냈습니다. 

또한 리눅스는 여타 운영체제에 비해 시스템이 멈추는 경우가 적고, 동시에 둘 이상의 프로그램을 실행하는 성능이 월등하고, 보안에 강합니다. 리눅스는 서버 시장에서 가장 성장이 빠른 운영체제입니다. 최근에 리눅스는 가정과 업무용 사용자에게도 퍼져 나가고 있습니다.


※참고

GNU 프로젝트

2. 리눅스 배포판

리눅스 배포판은 매우 다양해 기업 서버용으로 적당한 배포판을 고르기가 쉽지 않습니다. 기업마다 기술지원을 받은 제품이 필요하기도 하고 무료 버전이 더 적합한 경우도 있습니다. 클라우드 지원하거나 가상화를 지원해야 하는 경우도 있습니다.

흔히 사람들이 익숙하게 알고 있는 리눅스는 몇 가지 없습니다. 국내에서는 주로 레드햇 사의 레드햇 엔터프라이즈 리눅스(RHEL)와 계보를 같이하는 페도라(Fedora), 센트OS(CentOS)가 있으며, 데비안으로 부터 파생된 우분투(ubuntu), 민트(Mint)가 있습니다. 그리고 스마트폰에 탑재되는 안드로이드(Android)도 있습니다. 세계적으로 보자면 Slackware와 OpenSUSE 등의 또 다른 인기 배포판도 있습니다.

- Red Hat 계열 : Redhat, Fedora, CentOS 등

- Debian 계열 : Debian, Ubuntu 등

- Slackware 계열 : Slackware, SuSE


※ 참고

리눅스 배포판 선택, 고민되시나요?


2.1 RHEL (Redhat Enterprise Linux)

레드햇은 원래 Redhat linux를 시작으로 하였으나 대형 고객사와 커뮤니티 사용자들의 요구에 차이가 있기 시작하면서 RHEL과 Fedora를 따로 만들게 됩니다. 현재 레드햇은 페도라에서 충분한 검증을 거쳐 RHEL에 적용하여 안정적인 버전을 만들고 있습니다.

 RHEL은 다른 리눅스 배포판과 달리 돈을 지급해야 한다는게 마음에 들지 않을 수도 있습니다. 그러나 RHEL은 라이선스 비용이 아니라 ‘구독’ 개념으로 서비스 비용을 지급한다고 생각하시면 됩니다. 모든 기업에서 리눅스 기술자를 보유하지 못하는 데다 기술자가 있더라도 문제가 발생하였을 시 도움을 구하거나 책임을 회피하는 방안으로 이용할 수 있습니다. 이 외에도 RHEL은 서버 운영을 위해 자체적으로 개발하는 여러 솔루션을 오랫동안 판매하고 있습니다. 이러한 소프트웨어는 오픈 소스보다 더욱 다양하고 뛰어난 기능을 가질 수 있습니다. 이와 같은 이유로 전 세계의 리눅스 시스템 관리자나 엔지니어에게 RHEL 기술 보유 능력이 가장 중요하게 자리 잡게 되었습니다. 

레드햇은 유료버전과 무료버전을 동시에 서비스 했지만, v9.0 이후로 무료 리눅스를 배포하고 있지 않으며, GPL License를 이유로 소스를 공개해왔습니다. 이러한 소스코드를 그대로 복사해서 로고만 바꿔서 만들어낸 것이 CentOS입니다. 그래서 무료이지만 완전히 동일한 기능과 성능을 제공합니다. 아이러니 하게도 2014년 Redhat은 CentOS를 인수해버리면서 커뮤니티 기반 사업 강화의 기반을 마련하게 됩니다.


2.2 Debian (Debian GNU/Linux)

 데비안은 지금까지 사용되는 리눅스 배포판 중 2번째로 오래되었습니다(1위는 슬랙웨어). 

데비안 프로젝트를 최초로 시작한 이안 머독(Murdock, Ian)이 1994년 1월 6일 개정한 '데비안 선언문'을 확인하시면 데비안 프로젝트의 목적이 상업적 시장에서 경쟁 가능한 비상업적 배포본을 만드는 것이라고 하였습니다. 그중 첫 번째 목표는 리눅스라는 이름에 걸맞은 배포판을 만드는 것이라고 합니다. 

그리고 프로젝트는 성공하여 디스트로워치(DistroWatch)에서도 상위권을 유지하는 배포판이 되었습니다.


2.3 SUSE (Software- und System-Entwicklung)

S.u.S.E는 "Software und System-Entwicklung", 즉 '소프트웨어 및 시스템 개발'의 준말이었다고 합니다. Slackware를 독일어로 번역했고, 이가 곧 S.u.S.E 1.0 입니다. 

이후 SUSE는 RHEL의 여러 요소들을 받아들이면서 발전했습니다. 기업명이 S.u.S.E에서 SuSE로 바뀌고 SUSE 엔터프라이즈 서버를 출시하며 SUSE로 변경되었습니다. 

2004년 Novell이 SUSE를 인수하면서 2005년 openSUSE project가 발표되었습니다. Professional 판을 기반으로 커뮤니티 배포판을 만들겠다는 것이었습니다. 

openSUSE는 현재까지 활발하게 개발되고 있습니다.

3. 리눅스 배포판의 차이점

리눅스 배포판의 가장 큰 차이는 패키지 관리 기법에 있습니다. 

대표적인 계보인 Redhat에서는 RPM을 사용하고 데비안에서는 dpkg를 사용합니다. 그 이전에는 일일이 소스코드를 가져와서 직접 설치하였습니다. 물론 지금도 소스 코드를 직접 컴파일하여 사용하기는 하지만 고급 사용자가 아니면 사용하기 힘들뿐더러 삭제라던가 업데이트 같은 작업에도 큰 불편이 있습니다. 이를 대폭 개선해서 제공하던 게 RPM과 dpkg 입니다. 그러나 이것도 의존성(depensive) 문제로 인하여 패키지에 대한 이해 수준이 어느 정도 수준에 도달하기 전까지는 관리에 어려움이 있습니다. 

그리하여 나온 게 레드햇은 yum이고 데비안은 apt입니다. 두 패키지 관리 도구로 인하여 더욱 간편하고 쉽게 패키지를 관리할 수 있게 되었습니다. 

<대표 배포판 비교>

Distribution

Debian

openSUSE

CentOS

 kernel

By default Linux-libre,
but Built with Linux-Libre tools

Binary blobs

Binary blobs

 Default File system

ext4

btrfs

xfs

 Init system

systemd

systemd

systemd

 GUI

GNOME, KDE, Xfce, LXDE

KDE Plasma Workspaces, GNOME, Xfce

GNOME

 Pre-compiled packages

57,290

69,367

17,565

 Source packages

21,041

34,891

-

 Package management tool

APT

YaST, Zypper

RPM, yum/up2date

 Package format

.deb

RPM

RPM

 Installer

Debian-Installer

YaST

Anaconda

 Mandatory access control

SELinux, AppArmor

SELinux

AppArmor

출처 : https://en.wikipedia.org/wiki/Comparison_of_Linux_distributions

'정리 > 시스템' 카테고리의 다른 글

BIOS 대 UEFI  (0) 2017.10.06
오픈소스SW 라이선스  (0) 2017.10.06
PAM(Pluggable Authentication Module)  (0) 2017.09.12
ntpq 출력 내용  (0) 2017.09.06
ntp  (0) 2017.09.06

댓글