리눅스 마스터 1급_1

알파카파카·2026년 2월 8일
post-thumbnail

1. 운영체제?

사용자와 하드웨어 간의 상호작용을 위해 인터페이스를 제공하는 시스템
컴퓨터의 중앙처리장치, 메모리 및 주변 장치 등 하드웨어를 효율적으로 관리

운영체제는

일정 시간동안 처리하는 일의 양을 의미하는 처리능력
사용자의 요청 후 결과가 얻어질 때까지의 시간을 의미하는 반환 시간
요청을 정확하게 처리하는 신뢰도
이용할 수 있는 시스템의 자원이 어느 정도인가를 의미하는 사용 가능도

의 향상을 목적으로 한다.


2. 운영체제의 핵심 기능

운영체제(OS)는 프로그램을 실행뿐 아니라, 하드웨어와 소프트웨어 사이에서 모든 자원을 관리

1. 자원 관리 (Resource Management)

컴퓨터의 핵심 자원인 CPU(프로세스), 메모리, 장치 I/O, 파일 시스템 등이 효율적으로 작동하도록 관리

2. 자원 스케줄링 (Resource Scheduling)

한정된 자원을 여러 프로그램이 공평하고 효율적으로 사용할 수 있도록 순서와 시간을 분배

3. 하드웨어 관리 (Hardware Control)

LAN 카드, USB 장치, 디스크 등 다양한 주변 하드웨어를 인식하고 제어하여 프로그램이 원활하게 작동하도록 도움

4. 네트워크 제어 (Network Control)

다른 컴퓨터나 서버와 통신할 수 있도록 다양한 네트워크 제어 기능을 제공

5. 데이터 관리 및 공유 (Data Management & Sharing)

데이터를 안전하게 관리하고, 파일이나 네트워크 같은 자원을 여러 사용자가 공유할 수 있도록 지원

6. 자원 보호 (Resource Protection)

중요한 시스템 자원에 허가되지 않은 접근을 막아 시스템의 안전성을 유지

7. 오류 검사 및 복구 (Error Detection & Recovery)

시스템에 문제가 생겼을 때 이를 감지하고, 가능한 경우 원래 상태로 복구하여 중단 없는 서비스를 제공

8. 가상화 (Virtualization)

물리적인 자원을 추상화하여 하나의 자원을 여러 개처럼 보이게 하거나, 여러 자원을 하나처럼 묶어 효율적으로 사용


3. 운영체제 운용 기법

1세대: 일괄 처리 (Batch Processing)

CPU: 한 번에 하나의 작업만 처리, 입출력(I/O) 중에는 아무것도 못 하고 기다려야 해서 효율이 매우 낮았음
메모리: 한 번에 딱 하나의 프로그램만 올라감
저장장치: 테이프나 카드에 담긴 데이터를 순서대로만 읽기

2세대: 다중 프로그래밍 & 다중 처리

CPU: 작업 하나가 입출력을 기다릴 때 놀지 않고 다른 작업을 실행하여 높은 사용률
메모리: 여러 개의 프로그램을 동시에 올려두고 관리하기 시작
저장장치: 디스크의 등장으로 데이터에 무작위로 접근(Random Access)이 가능

3세대: 시분할 시스템 (Time-Sharing)

CPU: 시간을 아주 잘게 쪼개어(Time Slice) 여러 사용자에게 번갈아 할당
메모리: '가상 메모리' 개념이 도입되어 실제 메모리보다 더 큰 프로그램을 실행
저장장치: 운영체제가 파일 시스템을 통해 데이터를 체계적으로 관리

4세대: 다중 모드

1 ~ 3세대의 기능을 모두 취합한 방식

5세대: 다중 모드 & 분산 처리

CPU: 여러 대의 컴퓨터에 있는 CPU들이 네트워크로 연결되어 하나의 거대한 작업을 나누어 처리
메모리: 네트워크를 통해 다른 컴퓨터의 메모리 자원까지 공유하거나 참조
저장장치: 클라우드나 분산 파일 시스템을 통해 물리적 위치와 상관없이 데이터를 저장하고 불러오기


4. 운영체제 사례

데스크톱 및 서버

  • Window OS
  • Linux
  • Mac

모바일 및 임베디드

  • Android
  • IOS
  • Tizen
  • Raspberry PI

IOT

  • Windows IOT
  • Android Things
  • Tiny OS
  • RIOT
  • VxWorks

5. 리눅스 개요

리눅스 개발자 - 리누스 토발즈 (Linus Torvalds)

1991년 헬싱키 대학교 시절, 교육용 OS인 미닉스(Minix)를 참고하여 개인용 컴퓨터에서 돌아가는 커널을 개발

