정보보호론/시스템 보안

운영체제(Operating System) 의 정의와 구조

retro_blue 2020. 9. 16. 13:36
반응형

■ 운영체제의 정의

 - 컴퓨터의 운영체제란 쉽게 말해서 '윈도우(Windows)'나 '리눅스(Linux)' 같은 일종의 소프트웨어이다

 - 운영체제란 컴퓨터의 하드웨어를 제어하고 응용 소프트웨어를 위한 기반 환경을 제공하여, 사용자가 컴퓨터를 사용할 수 있도록 중재 역할을 해주는 프로그램을 말한다

 - 운영체제의 기본적인 역할은 각종 컴퓨터 하드웨어들을 서로 논리적으로 연결하고 제어하는 것이다

 - 운영체제의 다른 역할은 사용자와 컴퓨터 하드웨어 사이에서 동작하는 프로그램으로 컴퓨터 하드웨어와 응용프로그램을 연결해 주는 것이다

 - 사용자의 프로그램 실행환경을 만들어주며, 한정된 시스템 자원을 효율적으로 관리하며, 하드웨어를 사용자가 사용하는 수단을 제공한다

 

 

■ 운영체제의 목적

 ⓐ 처리능력(Throughput)의 향상

   - 단위 시간당 처리하는 작업량을 말한다. 시스템의 생산성을 나타내는 지표로 수치가 높을수록 좋다

 ⓑ 신뢰도 (Reliability) 향상

   - 하드웨어, 소프트웨어가 실패 없이 주어진 기능을 수행할 수 있는 능력

 ⓒ 응답시간 (Response Time) 단축

   - 사용자가 시스템에 작업을 의뢰한 후 반응을 얻을 때까지의 시간으로 응답시간이 짧을수록 좋다

 ⓓ 반환시간 (Turn-around Time)의 최소화

   - 하나의 작업이 시작한 시간에서부터 결과를 얻을 때까지 걸리는 시간을 의미하며 반환시간은 짧을수록 좋다

 ⓔ 사용가능도 (Availability) 향상

   - 가동률이라고도 하며, 시스템을 사용할 필요가 있을 때 얼마나 빨리 사용할 수 있는가를 나타냄

 

 

 

■ 운영체제 서비스

 - 운영체제 서비스는 개발자가 보다 쉽게 프로그래밍 할 수 있또록 개발자에 대해 편리성을 제공한다

 

1) 사용자 인터페이스 (User Interface)

 - 사용자 인터페이스(UI)는 컴퓨터와 사용자가 대화를 위한 접속을 제공하는 서비스로, 아무리 성능이 좋은 시스템도 사용자 인터페이스가 불편하면 상품가치가 월등히 떨어지게 된다

 ⓐ CLI (Command Line Interface)

    -명령라인 인터페이스, 문자 명령으로 명령을 입력하느 방법

 ⓑ GUI (Graphic User Interface)

    - 기존의 문자 위주 컴퓨터 운영 방식이 아닌 그림 위주의 새로운 컴퓨터 운영 방식이 아닌 그림 위주의 새로운 컴퓨터 운영 방식이다. 입ㆍ출력을 가리키고, 메뉴에서 골라서 동작 시킨다

 ⓒ Batch Interface

    - 일괄처리 인터페이스, 명령을 제어하는 지시들이 파일로 입력되며, 이들 파일이 수행된다

 

2) 프로그램 수행 (Program Execution)

 - 여러 프로그램 언어로 쓰인 프로그램을 기계어로 번역하여 프로그램을 주기억장치(Main Memory) 내로 배정하고, 그 처리 시작 주소에서 연속 명령을 실행하는 것

 - 프로그램 실행을 위해서는 명령의 인출, 주소 연산, 피연산자의 해석, 명령 부호의 실행 등 여러가지 중앙처리장치(CPU)의 동작이 실행된다

 

3) 입ㆍ출력 연산 (Input-Output Operation)

 - I/O operation은 입ㆍ출력을 실행하는 일과 실행을 위한 프로그램 또는 오퍼레이터(Operator)의 동작을 의미

 

4) 파일 시스템 조작 (File System Manipulation)

 - 파일 시스템(File System : 파일체계)은 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제를 가리키는 말이다

 - 파일 시스템 조작이란 프로그램이 동작하기 위해서 파일을 읽고, 쓰고, 생성하고, 변경하고, 삭제하는 일련의 동작을 의미한다. 또한 파일 시스템 조작을 통해서 지정된 파일을 찾을 수 있어야 하며, 파일의 정보를 열거할 수 있어야 한다

 

5) 통신 (Communication)

 - 컴퓨터 시스템에서 통신이란 한 프로세스가 다른 프로세스와 정보를 교환하는 것이다

 - 프로세스 개념의 통신은 동일한 컴퓨터에서 수행되고 있는 프로세스 사이에서 일어나는 것이고, 네트워크 개념의 통신은 컴퓨터 네트워크에 의해 함께 묶여 있는 서로 다른 컴퓨터 시스템상에서 수행되는 프로세스 사이에서 일어난다

 - 통신은 공유 메모리(Shared Memory), 메시지 전달 기법(Message Passing)에 의해 구현된다

 

