기타 / 자격증 / 리눅스마스터 2급 / 1강

1편 · 리눅스의 이해 — 개요·역사·핵심 철학

이번 강의에서 배울 것

  • 리눅스를 이루는 커널·셸·파일 시스템·응용 프로그램의 역할과 리눅스의 장단점을 말한다.
  • 유닉스 → GNU 프로젝트 → 리눅스 커널로 이어지는 역사와 커널 버전 표기법을 설명한다.
  • GPL·LGPL·BSD·Apache·MPL·MIT 라이선스를 소스 공개 의무와 결합 범위로 구분한다.
  • Red Hat·Debian·Slackware 계열 배포판과 각 계열의 패키지 도구를 짝지어 말한다.

학습 경로 · 1과목 1장

← 0 · 시험 지도와 암기 코드 · 다음: 2편 · 리눅스 설치 →

범위: 1과목 리눅스 일반 · 1장 "리눅스의 이해" — 리눅스 개요, 리눅스의 역사, 리눅스의 핵심 철학(오픈소스와 라이선스), 배포판.

형광펜 읽는 법: 노랑 핵심 정의·결론 · 빨강 시험에서 헷갈리는 구분·함정 · 파랑 외워야 할 순서·목록


단원 도입

출제 포인트빈도이렇게 나온다
라이선스 비교 (GPL·LGPL·BSD·Apache·MPL)★★★"소스 공개 의무가 없는 것은?", 설명 → 라이선스 이름
배포판 계열과 패키지 도구★★★"Debian 계열이 아닌 것은?", 배포판 ↔ rpm/dpkg
리눅스의 특징·장단점★★★"리눅스의 특징으로 틀린 것은?"
커널의 역할, 모놀리식 커널, 모듈★★커널 기능 고르기, 마이크로커널과 비교
역사 (유닉스, GNU, FSF, 리누스 토르발스)★★인물 ↔ 업적, 연도 순서
셸의 역할과 종류★★"사용자 명령을 해석해 커널에 전달"
오픈소스 정의, 자유 소프트웨어 4대 자유, 카피레프트★★정의 조항이 아닌 것 고르기
커널 버전 표기와 확인 명령★uname -r, 짝수·홀수 버전

PART 1 · 리눅스 개요

1. 리눅스란 무엇인가

핵심 필기

리눅스 시스템은 네 겹으로 생각하면 쉽다.

구성 요소하는 일예
하드웨어실제 장치CPU, 메모리, 디스크, 네트워크 카드
커널(Kernel)하드웨어를 직접 제어하고 자원을 나눠 주는 운영체제의 핵심프로세스·메모리·파일 시스템·장치·네트워크 관리
셸(Shell)사용자의 명령을 해석해 커널에 전달하는 명령어 해석기bash, sh, csh, tcsh, ksh, zsh
응용 프로그램·유틸리티사용자가 실제로 쓰는 프로그램ls, vi, gcc, 웹 브라우저, 오피스

여기에 모든 자료를 /(루트)에서 뻗어 나가는 계층형 디렉터리 구조로 관리하는 파일 시스템을 더해 "커널·셸·파일 시스템"을 리눅스의 3대 구성 요소로 꼽기도 한다.

하드웨어를 맨 아래에 두고 커널, 시스템 호출, 셸, 응용 프로그램, 사용자가 차례로 쌓인 층 구조와, 사용자 명령이 셸에서 해석되어 커널을 거쳐 하드웨어에 닿는 흐름, 커널의 다섯 가지 관리 기능을 정리한 그림

그림 1-1 · 리눅스 시스템의 층 구조 — 누르면 원본 크기로 열린다.

커널이 하는 일

프로세스 관리 · 메모리 관리 · 파일 시스템 관리 · 디바이스(장치) 관리 · 네트워크 관리 ("프메파디네")