GNU 프로젝트
유닉스(Unix)와 호환되는 자유 소프트웨어 운영체제를 만들려던 리처드 스톨먼의 프로젝트.
결합의 이유: GNU는 운영체제에 필요한 대부분의 도구를 만들었으나 핵심인 커널(Kernel) 이 없었고, 리눅스는 커널은 있었으나 응용 프로그램이 부족했음.

GNU 도구들과 리눅스 커널이 합쳐져 비로소 완전한 하나의 운영체제가 탄생함.

1) 리눅스의 일반적 특징

  • 이식성(Portability)
  • 자유 소프트웨어(Free software)
  • 멀티 유저(Multi-User)
  • 멀티 프로그래밍(Multiprogramming)
  • 계층적 파일 시스템(Hierarchical File System)
  • 쉘(Shell)
  • 보안(Security)

2) 리눅스의 기술적 특징

  • 모놀리딕 커널(monolithic kernel)
  • 장치의 파일화
  • 다양한 파일 시스템의 지원
  • 가상 메모리
  • 스왑(Swap)
  • 동적 라이브러리와 정적 라이브러리
  • 파이프(Pipe)
  • 리다이렉션(redirection)
  • 가상 콘솔(virtual console)

3) 오픈소스 라이선스 정리

1. GPL (General Public License)

가장 엄격
이 라이선스가 적용된 코드를 사용해 프로그램을 만들면, 그 프로그램의 전체 소스 코드도 반드시 공개

2. LGPL (Lesser GPL)

완화된 GPL, 주로 라이브러리에 사용
내 프로그램에 이 라이브러리를 '연결(Link)'만 해서 쓴다면 내 소스 코드를 공개할 의무는 없음

3. BSD (Berkeley Software Distribution)

소스 코드 공개 의무가 거의 없음
저작권자 표기만 잘 하면 소스 코드를 수정해서 유료 제품으로 팔아도 상관없다

4. Apache (Apache License)

BSD처럼 자유로우면서도, 특허권 관련 분쟁을 방지하는 조항이 명확하게 포함

5. MPL (Mozilla Public License)

수정된 파일에 대해서만 소스 코드를 공개해야 하는 정책 (GPL과 BSD의 중간 정도 성격)

파일 단위: 내 소스 전체가 아니라, MPL 코드가 들어있는 '특정 파일'만 공개 의무가 생김

6. MIT (MIT License)

가볍고 제약이 거의 없어 현재 전 세계 오픈소스에서 가장 흔한 라이선스 정책

라이선스소스 코드 공개 의무2차 저작물 공개 의무상용 소프트웨어와 결합특징 및 비고
GPL강함필수 (GPL로)불가가장 엄격한 카피레프트(Copyleft), 리눅스 커널
LGPL있음라이브러리만 공개가능라이브러리 연동 시 사용자 소스 공개 의무 완화
BSD없음선택 사항가능매우 자유로움, 저작권자 표기만으로 상용화 가능
Apache없음선택 사항가능특허권 관련 조항 명시, 안드로이드가 채택
MPL있음해당 파일만 공개가능파일 단위 공개 의무 (GPL과 BSD의 중간 형태)
MIT없음선택 사항가능가장 간결하고 제약이 없음, jQuery/Node.js 등

6. 리눅스 배포판 정리

1. 슬랙웨어 (Slackware)

특징 :

  • 시스템 설정 과정에서 자동화된 도구보다는 텍스트 기반의 수동 설정을 지향
  • 보수적인 업데이트: 최신 기능보다는 시스템의 안정성과 단순함을 최우선

종류 :

  • SlackWare(슬랙웨어)
  • OpenSuse(오픈수스)
  • VectorLinux(벡터리눅스)

2. 데비안 (Debian)

특징 :

  • 오픈소스의 상징: 완전한 비영리와 자유 소프트웨어 정신을 가장 잘 실천하는 배포판
  • apt라는 매우 편리한 패키지 관리 시스템을 사용

종류 :

  • Ubuntu(우분투)
  • Raspbian(라즈비안)
  • ChromeOS

3. 레드햇 (Red Hat)

특징 :

  • 주로 서버나 기업 환경에서 가장 많이 쓰이는 계열
  • 기술 지원이 확실하고 안정적
  • 보안과 관리 도구가 강력하여 금융권이나 대규모 인프라를 운영할 때 주로 선택

종류 :

  • RHEL(Red Hat Enterprise Linux)이 중심
  • CentOS ( 업데이트가 안 되고 있고 Rocky Linux가 자리를 대신하고 있음 )
  • Rocky Linux

먼저 간단하게 살펴보는 명령어

lscpu

CPU 확인하는 명령

ps -ef

현재 동시에 실행되는 프로세스 확인하는 명령

free

현재 메모리 현황 확인하는 명령

df -h

하드디스크 확인하는 명령어 ( 파티션 확인 )

profile
타닥,,, 타다닥,,,,,,,

0개의 댓글