2024년 6월 16일
작성자 : 남상민
리눅스의 기초
리눅스 개요
[1] 리눅스의 정의 및 의미
- 1991 리누스 토발즈에 의해 오픈소스로 개발. ⇒ 리눅스 커널
- 리처드 스톨만의 GNU 프로젝트 통해 리눅스 커널 기반으로 다양한 리눅스 배포판 제공
- 개인용 컴퓨터, 서버, 메인 프레임, 모바일 기기, 임베디드 기기를 위한 유닉스 호환 OS
[2] 리눅스의 일반적 특징
- 이식성 : C언어로 작성 ⇒ 쉬운 이식성
- 자유 소프트웨어 : 공동체 이익. 모든 개발자들의 기여(사용→개선→배포 선순환) ex) GPL, LGPL
- 멀티유저 : 네트워크를 통한 자원에 접근
- 멀티 프로그래밍 : 다수의 프로그램을 동시 실행 가능
- 계층적 파일 시스템
- 셸 : 명령어 기반 프로그램(CLI) + 프로그래밍 기능 + 사용자 환경 설정 기능
- 보안 : 임의접근제어(명령어 : chmod) + 확장 임의접근제어(명령어 : setfacl) 제공.
- 네트워크상의 노드나 라우터로 동작 가능
- IPSec 제공.
- 강제접근제어 : 관리자만 접근 가능하도록 제어 ex) SELinux
[3] 리눅스의 기술적 특징
- 모놀리딕 커널
- HW를 관리하는 커널의 기능을 모두 가지고 있는 커널. 컴파일O
- 파일시스템, 프로세스 간 통신, 입출력 기능, 장치 관리, 프로세스 처리 ⇒ 모두
- 커널 모듈 ⇒ 유연성 확보
- vs Microkernel : 최소한의 커널 기능 제공. 컴파일X