리눅스(Linux)란? (리눅스 소개, 커널, 배포판 등)
리눅스는 좁은 의미에서 리눅스 커널만을 이야기합니다만, 일반적으로 리눅스라고 할 때는 넓은 의미에서 리눅스 커널과 배포판만을 모두 의미합니다.
리눅스 커널은 리누스 토르발스가 개발한 오픈소스 운영체제로 하드웨어를 지원하고, 다양한 시스템콜을 제공하며, 프로세스 및 메모리 관리를 수행합니다. 이를 통해 프로세스와 사용자의 중개자 역할을 합니다.
반면에 리눅스 배포판은 리눅스 커널을 포함하며, 배포판 용도에 따라서 부트로더, 라이브러리, 유틸리티, GUI 등을 추가적으로 포함합니다. 리눅스 커널만 바로 사용하기는 어렵습니다만, 배포판을 사용하면 설치하고 바로 사용하는 게 가능합니다. 대표적인 리눅스 배포판으로는 우분투, 페도라, 데비안, 센트OS, 아치 리눅스 등이 있습니다.
리눅스 커널#
사용자 운영체제는 윈도우, 맥OS, 리눅스가 널리 사용됩니다. 이들 운영체제들은 커널을 가지고 있습니다. 앞서 소개한대로 리눅스는 리누스 토르발스가 개발한 오픈소스 운영체제의 커널을 의미합니다. 각 운영체제 커널의 핵심적인 역할은 디바이스 드라이버를 통해서 하드웨어 장치를 사용할 수 있도록 해주고, 메모리와 프로세스, 파일시스템 등 시스템의의 자원을 관리하며, 시스템 호출 기능과 보안을 제공하는 것입니다.
운영체제에서는 보안 상의 이유로 메모리 영역이 커널 스페이스와 유저 스페이스로 나뉘어있습니다. 이름에서 알 수 있듯이 커널에서 사용하는 영역이 커널 스페이스이며, 일반 프로세스가 사용하는 영역이 유저 스페이스입니다. 프로세스는 커널 스페이스를 직접 접근할 수 없으며, 커널에서 제공하는 시스템 콜을 통해서만 커널이 제공하는 기능을 사용할 수 있습니다. 그 외에 리눅스 커널은 Docker나 Kubernetes로 유명한 프로세스 격리와 관련된 기능들을 제공합니다. 이러한 기능들을 모아서 격리된 프로세스를 리눅스 컨테이너라고 부릅니다.
리눅스 커널은 현재도 활발하게 개발되고 있으며 2023년 6월 현재 최신 버전은 2023년 6월 25일에 릴리스된 6.4이며, 안정 버전은 6.3.9입니다. 다음은 리눅스 커널과 관련된 웹사이트들의 링크입니다.
- 리눅스 커널 소스 코드: GitHub - torvalds/linux: Linux kernel source tree
- 리눅스 커널 문서: The Linux Kernel documentation — The Linux Kernel documentation
- 리눅스 커널 아카이브 The Linux Kernel Archives
리눅스 커널과 배포판의 차이#
배포판은 Distribusion 도는 Distro라고 불리며 커널을 포함한 넓은 의미의 운영체제입니다. 리눅스 배포판은 부트로더, 라이브러리, 유틸리티, GUI 등을 모두 포함하고 있으며, 사용자가 바로 설치하고 사용 가능한 넓은 의미의 운영체제를 말합니다. 윈도우나 맥OS에서는 배포판이라는 용어를 사용하지는 않지만, 각 운영체제의 유일한 배포판이라고 말할 수 있습니다. 오픈소스 운영체제인 리눅스 커널에 기반한 배포판을 배포하는 공식적인 기관이 있는 것은 아니며, 다양한 용도로 다양한 곳에서 리눅스 배포판을 관리 및 개발하고 있습니다. 리눅스 배포판의 종류는 수백가지 이상 되는 것으로 알려져있습니다.
- 위키백과 리눅스 배포판 종류: List of Linux distributions
리눅스 배포판의 종류#
리눅스에는 다양한 배포판들이 있습니다. 아래에서는 많이 사용되는 배포판들을 소개합니다.
우분투(Ubuntu) 배포판#
우분투(Ubuntu)는 가장 유명하고 사용자 친화적인 배포판 중 하나로 캐노니컬에서 개발하고 있습니다. 우분투는 페도라 배포판을 ���반으로 만들어진 배포판으로 2004년 4.10 버전을 시작으로 현재까지 개발되고 있습니다. 2023년에 릴리스한 최신 버전은 23.04이며 리눅스 커널은 6.2 버전을 사용하고 있습니다. 우분투 배포판은 용도에 따라서 데스크톱, 서버, IOT 특화판을 제공하고 있습니다. 또한 5년간 장기 지원하는 LTS 버전을 릴리스하고 있으며, 유료 지원 플랜인 Ubuntu Pro에서는 10년 이상 지원받을 수 있어 장기간 안정적으로 사용할 수 있는 배포판 중 하나입니다.
- 우분투 배포판 공식 웹사이트 Enterprise Open Source and Linux | Ubuntu
그 외의 배포판#
- 데비안(Debian): Debian은 안정성과 자유 소프트웨어 표준 준수로 알려져 있습니다. 다양한 패키지를 제공하며, Ubuntu 등 다른 많은 배포판의 기반으로 사용됩니다.
- 아치 리눅스(Arch Linux): Arch Linux는 간단하고(simple), 가벼운(lightweight) 리눅스 배포판입니다. 사용자가 원하는대로 커스터마이징할 수 있어서 인기가 있습니다.
- 레드햇 엔터프라이즈 리눅스(Red Hat Enterprise Linux): RHEL은 엔터프라이즈 환경을 위해 설계된 안정적인 상용 리눅스 배포판입니다.
- 페도라(Fedora): Fedora는 Red Hat Inc.에서 후원하는 리눅스 배포판으로, 새로운 기술을 빠르게 릴리스해서 RHEL의 테스트 베드 역할을 합니다.
- 센트OS(CentOS): CentOS는 무료로 사용할 수 있는 엔터프라이즈급 리눅스 배포판입니다. Red Hat Enterprise Linux(RHEL)을 기반으로 하며, 서버 환경에서 많이 사용됩니다.
- 민트(Mint): Mint는 사용자 친화적인 데스크톱 용도의 리눅스 배포판으로, Windows와 유사한 사용자 경험을 제공합니다.
- 칼리 리눅스(Kali Linux): Kali는 Offensive Security에서 개발한 데비안 기반의 보안 및 침투 테스트에 특화된 배포판입니다.
- 아마존 리눅스(Amazon Linux): Amazon Linux는 레드햇 계열의 배포판 중 하나로, 아마존 클라우드 서비스에 특화된 배포판입니다.
현재 시스템의 리눅스 배포판과 커널 버전 확인하는 방법#
리눅스 서버를 운영하는 경우, 현재 배포판 정보나 리눅스 커널 버전을 확인해야하는 경우가 있습니다. 리눅스 배포판을 간단히 확인하려면 cat 명령어로 /etc/os-release, /etc/issue 파일 등의 내용을 출력해봅니다.
$ cat /etc/issue
Ubuntu 20.04.2 LTS \n \l
현재 시스템의 리눅스 커널 버전은 uname 명령어로 확인할 수 있습니다.
$ uname -a
Linux d513cb937c85 5.10.25-linuxkit #1 SMP PREEMPT Tue Mar 23 09:24:45 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
하지만 배포판에 따라서 위의 파일들이 없거나 확인하는 방법이 다를 수 있습니다. ��� 자세한 내용은 다음 글을 참고해주세요.
리눅스 커맨드라인 명령어#
리눅스의 용도가 정해져있는 것은 아닙니다만, 윈도우나 맥에 비해서는 데스크톱보다 서버 용도로 많이 사용되고 있습니다. 리눅스는 기본적으로 커맨드라인 환경이 잘 갖춰져 있습니다만, 특히 서버 환경에서는 원격에서 OpenSSH를 통해 커맨드라인으로 작업하는 게 일반적입니다. 리눅스 배포판에는 많은 명령어들을 포함하고 있으며 패키지를 통해 다양한 명령어들을 설치하고 사용할 수 있습니다. 리눅스의 커맨드라인 명령어 사용법은 다음 글에서 정리하고 있으니 참고해주세요.
Docker와 리눅스 배포판#
리눅스 배포판들을 테스트하기 위해서는 서버 컴퓨터에 설치하거나 가상 머신을 주로 사용하지만, Docker에서 제공하는 리눅스 배포판 공식 이미지를 사용할 수도 있습니다. Docker가 시스템에 설치되어있다면 아래 명령어 하나로 데비안 리눅스 12버전에서 Bash 셸을 실행해볼 수 있습니다.
$ docker run -it --rm debian:12 bash
root@04e465364b8f:/#
root@04e465364b8f:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Docker에서 제공하는 Ubuntu, Debian, Rocky Linux, Fedora, Amazon Linux, Alpine 등 리눅스 배포판 공식 이미지들에 대한 정보와 사용법은 다음 글에서 상세히 소개합니다.