리눅스

Linux Kernel build_환경 구축(1)

telomere37 2021. 1. 27. 17:34

직접 그린 Tux

 

리눅스 커널을 공부하기 위해서는 우선 리눅스 커널을 적용할 줄 알아야 된다. 비주얼 스튜디오로 자신이 작업한 코드를 돌려보고 실행 결과를 확인할 수 있는 것처럼, 리눅스 커널을 수정한 뒤 그 결과를 볼 수 있어야 된다.

 

그렇다면 리눅스 커널은 어떻게 빌드하는 것일까?

 

우선 리눅스 커널을 빌드하기 위해서는 컴퓨터가 필요하다. 현재 글을 쓰고 있는 내 노트북이 Window10으로 돌아가는 것처럼 다른 컴퓨터에 리눅스 OS를 설치하여 돌리는 것이다. 하지만 돈이 어디 있겠는가? 수업시간에 배운 가상 머신은 이럴 때 사용하는 것 같다. 

 

다양한 선택지가 있었지만 나는 그 중 Oracle의 'virtual box'를 사용하기로 하였다. 

www.virtualbox.org/

 

Oracle VM VirtualBox

Welcome to VirtualBox.org! News Flash New January 19th, 2021VirtualBox 6.1.18 released! Oracle today released a 6.1 maintenance release which improves stability and fixes regressions. See the Changelog for details. Important November 16th, 2020We're hiring

www.virtualbox.org

(Virtual machine의 종류, 기능 등에 대한 공부도 재밌을 것 같다)

 

이제 컴퓨터가 준비되었으니 운영체제를 깔아야 된다. 나는 linux의 kernel이 궁금한 것이니 linux kernel을 다운로드하으려고 했다. 

www.kernel.org/

 

The Linux Kernel Archives

 

www.kernel.org

처음에는 단순히 '여기서 파일을 다운 받아서 어찌어찌하면 되겠지?'라고 생각했다. 하지만 이러한 방식을 선택하면 매우 복잡한 과정을 거쳐야 된다.

 

컴퓨터의 운영체제는 흔히 사용자와 hardware사이를 연결해주는 프로그램이라고 알고 있다. 하지만 정확한 범위는 정의하기 쉽지 않다. 또한 운영체제마다 그 구성요소가 다르다. 당장 google에 검색해도 정확한 구성은 찾아보기 힘들다. 모두가 핵심이라고 동의할 수 있는 kernel, 사용자와 kernel사이의 소통을 위한 shell, 파일을 저장하기 위한 file system 등등. 이러한 것들이 갖춰줘야 컴퓨터를 사용하는데 불편함이 없고 다양한 활동을 할 수 있다.

 

따라서 단순히 위 사이트에서 kernel코드들만 받아서 build하고 적재하는 것은 가능은 하겠지만(아마도) 개별적으로 추가 다운로드하여야 될 프로그램들도 많을 것이다. 그렇기 때문에 미리 어느 정도 갖추어진! linux kernel을 기반으로 한! 운영체제, 바로 linux배포판(linux distro) 중 하나를 다운로드하면 된다. 정말 다양한 종류의 배포판이 있으며, 특정 분야나 기능이 특화된 배포판도 존재한다. 이에 대해서도 점차 공부해보고 싶다. 나는 그중 가장 많이 들어보고 유명하며 공짜인 'Ubuntu'를 다운로드하여서 사용하였다.

 

ubuntu.com/download/desktop

 

Download Ubuntu Desktop | Download | Ubuntu

Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.

ubuntu.com

위의 사이트에서 ubuntu desktop 을 다운로드하였다. 다운로드한 파일은 대략 2.6GB로 'iso'파일의 형식을 가지고 있었다. 검색 결과 iso 파일은 CD 또는 DVD의 완전한 이미지 파일이라고 한다. 우리가 Window 운영체제 정품을 구입하여 다운로드할 때 CD 또는 USB를 연결하여 실행하는 것처럼, Ubuntu는 이 파일을 가지고 운영체제를 까는 것 같다. 

 

자 이제 컴퓨터와 그 컴퓨터에 깔 운영체제가 준비 되었다.