Linux

From HPCWIKI
Revision as of 15:36, 16 July 2026 by Clara (talk | contribs) (Added Knowledge Graph section)
Jump to navigation Jump to search

Linux

Template:Status

Template:TOC

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

---

Knowledge Graph

Related

Linux Kernel TuningsystemdLVMiptablesUbuntufstabLinux Kernel