운영체제(OS, Operating System)
하드웨어와 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.
즉, 운영체제는 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어이다.
운영체제의 구조
운영체제는 커널과 인터페이스로 구성되어 있다.
커널은 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것으로, 운영체제의 성능을 좌우한다.
인터페이스는 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 한다.
운영체제는 커널과 인터페이스를 분리하여 같은 커널을 사용하더라도 다른 인터페이스를 가질 수 있다.
인터페이스 (GUI)
운영체제는 사용자가 운영체제의 기능을 조작할 수 있도록 인터페이스를 제공하는데, 크게 GUI 환경 CLI 환경과 두 종류로 구분된다.
GUI는 마우스를 통해 아이콘, 버튼 등을 통해 소통하는 방식이다.
CLI는 cmd 명령어와 같이 글자의 입출력을 통해 소통하는 방식이다.
초창기 컴퓨터가 발명되었을 때에는 마우스가 없었기 때문에 자연스럽게 CLI 방식을 사용하였다. 하지만 CLI는 GUI와 다르게 새로운 언어를 배우는 것처럼 배워서 사용해야 하기 때문에 진입장벽이 있다.
커널(Kernal)
시스템 콜(System Call)
사용자는 운영체제의 기능을 담당하는 커널에 직접 접근할 수 없다. 이때 사용자와 커널 사이를 연결하는 인터페이스가 바로 시스템 콜이다.
시스템 콜은 응용 프로그램이 시스템 자원에 직접 접근하여 필요한 기능을 사용할 수 있게 해주는 함수이다. 하지만 보통 응용 프로그램은 시스템 콜을 직접 사용하지 않고, 해당 시스템 콜을 사용하여 만든 언어 별 라이브러리 API를 통해 커널에 접근할 수 있다.
디바이스 드라이버(Device Driver)
디바이스 드라이버는 커널과 하드웨어의 인터페이스를 담당한다.
컴퓨터 하드웨어의 종류는 매우 다양한데, 이때 운영체제가 각 하드웨어에 맞는 인터페이스를 개발하기는 어려우므로 하드웨어 제작자가 만든 소프트웨어를 받아서 설치하여 하드웨어를 사용할 수 있게 하며 이를 관리한다. 여기서 이 소프트웨어를 디바이스 드라이버라 한다.
[운영체제] 운영체제의 구조 (커널과 인터페이스)
🔷 커널과 인터페이스 운영체제는 커널과 인터페이스로 이루어져 있습니다. 커널 : 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것으로 운영체제
ardor-dev.tistory.com
운영체제의 종류
Windows
windows는 마이크로소프트에서 개발하는 컴퓨터 운영체제이자 가장 대표적인 운영체제이다.
데스크탑에 사용되는 운영체제 중에서는 가장 많은 점유율을 차지하고 있다.
장단점
사용자에게 최적화가 가장 잘 되어있는 운영체제이고, 명령의 입력이 아닌 클릭으로 여러 기능들을 수행할 수 있다.
하지만 오픈소스가 아니고 유료 상용 소프트웨어이다. 따라서 사용자가 변경하여 사용할 수 없고, 버그가 발생해도 개발자가 응답하기 전까지 기다려야 한다. 또한 개발자를 위한 환경을 제대로 갖추기 않아, 개발을 할 때에는 거의 사용되지 않는다.
UNIX
유닉스는 대부분의 현대적 컴퓨터 운영체제의 원형이 된, 컴퓨터 역사상 가장 중요한 운영체제이다.
운영체제가 대부분 고급 언어인 C로 쓰여져 있고 소스코드를 쉽게 구할 수 있어 현존하는 운영체제 중 가장 이식성이 높다. 따라서 다양한 새로운 컴퓨터들의 운영체제로 채용 되었고, 현대 컴퓨터 중 윈도우를 제외한 대부분이 유닉스의 변종이나 그 자손이다. 서버 운영에 필수적인 CLI가 강해서 서버 시장에서 Windows 이상으로 인기가 좋다.
장단점
이식성이 높아 여러 분야에 널리 사용되고 있다.
하지만 하드웨어 호환성이 windows보다 낮고, 멀티미디어를 사용하기 어렵다.
Linux
커널의 일종인 리눅스 커널을 사용하는 운영체제이다. 완전 무료인 오픈소스이기 때문에 개인이 자신만의 운영체제로 완성시켜 배포하거나 판매할 수 있다.
장단점
오픈소스이므로 자유롭게 사용할 수 있다는 점이 장점이다.
하지만 오픈소스이기때문에 그만큼 미완성적인 부분이 존재하고 보안에 취약하다.
운영체제의 역할
자원 관리
컴퓨터 시스템의 자원을 효율적으로 관리한다. 여러 응용 프로그램이 컴퓨터 자원을 요청했을 때, 자원을 효율적으로 배분, 회수하며 관리한다.
여기서 자원이란 CPU, Memory, I/O장치와 같은 하드웨어 자원과 파일 메시지 등의 소프트웨어 자원의 두 종류가 있다.
자원 보호
프로그램이나 다른 사용자가 데이터를 삭제하거나 중요 파일에 접근하지 못하게 컴퓨터 자원들을 보호한다. 또한 컴퓨터 자원에 대한 직접 접근을 막는다.
인터페이스 제공
하드웨어 인터페이스와 사용자 인터페이스를 제공하여 편리하게 사용할 수 있도록 지원한다.
하드웨어 인터페이스로 여러 제조사의 하드웨어를 복잡한 과정 없이 사용할 수 있게 해준다.
사용자 인터페이스로 마우스, 터치 등 사용자가 편리하게 컴퓨터와 상호 작용할 수 있게 해준다.
[OS]운영체제(OS: Operating System)의 종류
안녕하세요. BTC95 입니다. 오늘은 OS의 종류에 대해 간단히 알아보겠습니다. 운영체제의 종류 운영체제는 공급되는 시장에 따라 보통 임베디드, 서버, 모바일, 데스크탑의 4개 시장으로 나뉘어져
btcd.tistory.com
[OS]운영체제(OS: Operating System)의 역할과 구조
안녕하세요. BTC95 입니다. 오늘은 OS의 역할과 구조에 대해 간단히 알아보겠습니다. 운영체제의 역할 자원관리 컴퓨터 시스템 자원 효율적 관리 (시스템 자원 - CPU, Memory, I/O장치와 같은 하드웨어
btcd.tistory.com
[운영체제] 운영체제란? - 정의, 역할, 구조
쉽게 배우는 운영체제를 읽고 스스로 이해하기 위해 정리한 내용입니다.
velog.io
'Computer Science > Operating System' 카테고리의 다른 글
인터럽트(Interrupt)와 시스템 콜(System Call) (0) | 2024.04.15 |
---|---|
Process, 프로세스 (0) | 2024.03.28 |
Cache, 캐시 (0) | 2024.01.11 |
인터럽트, Interrupt (0) | 2023.11.22 |
프로세스와 스레드, 멀티 프로세스와 멀티 스레드 (0) | 2023.11.06 |