기능내용
프로세스 관리프로세스 생성·종료, CPU 스케줄링, 프로세스 간 통신(IPC)
메모리 관리가상 메모리, 페이징, 스왑(디스크 일부를 메모리처럼 사용)
파일 시스템 관리VFS(가상 파일 시스템)로 ext4·xfs·vfat 등 여러 형식을 같은 방식으로 접근
디바이스 관리장치 드라이버로 하드웨어 제어, 장치를 /dev 아래 파일로 표현
네트워크 관리TCP/IP 프로토콜 스택, 네트워크 인터페이스 제어

커널 구조 비교

구분모놀리식 커널(Monolithic)마이크로커널(Microkernel)
구조핵심 기능 대부분이 커널 공간 한 덩어리최소 기능만 커널에, 나머지는 사용자 공간 서버
장점빠르다 (기능 간 호출이 직접적)안정성·확장성 (한 서버가 죽어도 전체는 유지)
예리눅스, 전통적 유닉스Minix, Mach, GNU Hurd, QNX

셸이 하는 일

  • 사용자가 입력한 명령을 해석(interpret)해 커널에 전달하는 명령어 해석기이자 사용자 인터페이스.
  • 변수·조건문·반복문을 가진 프로그래밍 언어이기도 해서 셸 스크립트를 만든다.
  • 종류: sh(Bourne) · csh · ksh · tcsh · bash · zsh — 대부분의 배포판 기본은 bash(Bourne Again Shell). 자세한 내용은 6편.
$ echo $SHELL          # 로그인 셸
/bin/bash
$ cat /etc/shells      # 로그인 셸로 쓸 수 있는 셸 목록 (Ubuntu 예, 일부)
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/usr/bin/dash

2. 리눅스의 특징과 장단점

핵심 필기

특징뜻
멀티유저(다중 사용자)여러 사용자가 동시에 접속해 각자의 계정·권한으로 작업
멀티태스킹(다중 작업)여러 프로세스를 동시에(번갈아) 실행
다중 스레드·SMP 지원여러 CPU(코어)를 함께 사용
이식성(Portability)커널 대부분이 C 언어로 작성되어 x86, ARM, RISC-V 등 여러 아키텍처로 옮기기 쉬움
계층적 파일 시스템/를 꼭대기로 하는 트리 구조, 장치도 파일로 다룸
가상 메모리·스왑물리 메모리가 부족하면 디스크의 스왑 영역 사용
다양한 파일 시스템 지원ext2/3/4, xfs, btrfs, vfat, NTFS, iso9660 등
강력한 네트워크TCP/IP를 기본 지원, 서버 운영체제로 널리 사용
POSIX 호환유닉스 표준 인터페이스를 따라 유닉스용 프로그램을 쉽게 옮김
가상 콘솔한 화면에서 Ctrl+Alt+F1–F6 등으로 여러 터미널 전환
공유 라이브러리여러 프로그램이 같은 라이브러리(.so)를 함께 사용해 메모리 절약
자유 소프트웨어·오픈소스소스 코드가 공개되어 누구나 연구·수정·재배포 가능
장점단점
무료로 구해 쓸 수 있고 소스가 공개되어 있다공식 기술 지원이 상용 OS보다 약하다 (상용 배포판은 유료 지원 계약)
안정적이고 보안 패치가 빠르다일부 하드웨어 드라이버·상용 프로그램 지원이 늦거나 부족하다
적은 자원으로도 동작하고 서버·임베디드로 확장된다배포판이 많아 설정 방식이 제각각이다
커뮤니티가 크고 문서가 풍부하다소스가 공개되어 있어 취약점이 알려지기 쉽다

PART 2 · 리눅스의 역사

3. 유닉스에서 리눅스까지

핵심 필기