6) 오류 탐지 (Error Detection)

 - 오류 탐지는 오류 검출과 같은 의미로 처리 데이터가 올바른지를 검사하거나 하드웨어 또는 소프트웨어적으로 틀린 장소를 검출하는 것이다

 - 전송 오류를 패리티나 채널 점검 등으로 발견하는 것으로 디버깅 기능은 사용자와 개발자의 능력을 효율적으로 향상시켜 준다

 

7) 자원 할당 (Resource Allocation)

 - 하나의 작업(job) 또는 태스크의 실행에서 실행에 필요한 주기억장치, 입ㆍ출력장치 등과 같은 시스템 자원을 배당하는 것으로 운영체계의 중추적 기능 중의 하나이다

 

8) 회계 (Accounting)

 - 사용자가 어떤 종류의 컴퓨터 자원을 얼마나 많이 사용하는지를 추적할 수 있도록 하는 기록

 - 사용량을 관리하는 회계로 클라우드 컴퓨팅에서 과금의 근거가 된다

 

9) 보호 (Protection)와 보안 (Security)

 - 보호 : 시스템 자원에 대한 모든 접근이 통제되도록 보장하는 것을 포함

 - 보안 : 내부/외부로부터의 공격에 대해 시스템을 지키는 것

 

더보기

★ 커널 (Kernel)

 - 커널이란 운영체제의 일부분으로 운영체제의 핵심적인 기능을 담당한다

 - 하드웨어 특성으로부터 프로그램을 격리시키고, 하드웨어와 직접적으로 상호작용한다

 - 커널은 실행 중인 프로그램을 관리하고 시스템에 대한 전반적인 자원을 관리하며, 장치를 사용할 수 있게 한다

 - 커널의 기본 개념은 프로세스와 파일관리이다

 - 커널버전이 높아질수록 지원되는 장치가 많아진다

 - shell이나 유틸리티 또는 응용프로그램은 시스템 호출을 통해서 커널과 통신한다

 - UNIX 계열의 시스템이 부팅될 때 가장 먼저 읽혀지는 운영체제의 핵심 부분으로 주기억장치에 상주한다

 

★ 커널의 역할

 1) 추상화

   - 같은 종류의 부품에 대해 다양한 하드웨어를 설계할 수 있기 때문에 하드웨어에 직접 접근하는 것은 문제를 매우 복잡하게 만들 수 있다

   - 일반적으로 커널은 운영체제의 복잡한 내부를 감추고, 깔끔하고 일관성 있는 인터페이스를 하드웨어에 제공하기 위해 몇 가지 하드웨어 추상화*깥은 종류의 장비에 대한 공통 명령어의 집합)들로 구현된다

   - 이 하드웨어 추상화는 프로그래머가 여러 장비에서 작동하는 프로그램을 개발하는 것을 돕는다. 하드웨어 추상화 계층(HAL)은 제조사의 장비 규격에 대한 특정한 명령어를 제공하는 소프트웨어 드라이버에 의지한다

 

 2) 보안

   - 커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임진다

 

 3) 자원관리

   - 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다

   - 특히 프로세스에 처리기를 할당하는 것을 스케줄링이라 한다

 

★ 커널보안 설정 방법

   - 불필요한 핑(ping) 패킷을 무시하도록 설정할 수도 있다

   - 싱크 어택(SYNC Attack) 공격을 막기 위해 백로그 큐를 늘린다

   - IP 스푸핑 된 패킷을 로그에 기록한다

   - 연결 종료 시간을 줄인다

 

