포스트

Unix와 Linux 완벽 가이드 - 역사, 철학, 그리고 현대의 영향

Unix의 탄생부터 Linux의 등장까지, 현대 컴퓨팅의 기반이 된 운영체제의 역사와 철학을 이해합니다. POSIX 표준, GNU 프로젝트, Linux Kernel, 그리고 다양한 배포판까지 완벽하게 정리합니다.

Unix와 Linux 완벽 가이드 - 역사, 철학, 그리고 현대의 영향

현대 컴퓨팅의 기반이 된 UnixLinux의 역사를 이해하면, 왜 대부분의 서버, 스마트폰, 슈퍼컴퓨터가 이 운영체제들을 사용하는지 알 수 있습니다.

Unix의 탄생

1970년대 벨 연구소의 혁명

Unix는 1969-1970년 AT&T 벨 연구소(Bell Labs)에서 켄 톰슨(Ken Thompson)데니스 리치(Dennis Ritchie)에 의해 개발된 범용 다중 사용자 시분할 운영체제입니다.

1
2
3
4
5
6
7
8
Unix 개발 타임라인:

1969년 - Ken Thompson이 PDP-7에서 Unix 초기 버전 개발
1971년 - Unix가 PDP-11로 이식됨
1973년 - Dennis Ritchie가 C 언어로 Unix 재작성 (획기적!)
1975년 - Unix Version 6 출시, 대학에 무료 배포
1979년 - Unix Version 7 출시 (Unix의 황금기)
1983년 - System V 출시 (상용화)

Unix의 혁명적인 특징

1. C 언어로 작성

1
2
3
4
5
6
7
8
9
// Unix 커널의 대부분이 C로 작성됨
// 이전 운영체제들은 어셈블리로만 작성되었음

// 예시: Unix의 간단한 시스템 콜
int fd = open("/etc/passwd", O_RDONLY);
if (fd < 0) {
    perror("open failed");
    exit(1);
}

이식성(Portability)의 혁명:

  • 기존 운영체제: 어셈블리로 작성 → 특정 하드웨어에만 작동
  • Unix: C로 작성 → 다른 컴퓨터로 쉽게 이식 가능
  • C 컴파일러만 있으면 어떤 시스템에든 Unix 설치 가능

2. 멀티태스킹과 멀티유저

사용자 접속 현황:

$ who
alice
pts/0
2020-09-23 10:30
bob
pts/1
2020-09-23 11:15
charlie
pts/2
2020-09-23 12:00

프로세스 실행 현황:

$ ps aux
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
root10.00.1193561464?Ss10:000:01/sbin/init
alice5122.51.512345615000pts/0S+10:300:45python app.py

3. 계층적 파일 시스템

📁
/
(루트 디렉토리)
├──
bin/
(기본 명령어)
├──
etc/
(설정 파일)
├──
passwd
(사용자 정보)
└──
hosts
(호스트 정보)
├──
home/
(사용자 홈 디렉토리)
├──
alice/
└──
bob/
├──
usr/
(사용자 프로그램)
├──
bin/
└──
lib/
└──
var/
(가변 데이터)
├──
log/
(로그 파일)
└──
tmp/
(임시 파일)

Unix 철학

Unix는 단순한 운영체제를 넘어 설계 철학을 제시했습니다.

Unix 철학의 핵심 원칙

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1. **작고 간단한 프로그램을 만들어라** (Do One Thing Well)
   - 각 프로그램은 한 가지 일만 잘 수행
   - 복잡한 작업은 작은 프로그램들의 조합으로 해결

2. **모든 것은 파일이다** (Everything is a File)
   - 일반 파일, 디렉토리, 장치, 소켓, 파이프 모두 파일로 취급
   - 통일된 인터페이스로 접근 가능

3. **텍스트 스트림을 사용하라** (Use Text Streams)
   - 프로그램 간 데이터 교환은 텍스트로
   - 파이프(|)를 통한 데이터 연결

4. **프로그램들을 함께 작동하도록 설계하라** (Design for Composition)
   - 각 프로그램의 출력이 다른 프로그램의 입력이 될 수 있도록

