
운영체제는 시스템 소프트웨어의 한 형태이다.
시스템 소프트웨어는 컴퓨터 하드웨어와 응용 소프트웨어 간의 중간 역할을 하며,
컴퓨터 시스템을 운영하고 관리하는 소프트웨어다.
즉, 운영체제의 목적은 하드웨어 제어다.
운영체제가 없다면, 하드웨어 제어를 사용자가 프로그래밍 언어로 직접해야 한다.
펌웨어가 운영체제와 유사한 역할을 하는데, 펌웨어는 하드웨어 제어 및 관리하는 소프트웨어로 시스템의 기본 동작을 가능하게 한다.
과거 운영체제가 없거나 매우 제한적인 환경에서, 펌웨어를 이용해 하드웨어 제어 프로그램을 직접 작성하고 구현해야 했다.
하지만, 요즘에는 운영체제가 기본으로 탑재되어 있어 이런 경우는 거의 없다.
스마트폰, TV 등 어떤 환경이든 대부분 OS가 존재한다(CPU 메모리 존재).
OS에는 구동시간이 필요한데, TV를 켜면 화면이 바로 나오지 않고 1초-1초 걸리는 이유는 구동시간 때문이다.
처음 전원을 끄면 메모리에서는 OS가 사라진 상태이며, 전원을 켜야 OS가 부팅되고 화면이 송출된다.
최근에는 최적화를 통해 부팅 시간을 많이 최소화 하였다.
서버 구축에서 리눅스 환경을 많이 사용하기도 한다.
무료이며 커널 소스가 오픈이 되어 있어 내 입맛에 맞게 커스터마이징이 가능하다.
하드웨어에 맞게 커널을 고칠 수 있다는 것이다.
기본 형태
단독 사용 목적
하나의 O/S만 사용가능
개발하기 위해서는 다양한 OS 환경이 필요하며, 멀티부팅을 통해 원하는 OS를 선택하여 사용할 수 있게 했다.
하지만, 멀티부팅은 환경 설정이 어렵다는 단점이 있다.
특히나 사용하고 있는 스토리지에는 MBR(Master Boot Record)이 있는데, OS 부팅을 하는데 중요하다.
멀티부팅을 하기 위해서 MBR에 기록이 되어야 하지만 기록된 정보를 잘못 수정하거나 삭제하면,
부팅 로더와 파티션 테이블이 손상되어 컴퓨터가 부팅되지 않거나 벽돌(먹통)이 될 수 있다.
MBR이란?
스토리지 장치의 첫 번째 섹터(일반적으로 512바이트)로, 디스크의 파티션 테이블과 부트 로더 정보를 포함
최근에는 이러한 문제를 해소할 수 있는 가상 컴퓨터(가상 컴퓨팅)을 사용한다.
가상 컴퓨터를 만들 수 있는 가상화 소프트웨어에는 버츄얼 박스(VirtualBox)와 VMware 등이 있다.

가상화 환경이 아닌 좌측 이미지를 보면, 하드웨어 위에 커널, 쉘, 애플리케이션이 차례로 있다.
유저 모드와 커널 모드가 존재해 커널은 안쪽에서 하드웨어를 제어하고 운영체제 위에서 애플리케이션을 운영한다.
우측은 가상환경 이미지다.
맨 아래 하드웨어가 있고 위에 하이퍼바이저가 있다.
가상환경을 구성하는 소프트웨어 모듈이 지원되면 하이퍼바이를 통해 가상 머신을 만든다.
VM(=Virtual Machine)은 물리적인 하드웨어를 공유한다.
온전한 컴퓨터의 성격을 갖기 때문에 물리적인 하드웨어는 없지만, 가상 하드웨어를 만들고 OS를 만들 수 있다.
쉽게 설명하면, 컴퓨터에 OS가 존재하는데, VM 안에 게스트 OS를 생성하는 것이다.
그럼 사진 기준 총 3대의 컴퓨터를 사용하는 것과 같은 효과를 볼 수 있다.
하지만, 컴퓨터 안에 물리적인 메모리가 4기가가 있다고 가정하면,
가상머신에서도 물리적인 4기가를 공유하므로 전체적인 동작속도가 굉장히 느려질 수 있다.
온프레미스 상에서 가상머신을 구성하면 속도를 개선하기 위한 여유 공간이 필요하다.
S/W 적으로 생성한 컴퓨터
Hypervisor
가상 환경 구성 S/W
물리적인 컴퓨터 하드웨어 위에서 여러 개의 가상 머신(VM)을 생성하고 관리
CPU/Memory/I/O Device는 물리적인 장치를 공유
VMWare - 유료/무료( VMWare Player )
VirtualBox( https://www.virtualbox.org/ ) - 무료, 앞으로 실습 환경
설치
설치 후 파일 메뉴 -> 환경 설정 실행
· 일반 -> 가상 머신 디렉토리 변경
· 확장 -> VirtualBox 확장 프로그램 설치
가상 컴퓨터 환경에서 원하는 O/S 사용 환경 구성
가상 컴퓨터 환경의 위치는 Cloud 서비스 업체의 서버에 위치 하고 사용자는 인터넷으로 접속하여 사용
클라우드 환경은 기본이 가상 컴퓨팅이다.
기존의 온프레미스면 가상 컴퓨터를 생성하고 그 안에 OS를 설치해야 하지만,
클라우드 환경은 가상 환경하고 다르게 HOST가 없다.
즉, 클라우드는 가상환경에 의한 컴퓨터 시스템을 구성하고 운영하는 환경을 제공한다.
Cloud 서비스 업체의 서비스를 통하여 원하는 O/S 환경을 구성하고 사용
→ 사용량에 맞는 비용 지불
운영자가 수행해야 하는 업무
웹 서비스에 대한 배포를 위해서는 웹 서버(Web Server)가 필요
사용자가 웹 서비스에 접속할 수 있는 Domain name 필요
웹 서비스를 위한 Infrastructure 구성 필요
클라우드 환경은 내부적으로 가상화 기술을 사용하여 가상 컴퓨터 환경을 제공한다.
즉, 가상 머신이 생성되어 동작한다.
물리적인 컴퓨터와는 다르게, 소프트웨어적으로 구성된 가상의 컴퓨터로 가상 머신은 실제 하드웨어 자원을 가상화하여 사용합니다.
코랩 홈페이지에서 노트북 생성 후 실행하면 런타임 연결이 나오는데,
해당 런타임 연결이 바로 가상 머신을 생성되어 실행된다.