[컴퓨터 개론] 소프트웨어 이해하기

업데이트:

애플리케이션을 도와주는 프로그램, 운영 체제

애플리케이션 뒤에서 실행에 도움을 주는 프로그램이 바로 운영 체제이다.

모든 컴퓨터나 핸드폰에 설치되어있고, 운영체제의 도움을 받아 컴퓨터의 여러 장치들과 함께 애플리케이션이 잘 동작할 수 있다.
운영체제는 키보드, 마우스, 스피커 같은 하드웨어와 애플리케이션 사이에서 동작한다.

컴퓨터 운영체제에는 윈도우 10, macOS, Linux 등이 있고
스파트 폰 운영체제에는 안드로이드, iOS 등이 있다.



운영 체제의 역할 (입력과 출력 관리)

사용자의 입장에서 컴퓨터는 입력 장치와 출력 장치로만 이루어져있다.
그만큼 입력과 출력은 컴퓨터에 있어서 중요한 역할을 한다.

한 대의 컴퓨터에 여러가지 입,출력 장치를 연결할 수 있으며 연결할 수 있는 경우의 수는 매우 많다.
애플리케이션 개발자들이 모든 장비의 조합과 경우의 수를 고려하면서 애플리케이션을 개발할 수 없다.
운영체제가 여러가지 장비의 연결 방식등을 모두 고려해서 정리한 후 애플리케이션에 신호를 넘겨준다.
입,출력 장치와 애플리케이션을 운영체제가 연결해 주기 때문에 애플리케이션은 안정적으로 하드웨어를 사용할 수 있다.



운영 체제의 역할 (저장과 불러오기)

컴퓨터가 가장 많이 하는 작업 중 하나는 저장이다.
인터넷을 돌아다니면 브라우저 그 기록을 어딘가에 저장해 둔다.

컴퓨터에는 ROM, HDD, SSD, RAM, CPU(cache,register) 와 같이 여러가지 저장 장소가 있다.
운영체제는 이 저장 공간들을 활용해서 각 상황과 목적에 맞게 저장과 불러오기가 적절하게 진행되도록 판단한다.

저장 장치마다 각각의 특징이 있다.

  • 휘발성 vs.비 휘발성

휘발성 : 컴퓨터가 켜져 있을 때만 저장되는 정보 -> RAM
비 휘발성 : 컴퓨터가 꺼지더라도 항상 남아있는 정보 -> 하드디스크

컴퓨터에는 두 가지 타입의 저장 방식이 있고, 운영체제가 저장 방식을 결정해 각 저장 장치에게 분배해 준다.

휘발성 정보가 필요한 이유?
저장 용량은 제한적이기 때문에 모든 정보를 저장할 수 없다.
그렇기 때문에 컴퓨터가 켜져 있는 동안에만 보관할 정보와 컴퓨터가 꺼져도 저장할 정보를 구분해서 저장한다.


  • 빠르고 작은 용량 vs. 느리고 많은 용량

정보 중에는 빠르게 읽어와야 하는 정보와, 속도가 느려도 괜찮은 정보로 나눌 수 있다.
(영화 같은)용량이 큰 프로그램을 저장할 때는 시간이 많이 소요되지만 큰 불편함은 없다.
하지만 (영화 같은)용량이 큰 프로그램을 재생할 때는 거의 실시간으로 파일을 읽어와야 하기 때문에 빠른 속도가 필요하다.

빠른 저장장치일수록 가격이 비싸기 때문에 대부분 빠른 저장장치는 용량이 작고, 느린 저장장치는 용량이 크다.
파일을 저장할 때마다 컴퓨터는 각 상황에서 어느 저장장치를 써야하는지 계속 판단해야 하는데, 이 판단을 운영체제가 해준다.

  • 데이터 수정 가능 vs. 데이터 수정 불가능

영화, 문서, 사진 같은 수정, 삭제 가능한 파일이 있지만, 컴퓨터 기본 세팅에 사용되는 파일은 수정, 삭제가 불가능하다.
수정 불가한 파일이 저장되어 있는 곳을 Read-Only Memory(ROM)이라고 한다.




운영 체제의 역할 (여러 프로그램 동시에 빠르게 실행하기)