Unix 철학의 실제 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 1. 작고 간단한 프로그램의 조합
# 로그 파일에서 에러 라인만 추출하고, 정렬하고, 중복 제거

cat /var/log/app.log | grep "ERROR" | sort | uniq

# 각 프로그램의 역할:
# - cat: 파일 읽기
# - grep: 패턴 매칭
# - sort: 정렬
# - uniq: 중복 제거

# 2. 모든 것은 파일
# 일반 파일 읽기
cat /etc/hosts

# 장치 파일 읽기 (CPU 정보)
cat /proc/cpuinfo

# 네트워크 소켓도 파일처럼 사용
exec 3<>/dev/tcp/google.com/80
echo -e "GET / HTTP/1.0\n" >&3
cat <&3

# 3. 파이프라인으로 복잡한 작업 수행
# 가장 많이 사용된 명령어 Top 10 찾기
history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10

POSIX 표준의 등장

Unix의 파편화 문제

1970-1980년대에 다양한 Unix 변형들이 등장하면서 호환성 문제가 발생했습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Unix 계보:

AT&T Unix
├── System III (1982)
├── System V (1983) → Solaris, AIX, HP-UX
└── System V Release 4 (1988)

BSD Unix (Berkeley Software Distribution)
├── 4.2BSD (1983) → TCP/IP 네트워킹
├── 4.3BSD (1986)
└── 4.4BSD (1993) → FreeBSD, OpenBSD, NetBSD, macOS

기타 변형들:
- Xenix (Microsoft의 Unix)
- IRIX (SGI)
- Tru64 (DEC)

POSIX (Portable Operating System Interface)

POSIX는 1988년 IEEE가 제정한 Unix 계열 운영체제의 표준 규격입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// POSIX 표준 API 예시

// 파일 작업
#include <fcntl.h>
#include <unistd.h>

int fd = open("file.txt", O_RDWR | O_CREAT, 0644);
write(fd, "Hello", 5);
close(fd);

// 프로세스 생성
#include <sys/types.h>
#include <unistd.h>

pid_t pid = fork();
if (pid == 0) {
    // 자식 프로세스
    execl("/bin/ls", "ls", "-l", NULL);
} else {
    // 부모 프로세스
    wait(NULL);
}

// 스레드
#include <pthread.h>

pthread_t thread;
pthread_create(&thread, NULL, thread_function, NULL);
pthread_join(thread, NULL);

POSIX가 정의하는 것들:

  • 시스템 콜 인터페이스 (open, read, write, fork, exec 등)
  • 쉘 명령어와 유틸리티 (ls, grep, sed, awk 등)
  • 프로세스 환경 (환경 변수, 시그널 등)
  • 파일 시스템 구조와 권한
  • 스레드 API (pthread)

GNU 프로젝트의 탄생

자유 소프트웨어 운동

1980년대 Unix가 상용화되면서 라이센스 비용소스 코드 공개 제한 문제가 발생했습니다.

1
2
3
4
5
6
7
8
9
10
문제 상황:

1980년대 초:
- AT&T가 Unix 라이센스 정책 강화
- Unix 사용에 높은 비용 요구
- 소스 코드 수정 및 재배포 제한
- 대학과 연구소도 비용 부담

결과:
→ 자유롭게 사용할 수 있는 Unix-like OS 필요성 대두

GNU (GNU’s Not Unix)

1983년 리처드 스톨먼(Richard Stallman)GNU 프로젝트를 시작했습니다.

1
2
3
4
GNU 프로젝트 목표:

"Unix와 호환되지만 Unix 코드를 한 줄도 사용하지 않는
완전히 자유로운 운영체제를 만들자!"

GNU의 핵심 도구들:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 1. GCC (GNU Compiler Collection)
gcc -o program program.c

# 2. Bash (Bourne Again SHell)
#!/bin/bash
echo "Hello, World!"

# 3. GNU Core Utilities
ls, cat, grep, sed, awk, chmod, chown, mkdir, rm, cp, mv...

