[42서울] Born2beroot_가상머신과 운영체제

jabae·2022년 5월 4일
0

42Seoul

목록 보기
5/20

Born2beroot의 목표는 완벽한 가상화 세계를 만드는 것이다.

가상화(virtualization)
컴퓨팅, 스토리지, 네트워킹, 서버, 앱 등을 소프트웨어 기반 또는 “가상” 버전으로 만드는 프로세스를 가상화라고 한다. 따라서 가상화는 프로세스이며 해당 프로세스를 사용하여 만든 머신을 일반적으로 가상 머신(VM, Virtual Machine)이라고 한다.

🧐 과제를 들어가기 전에, 과제에서 등장하는 개념들에 대해 정리해보자!

🖥 가상머신(VM, Virtual Machine)

가상머신은 컴퓨팅 환경을 소프트웨어로 구현한 것, 즉 가상화를 통해 생성된 에뮬레이트된 가상의 컴퓨터이다. 가상머신을 통해 1개의 컴퓨터에서 여러 개의 운영체제를 작동시킬 수 있고, 가상머신 상에서 운영체제(OS, Operating System)이나 응용 프로그램을 설치하거나 실행할 수 있다. 여기서 실행하는 물리적 시스템을 Host, 가상의 시스템을 Guest하고 한다. 아래 그림과 같이 하나의 Host OS 위에 여러 개의 Guest OS를 실행할 수 있다.

  • Host OS: 실제 물리적 컴퓨터의 운영체제
  • Guest OS: 가상 컴퓨터의 운영체제
  • Hypervisor: 호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼을 말한다. 메모리 및 리소스를 Guest OS에 할당하는 역할을 한다. 즉, 단일 하드웨어에서 여러 다른 가상 머신을 호스팅할 수 있는 프로그램이다.

가상머신의 중요한 특징은 가상머신 속 소프트웨어가 가상머신이 제공하는 환경과 자원에 제한을 받으며 가상세계를 벗어날 수 없다는 것이다.

✅ 가상머신 종류

가상머신은 가상화 범위에 따라 시스템 가상머신프로세스 가상머신으로 나뉜다.
시스템 가상머신은 하드웨어 가상머신라고 부르며 하드웨어를 소프트웨어적으로 구현해 그 위에 완전한 운영 체제를 작동하게한다. 반면에, 프로세스 가상머신은 하나의 단일 프로그램을 실행하기 위해 만들어졌기 때문에 단일 프로세스만을 지원한다.

과제에서 등장하는 VirtualBox는 대표적으로 사용되는 시스템 가상머신이다. CPU, RAM, 하드디스크 등 컴퓨터의 주요 부품을 가상으로 만들어 동작한다. 따라서 우리는 이 부품들을 소프트웨어적으로 구현해야 한다.

🔵 VirtualBox

버추얼박스(VirtualBox)는 리눅스, macOS, 솔라리스, 윈도우를 게스트 운영 체제로 가상화(virtualization)하는 x86 가상화 소프트웨어이다. 운영체제(OS, Operating System) 안에 가상의 컴퓨터를 생성하고 실제 PC의 운영체제와 자원을 일부 나누어 사용하는 프로그램이다.
예를 들어, 맥OS 환경에서 하이퍼바이저로 VirtualBox를 설치하면 그 위에서 리눅스OS를 사용할 수 있다.

🔵 UTM

UTM은 QEMU 하이퍼바이저를 이용하여 iOS에서 x86을 비롯한 여러 환경의 에뮬레이션을 가능하게 하는 무료, 오픈소스 프로그램이다.

✅ 가상머신 사용목적

  • 하나의 컴퓨터로 동시에 서로 다른 2개 이상의 운영체제를 실행할 때(다양한 운영체제에 맞게 개발해야 할 때)
  • 컴퓨터의 다른 부분에는 영향을 주지 않는 독립환경을 만들고 싶을 때(바이러스 회피 등)
  • 하나의 컴퓨터의 자원을 여러명에게 나누어주고, 각 사용자간의 상호간섭을 없애고 싶을 때

🛠 CentOS와 Debian

✅ Linux

리눅스(Linux)는 유닉스(UNIX)운영체제를 기반으로 만들어진 운영체제이다. 유닉스와 마찬가지로 다중 사용자, 다중 작업(멀티 태스킹), 다중 스레드를 지원하는 네트워크 운영체제이다.
리눅스의 원형인 유닉스가 통신 네트워크를 지향하여 설계되었듯, 리눅스 역시 서버로 작동하는데 최적화 되어 있어 서버에서 사용되는 운영체제로 많이 사용되고 있다.