사용자들은 컴퓨터나 스마트폰을 사용할 때 많은 운영체제를 동시에 사용한다.(멀티태스킹)
여러 애플리케이션이 동시에 실행될 때 저장장치에서 파일을 불러오고 저장해야 되기 때문에 여러 문제가 발생할 수 있다.
그렇기 때문에 운영체제가 애플리케이션끼리 충돌이 일어나지 않게 조율해주는 역할을 한다.

운영체제는 애플리케이션이 진행될 때 사람이 못 느낄 정도로 작업을 잘게 쪼갠 뒤 각 장치들이 효율적으로 작업할 수 있도록 역할 분담을 정해줘서 멀티태스킹이 가능하도록 한다.



운영 체제의 종류

운영체제는 모든 컴퓨터에 반드시 필요하다.

컴퓨터 운영체제에는 Windows, macOS, Linux 등이 있고
스파트 폰 운영체제에는 Android, iOS 등이 있다.

각 운영체제마다 특징을 가지고 있다.

Windows와 Android는 사용자 설정을 더 쉽게 바꿀 수 있다.
외부 프로그램도 내 컴퓨터의 설정을 바꿀 수 있기 때문에 편리하지만 바이러스에 취약하다.

macOS와 iOS는 보안이 철저해서 환경 설정의 선택지가 제한되어 있다.


운영 체제는 용도에 따라 크게 4종류로 나눌 수 있다.

  1. 데스크톱/랩톱
    Windows, macOS, Linux

  2. 모바일(태블릿, 스마트워치)
    Android, iOS

  3. 서버
    서버는 회사에서 큰 데이터를 관리하거나, 웹 사이트를 운영하는 것 같은 목적을 위해 사용한다.
    사용자가 구글 드라이브에 파일을 저장하면 그 파일은 회사의 서버 컴퓨터에 저장이 된다.
    서버 운영체제는 안정성, 속도, 효율이 가장 중요하다.
    Ubuntu, Unix, CentOS, Debian, Linux, Windows 등이 있다.

  4. 임베디드
    일반 컴퓨터가 아닌 다른 기계들에 들어가는 운영체제이다.
    예를 들어, ATM, POS, 키오스크, 엘레베이터, TV, 디지털 카메라 등에 들어간다.
    임베디드는 종류나 환경이 다양해서 운영 체제가 매우 많다.
    그 중, 실시간 운영 체제 부류의 운영체제들이 많이 사용된다.
    실시간 운영 체제는 무조건 빠르게 동작하기 보다, 정해진 시간 안에 안정적으로 확실히 끝내는 것을 보장하는 용도의 운영체제이다.



운영 체제의 발전 역사

많은 운영체제들이 UNIX에서 출발되었다.
UNIX 운영체제가 다양하게 발전해서 지금의 운영체제의 상당수를 형성하게 되었다.

UNIX는 1970년 초에 개발되었다. 대부분 C언어로 작성되었고, 다른 컴퓨터에 수정해서 적용이 쉬운 특징이 있어 운영체제로써 인기를 끌게 되었다.
UNIX를 모방한 운영체제가 대거 등장하게 되었고, 이것을 표준화하기 위해서 POSIX라는 표준이 등장하였다.
POSIX에는 Unix라면 꼭 갖춰야 할 규격과 기능이 정해져 있었으며, POSIX를 모두 만족하면 Unix의 공식 버전으로 인증받을 수 있었다.

Unix를 사용하려면 여러 제약과 비용이 발생했기 때문에, 자유 소프트 재단에서 모두가 자유롭게 사용할 수 있는 Unix를 닮은 운영체제를 만드는 프로젝트 GNU를 시작했다.

Unix의 코드를 한 줄도 사용하지 않고 만든 Unix와 유사한 OS를 만드는 프로젝트였기 때문에 POSIX는 만족하지만 공식 인증을 받지는 않은 GNU/Linux 운영체제가 완성된다.

Linux는 최다 인원이 투입된 프로젝트이다.
GNU/Linux를 기반으로 만든 운영체제는 아무런 제약 없이 변형이 가능하지만 반드시 코드를 공개해야 하는 의무가 있다.




[코드잇-컴퓨터 개론]https://www.codeit.kr/courses/intro-to-computer

태그:

카테고리:

업데이트:

댓글남기기