리눅스 개요
리눅스의 특징
- 오픈소스 소프트웨어
- 멀티유저, 멀티태스킹 지원
- 다중 스레드 지원
- 다양한 파일 시스템 지원
장단점
- 장점
- POSIX(Portable Operation System Interface) 표준 기반으로 유닉스와 호환 가능
- 안정적인 동작
- swap 방식을 통한 효율적인 하드웨어 활용
- 단점(최근에는 많이 보완됨)
- 오픈소스로 기술 지원의 한계 존재
- 보안 상 취약점 노출 가능성
- 한글 지원 미흡
배포판의 종류와 특징
💡 리눅스 배포판이란?
리눅스 커널, GNU 소프트웨어, 응용 프로그램 등을 함께 묶어서 구성한 리눅스 OS. 목적에 따라 다양한 배포판이 존재함
- 슬랙웨어 리눅스: 1992년에 등장하여 가장 먼저 대중화
- 데비안: GNU의 공식 후원을 받는 유일한 배포판
- 우분투: 데비안 GNU/리눅스에 기초. 사용자 편의성에 초점을 맞춤
- 레드햇
- RHEL(기업용): subscript 형태로 요금을 지불
- 페도라: 레드햇과 커뮤니티의 지원으로 개발
- CentOS: RHEL과 완벽하게 호환, 무료 기업용 OS
- 수세(Suse): 독일에서 출시된 배포판으로 유럽에서 인기
리눅스의 역사
- 켄 톰슨: 유닉스 개발(어셈블리 언어 기반, 호환성 이슈 존재)
- 데니스 리치: UNIX를 C언어로 재개발. 이후 BSD 계열과 시스템 V 계열로 분리
- 리처드 스톨먼: 시스템 V측의 소스 코드 비공개 및 상업적 이용 제한에 반발하여 GNU 프로젝트 시작
- 앤드류 타넨바움: 미닉스 개발(오픈소스)
- 리눅스 토발즈: 미닉스의 커널 소스를 수정하여 GNU 시스템에 적합한 커널을 제작(+유닉스와 호환)
디렉터리 종류와 특징
💡/bin vs /usr/bin
- /bin: 시스템 부팅 및 복구에 필요한 최소한의 필수 명령어 저장 (ex: ls, cp, mv, cat, sh, mkdir)
- /usr/bin: 부팅 후 일반 작업에 필요한 다양한 명령어 저장 (ex: vim, python, gcc, tar, curl)
리눅스 설치
리눅스 설치 개요
- 리눅스의 종류가 다양하고, 배포판마다 설치 환경 및 과정이 다름
- 설치 유형은 데스크탑형, 서버형, 사용자 정의형(취향에 따라 설치)으로 구분됨
- 하드디스크 재구성이 진행되기 때문에 백업 필수
- 부팅 드라이브를 다시 파티션하는 경우라면 os의 부트 로더를 다시 설치해야 할 수 있음
파티션
💡 파티션이란?
- 하나의 물리적 디스크를 여러 개의 논리적인 디스크로 분할하는 것
- 각 파티션마다 독립적인 파일 시스템을 만들 수 있음 → 관리 효율성 증가(부팅 시간, 오류 점검, 백업/복구 시간 단축)
- 시스템 손상 시 영향 최소화
디스크와 장치명
- 파티션 이름: 디스크의 장치 파일명 + 숫자
- /dev/hda3 → /dev + /hd + 3
- /dev: 시스템 디바이스 파일들이 저장되는 디렉터리
- /hd: IDE 혹은 ATA 방식 /sd: SCSI 혹은 USB 방식
- a: 하나의 케이블에 연결된 디스크의 우선순위
- 3: 파티션 번호
- 마운트 시 지정된 장치명을 사용(ex: /dev/hda)
파일 시스템
- 파일 시스템은 디스크의 파티션에 파일을 사용할 수 있도록 구성해놓은 것 또는 구성 방식
- 리눅스는 고유 파일 시스템 뿐 아니라 다양한 파일 시스템을 지원하고 있음
- 파일 시스템의 종류
- 리눅스 전용(ext1~4)
- 저널링 파일 시스템(JFS, XFS): 파일 시스템에 오류가 생기더라도 복구가 가능하도록 만든 것
- 네트워크 파일 시스템(SMB, NFS): 다른 pc에 있는 파일 시스템을 내 것처럼 쓸 수 있도록 함
- 클러스터링 파일 시스템(GFS)
- 장치 파일 시스템(IS9660, UDF)
- OS별 파일 시스템(윈도우: FAT32, NFTS/NET OS: HPFS)
LVM(Logical Volume Manager)
- 작은 용량의 하드디스크 여러 개를 큰 용량의 하나의 하드디스크처럼 사용
- 다수 개의 디스크를 묶어 사용함으로써 파티션의 크기를 유연하게 조절할 수 있음
- LVM 구성 볼륨의 종류
- 물리 볼륨: 개별 물리적인 디스크
- 볼륨 그룹: 여러 개의 물리 볼륨을 하나의 그룹으로 구성
- 논리 볼륨: 볼륨 그룹의 일부를 논리 그룹으로 나누어 사용
RAID(Redundant Array of Independent Disks: 복수 배열 독립 디스크)
💡 LVM vs RAID
- LVM은 단순히 용량을 늘리는 것이 목적
- RAID는 시스템 에러 발생 시 가용성을 보장하는 것이 목적(안정성)
- 여러 개의 물리적 디스크를 하나의 논리적 디스크로 인식하여 작동하게 하는 기술
- 특징: 데이터 분할 저장, 데이터 중복 저장, 오류 관리 → 고용량, 신뢰성, 성능 향상
- RAID의 종류
- 하드웨어 RAID: 하드웨어 제작 업체에서 장비 자체를 여러 디스크를 꽂을 수 있도록 구성. 안정적
- 소프트웨어 RAID: 하드웨어보다 저렴하지만 안정성은 떨어짐
- 구성(데이터 저장) 방식에 따라 레벨을 붙임. 숫자가 클수록 신뢰성이 높거나 성능이 향상됐음을 의미
- RAID 0(스트라이핑 방식): 여러 디스크에 데이터를 나눠 저장 → 고용량, 빠른 I/O but 고장에 취약
- RAID 1(미러링 방식): 디스크에 중복 데이터 저장 → 결함 허용 but 저장 공간 2배 필요
- RAID 0 + 1: 스트라이핑 후 미러링 → 빠른 I/O but 느린 복구 시간
- RAID 1 + 0: 미러링 후 스트라이핑 → 손실된 데이터의 빠른 복원
fdisk
- fdisk란 파티션 테이블을 관리하는 명령어
- 리눅스의 디스크 파티션을 생성, 수정, 삭제할 수 있는 일종의 유틸리티
- fdisk [장치명] 입력 후 명령어 입력
부트 로더(Bootstrap Loader) = 부트 매니저
- 컴퓨터를 사용자가 사용할 수 있도록 디스크에 저장된 OS를 주기억장치로 적재해주는 프로그램
- 필요한 초기 작업, OS(멀티부팅)을 주 메모리로 복사, 운영체제 실행 등의 기능을 수행
- 부트 로더의 저장 위치
- MBR(Master Boot Record): 하드디스크의 첫 번째 섹터로, 디스크 전체에 1개만 존재함. 512Byte의 크기로, 파티션 테이블 정보를 저장함. 어느 파티션을 부팅할지 설정하고 해당 섹터로 점프하는 역할
- 각 주 파티션의 부트 섹터: 해당 파티션의 첫 번째 섹터(부트 섹터). os 커널을 메모리에 로드하는 역할
- 임베디드 시스템 부트로더: PC BIOS와 OS Loader 기능을 수행하는 프로그램으로, 시스템 부팅 시 가장 먼저 수행됨
부트로더의 종류
- LILO(Linux Loader): 리눅스 전용
- GRUB2(Grand Unified Bootloader version2)
- 리눅스 뿐 아니라 다른 os에서도 사용 가능
- 편리한 설정 및 사용, 대화형 UI 가능
- 부팅 시 부트 정보 수정. 멀티 부팅 지원
- 파일 시스템과 커널 실행 형식 인식 후 부팅
런레벨
- 리눅스 시스템 부팅 시 어떤 서비스를 자동으로 시작할지 결정하는 단계
- 0~6개까지 7개의 단계가 존재하며, /etc/inittab 파일에서 설정 가능([런레벨]:[행동]:[명령어] 형식)
- 주로 3, 5레벨이 많이 사용됨
로그인과 로그아웃
- 로그인
- 리눅스는 X윈도우 상에서 로그인/로그아웃과 콘솔상에서의 로그인/로그아웃이 있음
- 로그인 과정
- 패스워드 확인 → 입력한 패스워드와 /etc/passwd 필드 비교
- 쉘 설정 파일 실행 → PATH 경로, 터미널 설정, 환경변수, 로그인 시 실행 명령, 로그인 메세지 출력
- 로그인 쉘 실행: /etc/passwd의 마지막 필드에 지정되어 있음
- 로그인 메세지 설정 파일
- /etc/issue: 로그인 전 콘솔 접속 시
- /etc/issue.net: 로그인 전 원격 접속 시
- /etc/motd: 로그인 후
- 쉘 종류의 프롬프트
- sh, csh, ksh, bash
- shell 프로그램 저장 위치: /bin/bash, /bin/sh..
- 로그아웃
- logout, exit, Ctrl+D 사용
- 전체 사용자 로그아웃 타임아웃: /etc/profile의 TMOUT 설정(초)
- 특정 사용자 로그아웃 타임아웃: ~/.bashrc의 TMOUT 설정(초)
References
'Etc' 카테고리의 다른 글
리눅스 마스터 2급 정리(3) - 사용자 생성 및 계정 관리 명령어 (0) | 2025.05.02 |
---|---|
리눅스 마스터 2급 정리(2) - 기본 명령어 (0) | 2025.05.02 |
금융권 엔터프라이즈 아키텍쳐와 IT의 발전 (0) | 2025.04.14 |
USB 마운트 및 파일시스템 (0) | 2025.03.12 |
[코테후기] 2022 원티드 3rd 쇼미더코드(+코드) (0) | 2023.01.14 |