연도사건인물·단체
1965MULTICS 프로젝트 (MIT·GE·벨 연구소) — 너무 복잡해 벨 연구소가 1969년 탈퇴—
1969AT&T 벨 연구소에서 유닉스(UNIX) 개발 (처음엔 어셈블리어)켄 톰슨(Ken Thompson), 데니스 리치(Dennis Ritchie)
1973유닉스를 C 언어로 다시 작성 → 이식성 확보데니스 리치 (C 언어 개발자)
1977년 이후버클리 대학의 BSD 유닉스 → FreeBSD·NetBSD·OpenBSD, macOS의 뿌리UC 버클리
1980년대유닉스 상용화·분열 — AT&T System V 계열 vs BSD 계열—
1983GNU 프로젝트 시작 (완전히 자유로운 유닉스 호환 OS 목표)리처드 스톨먼(Richard Stallman)
1985FSF(자유 소프트웨어 재단) 설립, GNU 선언문 발표리처드 스톨먼
1987교육용 유닉스 호환 OS Minix 발표 (마이크로커널)앤드루 타넨바움(Andrew Tanenbaum)
1989GPL v1 발표 (1991년 GPLv2, 2007년 GPLv3)FSF
1991리눅스 커널 0.01 공개 (8월 comp.os.minix에 개발 소식, 9월 0.01, 10월 0.02)리누스 토르발스 (핀란드 헬싱키 대학생)
1992커널을 GPL로 배포하기 시작 → GNU 도구와 결합한 완전한 OS—
1994리눅스 커널 1.0 발표—
19962.0 (SMP 지원), 펭귄 마스코트 턱스(Tux) 등장—
1998OSI(Open Source Initiative) 설립, "오픈소스"라는 용어 등장에릭 레이먼드, 브루스 페런스
20113.0 (리눅스 20주년) — 이후 4.0(2015), 5.0(2019), 6.0(2022)—

4. 커널 버전 표기

핵심 필기

  • 현재 형식: 주 번호.부 번호.패치 번호 — 예 6.8.12. 배포판은 뒤에 자체 빌드 번호를 붙인다 (예 5.14.0-427.el9.x86_64, 6.8.0-45-generic).
  • 옛 방식(2.6 이전): 부 번호가 짝수면 안정 버전, 홀수면 개발 버전 (2.4 안정 / 2.5 개발 / 2.6 안정). 2.6 이후로는 이 규칙을 쓰지 않는다.
  • 공식 배포처: kernel.org — 분류는 mainline(최신 개발), stable(안정), longterm(LTS, 장기 지원).
  • 확인 명령: uname -r(커널 릴리스), uname -a(전체), cat /proc/version.

PART 3 · 리눅스의 핵심 철학 — 오픈소스와 라이선스

5. 자유 소프트웨어와 오픈소스

핵심 필기

자유 소프트웨어(Free Software) — FSF가 말하는 "free"는 가격이 공짜(free beer)가 아니라 자유(free speech)다. 네 가지 자유(0번부터 센다):

번호자유
자유 0어떤 목적으로든 프로그램을 실행할 자유
자유 1프로그램이 어떻게 동작하는지 연구하고 수정할 자유 (소스 코드 접근이 전제)
자유 2이웃을 돕기 위해 복사본을 재배포할 자유
자유 3개선한 버전을 배포해 공동체 전체가 혜택을 보게 할 자유

오픈소스(Open Source) — 1998년 OSI가 만든 용어. 소스 공개라는 실용적 측면을 강조한다. 오픈소스 정의(OSD) 의 주요 조건:

  1. 자유로운 재배포 (판매·배포를 막지 않음, 로열티 요구 금지)
  2. 소스 코드 공개 (또는 쉽게 얻을 수 있는 방법 제공)
  3. 2차적 저작물(수정본) 허용
  4. 원저작자 소스 코드의 무결성 (수정본은 이름·버전을 달리하도록 요구 가능)
  5. 개인·단체에 대한 차별 금지
  6. 사용 분야에 대한 차별 금지 (상업적 이용 금지 불가)
  7. 라이선스의 배포 (재배포받은 사람에게도 같은 권리)
  8. 특정 제품에 종속되지 않음
  9. 다른 소프트웨어를 제한하지 않음
  10. 기술 중립성

6. 오픈소스 라이선스 비교

핵심 필기

