CS/Linux 37

[Linux] 리눅스 초기화 (SysV init, systemd, rc.local)

1. 초기화 개요리눅스 시스템이 부팅될 때는 다음과 같은 순서를 거칩니다.BIOS/UEFI → 부트로더(GRUB) → Linux 커널 → init/systemd → 서비스 실행 → 로그인 프롬프트부팅 단계BIOS/UEFI: 하드웨어 초기화, 부트 디바이스 선택.부트로더 (GRUB): 커널과 initramfs 로드.Linux 커널: 장치 드라이버 초기화, 루트 파일 시스템 마운트.init 또는 systemd: 초기화 프로세스 실행, 서비스 시작.사용자 로그인: CLI 또는 GUI 환경 제공.2. 전통적인 SysV init/etc/inittab과거 SysV init 환경에서는 /etc/inittab이 부팅 시 실행할 런레벨을 결정했습니다.id:3:initdefault:위 예시는 런레벨 3(CLI 멀티유저 모..

CS/Linux 2025.08.10

[Linux] 소스 빌드 (make)

소스 컴파일이 필요한 이유리눅스에서 소프트웨어 설치 방법은 크게 두 가지입니다.패키지 설치 (apt, yum 등)→ 빠르고 안정적이지만 버전과 기능이 배포판 저장소에 종속됨소스 코드 직접 컴파일 (./configure → make → make install)→ 최신 버전 사용 가능, 기능/성능 최적화 가능소스 컴파일이 특히 필요한 경우저장소에 원하는 버전이 없음특정 기능/모듈을 켜거나 끄고 싶음성능 최적화(CPU 최적화, 불필요 기능 제거)가 필요보안 패치나 버그 수정이 공식 패키지에 반영되기 전 적용📊 패키지 설치 vs 소스 설치 비교구분패키지 설치소스 설치속도빠름느림 (빌드 과정 필요)버전배포판 저장소에 한정최신 버전 직접 사용 가능기능기본 설정에 종속필요 기능만 선택 가능의존성자동 해결수동 해결 ..

CS/Linux 2025.08.10

[Linux] 백업·복구 도구 비교 (dd, dump, tar, cpio, rsync)

비교표도구동작 방식FS 인식증분압축대표 활용dd블록 단위 복제XX외부 툴 필요디스크 이미지, 포렌식dumpFS 기반 파일 단위OO외부 툴 필요서버 데이터 백업tar파일 단위 아카이브XO(--listed-incremental)O범용 아카이브cpio파일 목록 기반 아카이브X제한적외부 툴 필요initramfs, 파이프rsync변경분만 동기화XOX(전송 중 압축 가능)로컬·원격 동기화💡 FS 인식: 파일 시스템 구조를 이해하고 메타데이터 기반으로 작업하는지 여부선택 가이드상황추천 도구이유디스크 전체 복제dd부트섹터 포함 비트 단위 복제서버 OS 데이터 백업dumpFS 인식, 증분 가능단일 파일로 묶어 보관tar범용성, 압축 지원find 출력 즉시 아카이브cpio파이프 기반변경분만 빠르게 동기화rsync네트워크..

CS/Linux 2025.08.09

[Linux] 파일 시스템의 ACL과 속성(Attributes)

리눅스 파일 접근 제어는 소유권(Owner) 과 허가권(Permission) 으로만 충분할 것 같지만, 실무에서는 더 세밀한 권한 관리와 강력한 보호가 필요합니다. 이때 사용하는 것이 ACL(Access Control List) 과 속성(Attributes) 입니다.ACL은 "누가 / 무엇을 할 수 있는지" 를 확장하는 도구속성은 "그 무엇도 / 혹은 특정 방식만 할 수 있게" 만드는 도구둘을 함께 사용하면, 운영 환경에서 발생할 수 있는 의도치 않은 변경과 악의적인 접근을 모두 방어할 수 있습니다.권한 관리 4단계 모델[1] 소유권(Owner) → 파일의 주인과 소속 그룹[2] 허가권(Permission) → 주체별 rwx 권한[3] ACL → 개별 사용자·그룹 세밀 제어[4] 속성(Attribute..

CS/Linux 2025.08.09

[Linux] 네트워크 인터페이스와 Docker 네트워크 트래픽 구조 분석

Docker에서 발생하는 트래픽 흐름을 분석하려면 리눅스의 네트워크 인터페이스(NIC) 구조를 먼저 이해해야 합니다. 이 글은 리눅스 NIC 종류 설명, Docker 네트워크 구성, 그리고 컨테이너 간 트래픽 경로 분석까지 모두 담은 실무 중심 가이드입니다.리눅스 네트워크 인터페이스 종류 정리 (NIC 종류)인터페이스설명활용ens3, eth0, enp0s3시스템이 부팅될 때 자동으로 할당되는 물리 네트워크 카드 또는 클라우드 환경의 가상 NIC. ens3처럼 Predictable Naming 방식이 주로 사용됨.외부 통신의 입구이자 출구. 실제 인터넷, 사내망, VPN 연결. 보안 설정, 방화벽, 라우팅 테이블의 핵심 대상.lo (Loopback)자기 자신과 통신하는 전용 가상 인터페이스. 항상 127...

CS/Linux 2025.07.30

[Linux] X Window System

X 윈도우는 왜 "서버-클라이언트" 구조일까?X 윈도우에서 서버는 내 컴퓨터입니다. 반대로, 내가 실행한 GUI 앱(firefox, gedit 등)은 클라이언트입니다.X 서버: 화면, 마우스, 키보드 등 입력·출력 장치를 가진 쪽. 즉, 내 컴퓨터가 X 서버입니다.X 클라이언트: 창을 띄우고 싶어하는 프로그램. X 서버에게 그려달라고 요청함즉, 프로그램은 직접 화면에 그림을 그리는 것이 아니라, X 서버에게 요청합니다. 이 구조 덕분에 GUI 프로그램은 로컬에서도, 네트워크를 통해서도 화면을 띄울 수 있습니다.X 윈도우의 구성 요소구성 요소역할 설명X Server화면에 실제로 그리는 주체. 마우스, 키보드 이벤트도 여기서 처리X Client창을 띄우고 싶어하는 프로그램. X 서버에게 그려달라고 요청함X ..

CS/Linux 2025.07.27

[Linux] systemd 기반 시스템 운영에 필요한 필수 명령어

운영자는 장애 상황에서 즉시 근본 원인(root cause)을 찾을 수 있어야 한다.전통적으로 top, ps, journalctl 등을 사용해 프로세스의 상태를 점검했지만, systemd 기반 시스템에서는 이런 접근법으로는 명확한 원인을 찾기 어렵다.systemd는 모든 서비스를 유닛으로 추상화하여 관리하며, 프로세스와 자원을 CGroup(Control Group)이라는 커널 메커니즘을 통해 관리한다. 따라서 systemd 시스템을 다룰 때는 이 구조를 이해하고 활용해야 한다.systemctl서비스의 상태를 확인할 수 있는 도구다.실패한 서비스 전체 조회$ systemctl --failedUNIT LOAD ACTIVE SUB DESCRIPTIONdocker.service..

CS/Linux 2025.07.27

[Linux] 데몬의 실행 방식

1. Standalone 방식Standalone 방식은 가장 보편적이며, 데몬 자체가 독립적으로 시스템 부팅 시부터 항상 실행 상태를 유지하는 방식이다.특징시스템 부팅 시 자동으로 실행 (systemd service)지속적으로 포트를 점유하고 클라이언트의 요청을 직접 처리예시: docker.service# docker.service 예시[Unit]Description=Docker Application Container EngineAfter=network-online.target firewalld.serviceWants=network-online.target[Service]ExecStart=/usr/bin/dockerdExecReload=/bin/kill -s HUP $MAINPIDTimeoutSec=0R..

CS/Linux 2025.07.25

[Linux] 파이프와 리다이렉션에서 셸의 역할과 프로세스 생성 원리

셸에서 사용하는 파이프(|)와 리다이렉션(>, ) 은 일반적인 시스템 콜이나 바이너리 실행의 일부가 아니라, 셸이 제공하는 특별한 문법(syntax)이다. 운영체제 커널은 이런 문법을 직접적으로 이해하지 못하며, 오직 셸만이 이를 처리할 수 있다.때문에 파이프와 리다이렉션을 포함한 명령어는 반드시 셸 프로세스를 거쳐 실행된다.파이프(Pipe) 동작의 원리예를 들어 다음 명령을 보자. 셸은 이를 다음 단계로 처리한다.ls -al | grep ".txt" 1. 자식 프로세스 생성 (fork)부모 셸은 우선 하나의 자식 프로세스를 생성한다. 이 자식 프로세스는 exec를 통해 셸 프로세스(/bin/sh)로 변경된다.2. 자식 셸 프로세스에서 다시 두 개의 프로세스 생성 (fork)자식 셸이 다시 두 개의 프로..

CS/Linux 2025.07.23

[Linux] 마운트 개념 `df -h` 으로 이해하기

df -h 명령어란?df 명령어는 현재 시스템에 마운트 되어 있는 파일 시스템의 용량과 사용 현황을 보여줍니다. -h 옵션을 사용하면 사람이 읽기 편한 단위(GB, MB 등)로 표시하게 됩니다.예를 들어 다음과 같은 출력이 있을 수 있습니다.Filesystem Size Used Avail Use% Mounted on/dev/sda1 50G 30G 20G 60% //dev/sda2 100G 90G 10G 90% /home각 컬럼의 의미는 다음과 같습니다.Filesystem: 디스크 파티션 혹은 특정 스토리지 장치 경로Size: 해당 파일 시스템(파티션)의 총 용량Used: 현재 사용 중인 용량Avail: 남은 여유 용량Use%: 총 ..

CS/Linux 2024.12.11