리눅스 커널 기여(Contribution) 및 참여하기 - 설정

AustinKim의 이미지

<< Overview >>

리눅스 커널을 익히기 위한 방법은 여러 가지가 있습니다. 예를 들면 다음과 같습니다.

리눅스 커널 스터디 모임에 참석한다.
리눅스 커널을 디버깅해본다.
리눅스 커널 소스를 직접 분석해본다.

이렇게 다양한 방식으로 리눅스 커널을 접할 수 있습니다. 그런데 리눅스 커널을 익히고 접하는 좋은 방법은...

리눅스 커널 오픈 소스 프로젝트에 직접 참여하는 것입니다.

리눅스 커널은 가장 유명한 오픈 소스 프로젝트로 어느 누구나 리눅스 커널 프로젝트에 참여할 수 있습니다.
우리가 작성한 커널 코드가 전 세계 리눅스 시스템에 적용이 될 수 있는 것입니다.

"여러분이 작성한 리눅스 커널 소스를 전 세계 리눅스 개발자들이 쓴다."

참 뿌듯하고 가슴 떨리는 일이 아닐 수 없습니다.

이번 시간에는 리눅스 커널 코드를 수정한 후 리눅스 커널 패치를 '리눅스 커널' 프로젝트에 반영하는 방법을 소개합니다.

<< 준비 사항 >>

제가 사용한 리눅스 배포판은 ubuntu로 16.04 버전을 쓰고 있습니다.

 
austindh.kim~/src$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial

<< mutt와 git 설치해보기 >>

먼저 리눅스 컴퓨터에는 mutt와 git 프로그램이 설치돼 있어야 합니다.
apt-get install mutt git

위 명령어를 입력하면 mutt와 git 프로그램을 설치할 수 있습니다.
이 프로그램이 제대로 설치됐는지 확인해볼까요? 이를 위해 다음 명령어를 입력합시다.

 
austindh.kim~/src$ which mutt
/usr/bin/mutt
austindh.kim~/src$ which git
/usr/local/bin/git

'cd ~' 명령어를 입력해 계정 홈 디렉토리로 이동합니다.
austindh.kim~$ cd ~

다음 .muttrc 파일을 생성하고 .muttrc 파일에 읽기+쓰기 권한을 부여합니다.

 
austindh.kim~$ touch .muttrc
austindh.kim~$ chmod 777 .muttrc


이번에는 .muttrc 파일을 vi 에디터로 열고 다음 정보를 입력합니다.
 
austindh.kim~$ vi .muttrc
set realname = "Austin Kim"
set from = "austindh.kim@gmail.com"
set use_from = yes
set envelope_from = yes
 
set smtp_url = "smtps://austindh.kim@gmail.com@smtp.gmail.com:465/"
set smtp_pass = "enter_your_passwd"
set imap_user = "austindh.kim@gmail.com"
set imap_pass = "enter_your_passwd"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set ssl_starttls=yes
set ssl_force_tls = yes
 
# G to get mail
bind index G imap-fetch-mail
set editor = "vim"
set charset = "utf-8"
set record = ''

이제 mutt 설정이 끝났습니다.

<< 리눅스 커널 소스 코드 내려받기 >>

리눅스 커널 소스 코드를 수정하려면 최신 리눅스 커널 소스를 내려받아야 합니다.
이를 위해 다음 명령어를 입력할 필요가 있습니다.
git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next

아래는 리눅스 터미널에서 리눅스 커널 소스 코드를 내려받기 위해 사용한 명령어입니다.

austindh.kim~/src$ mkdir linux_kernel_source
austindh.kim~/src$ cd linux_kernel_source/
austindh.kim~/src/linux_kernel_source$ git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next
Cloning into 'linux-next'...
remote: Sending approximately 1.32 GiB ...
remote: Counting objects: 13164, done
remote: Finding sources: 100% (7076597/7076597)
remote: Total 7076597 (delta 5964592), reused 7076255 (delta 5964592)
Receiving objects: 100% (7076597/7076597), 1.31 GiB | 10.35 MiB/s, done.
Resolving deltas: 100% (5964592/5964592), done.
Checking connectivity... done.
Checking out files: 100% (65459/65459), done.

linux_kernel_source 디렉토리를 생성한 후 해당 디렉토리에 이동해 소스를 내려 받았습니다.

소스를 다 내려 받고 나면 linux-next 폴더가 생성됐음을 확인할 수 있습니다.

 
austindh.kim~/src/linux_kernel_source$ ls
linux-next

이어서 linux-next 디렉토리에 이동해 커밋을 확인해볼까요?

 
austindh.kim~/src/linux_kernel_source$ cd linux-next/
austindh.kim~/src/linux_kernel_source/linux-next$ git log
commit 5d18cb62218608a1388858880ad3ec76d6cb0d3b
Author: Stephen Rothwell <sfr@canb.auug.org.au>
Date:   Wed Aug 28 19:59:14 2019 +1000
 
    Add linux-next specific files for 20190828
 
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>


이렇게 커밋 정보를 볼 수 있습니다.

리눅스 커널 git 정보

참고로, 세부 커밋 정보는 다음 사이트에서 확인할 수 있습니다.
 
https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next/

리눅스 커널에서는 세부 서브 시스템별로 git을 운영합니다. 이 정보를 확인하려면 다음 사이트에 접속하면 됩니다.

https://kernel.googlesource.com/pub/scm/linux/kernel/git/

next/linux-next The linux-next integration testing tree
next/linux-next-history The linux-next integration testing tree
nferre/linux-at91 Nicolas Ferre's fork of linux.git

다음 글...
리눅스 커널 기여(Contribution) - 패치 작성 및 패치 반영(Upstream) 확인하기
https://kldp.org/node/162104

(개인블로그)
http://rousalome.egloos.com/

Forums: 
joone의 이미지

+1 kldp에도 좋아요 버튼이 있으면 좋겠네요. :-)

AustinKim의 이미지

+1 좋아요 감사합니다...

(개인블로그)
http://rousalome.egloos.com

세벌의 이미지

좋은 글 고맙습니다.
리눅스 커널에 기여하는 우리나라 사람은 몇 명이나 되나 궁금해집니다.
AustinKim 님이 계시니까, 적어도 0명은 아니네요 :)

AustinKim의 이미지

응원 감사합니다.. 많은 분들이 참여했으면 좋겠습니다.

(개인블로그)
http://rousalome.egloos.com

파이썬3의 이미지

오 저도 이글 +1 좋아요 누르고 싶어요!!! 감사합니다^^^

[크롬북 우분투 18.04에서 적었어요]

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.