# 4. GNU Make
make
make install

# 5. Emacs (텍스트 에디터)
emacs file.txt

# 6. glibc (GNU C Library)
// 표준 C 라이브러리 구현
#include <stdio.h>   // glibc에서 제공
#include <stdlib.h>  // glibc에서 제공

GNU의 문제: Kernel이 없다

1
2
3
4
5
6
7
8
9
10
11
12
GNU 프로젝트 진행 상황 (1990년대 초):

✅ 컴파일러 (GCC) - 완성
✅ 쉘 (Bash) - 완성
✅ 텍스트 에디터 (Emacs) - 완성
✅ 유틸리티들 (coreutils) - 완성
✅ C 라이브러리 (glibc) - 완성
❌ Kernel (GNU Hurd) - 개발 중이지만 완성 안 됨

문제:
→ 완전한 운영체제가 아님
→ Kernel 없이는 실행 불가

Linux의 등장

Linus Torvalds의 혁명

1991년 8월, 핀란드 헬싱키 대학의 학생 리누스 토르발즈(Linus Torvalds)가 작은 취미 프로젝트를 시작했습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Linus Torvalds의 유명한 첫 공지:

"Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I'd like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).

                        Linus (torvalds@kruuna.helsinki.fi)

PS. Yes - it's free of any minix code, and it has a multi-threaded fs."

- 1991년 8월 25일, Usenet 게시글

Linux Kernel 버전 히스토리

1
2
3
4
5
6
7
8
9
10
11
12
13
Linux Kernel 주요 버전:

0.01  (1991-09-17) - 최초 공개 (10,239 라인)
0.99  (1992)       - 거의 완성 단계
1.0   (1994-03-14) - 첫 안정 버전 (176,250 라인)
2.0   (1996)       - SMP 지원, 다양한 아키텍처
2.2   (1999)       - 성능 개선
2.4   (2001)       - USB, 파일 시스템 개선
2.6   (2003)       - 데스크톱 성능 향상
3.0   (2011)       - 버전 번호 변경
4.0   (2015)       - 라이브 패칭
5.0   (2019)       - 에너지 효율
6.0   (2022-현재)  - 최신 하드웨어 지원

Linux Kernel의 특징

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Linux Kernel은 C로 작성됨

// 예시: Linux의 간단한 모듈
#include <linux/module.h>
#include <linux/kernel.h>

static int __init hello_init(void) {
    printk(KERN_INFO "Hello, Linux Kernel!\n");
    return 0;
}