라이선스소스 공개 의무다른 코드와 결합 시핵심 특징대표 사용처
GPL (GNU General Public License)O결합·링크한 프로그램 전체를 GPL로 공개해야 함가장 강한 카피레프트. v2(1991), v3(2007, 특허·티보이제이션 조항)리눅스 커널(GPLv2), GCC, bash
LGPL (Lesser/Library GPL)O (라이브러리 수정 시)라이브러리를 동적 링크만 해서 쓰는 프로그램은 공개 의무 없음라이브러리용 약한 카피레프트glibc, GTK
MPL (Mozilla Public License)O (수정한 파일만)파일 단위로 적용 — MPL 파일을 고치면 그 파일만 공개, 새로 만든 파일은 비공개 가능GPL과 BSD의 중간, 특허 조항 포함Firefox, Thunderbird
BSDX비공개·상용 결합 자유저작권 표시와 면책 조항만 유지하면 됨FreeBSD, OpenBSD
Apache 2.0X비공개·상용 결합 자유특허권 사용 허락을 명시, 변경 사항 고지·NOTICE 파일 유지Apache HTTP Server, Android(일부), Hadoop
MITX비공개·상용 결합 자유가장 짧고 허용적인 라이선스, 저작권 표시만X Window(X11), jQuery, Node.js

소스 공개 의무가 강한 쪽부터 약한 쪽으로 GPL, LGPL, MPL, Apache, BSD, MIT를 위에서 아래로 늘어놓고, 각 라이선스가 공개를 요구하는 범위를 프로그램 전체, 라이브러리, 수정한 파일, 없음으로 나누어 표시한 그림

그림 1-2 · 라이선스별 소스 공개 범위 — 누르면 원본 크기로 열린다.

PART 4 · 리눅스 배포판

7. 배포판의 개념과 3대 계열

핵심 필기

계열패키지 형식저수준 도구고수준(의존성 해결) 도구대표 배포판
Red Hat.rpmrpmyum, dnfRHEL, Fedora, CentOS(→ CentOS Stream), Rocky Linux, AlmaLinux, Oracle Linux
Debian.debdpkgapt, apt-get, aptitudeDebian, Ubuntu, Linux Mint, Kali Linux, Raspberry Pi OS
Slackware.tgz·.txzpkgtool, installpkgslackpkgSlackware (현존하는 가장 오래된 배포판, 1993)
(SUSE).rpmrpmzypper, YaSTSUSE Linux Enterprise, openSUSE
(기타)——pacman / Portage / apkArch Linux / Gentoo(소스 컴파일) / Alpine

Red Hat, Debian, Slackware 세 뿌리에서 갈라진 배포판 가계도. Red Hat에서 RHEL, Fedora, CentOS, Rocky, Alma가, Debian에서 Ubuntu, Mint, Kali가, Slackware에서 SUSE 계열이 갈라지며 각 계열 아래에 패키지 형식과 도구를 적은 그림

그림 1-3 · 배포판 3대 계열 — 누르면 원본 크기로 열린다.

배포판별 한 줄 정리

배포판한 줄 정리
RHELRed Hat의 유료 기술 지원 기업용 배포판
FedoraRed Hat이 후원하는 커뮤니티 배포판, 새 기술을 먼저 넣는 시험대
CentOSRHEL 소스를 다시 빌드한 무료 배포판 → 2021년 이후 CentOS Stream(RHEL의 앞 단계)으로 전환
Rocky Linux · AlmaLinuxCentOS 전환 뒤 나온 RHEL 호환 무료 배포판
Debian1993년 이언 머독(Ian Murdock)이 시작한 커뮤니티 배포판, 안정성 중시
UbuntuCanonical이 만든 Debian 기반 배포판, 데스크톱·클라우드에서 널리 사용, LTS는 5년 지원
Linux MintUbuntu 기반 데스크톱 배포판
Kali LinuxDebian 기반 보안·모의 해킹용 배포판
Slackware패트릭 볼커딩(Patrick Volkerding), 단순함·유닉스다움을 중시
openSUSE·SLES독일 SUSE, 설정 도구 YaST, 패키지 관리 zypper
Gentoo소스를 직접 컴파일해 설치(Portage, emerge)
Arch Linux롤링 릴리스, pacman

기출 유형 연습

다음 중 리눅스의 특징으로 옳지 않은 것은?

보기를 선택해 주세요.
힌트 1 보기

리눅스 커널의 구조를 떠올린다. 드라이버는 "모듈"로 커널 공간에 올라간다.

