Linux
Linux
Overview
Linux는 오픈소스 기반의 유닉스 스타일 운영체제 커널이며, 서버·임베디드·클라우드 등 전 세계 대부분의 컴퓨팅 환경에서 표준으로 사용됩니다.
Summary
- 무엇인가? — 유닉스 스타일 멀티태스킹 OS 커널 (GNU General Public License)
- 왜 필요한가? — 안정성, 보안, 커스터마이징 가능성, 고성능 서버 환경
- 언제 사용하는가? — 서버, 클라우드, HPC, 임베디드, 네트워킹 장비 등
---
Purpose
이 문서가 존재하는 이유
- Goal: Linux 시스템 관리의 핵심 개념을 한 곳에서 제공
- Scope: 파일 시스템, 커널 튜닝, 프로세스, 권한, 네트워킹, 패키지 관리, 시그널 등
- Non-goals: 특정 배포판(Distribution)별 상세 설정은 하위 문서에서 다룸
---
Key Concepts
| Concept | Description | Related |
|---|---|---|
| Kernel | Linux의 핵심 — 하드웨어 추상화 및 자원 관리 | Linux Kernel Tuning |
| File System | 데이터 저장 및 조직화 구조 | Linux File System Types |
| Process | 실행 중인 프로그램 인스턴스 | Linux Process |
| Permission | 파일/디렉토리 접근 제어 (rwx) | Linux file permission |
| Network | 네트워킹 및 방화벽 (iptables) | Linux iptables |
| Sysctl | 커널 파라미터 런타임 조정 | Linux kernel parameter |
| Package Manager | 소프트웨어 설치/관리 도구 | Linux package manager |
| Signal | 프로세스 간 이벤트 알림 메커니즘 | Linux signal |
---
Architecture
Linux 시스템은 다음과 같은 계층으로 구성됩니다:
graph TD
A[Hardware] --> B[Kernel]
B --> C[System Libraries]
C --> D[System Utilities]
D --> E[Applications]
B --> F[File System]
B --> G[Process Manager]
B --> H[Network Stack]---
Workflow
| Stage | Input | Output |
|---|---|---|
| Boot | Kernel image | Running OS |
| Service Start | systemd unit | Running process |
| Package Install | .deb/.rpm file | Installed software |
| Config Change | sysctl parameter | Runtime kernel tuning |
---
Detailed Explanation
Kernel
Linux 커널은 하드웨어와 소프트웨어 사이의 중재자입니다. 메모리 관리, 프로세스 스케줄링, 디바이스 드라이버, 네트워킹 스택을 담당합니다.
File System
Linux는 다양한 파일 시스템 유형을 지원합니다 (ext4, XFS, Btrfs 등). 각 파일 시스템은 특정 사용 사례에 최적화되어 있습니다.
Process Management
Linux는 프로세스를 계층적으로 관리합니다. 각 프로세스는 고유한 PID를 가지며, 부모-자식 관계로 조직됩니다.
File Permissions
Linux 파일 권한은 소유자(owner), 그룹(group), 기타(others) 각각에 대해 읽기(r), 쓰기(w), 실행(x) 권한으로 구성됩니다.
Networking (iptables)
iptables는 Linux의 기본 방화벽 도구로, 패킷 필터링, NAT, 포트 포워딩을 지원합니다.
Kernel Parameters (sysctl)
sysctl를 통해 런타임에 커널 파라미터를 조정할 수 있습니다. 재부팅 없이 네트워크, 메모리, 프로세스 관련 설정을 변경할 수 있습니다.
Package Management
Debian/Ubuntu 계열은 `apt`, RHEL/CentOS 계열은 `yum`/`dnf`를 사용합니다.
Signals
Linux 시그널은 프로세스 간 이벤트 알림 메커니즘입니다 (SIGTERM, SIGKILL, SIGINT 등).
---
Configuration
# 커널 파라미터 확인
sysctl -a
# 커널 파라미터 변경
sudo sysctl -w net.ipv4.tcp_fin_timeout=30
# 변경 사항 영구 적용
echo "net.ipv4.tcp_fin_timeout=30" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
---
Examples
Example 1: 프로세스 상태 확인
ps aux | head -20
top -bn1 | head -20
Example 2: 파일 권한 변경
chmod 755 /path/to/script
chown user:group /path/to/file
---
Best Practices
- 정기적인 커널 업데이트 유지
- 불필요한 서비스 비활성화
- 파일 권한 최소 권한 원칙 적용
- sysctl 변경 전 백업 및 테스트
- iptables 규칙 문서화
---
Limitations
- 특정 하드웨어에 대한 드라이버 지원 제한
- 실시간(Real-time) 커널 별도 설치 필요
- GUI 환경 설정 복잡성
---
References
---
Related Pages
- Linux File System Types
- Linux Kernel Tuning
- Linux Process
- Linux file permission
- Linux iptables
- Linux kernel parameter
- Linux package manager
- Linux signal
---
Knowledge Graph
Related
→ Linux Kernel Tuning → systemd → LVM → iptables → Ubuntu → fstab → Linux Kernel