Linux

[Introduction to Linux] 1-1. 리눅스 소개

meegu 2024. 10. 28. 21:59

1. 운영체제란?

운영체제 (OS, Operating System) :

- 컴퓨터나 스마트폰 같은 시스템에서 하드웨어와 소프트웨어 자원을 관리하는 *시스템 소프트웨어

- 운영체제가 설치되지 않으면 컴퓨터를 켰을 때 컴퓨터가 멈춤. 즉, 운영체제가 없으면 컴퓨터를 사용할 수 없다.

- 운영체제가 있어야 프로그램을 설치하고 작동할 수 있다.

**소프트웨어 분류
- 시스템 소프트웨어(System Software) : 컴퓨터의 기본 기능을 지원하고 관리. 시스템 소프트웨어가 있어야 응용 소프트웨어가 작동할 수 있음. ( 운영체제나 장치 드라이버)
- 응용 소프트웨어(Application Software) : 어떤 목적에 맞는 기능을 제공하는 소프트웨어 (응용 프로그램/ 어플리케이션) 예를 들어 웹브라우저나 엑셀과 같은 프로그램
*** 다양한 운영체제
어떤 소프트웨어가 작동한다면 운영체제가 있다고 보면 된다
따라서 '데스크톱','노트북','스마트폰','태블릿','차량용 내비게이션','가정용 월패드', '스마트가전'(TV,냉장고 등) 등에도
다~ 운영체제가 필요하다

운영체제의 기본 기능 : 하드웨어 자원관리 이므로
운영체제는 하드웨어 특성에 맞게 최적화 한다.

 

1-1. 운영체제의 구성 요소

커널 (kernel) :

하드웨어를 *초기화해 사용할 수 있게 하는 운영체제의 핵심 부분

여러 소프트웨어가 운영체제에서 작동할 수 있도록 메모리와 프로세스를 관리, 네트워크를 연결하는 등의 주요 기능 제공

* 초기화 : CPU, 메모리, 그래픽 카드, 랜 카드 등의 주변 장치를 인식해 사용할 수 있는 상태로 만드는 것

 

장치 드라이버 (device driver) :

하드웨어 장치를 초기화하고 운영체제와의 통신을 담당하는 소프트웨어

컴퓨터에서 장치를 사용하기 위해선 장치에 적합한 초기화 로직을 가진 장치 드라이버가 있어야 함

운영체제는 장치 드라이버를 통해 장치에 명령을 보내고, 장치는 장치 드라이버를 통해 응답을 운영체제로 보냄

 

파일 시스템 (file system) :

*HDD, SSD 등 저장 장치에 파일을 저장하고 관리하는 소프트웨어

파일의 이름, 크기, 저장 위치를 저장하고 파일에 대한 읽기/쓰기/실행을 제어

파일의 권한 및 저장 장치에 대한 접근 제어

 

** 파일(file) : 정보를 저장하는 기본단위

*HDD : 하드 디스크 드라이브/ 비휘발성, 순차접근이 가능한 컴퓨터의 보조 기억 장치

*SSD : 솔리드 스테이트 드라이브/ 비휘발성, 컴퓨터의 보조 기억 장치로 하드 디스크 드라이브(HDD)보다 빠른 데이터 접근 속도를 제공

 

네트워크 시스템 (network system) :

네트워크 드라이버 (network driver) : 장치 드라이버로 유선랜, 와이파이, 블루투스 등 네트워크 장치를 초기화해 사용할 수 있게 함

네트워크 스택 (network stack) : 네트워크 장치를 통해 들어온 네트워크 트래픽을 처리하는 *네트워크 프로토콜을 구현한 소프트웨어. 네트워크 프로토콜에 맞게 들어온 네트워크 트래픽을 수신하거나 전송

*네트워크 프로토콜(network protocol) : 네트워크에서 데이터를 주고받는데 적용되는 통신 규약

 

1-2. 운영체제의 역할

- 프로그램 실행과 멀티 태스킹

- 인터럽트 처리

- 메모리 관리

- 사용자 인터페이스 제공

 

프로그램 실행과 멀티 태스킹

운영체제는 프로그램을 실행하고, 실행된 프로그램이 잘 작동할 수 있게 하며 여러 프로그램이 동시에 실행 중인 경우 서로 충돌 없이 작동할 수 있도록 관리한다.

 

운영체제의 프로그램 실행 과정

 

→ 운영체제가 프로그램 실행

→ 디스크의 프로그램 실행 파일의 실행코드가 메모리로 적재

*CPU가 메모리에 적재된 실행코드를 불러와 실행

*CPU (Central Processing Unit, 중앙 처리 장치) : 컴퓨터의 두뇌, 프로그램 실행에 필요한 기본 명령어를 실행하는 하드웨어

**프로세스(process) : 실행 중인 프로그램

 

프로세스 스케줄링 (Process scheduling)

프로세스를 돌아가면서 실행할 때, 프로세스 중 하나를 골라 CPU가 실행하는 것

 

프로세스 스케줄러 (Process scheduler)

스케줄링 알고리즘을 사용해 스케줄링 하는 주체

 

멀티 태스킹 (Multi-tasking)

운영체제가 프로세스 스케줄러를 사용해 여러 프로세스를 동시에 처리하는 방식

 

인터럽트 처리

인터럽트 (Interrupt) : 하드웨어가 소프트웨어에 보내는 신호, 주로 하드웨어에 어떤 이벤트가 발생했을 때 보냄