static void __exit hello_exit(void) {
    printk(KERN_INFO "Goodbye, Linux Kernel!\n");
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Linus Torvalds");
MODULE_DESCRIPTION("Hello World Module");

Linux Kernel의 주요 기능:

  • 프로세스 관리: 스케줄링, 멀티태스킹
  • 메모리 관리: 가상 메모리, 페이징
  • 파일 시스템: ext4, XFS, Btrfs 등 다양한 파일 시스템 지원
  • 장치 드라이버: 하드웨어 추상화
  • 네트워킹: TCP/IP 스택
  • 보안: SELinux, AppArmor

GNU/Linux: 완전한 운영체제

두 프로젝트의 만남

GNU 프로젝트 + Linux Kernel = 완전한 운영체제

User Applications
(브라우저, 텍스트 에디터 등)
GNU Tools & Libraries
GCC, Bash, glibc, coreutils...
Linux Kernel
프로세스, 메모리, 파일 시스템 관리
Hardware
CPU, RAM, Disk, Network...

GNU/Linux vs Linux 논쟁

“GNU/Linux”라고 불러야 한다는 입장 (FSF, Richard Stallman):

1
2
3
4
5
6
7
이유:
- Linux는 Kernel일 뿐, 운영체제의 일부
- GNU 도구들이 없으면 사용 불가능한 시스템
- GNU 프로젝트의 기여를 인정해야 함
- 자유 소프트웨어 운동의 철학 강조

표현: "GNU/Linux 운영체제", "GNU plus Linux"

“Linux”라고 불러도 된다는 입장 (실용주의자들):

1
2
3
4
5
6
7
이유:
- 간결하고 기억하기 쉬움
- 일반적으로 통용되는 명칭
- Android, Chrome OS 등은 GNU 도구를 사용하지 않음
- Kernel이 시스템의 정체성을 결정

표현: "Linux", "Linux 운영체제"

현실적 타협:

  • 공식 문서: GNU/Linux 또는 Linux 병기
  • 일상 대화: Linux로 통칭
  • 기술 커뮤니티: 맥락에 따라 적절히 사용

Linux 배포판 (Distribution)

Linux Kernel + GNU Tools + 패키지 관리자 + 기본 애플리케이션 = 배포판

주요 배포판 계보

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Linux 배포판 가계도:

Debian 계열 (1993~)
├── Debian
│   ├── Ubuntu (2004) ← 가장 인기
│   │   ├── Linux Mint
│   │   ├── elementary OS
│   │   └── Pop!_OS
│   ├── Kali Linux (보안/해킹)
│   └── Raspberry Pi OS

Red Hat 계열 (1994~)
├── Red Hat Enterprise Linux (RHEL) ← 엔터프라이즈
│   ├── CentOS (무료 클론, ~2021)
│   ├── Rocky Linux (CentOS 후속)
│   └── AlmaLinux (CentOS 후속)
└── Fedora (최신 기술 테스트베드)

Slackware 계열 (1993~)
└── Slackware (가장 오래된 배포판)
    └── SUSE
        └── openSUSE

독립 배포판
├── Arch Linux (2002) ← 롤링 릴리스
│   └── Manjaro
├── Gentoo (컴파일 기반)
└── Alpine Linux (경량, 컨테이너용)

배포판별 특징

Ubuntu (데비안 계열)

1
2
3
4
5
6
7
8
9
# 패키지 관리자: APT (Advanced Package Tool)
sudo apt update
sudo apt install nginx

# 특징:
# - 가장 사용자 친화적
# - 6개월마다 새 버전, 2년마다 LTS
# - 데스크톱과 서버 모두 강점
# - 방대한 커뮤니티와 문서

CentOS/Rocky Linux (레드햇 계열)

1
2
3
4
5
6
7
8
# 패키지 관리자: YUM/DNF
sudo dnf install nginx

# 특징:
# - 엔터프라이즈 환경에서 선호
# - 안정성과 장기 지원 중시
# - RHEL과 호환
# - 기업 서버 표준

Arch Linux (독립)

1
2
3
4
5
6
7
8
# 패키지 관리자: pacman
sudo pacman -S nginx

# 특징:
# - 롤링 릴리스 (항상 최신 버전)
# - 미니멀리즘, 사용자가 원하는 대로 구성
# - AUR (사용자 저장소) 활용
# - 고급 사용자 선호

Alpine Linux (독립)

1
2
3
4
5
6
7
8
# 패키지 관리자: apk
apk add nginx

# 특징:
# - 매우 경량 (이미지 크기 ~5MB)
# - 보안 강화 (musl libc, BusyBox)
# - Docker 컨테이너에 최적화
# - 임베디드 시스템

Unix-certified vs Unix-like

Unix-certified (공식 Unix)

POSIX 표준을 완전히 만족하고 공식 인증을 받은 시스템

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
현존하는 Unix-certified 시스템:

✅ macOS (Apple) - Darwin 기반
   - BSD Unix + Mach Kernel
   - POSIX 인증 (2007~)

✅ Solaris (Oracle)
   - AT&T System V 기반
   - 엔터프라이즈 서버

✅ AIX (IBM)
   - System V 기반
   - 메인프레임, 서버

✅ HP-UX (Hewlett Packard)
   - System V + BSD
   - HP 서버

Unix-like (유사 Unix)

POSIX 표준을 대부분 만족하지만 공식 인증은 받지 않은 시스템

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Unix-like 시스템:

✅ Linux (모든 배포판)
   - POSIX 호환성 매우 높음
   - 인증 비용 때문에 미인증

✅ FreeBSD, OpenBSD, NetBSD
   - BSD Unix 직계 후손
   - 거의 완전한 POSIX 호환

✅ Android
   - Linux Kernel 기반
   - GNU 도구 대신 Bionic libc 사용

✅ Chrome OS
   - Gentoo Linux 기반
   - Google 맞춤형

실무적 관점:

  • Unix-certified와 Unix-like는 실사용에서 거의 차이 없음
  • 대부분의 Unix 명령어와 도구가 동일하게 작동
  • POSIX 표준 준수로 코드 이식성 확보
1
2
3
4
5
6
7
8
9
# 다음 명령어들은 모든 Unix/Unix-like 시스템에서 동일하게 작동

ls -la
grep "pattern" file.txt
find / -name "*.log"
ps aux | grep nginx
tar -czf archive.tar.gz directory/
chmod 755 script.sh
ssh user@server.com

Linux의 현재와 영향

시장 점유율

리눅스 재단(Linux Foundation) 통계:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
서버 운영체제:
├── Linux:      96.3%
├── Windows:     1.9%
└── FreeBSD:     1.8%

슈퍼컴퓨터 (Top 500):
└── Linux:      100% (500대 전체)

모바일 (스마트폰):
├── Android (Linux 기반): 71.9%
└── iOS:                  27.3%

클라우드 인프라:
├── AWS: Linux 인스턴스 > 90%
├── Azure: Linux VM 50% 이상
└── GCP: Linux 기반 서비스 대다수

임베디드 기기:
└── Linux:      62%
    (TV, 라우터, IoT 기기 등)

컨테이너:
└── Docker, Kubernetes 모두 Linux 기반

Linux가 지배하는 영역

1. 서버와 클라우드

1
2
3
4
5
6
# 대부분의 웹 서버가 Linux 기반
$ uname -a
Linux web-server 5.15.0-78-generic #85-Ubuntu SMP x86_64 GNU/Linux

# LAMP/LEMP 스택
Linux + Apache/Nginx + MySQL/MariaDB + PHP/Python

2. 컨테이너와 오케스트레이션

1
2
3
4
# Docker는 Linux Kernel 기능 사용
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y nginx
CMD ["nginx", "-g", "daemon off;"]
1
2
3
4
5
6
7
8
9
# Kubernetes도 Linux 기반
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:latest

3. Android (모바일)

Android 아키텍처:

Android Apps (Java/Kotlin)
Android Framework
Android Runtime (ART)
Native Libraries (C/C++)
Linux Kernel
← Linux! 🐧

4. 임베디드 시스템

1
2
3
4
5
# Raspberry Pi
$ cat /proc/version
Linux version 5.15.32-v8+ (Raspberry Pi OS)

# 스마트 TV, 라우터, 자동차 인포테인먼트 시스템 등

5. 슈퍼컴퓨터

1
2
3
4
5
6
7
8
9
10
11
12
13
Top 500 슈퍼컴퓨터 (2023):

1. Frontier (미국)      - Linux
2. Fugaku (일본)        - Linux
3. LUMI (핀란드)        - Linux
...
500. 모든 시스템         - Linux (100%)

이유:
- 오픈소스로 커스터마이징 가능
- 성능 최적화 용이
- 무료 라이센스
- 강력한 커뮤니티 지원

실전 예시: Unix/Linux 명령어

파일 및 디렉토리 조작

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 디렉토리 탐색
pwd                    # 현재 디렉토리
ls -la                 # 상세 목록 (숨김 파일 포함)
cd /var/log           # 디렉토리 이동

# 파일 조작
touch file.txt         # 빈 파일 생성
cp source.txt dest.txt # 파일 복사
mv old.txt new.txt     # 파일 이동/이름 변경
rm file.txt            # 파일 삭제

# 디렉토리 조작
mkdir -p dir1/dir2/dir3  # 하위 디렉토리까지 생성
rmdir empty_dir          # 빈 디렉토리 삭제
rm -rf directory/        # 디렉토리와 내용 모두 삭제

# 권한 관리
chmod 755 script.sh    # rwxr-xr-x
chmod u+x file.sh      # 소유자에게 실행 권한 추가
chown user:group file  # 소유자 변경

텍스트 처리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 파일 내용 보기
cat file.txt           # 전체 출력
head -n 10 file.txt    # 처음 10줄
tail -f /var/log/app.log  # 실시간 로그 모니터링

# 검색
grep "error" app.log   # 패턴 검색
grep -r "TODO" src/    # 재귀 검색
find / -name "*.log"   # 파일 찾기

# 텍스트 처리
sed 's/old/new/g' file.txt        # 문자열 치환
awk '{print $1, $3}' file.txt     # 열 추출
sort file.txt                      # 정렬
uniq file.txt                      # 중복 제거
wc -l file.txt                     # 라인 수 세기

프로세스 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 프로세스 확인
ps aux                 # 모든 프로세스
top                    # 실시간 프로세스 모니터
htop                   # 향상된 top

# 프로세스 제어
kill 1234              # 프로세스 종료 (PID 1234)
killall nginx          # 이름으로 종료
pkill -f "python app"  # 패턴으로 종료

# 백그라운드 실행
command &              # 백그라운드에서 실행
nohup command &        # 로그아웃 후에도 실행
jobs                   # 백그라운드 작업 목록
fg %1                  # 작업을 포그라운드로

네트워킹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 네트워크 상태
ifconfig              # 네트워크 인터페이스 (구버전)
ip addr show          # 네트워크 인터페이스 (신버전)
netstat -tuln         # 열린 포트 확인
ss -tuln              # netstat의 현대적 대안

# 연결 테스트
ping google.com       # ICMP 핑
curl https://api.example.com  # HTTP 요청
wget https://example.com/file.zip  # 파일 다운로드
ssh user@server.com   # 원격 접속

# DNS
nslookup google.com   # DNS 조회
dig google.com        # 상세 DNS 정보

시스템 정보

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 시스템 정보
uname -a              # 커널 정보
lsb_release -a        # 배포판 정보
cat /etc/os-release   # OS 정보

# 하드웨어 정보
lscpu                 # CPU 정보
free -h               # 메모리 사용량
df -h                 # 디스크 사용량
lsblk                 # 블록 장치 목록
lsusb                 # USB 장치
lspci                 # PCI 장치

# 성능 모니터링
uptime                # 시스템 가동 시간과 부하
iostat                # I/O 통계
vmstat                # 가상 메모리 통계

마치며

Unix와 Linux의 역사는 단순히 운영체제의 발전사를 넘어, 오픈소스 운동, 협업 개발, 표준화의 중요성을 보여주는 사례입니다.

핵심 요약:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Unix (1970년대)
  ├─ 혁명적 특징: C로 작성, 이식성, 멀티태스킹
  ├─ Unix 철학: 단순성, 모듈화, 텍스트 스트림
  └─ 다양한 변형 → POSIX 표준화 필요

GNU 프로젝트 (1983)
  ├─ 자유 소프트웨어 운동
  ├─ GCC, Bash, coreutils 등 개발
  └─ Kernel 부족 문제

Linux Kernel (1991)
  ├─ Linus Torvalds의 취미 프로젝트
  ├─ GNU와 결합 → 완전한 OS
  └─ 오픈소스 협업의 성공

GNU/Linux
  ├─ 서버: 96%+
  ├─ 슈퍼컴퓨터: 100%
  ├─ 모바일: 70%+ (Android)
  ├─ 클라우드: 대다수
  └─ 임베디드: 62%

현대 영향
  └─ 현대 컴퓨팅의 기반 인프라

Unix/Linux를 배우는 것은 단순히 운영체제를 사용하는 것이 아니라, 현대 소프트웨어 개발의 근간이 되는 철학과 도구를 이해하는 것입니다.

참고 자료

공식 문서 및 표준

역사 및 철학

학습 자료

배포판 공식 사이트

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.