운영체제의 종류
1. 유닉스(Unix)
2. 윈도우(Windows)
3. MacOS
4. 리눅스(Linux)
1. 운영체제의 근본: 유닉스(Unix)
운영체제라는 개념은 컴퓨터가 처음 시작될 때, 원래 없었다가 점점 고도화 되면서 시스템 리소스를 관리하는 시스템 소프트웨어 필요성으로 인해 만들어졌다. 1969년도에 처음 만들어지고, 그 이후에 여러가지 운영체제가 나왔다. 1972년도에 C언어가 만들어졌다. 그 당시에 전세계에서 가장 유명한, 컴공의 관련 모든 기초 학문의 개념이 다 등장한 벨렙(벨 연구소)라는 곳에서 정말 유명한 컴퓨터 과학자들이 만든 것이 C언어이다. C언어는 운영체제를 만들기 위해 만들어진 언어이다. 윈도우를 제외한 모든 운영체제를 포괄하는 것이 유닉스이다. 유닉스 계열에 있는 것이 대표적으로 맥OS, 리눅스이다. 운영체제의 근본이 유닉스인데, 유닉스는 거의 다 C언어로 만들어져있다. 근본코드는 모두 C언어 만들어져있다.
2. 전세계 가장 높은 점유율: 윈도우(Windows)
윈도우는 맥OS, 리눅스 등과 급이 다른 점유율을 가지고 있다. 최신버전이 Windows11인데, 굉장히 많은 최적화가 이루어져서 윈도우가 현재 MS가 엄청난 트렌드를 끌고 가고 있다. 윈도우는 유닉스 계열이 아니다보니, 운영체제가 달라서 프로그래밍 언어어에서 지원하지 않는 라이브러리도 많고, 아예 따로 만들어야하는 것들이 많다. AI업계는 특히 굉장히 빠르게 새로운 것들이 나오기 때문에 그걸 활용하려면 운영체제가 지원을 해줘야한다. 그래서 고민하다가 낸 시스템이 WSL(Windows Subsystem for Linux) 이다. 윈도우 내부에 리눅스 운영체제가 아예 들어가 있는 구조이다. 윈도우 컴퓨터 내부에 리눅스, 우분트 이런 것들을 설치할 수 있게 만들어져있다. 윈도우11 + WSL2를 사용하면, 생각보다 괜찮은 개발용 컴퓨터로도 사용할 수 있다. 윈도우를 쓰는 가장 큰 이유는 범용성에 가장 초점이 맞춰져 있기 때문이다. 사용자 편의성을 가장 높게 생각하여 만들어진 운영체제다. 굉장히 많은 프로그램들이 유저들이 쉽게 쓸 수 있는 것에 초점이 맞춰져 있다. 애플은 내부적인 체계상 약간 불편한 점이 있다. 공인인증서, 호환 등. 사용자가 일반적으로 쓰기에는 윈도우가 편하다.
3. 맥OS(MacOS)
맥OS는 이름이 있다.(Windows 10,11 인점에 비해). 애플 계열 전용 OS이다. 매킨토시처럼 하드웨어 이름이 따로 있다. 여기에는 윈도우 설치가 안된다. 이전 인텔계열 맥북에서는 부트캠프라는 걸 통해 윈도우를 올려서 쓸 수 있었는데, M시리즈부터는 아예 안된다. Parallels Desktop이라는 가상 머신 개념으로 Virtual Machine을 적용하면 어디서든 다 되긴 하지만, 성능이 끔찍한 수준이다. 반대로 윈도우에도 맥OS 설치가 안된다. 이 둘은 운영체제 적으로 너무나 다르기 때문에 가상머신이 매번 전부가 컨버트해서 써야한다. 즉, 엄청 느리다. 그냥 따로 써야한다.
맥OS가 개발자 친화적인 이유는 유닉스 계열이기 때문이다. 실제로 백엔드, 프론트엔드 개발을 하면, 서버라고 하는 네트워크에서 좋은 컴퓨터를 써야하는데, 여러가지 이유로 리눅스 운영체제로 만들어진다. 리눅스 환경에서 개발을 많이하다보니 편한 환경을 구성할 수 있는 컴퓨터가 좋은데, 리눅스같은 운영체제는 범용성이 떨어진다. 그걸 개선하는 중간 단계 이자, 이쁘고, 하드웨어도 괜찮은게 맥북이라서 맥북을 쓴다. 유닉스 계열 운영체제라서 터미널이라는 근간으로 개발도 편하게 할 수 있게끔 되어있다.
4. 리눅스(Linux)
모바일 운영체제인 안드로이드, iOS는 모두 다 리눅스 커널기반으로 만들어져 있다. 유닉스 계열에 있는 굉장히 가벼운 운영체제가 리눅스이다. 가장 핵심 기능들만 포함되어있고, 무료이다. 그 리눅스계열 운영체제를 기반으로 모바일 최적화 시킨 운영체제 2개가 안드로이드, iOS이다. 결국 이것도 유닉스 계열 운영체제이다. 데비안(Debian), 레드헷(Red Hat) 계열로 크게 나뉘어져있으며, 레드헷은 유료이다. 일반적으로는 데비안 계열의 우분트(Ubuntu)를 많이사용하고, 유지보수와 보안성이 중요한 회사에서는 유료버전인 레드헷에서도 센토스(CentOS)를 많이 사용한다.
안드로이드 같은 경우엔 대부분 오픈 소스를 지향하고 있어서 정보가 공개는 되어있는데, 무료는 아니다. 유료이다. 삼성, 엘지 같은 모바일 운영체제가 없는 회사들이 구글에 돈을 엄청 지불하게 된다.
왜 이런 운영체제들이 다양하게 있을까?
디바이스가 다르기 때문이다. 그래서 CPU아키텍처도 다 다르고, 시스템 콜도 다 다르기 때문에 아예 운영체제를 따로 만들어서써야한다. 디바이스쪽으로 내려가면, OS는 밑단까지 뜯어서 하게 되는데, 예를들어 리모콘으로 버튼 누르면 신호가 가서 전원을 키라는 부팅신호가 간다. 이걸 내부에서 담당하는 OS가 시스템콜로 키게된다. 그런식으로 내부구현이 되어있다. 모든 컴퓨터는 다 OS라는 가장 기본적인 시스템 속 소프트웨어가 들어가 있다.
'Computer Science > 컴퓨터공학(김용담 강사님)' 카테고리의 다른 글
프로세스 관리: 생성, 제거, 스케줄링 (feat. PCB) (0) | 2023.04.26 |
---|---|
프로세스 상태 전이도(feat. 프로세스 vs 프로그램 용어 차이) (0) | 2023.04.24 |
운영체제: 유저모드, 커널모드, 시스템콜 (0) | 2023.04.22 |
운영체제(OS)란? 개념과 구조(커널, 시스템콜 등) (0) | 2023.04.18 |
CPU란? 구조와 역할, 구성요소, 성능향상 방법 (0) | 2023.04.14 |
댓글