■ 운영체제의 동작 원리

 1) 이중모드 (Dual Mode)

  - 이중모드란 다중 사용자 프로그래밍 환경 또는 다중 프로그래밍 시스템(Multiprogramming System)에서 특정 사용자의 프로그램이 실수로 시스템 전체에 영향을 미치는 것을 방지하기 위한 방법이다

  - 즉 이중모드는 다른 사용자의 프로그램을 보호하고 시스템 전체의 안정된 운용을 위한 것

  - 사용자 모드(User Mode)와 커널모드(슈퍼바이저 모드(Supervisor Mode), 시스템 모드(System Mode), 특권모드(Privileged Mode))로 구분한다

  - 하나의 프로그램(프로세스)은 사용자 모드와 커널모드가 끊임없이 전환되면서 실행된다

 

  2) 이중모드 종류

   ① User Mode (사용자 모드)

     - 사용자 프로그램이 실행되는 상태

     - 일반적으로는 사용자 모드 상태이나 실행 중 필요에 의해 순간순간 특권모드로 강제 전환된다

     - 사용자 모드에서 특권 명령을 실행하려 하면 인터럽트가 걸려서 해당 프로그램을 강제로 종료 시킨다

     - User Mode는 프로그램이 실행되는 대부분의 상태에 해당되는데, User Mode에서는 자기자신(프로세스)에게 주어진 메모리 영역 이외에 다른 프로세스나 커널의 메모리 영역에 접근할 수 없다

     - User Mode에서 실행 중인 프로그램에서 포인터를 사용하여 User Address Space 영역 밖에 있는 Kernal Address Space 메모리에 접근하려고 하면 예외(Exception)가 발생한다

   ② 커널모드 (슈퍼바이저 모드, 시스템 모드, 특권 모드)

     - 하드웨어의 동작, 시스템의 토압 환경 변경 등 개별 유저가 실행해선 안 되는 명령으로 시스템 전체에 접근할 수 있는 권한을 가지는 상태

     - 사용자 모드에서는 실행이 불가능하다

     - 프린터, 읽기, 저장 등은 모두 커널모드에서 실행된다

     - 오직 특권모드에서 시스템에 의해서만 실행 가능한 명령이다

        (ex, STOP, HALT, RESET, 즉 시스템 종료 및 리부팅, 시스템 환경 설정 등)

   ③ Dual-mode Operation

     - 운영체제의 구조는 이중모드(Dual Mode)로 되어있는데, 이는 사용자 모드(User Mode)와 커널모드(Kernel Mode, 또는 운영체제 실행 모드)이다

     - 이 중 사용자 모드는 특권 명령어를 사용할 수 없으며, 이러한 경우에 사용자 프로세스는 운영체제에게 도움을 요청하게 되는데, 이를 시스템 호출(System Call)이라 한다

     - 즉 시스템 호출(System Call)은 실행 중인 프로그램과 운영체제 사이에 인터페이스를 제공하는 것이다

 

더보기

** 시스템 호출 (System Call)

 - 운영체제가 제공하는 각종 서비스를 이용자가 이용할 수 있도록 개방한 것으로, 이용자는 이것을 호출함으로써 복잡한 프로그램을 작성할 필요가 없게 된다. 또 여러 개의 프로그램 간에서 동일한 명세서를 가질 수 있다

 - 사용자 프로그램에서 운영체제의 기능을 불러내기 위한 프로그램 절차(C 언어에서는 함수) 호출. OS 하에서는 사용자 프로그램에서 메모리나 입ㆍ출력장치를 직접 조작하는 것이 허락되지 않으므로 파일이나 입ㆍ출력장치나 메모리에 액세스할 때 사용한다. 유닉스에서는 표준 시스템 콜 세트가 정해져 있다

 

■ 운영체제의 구조 (Operating System Structures)

 

 1) 계층적 접근 (Layered Approach)

  ① 1계층 프로세서 관리 담당

    - 동기화와 프로세서의 스케줄링을 위한 프로세서 관리를 담당한다

    - 스케줄링이란 처리해야 할 일들의 순서를 정하는 일 또는 중앙처리장치(CPU)르 사용할 수 있는 순서를 정하는 일을 의미

    - 프로세서는 컴퓨터 분야에서 무엇인가를 처리, 가공하는 기능을 가진 하드웨어, 소프트웨어로 CPU(중앙처리장치)는 하드웨어 프로세서의 대표적인 예이다

 

  ② 2계층 메모리 관리 (기억장치 관리) 담당

    - 메모리 관리에서는 메모리 할당, 회수 역할을 담당한다

    - 메모리 할당이란 프로그램이 사용할 메모리 공간을 확보하는 것을 말한다

    - 여기서 메모리는 주기억장치인 RAM(읽기/쓰기 가능)과 ROM(읽기만 가능)을 의미한다

 

  ③ 3계층 프로세스 관리 담당 

    - 프로세스 관리에서는 프로세스를 생성하거나 제거하는 역할을 담당한다

    - 실행 중인 프로그램의 프로세스를 생성하여, 각 프로세스별로 관리를 하고 프로그램을 동시에 작업할 수 있도록 해주며, 프로그램 종료 시 프로세스를 제거한다

    - 프로세스는 컴퓨터 내에서 실행 중인 프로그램을 말한다

 

  ④ 4계층 주변장치 관리 담당

    - 컴퓨터 주변기기인 키보드, 프린트, 마우스 등 주변장치와 입ㆍ출력장치의 스케줄링을 관리하는 역할을 담당한다

 

  ⑤ 5계층 파일관리 담당

    - 파일관리 담당에서는 파일을 생성하거나 삭제하거나, 혹은 파일을 열거나 닫거나 복사하는 파일과 관련된 관리를 담당한다

    - 운영체제의 가장 핵심적인 역할을 하는 부분이 바로 커널이다. 그리고 이러한 운영체제 5계층이 바로 커널에 포함된다

반응형