정답·해설 보기

C. 리눅스는 모놀리식 커널이며 모듈(LKM)로 기능을 동적으로 추가한다. 마이크로커널은 Minix, Mach, GNU Hurd다.

다음 설명에 해당하는 라이선스는?

"라이브러리를 수정하면 그 소스는 공개해야 하지만, 이 라이브러리를 동적으로 링크해 사용하기만 하는 프로그램은 소스를 공개하지 않아도 된다."

보기를 선택해 주세요.
힌트 1 보기

"라이브러리"라는 단어가 이름에 숨어 있던 라이선스다.

정답·해설 보기

B. LGPL (Lesser GPL, 옛 이름 Library GPL). GPL은 링크한 프로그램까지 공개해야 하고, BSD·Apache는 라이브러리를 수정해도 공개 의무가 없다.

소스 코드 공개 의무가 없는 라이선스로만 짝지어진 것은?

보기를 선택해 주세요.
힌트 1 보기

GPL·LGPL·MPL은 정도의 차이는 있지만 모두 카피레프트다.

정답·해설 보기

C. BSD·Apache 2.0(그리고 MIT)은 저작권 표시 등만 지키면 수정본을 비공개로 배포할 수 있다. GPL·LGPL·MPL은 각자의 범위에서 소스 공개 의무가 있다.

다음 중 배포판과 기본 패키지 관리 도구의 연결이 옳지 않은 것은?

보기를 선택해 주세요.
힌트 1 보기

Linux Mint는 Ubuntu를 바탕으로 만들었다.

정답·해설 보기

C. Linux Mint는 Debian(Ubuntu) 계열이라 dpkg·apt를 쓴다. yum은 Red Hat 계열 도구다.

다음 중 인물과 업적의 연결이 옳은 것은?

보기를 선택해 주세요.
힌트 1 보기

1983년 GNU와 1985년 FSF는 같은 사람이 했다.

정답·해설 보기

C. 스톨먼은 GNU 프로젝트·FSF·GPL, 토르발스는 리눅스 커널, 켄 톰슨은 데니스 리치와 함께 유닉스를 만들었다.

오픈소스 정의(OSD)에 비추어 볼 때 오픈소스 라이선스가 될 수 없는 조건은?

보기를 선택해 주세요.
힌트 1 보기

오픈소스 정의는 사람·단체와 사용 분야에 대한 차별을 금지한다.

정답·해설 보기

C. 사용 분야(상업적 이용) 차별은 오픈소스 정의 위반이다. A는 "원저작자 소스의 무결성" 조항으로 허용된다.

단원 마무리

주제꼭 기억할 것
구성하드웨어 ← 커널(자원 관리) ← 셸(명령 해석) ← 응용 프로그램, 그리고 계층형 파일 시스템
커널 기능프로세스·메모리·파일 시스템·디바이스·네트워크 관리 (프메파디네)
커널 구조모놀리식 + 모듈(LKM) — 마이크로커널 아님
특징멀티유저, 멀티태스킹, 이식성(C), 계층형 FS, 가상 메모리, POSIX, 오픈소스
역사1969 유닉스 → 1973 C 재작성 → 1983 GNU → 1985 FSF → 1991 리눅스 0.01 → 1994 1.0
철학자유 소프트웨어 4대 자유(0–3), 카피레프트, 오픈소스 정의 10개 조항
라이선스공개 의무 O: GPL·LGPL·MPL / X: BSD·Apache·MIT — LGPL은 라이브러리, MPL은 파일 단위, Apache는 특허
배포판Red Hat(rpm·yum/dnf) · Debian(dpkg·apt) · Slackware(pkgtool), SUSE는 rpm·zypper

책을 덮고 꺼내 보기

  • 사용자의 명령을 해석해 커널에 전달하는 프로그램은 이다.
  • 리눅스 커널은 커널이며 로 기능을 동적으로 추가한다.
  • 유닉스는 1969년 에서 켄 톰슨과 데니스 리치가 만들었다.
  • GNU 프로젝트는 1983년 이 시작했고, GNU는 의 재귀 약어다.
  • 리눅스 커널은 라이선스로 배포된다.
  • 파일 단위로 소스 공개 의무를 지우는 라이선스는 이다.
  • 특허권 사용 허락을 명시한 허용형 라이선스는 이다.
  • Ubuntu는 계열이고 저수준 패키지 도구는 다.
