Linux Kernel Build

제가 새 기계에서 리눅스 커널 빌드 환경을 셋업하고 실제 빌드, 설치하는 과정을 정리해 봅니다. 글 작성 과정에서 실제 커맨드를 수행한 환경은 Ubuntu 16.04.3 Server OS 를 설치한 x86_64 가상머신입니다. Install Dependent Packages $ sudo apt install build-essential libncurses5-dev libssl-dev bc bison flex \ libelf-dev 커널을 빌드하려면 컴파일러와 라이브러리 등이 필요하겠죠. 위 커맨드는 우분투에서 커널 빌드에 필요한 패키지들을 깔아줍니다. 커널 트리의 Documentation/process/changes.rst 에도 커널 빌드에 필요한 패키지들이 나열되어 있으므로, 다른 환경이라면 이를 참고해 필요한 패키지를 설치합시다....

September 7, 2018 · 3 min · 466 words · Me

Linux Kernel Performance (LKP) Tests

리눅스 커널의 개발은 커뮤니티 주도입니다. 개발의 한 부분인 테스트 역시 커뮤니티 주도적입니다. 여러 개인 또는 단체가 커널을 각자의 방식으로 테스트 하고 그 결과를 공유합니다. 인텔에서는 0-day 서비스[1] 라는 서비스를 자체적으로 돌리는데, 이 서비스는 최신 리눅스 커널을 가져다가 빌드하고 다양한 기능 / 성능 테스트를 돌리고 그 결과 발견된 regression 을 LKML 에 메일로 보내주는 일을 합니다. 말하자면 Continuous Integration (CI) 이죠. Linux Kernel Performance (LKP) Tests[2] 는 0-day 서비스에서 기능 / 성능 테스트를 수행하는데 사용되는 도구입니다....

August 2, 2018 · 4 min · 795 words · Me

Linux Kernel Debugging Using QEMU

You can use classical debugger for your Linux kernel programming, though Torvalds doesn’t like it. I also do not prefer such use of debuggers, but admit that sometimes debuggers are quite useful. ;) There are several ways to debug Linux kernel, but one of above is to set up a Linux virtual machine using QEMU and debugging the Linux kernel of the virtual machine from the host machine. This post summarises how to debug the Linux kernel in this way....

May 7, 2018 · 4 min · 837 words · Me

QEMU 를 사용한 리눅스 커널 디버깅

토발즈는 좋아하지 않지만, 리눅스 커널 프로그래밍에도 디버거를 사용할 수 있습니다. 저도 디버거 사용을 좋아하지는 않는 편이지만, 경우에 따라선 디버거를 사용하는게 좋을 때도 있고 취향은 존중되어야죠. ;) 커널 디버깅 방법은 여러가지가 있는데, 그 중 하나는 QEMU 등을 이용한 리눅스 가상 머신을 띄워 두고, 호스트 머신에서 해당 가상 머신의 리눅스 커널을 디버깅 하는 방법입니다. 이 글에선 이렇게 디버깅 하는 방법을 간단히 정리해 봅니다. 테스트 환경 글 작성 과정에서 테스트에 사용한 주요 소프트웨어들과 버전은 다음과 같습니다....

May 7, 2018 · 4 min · 703 words · Me

OSSummit 2017 Attendence - 05

컨퍼런스 둘째날부터는 kernel summit track 이 시작됩니다. 이번 컨퍼런스 참가는 아무래도 kernel summit 에서의 시끄럽고 정신없는 토론에 참여하고 싶기 때문이었기에 오늘부터가 제게는 가장 재밌는 시간입니다. ![foo] (/img/osse_05/1.jpg) 아침 일찍 일어나 컨퍼런스 장소로 출발합니다. 10명이 함께 묵는 방을 사용하고 있기에 일찍 일어나지 않으면 샤워를 제시간에 하기 어려우므로 조금 일찍 일어났습니다. ![foo] (/img/osse_05/2.jpg) ![foo] (/img/osse_05/3.jpg) ![foo] (/img/osse_05/4.jpg) 일찍 출발한 만큼 일찍 도착. 아직 부스에 사람도 없고 조용하네요. 한동안 부스 한켠에 준비된 휴식 공간에 앉아 커널 메일링 리스트도 읽고 코드도 보고 했습니다....

November 26, 2017 · 3 min · 519 words · Me