운영체제는 여러 하드웨어가 보낸 다양한 인터럽트를 처리하고 어떤 인터럽트를 어떻게 처리할지 장치 드라이버에 정의

 

메모리 관리

운영체제는 프로그램이 문제없이 돌아갈 수 있도록 메모리를 관리

스와핑 (Swapping) : 디스크에 저장된 데이터를 메모리로 복구해서 사용하는 것

 

사용자 인터페이스 제공

운영체제는 *사용자 인터페이스를 제공, 사용자는 이를 통해 컴퓨터 시스템과 상호작용 (프로그램 실행, 데이터 저장 및 출력 등)

 

*사용자 인터페이스 (User interface) : 사람이 컴퓨터 시스템을 사용하게 하는 방법

  • 그래픽 사용자 인터페이스 (GUI, Graphical User Interface) : 그래픽을 통해 상호작용 ( 윈도우, 맥OS etc..)
  • 명령어 기반 인터페이스 (CLI, Command Line Interface) : 텍스트 기반 명령어를 통해 상호작용, 소프트웨어가 다른 소프트웨어에 명령을 내릴 때 GUI에 비해 적합

 

2. 리눅스 배포판

리눅스 배포판 (Linux distribution) : 

- 운영체제의 목적에 맞게 리눅스 커널에 여러 프로그램을 묶어 제공하는 패키지

- 공통적으로 *GNU 소프트웨어 탑재

- 리눅스 커널에 각종 기능을 추가해 만든 패키지를 CentOS, Ubuntu, Redhat 등의 이름으로 배포

 

1. 레드햇 리눅스 (RHEL, Red Hat Enterprise Linux)

이름에서부터 알 수 있듯 대표적인 유료 리눅스 배포판

기업용 소프트웨어 및 지원 서비스, 업그레이드 서비스 등을 제공하는 기술 지원이 가능한 리눅스

 

2. 센토스/센트오에스 (CentOS)

RHEL 소스 코드 기반으로 하는 무료 라이선스 배포판으로 안정성과 신뢰성이 높음

 

3. 우분투 (Ubuntu)

대표적 무료 배포 리눅스 배포판으로 사용자 친화적이고 사용자 커뮤니티가 매우 발달

데스크탑 혹은 서버 환경에서 많이 사용

 

3. 리눅스의 쓰임과 학습 이유

3-1. 어디에 쓰일까

1. 서버

IT 서비스를 구성하려면 웹 서버, 데이터베이스 서버, 파일 서버 등의 여러 종류의 서버가 필요한데

이런 서버에서도 운영체제가 설치되고 보통 이때 리눅스가 설치됨

리눅스는 전 세계 서버 시장의 약 60% 이상을 점유

서버란?
무언가를 제공해 주는 컴퓨터

네트워크 상에서 다른 컴퓨터(클라이언트)에게 서비스나 자원을 제공하는 컴퓨터 또는 소프트웨어.
예를 들어, 웹 서버는 웹 페이지를 요청하는 사용자에게 페이지를 제공하고, 데이터베이스 서버는 데이터를 요청하는 클라이언트에게 데이터를 전달한다.

 

 

2. 클라우드 컴퓨팅

클라우드 서비스 제공자(CSP, Cloud Service Provider ex: AWS, Azure etc..)는 클라우드 서비스를 구축하기 위한 백엔드에 주로 리눅스를 사용

가상머신, 스토리지, 데이터베이스 등에도 기본 운영체제로 리눅스를 사용

리눅스는 전 세계 클라우드 컴퓨팅 분야에서 약 70%이상을 점유

클라우드 컴퓨팅이란?
인터넷을 통해 서버, 저장소, 소프트웨어 같은 컴퓨터 자원을 필요할 때 빌려 쓰는 서비스

무언가를 제공해 주는 컴퓨터 라는 서버 개념을 기반으로, 클라우드 컴퓨팅은 실제 서버나 저장 장치를 소유하지 않아도
사용자에게 필요한 자원을 인터넷으로 제공.
예를 들어, 파일 저장을 위한 클라우드 스토리지, 애플리케이션 실행을 위한 클라우드 서버 등이 있음.

 

 

3. 임베디드 시스템

리눅스는 임베디드 시스템이 가진 PC/서버 환경에 비해 제한적인 자원 환경에서 잘 작동하며 실시간 성능 보장 요구하는 경우에도 잘 작동하기 때문에 임베디드 시스템의 운영체제로 적합하게 사용됨

임베디드 시스템이란?
특정 기능을 수행하도록 설계된 작고 단순한 컴퓨터로, 하드웨어와 소프트웨어가 결합되어 특정 장치나 기기에 내장

예를 들어, 전자레인지의 온도 조절 시스템이나 자동차의 엔진 제어 장치 등이 임베디드 시스템에 해당

 

 

4. 모바일 기기

스마트폰이나 태블릿과 같은 모바일 기기에도 리눅스가 널리 사용

안드로이드는 구글이 리눅스 기반으로 만든 모바일용 운영체제이고, 크롬OS 또한 리눅스를 기반으로 만들어짐

 

 

 

 

 

https://product.kyobobook.co.kr/detail/S000214004379

 

코딩 자율학습 리눅스 입문 with 우분투 | 런잇 - 교보문고

코딩 자율학습 리눅스 입문 with 우분투 | 기초부터 탄탄하게! 실습하며 배우는 리눅스 입문서리눅스에 처음 도전하는 분을 위한 입문용 책입니다. 따라 하기 쉽도록 입문자 눈높이에서 이해하기

product.kyobobook.co.kr