
이번 포스팅에서는 운영체제의 한 종류이자 개발자에게 매우 중요한 리눅스(Linux)에 대해 정리해보겠다.
리눅스가 어떤 역사와 배경을 가지고 있는지, 어떤 배포판들이 있고, 커널·파일 시스템·사용자/그룹·쉘 같은 핵심 개념은 무엇인지,
마지막으로 가상환경에 우분투를 설치해 실습 환경을 준비하는 흐름까지 정리해보는걸로!
리눅스는 1991년, 리누스 토르발스(Linus Torvalds)가 처음 개발한 오픈소스 운영체제이다.
유닉스(UNIX)를 모방·참고하여 만들어진 운영체제라 유닉스 계열이라는 표현을 자주 사용하며, 맥 OS, 각종 리눅스 배포판 등 많은 운영체제가 유닉스 영향을 받아 개발되었다.
리눅스에는 “수백 개”라고 표현해도 과하지 않을 정도로 다양한 배포판이 존재한다.
배포판이란 공통된 리눅스 커널 위에 각기 다른 응용 프로그램, 패키지 관리 도구, 환경 설정 등을 조합해 만든 운영체제 묶음을 의미한다.
대표적으로 두 계열을 많이 사용한다.
Debian 계열
.debaptRed Hat 계열
.rpmyum, dnf그 외에 도커 컨테이너에서 자주 사용하는 Alpine Linux처럼
불필요한 요소를 제거하고 용량을 최소화한 초경량 배포판도 존재한다.
레드햇이 “오픈소스인데 왜 돈 주고 사는가?”에 대해 블로그에 넣기 좋게 정리하면, 이 정도 톤이면 딱 맞다.
리눅스 자체는 오픈소스라 누구나 무료로 소스 코드를 내려받아 사용할 수 있지만,
레드햇은 이 오픈소스 리눅스를 엔터프라이즈(기업용) 제품으로 다듬고, 그 위에 유료 서비스를 얹어서 판매한다.
정리하자면, 레드햇이 파는 것은 “소프트웨어 한 벌”이 아니라 운영 환경 전체에 대한 안정성과 관리·지원 패키지에 가깝다.
그래서 흔히 이렇게 이해하면 편하다.
“리눅스 소프트웨어는 무료지만,
그걸 기업 환경에서 안전하게 쓰도록 대신 관리·보증해주는 서비스에 돈을 내는 것.”
기업 입장에서는 직접 오픈소스 리눅스를 가져다가
보안 패치 추적, 커널/패키지 호환성 테스트, 장애 대응 체계를 다 만들기엔
시간과 인력이 너무 많이 들기 때문에,
“돈을 내고라도 안정성과 책임 있는 지원을 사는 것”이 레드햇 모델이라고 보면 된다.
커널은 운영체제의 “심장”이자 핵심 부분으로,
하드웨어와 소프트웨어 사이에서 모든 자원 관리를 담당한다.
프로세스(Process)는 “실행 중인 프로그램”을 의미하며,
리눅스 커널은 여러 프로세스를 동시에 잘 돌릴 수 있도록 CPU 시간을 적절히 분배한다.
리눅스의 파일 시스템은 계층적 구조를 가지며,
가장 최상단에는 루트 디렉토리 / 가 있다.
모든 파일과 디렉토리는 / 아래에 트리 구조로 배치된다.
주요 디렉토리는 다음과 같다.
/binls, cp, mv, cat 등 핵심 명령어/etc/home/home/사용자명 안에 해당 사용자의 문서, 설정, 프로젝트 파일 등이 저장/var/var/log), 큐 데이터, 캐시 등이 구조에 익숙해지면 서버 관리나 배포 시에 필요한 파일을 빠르게 찾을 수 있다.
리눅스는 다중 사용자 OS로 설계되어, 여러 사용자가 하나의 시스템을 공유할 수 있다.
이를 위해 사용자(User)와 그룹(Group) 개념을 사용한다.
권한 관리를 통해 특정 사용자나 그룹만 특정 파일·디렉토리에 접근할 수 있도록 제한할 수 있다.
서버 보안과 운영 관점에서 매우 중요한 개념이다.
쉘은 사용자와 운영체제(커널) 사이의 인터페이스 역할을 하는 프로그램이다.
사용자가 터미널에서 명령을 입력하면, 쉘이 이를 해석해서 커널에 전달하고 결과를 다시 사용자에게 보여준다.
대표적인 쉘 프로그램은 다음과 같다.
bash : 가장 널리 쓰이는 기본 쉘 (많은 리눅스 배포판의 디폴트)zsh : 풍부한 기능과 플러그인으로 개발자에게 인기sh : 전통적인 POSIX 쉘현재 사용 중인 쉘은 다음 명령으로 확인할 수 있다.
echo $0
쉘 스크립트를 활용하면 반복 작업(배포, 로그 정리, 백업 등)을 자동화할 수 있다.
실제 리눅스를 사용해보려면, 직접 설치하거나 가상환경을 활용하는 방법이 있다.
개발용/연습용으로는 가상머신 위에 우분투(Ubuntu)를 설치하는 방법이 가장 일반적이다.
설치가 끝나면 가상머신을 실행해, 실제 리눅스 데스크톱 또는 터미널 환경에서
명령어를 실행해보고, 패키지를 설치하고, 쉘 환경을 직접 경험할 수 있다.

이전에 사이드 프로젝트를 진행하면서 Docker로 컨테이너 환경에서 Ubuntu를 사용해본 적이 있었는데, 이번에 VMware 같은 하이퍼바이저 기반 가상화 프로그램을 직접 사용해보니 훨씬 진짜 가상 PC를 다루는 느낌이라 신기했다!
다만 내 PC에서 너무나 많이 다운되었기때문에 Docker가 매우 그리웠음...ㅋㅋㅋ
그리고 막연히 알고 있던 리눅스 운영체제의 개념과 특징들을 다시 살펴보니 더 흥미가 생겼다
Debian? 이름이 뭔가 호감이네요 잘생겼을거같고