커널과 셸의 역할 차이는?

커널은 하드웨어를 직접 제어하고 프로세스·메모리·파일 시스템·장치·네트워크를 관리하는 운영체제의 핵심이다. 셸은 사용자의 명령을 해석해 커널에 전달하는 명령어 해석기이자 스크립트 언어다.

리눅스의 주요 특징 다섯 가지는?

멀티유저, 멀티태스킹, 이식성(C 언어), 계층적 파일 시스템, 가상 메모리(스왑). 그 밖에 POSIX 호환, 강력한 네트워크, 다양한 파일 시스템 지원, 오픈소스.

유닉스·GNU·리눅스의 시작 연도와 인물은?

유닉스 1969년 켄 톰슨·데니스 리치(AT&T 벨 연구소), GNU 1983년 리처드 스톨먼, 리눅스 커널 1991년 리누스 토르발스.

자유 소프트웨어의 네 가지 자유는?

0 실행의 자유, 1 연구·수정의 자유, 2 재배포의 자유, 3 개선한 버전을 배포할 자유.

GPL과 LGPL의 차이는?

GPL은 GPL 코드와 결합·링크한 프로그램 전체를 GPL로 공개해야 한다. LGPL은 라이브러리 자체를 수정한 부분만 공개하면 되고, 동적 링크로 사용만 하는 프로그램은 공개 의무가 없다.

소스 공개 의무가 없는 라이선스 세 가지와 각각의 특징은?

BSD(저작권 표시·면책 조항 유지), Apache 2.0(특허 사용권 명시, NOTICE 유지), MIT(가장 짧고 허용적).

배포판 3대 계열의 패키지 형식과 도구는?

Red Hat 계열 — rpm, yum·dnf. Debian 계열 — deb, dpkg·apt. Slackware 계열 — tgz/txz, pkgtool·installpkg.

옛 커널 버전 규칙에서 짝수·홀수 부 번호의 의미는?

2.6 이전에는 부 번호가 짝수면 안정 버전, 홀수면 개발 버전이었다. 현재는 주.부.패치 형식만 쓰고 짝·홀 규칙은 없다.

다음으로 갈 기준: 라이선스 여섯 개를 공개 의무 순서로 늘어놓고, 배포판 이름을 들으면 패키지 도구를 바로 말할 수 있으면 다음 편으로 간다: 2편 · 리눅스 설치.

정답과 해설

  1. 셸(Shell) — 명령어 해석기. 커널은 하드웨어와 자원을 관리한다.
  2. 커널 대부분이 C 언어로 작성되어 있기 때문이다. 아키텍처에 의존하는 부분만 다시 쓰면 된다.
  3. 모놀리식 커널이다. 기능을 커널 모듈(LKM) 로 만들어 modprobe·insmod로 재부팅 없이 올린다.
  4. 리처드 스톨먼 — 1983년 GNU 프로젝트, 1985년 FSF 설립.
  5. 이식성 — 하드웨어에 묶인 어셈블리어 대신 C로 작성해 다른 기계로 옮기기 쉬워졌다.
  6. 부 번호 5가 홀수이므로 개발 버전이다. (2.4, 2.6은 안정 버전)
  7. 카피레프트(Copyleft).
  8. MPL(Mozilla Public License) — 수정한 파일만 공개하면 된다.
  9. GPL 버전 2(GPLv2).
  10. .deb 패키지, apt(apt-get) — Ubuntu 기반 Debian 계열.
  11. Rocky Linux, AlmaLinux.
  12. Slackware (1993년 패트릭 볼커딩).
오늘도 한 걸음 앞으로.

내용을 이해했다면 학습 완료를 체크해 주세요.

학습 기록은 현재 브라우저에 저장됩니다.
HJS / STUDY한지석