본문 바로가기
시작하는 개발 노트/리눅스

1. 운영체제란? [리눅스 배우기]

by 개발하는언니 2024. 8. 15.

운영체제(OS : Operating System)는 컴퓨터하드웨어와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 소프트웨어로 사용자가 프로그램을 수행할 수 있는환경을 제공한다.

  좁은 의미 → 하드웨어와 응용 프로그램 간의 다리 역할을 하는 커널(Kernel)

  넓은 의미 →  커널, 미들웨어( Middleware), 응용프로그램 실행 환경과 사용자 인터페이스 프레임 워크를 모두 포괄하여 정의 

 

 

  운영체제의 주요 역할

  1. 리소스 관리: OS는 CPU, 메모리, 디스크 공간, 입출력 장치 등 컴퓨터의 하드웨어 리소스를 관리하여 모든 애플리케이션에서 효율적이고 공정하게 사용되도록 합니다.
  2. 프로세스 관리: 시스템의 프로세스를 관리하여 여러 프로세스가 동시에 실행되도록 하고(멀티태스킹), 프로그램 실행을 처리하고, 프로세스 생성, 예약 및 종료를 관리합니다.
  3. 메모리 관리: OS는 다양한 프로그램의 필요에 따라 메모리 공간 할당 및 할당 해제를 처리합니다. 각 프로세스에 실행하기에 충분한 메모리가 있는지 확인하고 메모리 계층(캐시, RAM, 디스크)을 효과적으로 관리합니다.
  4. 파일 시스템 관리: OS는 다양한 저장 장치의 파일을 관리하여 사용자가 디렉터리에서 파일을 생성, 삭제, 읽기, 쓰기 및 구성할 수 있도록 합니다. 또한 파일 권한 및 액세스 제어를 처리합니다.
  5. 보안 및 액세스 제어: 무단 액세스로부터 데이터와 리소스를 보호하는 메커니즘을 제공합니다. OS는 보안 정책을 시행하고 사용자 인증을 관리하여 승인된 사용자와 애플리케이션만 시스템 리소스에 액세스할 수 있도록 보장합니다.
  6. 장치 관리: OS는 드라이버를 통해 장치 통신을 관리하여 하드웨어 구성 요소(예: 프린터, 그래픽 카드, 저장 장치)와 애플리케이션 간의 상호 작용을 촉진합니다.
  7. 사용자 인터페이스: OS는 그래픽(GUI) 또는 명령줄(CLI)일 수 있는 사용자 인터페이스를 제공하여 사용자가 컴퓨터 시스템과 쉽게 상호 작용할 수 있도록 합니다.

 

  운영 체제의 주요 기능

  1. 멀티태스킹: 여러 작업(프로그램)을 동시에 실행하는 능력입니다.
  2. 다중 사용자 기능: 개별 환경과 리소스를 관리하여 여러 사용자를 지원합니다.
  3. 멀티스레딩: 단일 프로세스에서 여러 실행 스레드를 동시에 실행할 수 있습니다.
  4. 파일 시스템: 데이터 저장소를 구성 및 관리하고 다양한 파일 형식을 지원하며 데이터 무결성을 보장합니다.
  5. 보안 및 액세스 제어: 데이터와 리소스를 보호하기 위해 인증, 암호화 및 사용자 권한을 제공합니다.
  6. 네트워킹: 네트워킹 작업을 지원하여 컴퓨터가 네트워크를 통해 리소스를 연결하고 공유할 수 있도록 합니다.
  7. 이식성: OS는 다양한 하드웨어 플랫폼에서 실행되도록 조정할 수 있습니다.
  8. 실시간 처리: 일부 OS는 입력을 즉시 처리해야 하는 애플리케이션에 실시간 처리 기능을 제공하도록 설계되었습니다.
  9. 그래픽 사용자 인터페이스(GUI): 사용자 상호 작용을 용이하게 하기 위해 창, 아이콘 및 버튼이 포함된 시각적 인터페이스를 제공합니다.
  10. 장치 독립성: 하드웨어 세부 정보를 추상화하여 기본 하드웨어에 관계없이 애플리케이션에 일관된 인터페이스를 제공합니다.

 

  운영체제의 종류

  1. 데스크톱 및 노트북(예: Windows, macOS, Linux 배포판)용으로 설계된 범용 OS인 경우:
    유형: 다중 사용자, 멀티태스킹 OS
    특징: 여러 사용자(한 번에 한 명이라도), 멀티태스킹을 지원하고, 그래픽 사용자 인터페이스(GUI)를 제공하며, 광범위한 애플리케이션을 지원하고, 다양한 환경에서 사용할 수 있습니다.
  2. 모바일 장치(예: Android, iOS)용으로 설계된 OS인 경우:
    유형: 모바일 운영 체제
    특징: 터치 인터페이스를 갖춘 모바일 기기에 최적화되어 있으며 앱 스토어, 배터리 관리 등 모바일 전용 기능을 제공하며 스마트폰, 태블릿, 웨어러블 기기용으로 설계되었습니다.
  3. 서버에서 사용되는 OS인 경우(예: Windows Server, Ubuntu Server, Red Hat Enterprise Linux):
    유형: 네트워크 운영 체제 또는 서버 운영 체제
    특징: 네트워크 리소스를 관리하도록 설계되었으며, 여러 사용자를 동시에 지원하고, 파일 공유, 데이터베이스 관리, 웹 호스팅과 같은 서비스를 제공하며, 네트워크 환경에서 안정성과 성능에 최적화되어 있습니다.
  4. 라우터, 가전제품 또는 차량과 같은 장치에 내장된 OS인 경우(예: 임베디드 Linux, VxWorks):
    유형: 내장 운영 체제
    특성: 특정 실시간 작업을 위해 설계되었으며 임베디드 시스템의 효율성과 안정성에 최적화되어 있으며 일반적으로 설치 공간이 최소화되고 전용 하드웨어에서 실행되는 경우가 많습니다.
  5. 적시 처리가 중요한 산업 또는 과학 애플리케이션(예: QNX, RTLinux)에 사용되는 경우:
    유형: RTOS(실시간 운영 체제)
    특성: 실시간 처리 기능을 제공하고 엄격한 시간 제약 내에서 작업이 완료되도록 보장하며 높은 신뢰성과 정확한 타이밍이 필요한 시스템에 자주 사용됩니다.
  6. 사용자 상호 작용 없이 일괄 작업을 처리하는 시스템에서 사용되는 경우(예: 이전 메인프레임):
    유형: 일괄 운영 체제
    특성: 작업을 일괄 처리하며, 작업 실행 중에 사용자와 직접적인 상호 작용이 없으며, 이는 기존 메인프레임 시스템에서 일반적입니다.
  7. 여러 컴퓨터가 함께 작동하고 단일 시스템으로 나타날 수 있는 OS인 경우(예: Amoeba, Plan 9):
    유형: 분산 운영 체제
    특성: 분산 환경을 관리하고 여러 독립 시스템을 조정하여 함께 작동하며 고가용성과 내결함성이 필요한 환경에서 자주 사용됩니다.

댓글