✅ Linux의 특징

  • 유닉스와 완벽하게 호환 가능
  • 공개 운영체제로, 오픈소스이므로 누구든지 자유롭게 수정이 가능
  • PC용 OS보다 안정이며, 보안쪽면에서도 PC용 OS보다 비교적 우수한 성능
  • 다양한 네트워킹 기술을 제공하고 있으며 서버용 OS로 적합
  • 배포판이 아닌 리눅스 그 자체는 무료

✅ Linux 종류

리눅스는 오픈소스이다. 따라서 누구든 수정이 가능하여 배포할 수 있으므로 많은 버전의 리눅스가 있다. 리눅스는 레드햇(redhat)데비안(debian), 두 가지 계열이 있다. 레드햇은 레드햇 회사에서 배포하여 회사에서 관리한다. 따라서 패치가 빠르고, 유틸리티 양이 많고, 관리 툴의 성능이 좋으며, 호환성 또한 좋은 특징이 있다. 데비안은 레드햇보다 먼저 온라인 커뮤니티에 제작하여 배포했다. 무료 개인사용자 서버용으로 인기가 높고, 웹사이트나 커뮤니티에 사용법이 자세히 기술되어 있어 있다는 점이 진입장벽을 낮추어 초보 유저가 접근하기 쉬운 특징이 있다.

대표적인 버전으로 레드햇의 센토스(CentOS), 데비안의 우분투(Ubutu)가 있다.

🟣 CentOS

센토스(CentOS, Community Enterprise Operating System)는 레드햇이 공개한 RHEL(Red Hat Enterprise Linux, 레드햇이 개발한 컴퓨터 운영체제)를 가져와서 레드햇의 브랜드와 로고만 제거하고 배포한 배포본이다. RHEL와 완벽하게 호환되는 무료 기업용 컴퓨팅 플랫폼을 제공할 목적으로 만들어졌지만, RHEL처럼 별도의 기술지원이나 서비스는 받을 수 없다.

무료 사용이 가능하지만 문제 발생시 레드햇이 아닌 커뮤니티 통해 지원되므로 패치가 다소 느릴 수 있다. 서버용 운영체제로 인기가 매우 높아 대부분 서버용 리눅스를 운영할 목적으로 사용한다. 센토스는 RPM 패키지 형식으로, YUMDNF를 패키지 관리자로 사용한다. RPM은 패키지 사이에 의존하고 있는 패키지까지 자동으로 설치되지 않는다.

패키지 매니저(Package manager)
패키지 매니저는 패키지를 관리하는 작업(설치, 업데이트, 수정, 삭제)을 편리하고 안전하게 수행하기 위해서 사용되는 툴이다.
📌 자세한 설명은 다음 게시글로

🟣 Debian

앞서 보았듯 보다 쉽게 설치와 이용법을 찾아볼 수 있어 진입장벽이 낮아 초보자들이 쉽게 사용할 수 있어 데스크탑용 리눅스로 많이 사용된다. 리눅스를 커널로 사용한다.

데비안의 특징은 패키지 설치 및 업그레이드의 단순함에 있다. DEB 패키지 형식으로, dpkgAPT를 패키지 관리자로 사용한다. DEB 파일 안에 의존성 관련 정보를 저장하고 있어 필요한 외부 프로그램이나 라이브러리를 쉽게 알 수 있고, 패키지 관리 도구와 연계하여 패키지에서 필요로 하는 의존 패키지를 자동으로 데비안에서 운영하는 외부 저장소에서 가져와 설치할 수 있기 때문에 다른 배포판에 비해 관리가 편하다는 점 등이 있다. 일단 설치 후 패키지 매니저인 APT 업데이트 방식을 이용하면 소프트웨어의 설치나 업데이트에서 다른 패키지와의 의존성 확인, 보안관련 업데이트 등을 자동으로 설정 및 설치해준다.

🟣 CentOS와 Debian의 차이점

CentOSDebian
레드햇에서 파생된 리눅스 배포판온라인 커뮤니티에서 개발한 리눅스 배포판
대규모 커뮤니티에서 지원데비안 프로젝트에 속한 개인 그룹이 구축 및 지원
RPM 패키지 형식/ 패키지 관리자: YUM, DNFDEB 패키지 형식/ 패키지 관리자: dpkg, APT
서버용 운영체제로 인기(네이버, 카카오)개인 데스크탑용 운영체제로 사용
튜토리얼이 충분하지 않고, 사용자 기반이 적음풍부한 자료, 온라인 커뮤니티를 통해 충분히 학습할 수 있음
다양한 아키첵처를 지원하지 않음많은 패키지를 가지고 있음
업그레이드가 어려움. 새로운 버전 설치 권장업그레이드 쉬움
새로운 버전까지 오래 걸리지만, 안정적임2년 정도 주기, 안정성도 밀리지 않음
다소 어려운 GUI데스크톱 친화적인 GUI

📚 참고

profile
it's me!:)

0개의 댓글