Linux 커널을 실행하는 방법은 무엇입니까?

Linux 커널을 실행하는 방법은 무엇입니까?

나는 로버트 러브의 책을 읽고 있어요리눅스 커널 개발Linux 커널 개발에 대해 자세히 알아보려면!

하지만2장: 커널 시작하기, 커널을 다운로드하고 설치하라는 지시를 받았습니다. 이것은 나를 혼란스럽게 한다. "커널을 만드는 것은 쉽습니다."라고 그는 말했습니다. 그러나 Linux 환경에 Linux 커널을 설치한다는 아이디어는 나에게 이해가 되지 않습니다. 마치 이 새로운 Linux를 가상으로 실행하는 것처럼요?

그가 내놓은 조치는 다음과 같다.커널 소스 코드 받기

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
$ git pull

그 다음에압축된 패키지의 압축을 푼다(GNU zip의 경우 2가지 방법이 있는데 여기서는 bzip2 방법이다),

$ tar xvjf linux-x.y.z.tar.bz2

그리고 거기에서 당신은커널 빌드make, 등을 실행 하여menuconfigdeconfigoldconfig

그럼 당신은새 커널 설치. 그는 설치가 "아키텍처 및 부트로더에 따라 다릅니다"라고 설명하고 "커널 이미지를 복사할 위치에 대한 [내] 부트로더 지침을 확인하십시오." 그런 다음 이미지를 복사한 다음 실행할 수 있는 방법에 대한 예를 제공했습니다.

$ make modules_install

그러면 이 장에서는 커널 설치 튜토리얼을 계속하지 않을 것입니다.

이것이 내가 길을 잃은 곳입니다. 나는 지금까지 모든 명령을 알고 있습니다. (저는 몇 년 동안 Fedora를 사용해 왔습니다.등), 하지만 기존 Linux 환경에 Linux 커널을 "설치"한다는 개념을 이해하지 못합니다. 여기서 무슨 일이 일어나고 있는지(나중에 더 자세히 설명할 수도 있음)나 실제로 커널을 실행하는 방법에 대한 설명이 없습니다. 새 하드 드라이브에 넣어야 하나요? 가상 머신처럼 실행되고 있나요? BIOS에서 특정 부팅 옵션을 선택합니까? 실제로 어떻게 실행하나요? 이 단계는 이 장이나 3장이나 4장에 없습니다.

답변1

make install커널 이미지를 /boot 디렉터리에 복사하기만 하면 됩니다. make modules_install모듈을 /lib/modules/kernel-version/에 복사합니다. 요즘 대부분의 Linux 배포판은 grub으로 부팅하므로 실행하여 update-grub/boot에서 새 커널 이미지를 확인하고 해당 커널로 부팅하도록 선택할 수 있도록 grub 구성 파일에 해당 부팅 항목을 추가해야 합니다. 일반적으로 부팅 하드웨어와 일부 시작 스크립트에 액세스하는 데 필요한 모듈이 포함된 initrd도 필요하며, 적어도 데비안 기반 배포판에서는 update-initramfs -k kernelversionbefore 를 실행하여 생성 할 수 있습니다 update-grub.

관련 정보