아무것도 몰라요

실험실 (커널 오류)

Linux Kernel build_오류에서 온 의문

telomere37 2021. 1. 29. 23:16
  • VM에 Kernel build 하기 오류

지난 시간에 다운 받았던 VM에 Ubuntu를  깔고 새로운 linux kernel을 설치하기 위해 build를 하였다. 하지만 build이후 reboot을 하여도 새로 설치한 linux버전으로 가상 머신이 부팅되지 않았다. GRUB에서 default로 지정된 kernel이 아닌 다른 kernel로 booting 하는 기능으로 새로 설치한 버전을 booting 시켰더니 컴퓨터가 멈추었다. 이러한 현상은

 

1. VM의 문제?

2. GRUB의 문제?

3. Kernel build의 문제?

 

쉽게 알 수 없었다. 인터넷을 뒤져도 이에 대한 해답은 찾기 어려웠다. 애초에 VM에 'building your own kernel'에 대한 글은 크게 2가지 방법으로 진행되었다. 단순히 'make'명령어를 사용하는 부류와 'deb'의 debian package의 파일을 생성하는 방식이었다. 둘 중 어떤 방법이 옳은 것일까? 

 

두 방법 모두 동일한 kernel파일을 생성하는데 각 파일은 어떤 역할을 하는 것일까? 

 

더 조사를 하던 도중 이 문제가 GRUB(GRand Unified Bootloader)에 관한 것일 수 있다는 점을 발견하였다. GRUB이란 무엇이며, 이와 관련된 몇가지 용어(BIOS, UEFI)는 무엇일까?

 

  • 실습 환경의 변경

어제 장롱을 정리하던 도중 예전에 사용하다가 방치한 노트북을 발견하였다. 매우 느리고 더러워서 방치해뒀던 것으로 기억하지만, 만약 다 밀고, 새로운 운영체제를 받으면 어느 정도 사용할 수 있지 않을까?라는 생각이 들었다. 

키보드가 눌리지 않아 때어내고, 현재 대체품을 찾는 중이다

인터넷 검색을 해보니, 몇몇 samsung제품에 다른 OS를 까는 것은 노트북을 벽돌로 만들 수 있다고 한다. 하지만 몇몇 글들은 Window와 Ubuntu를 듀얼 부팅하는 것을 설명하고 있었다. 더 자세히 찾아보니 UEFI에 관련된 사항이었던 것 같았고, 나는 잘 알지 못해서 일단 해보기로 했다. (UEFI는 추후에... 공부를..) 이 과정은 다른 글에서 설명해야겠다. 결론은 성공적으로 설치가 되었으며, Virtual Box를 실행시켰을 때의 화면과 똑같은 화면을 보여줬다. 

 

virtual machine을 사용하는 이점은 다양하다. 

1. 하나의 컴퓨터에서 여러개의 VM을 돌릴 수 있으며 서로 완전히 독립적으로 존재하여 정보의 보호가 가능하다.

2. 위의 장점의 연장선으로 OS의 연구와 개발에 최적화되어있다. 즉, OS를 개발하다가 큰 오류가 생기면 위처럼 실제 노트북을 사용하는 경우 복구하기 힘들겠지만, VM의 경우 이전의 복사본으로 복구를 한다던가 할 수 있다.

3. 복사가 가능하여 작업환경에서 자유롭다

4. Systems consolidation을 가능하게 해준다.해 준다. 즉, 2개 이상의 다른 system을 하나의 가상 머신에 돌림으로서 최적화를 할 수 있게 해 준다.

 

하지만 큰 단점이 존재한다. 느리다. 물리적 컴퓨터는 hardware위에 바로 돌아가기 때문에 빠른 반면, VM은 결국 host OS를 통해서 (Hosted VM의 경우) hardware와 소통하기 때문에 느리다. 또한 큰 용량을 잡아먹는 것도 무시할 수 없다. 실제로 kernel build를 했을 때, 뭔가 physical machine이 더 빠른 것 같았다. (당연히 VM을 사용하면 CPU core가 다른 일도 하기 때문에 그럴 것이다)

 

아직 뭐가 더 좋은지, 왜 VM을 더 많은 사람들이 사용하는지, 등을 모른다. 서로 공유도 해야 되고 제출도 해야 되고, 길게 보면 VM이 맞을 수 있다. 하지만 현재 상황에서 가장 기초적인 kernel을 공부할 때는 큰 상관이 없을 것 같아 노트북의 수명이 다할 때까지 사용해야겠다.

CPU에 대한 정보