Chapter1. Linux Philosophy and Concepts

2025. 5. 7. 23:27·Linux/Linux 기초

 

 

본 게시글은 FreeCodeCamp.org에서 제공하는 "Introduction to Linux – Full Course for Beginners"을 기반으로 작성되었다.


리눅스 환경을 사용하게 된다면 가장 많이 보게 될 용어들이다. 각 용어들에 대해 정리해보자.

 

Kernel이란, 하드웨어와 애플리케이션(사용자 프로그램) 사이에서 중간 역할을 하는 핵심 소프트웨어를 뜻한다.

📌 커널의 핵심 역할
1) 하드웨어 제어
애플리케이션은 하드웨어를 직접 만질 수 없기에 커널이 대신 CPU, 메모리, 디스크, 네트워크, I/O 장치를 제어한다.

 

2) 시스템 콜 제공
애플리케이션이 커널의 기능을 요청할 수 있도록 인터페이스(system call)를 제공한다.

 

3) 프로세스 관리
어떤 프로그램을 언제 실행할지, 어떻게 동시에 여러 작업을 처리할지 결정한다.

 

4) 메모리 관리
여러 프로그램이 메모리를 안전하게 나눠 쓰도록 한다. 어찌보면 프로세스 관리와 함께 OS를 사용하는 주된 이유이다.

 

5) 파일 시스템 관리
저장장치의 파일들을 관리하고 접근을 제공한다.


Distribution이란 Linux의 배포판을 뜻한다.

모든 배포판은 동일한 Linux 커널을 기반으로 시작되는데, 커널 + 필수 유틸리티 + 설정 + 패키지 관리자 등 모든 운영체제 구성 요소를 모아 놓은 완성품을 배포판이라 칭한다.

1) Distro Families (계열)

  • Debian 계열: Debian → Ubuntu → Linux Mint
  • Fedora 계열: Fedora → RHEL → CentOS, Oracle Linux
  • SUSE 계열: SUSE → SLES → OpenSUSE

2) 배포판은 왜 필요한가?
커널만으로는 운영체제가 아니므로, 사용자 환경을 구성하는 여러 요소들이 필요하다. (Shell, init system, 파일 시스템 도구 / 패키지 관리자 (apt, yum, zypper 등)) 배포판은 서로 다른 철학을 갖게되는데, Ubuntu 계열이 일반적으로 많이 사용된다.

부트 로더(Boot Loader)란 커널을 메모리에 올리고 실행시키는 프로그램을 뜻한다.

📌 전체 부팅 흐름 요약
1) Boot Loader (GRUB, ISOLINUX 등)

  • BIOS/UEFI가 가장 먼저 실행한 후, 부트로더를 실행한다.
  • 부트로더는 디스크에서 커널 이미지를 찾아 메모리에 올리고 실행한다.


2) Linux Kernel

  • 하드웨어 초기화
  • 디바이스 드라이버 로딩
  • 루트 파일 시스템 마운트
  • 다음 단계인 init 또는 systemd 실행


3) init (또는 systemd 등)

  • 사용자의 쉘 환경 및 서비스 시작
  • 예전에는 /sbin/init이 표준이었지만, 최근에는 systemd가 대세
  • PID 1 프로세스: 사용자 공간에서 처음 실행되는 프로세스
GRUB 가장 일반적인 리눅스 부트로더
ISOLINUX ISO 이미지(CD/USB 부팅)용
U-Boot 임베디드 보드용 (Zynq, ARM 등)


🔧 비유로 쉽게 이해하기

  • Boot Loader: 자동차의 시동 키
  • Kernel: 자동차 엔진
  • Init/Systemd: 계기판, 내비게이션, 히터 등 시스템 전체 초기화 스크립트

init이란 시스템 부팅 후 가장 먼저 실행되는 사용자 공간 프로세스이며 (PID 1), 전체 시스템을 초기화하고, 서비스들을 순차적으로 시작하는 역할을 한다.

✅ Service란?
백그라운드에서 항상 실행되며 특정 기능을 제공하는 프로그램. 서비스들은 시스템 부팅 시 자동으로 시작되거나, 필요 시 수동으로 시작할 수 있다.

💡 쉽게 말해:
서비스는 보이지 않지만 계속 실행되는 프로그램을 뜻하며, init/systemd는 그걸 관리하는 부모 관리자 역할을 한다.

✅ 파일 시스템(File System)이란?
하드디스크나 SSD와 같은 저장장치에 파일을 저장하고 구성(조직)하는 방식을 뜻한다.

1) User Data (사용자 데이터)
→ 우리가 만든 파일들 (예: 문서, 이미지, 영상 등)

2) File System (파일 시스템)
→ 사용자 데이터를 어떤 방식으로 저장할지, 어떻게 이름 붙일지, 폴더를 어떻게 구성할지 정의하는 규칙
→ 예: ext4, NTFS, FAT32, XFS 등

3) Raw Partition (물리 파티션)
→ 하드디스크를 논리적으로 나눈 공간 (예: /dev/sda1, /dev/sda2)
→ 각 파티션마다 다른 파일 시스템을 사용할 수도 있음

4) Hard Disk Drive (물리 저장 장치)
→ 실질적인 저장 매체 (HDD, SSD, SD카드 등)

'Linux > Linux 기초' 카테고리의 다른 글

Chapter3. Useful Command Line Techniques  (0) 2025.05.09
Chapter2.3 Systemd에 대하여  (0) 2025.05.09
Chapter2.2 Linux 파일 종류  (0) 2025.05.09
Chapter2.1 Linux FHS(Filesystem Hierarchy Standard)  (1) 2025.05.08
Chapter2. Linux Basics and System Startup  (0) 2025.05.08
'Linux/Linux 기초' 카테고리의 다른 글
  • Chapter2.3 Systemd에 대하여
  • Chapter2.2 Linux 파일 종류
  • Chapter2.1 Linux FHS(Filesystem Hierarchy Standard)
  • Chapter2. Linux Basics and System Startup
Dinoj
Dinoj
  • Dinoj
    AlOG
    Dinoj
  • 전체
    오늘
    어제
    • 분류 전체보기 (181)
      • 이론 공부 (63)
        • 기타 학습 (20)
        • UVM (Universal Verification.. (12)
        • AI HARDWARE (12)
        • COMPUTER VISION (18)
        • Python (Pytorch) (1)
      • PROJECTS (29)
        • AI 가속기 (10)
        • 영상 처리 (3)
        • UVM (Universal Verification.. (2)
        • CPU 설계 (5)
        • CMOS VLSI (2)
        • Verilog (2)
        • Firmware (2)
        • C 언어 (2)
        • 기타 프로젝트 (1)
      • Linux (13)
        • Embedded Linux (7)
        • Linux 기초 (6)
      • AMBA BUS (16)
        • AXI BUS (5)
        • APB BUS (2)
        • Vitis (8)
      • AI SOC COURSE (53)
        • 영상 처리 (5)
        • SYSTEM VERILOG (CPU 설계) (20)
        • VERILOG 기초 (5)
        • CMOS VLSI (7)
        • FIRMWARE (9)
        • C PROGRAMMING (1)
        • Python (Keras) (6)
      • 코딩 지식 (5)
        • SYSTEM VERILOG (3)
        • TCL (2)
      • TISTORY (1)
  • 블로그 메뉴

    • 홈
    • 글쓰기
    • 관리
    • Info
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Dinoj
Chapter1. Linux Philosophy and Concepts
상단으로

티스토리툴바