이제 Oracle VM VirtualBox를 열어서 새로운 VM을 생성해보자
1. 상단의 '새로 만들기(N)'를 누른다.
2.
새롭게 생성할 VM의 이름과 생성할 파일을 지정하고, 연습을 위해 사용할 Ubuntu(64bit)을 선택해준다.
3.
이제 새로운 VM을 위해 가상 하드 디스크를 만들 차례이다. 앞에서 지정한 파일 위치에 'vdi'형식의 파일을 생성한다고 한다. 'vdi'는 Virtual Desktop Infrastructure의 약자로 마치 Window에 C드라이브가 있는 것처럼, 가상 머신에 가상 디스크를 할당해준다고 이해할 수 있다. 이 과정의 궁극적 목표가 새로운 kernel을 다운로드하고 build 한 뒤 install까지 하는 것이기 때문에 넉넉하게 40GB를 설정하였다. 정확히 이것이 맞는지는 모르겠다. 어떤 곳에서는 20GB가 필요하다고 하고 어떤 곳에서는 12GB만 있어도 된다고 하였지만, 혹시 모를 사태를 대비하여 일단 40GB로 설정하였다.
'동적 할당'한다는 것은 처음부터 host PC의 용량을 40GB 잡아먹는 것이 아닌, 실제 필요한 만큼 vdi에 크기를 할당하고, 사용할수록 최대 40GB까지 크기가 증가되는 모드이다. 반면 고정 크기는 (해보지는 않았지만) 처음부터 40GB의 크기를 잡아먹게 된다. 컴퓨터공학에서 이러한 trade-off는 자주 등장한다. flexibility와 speed. compile language vs interpreted language와 같이. 동적 할당의 경우 속도가 조금 더 느리다고 하는데, 사용 결과 큰 차이는 없는 것 같다.
4.
이제 Virtual Machine이 생성되었다! 생각보다 간단하게 컴퓨터를 만들 수 있었다. 처음 노트북을 사면 Windo10과 같은 운영체제를 깔아야지 사용할 수 있듯이, 우리의 가사 머신에 새로운 운영체제, 실습에서 사용할 Ubuntu를 설치해보자. '시작'을 누르면 위와 같은 화면이 뜬다.
다음, '추가'를 눌러 앞에서 다운 받았던 Ubuntu의 iso 파일을 선택한다. 이는 마치 인터넷에 돌아다니는 window를 다운로드하기 위해 USB를 사용하는 것과 같다고 할 수 있다. 다음 선택을 누르면, booting이 시작되고 Ubuntu를 설치할 수 있는 화면이 나온다.
5.
여기서부터는 간단하다. 다른 모든 스시템 installer와 마찬가지로 친절한 설명, 선택, 확인, 뒤로 버튼으로 이루어진 창이 나타난다. English를 사용할 수 있지만 생성된 이후 언어를 추가로 설정하는 수고를 줄이기 위해 한국어로 시작하는 것을 추천한다. 다른 것은 자신이 원하는 조건을 선택해도 되지만, 한 가지 화면만 설명해보자.
'디스크를 지우고 Ubuntu설치'를 한다는 것은 해당 컴퓨터의 disk를 완전히 포맷시키는 것과 같다. 여기서 말하는 컴퓨터는 가상 머신을 뜻한다. 즉, 처음에 할당한 40GB를 모두 초기화 시킨다는 것이다. 만약 현재 작업을 VM에서 실행하는 것이 아닌, 실제 노트북의 boot과정에서 하는 것이라면, 즉 window와 linux를 선택적으로 한 컴퓨터에서 사용할 수 있는 멀티 부트 시스템을 생성하는 것이라면, 두 번째 옵션을 선택해야 될 것이다.
(추가로 boot관련 간단한 공부를 하여 grub, BIOS에 대한 글을 써야겠다)
6.
이제 대략 20~40분 정도 기다리면 Ubuntu 운영체제를 갖춘 컴퓨터가 탄생한다. 나의 목적은 다양한 linux command를 손에 익힘과 동시에, linux의 kernel을 수정하고 적용해보는 것이다. 이 과정에서 linux의 file system과 partition 등에 대해서도 공부할 것이다.
'리눅스' 카테고리의 다른 글
Cross Development Environment(교차 개발 환경) (0) | 2021.03.12 |
---|---|
[linux kernel] CFS Scheduler에서 VR(T) 조정(fork) (0) | 2021.02.21 |
[linux kernel] CFS Scheduler에서 VR(T) 조정(wake_up) (0) | 2021.02.19 |
리눅스 커널에 System Call 추가하기 (0) | 2021.02.08 |
Linux Kernel build_환경 구축(1) (0) | 2021.01.27 |