SlideShare une entreprise Scribd logo
1  sur  74
Télécharger pour lire hors ligne
Linux Kernel 프로젝트는
어떻게 개발이 이루어 질까 ?
Linux Kernel 의 기술내용이 아닌
개발 매커니즘 ( 오픈소스 개발방식 )
How to develop with Git ?
Linux Kernel – perf
오픈소스 개발과정의 이해
미래부 KOSS LAB. – Software Engineer
taeung@kosslab.kr
송태웅
송태웅 (Taeung Song, https://github.com/taeung)
- 미래창조과학부 KOSS Lab. Software Engineer
- Linux Kernel Contributor 활동 중 (perf)
강의활동
- SK C&C Git/Github 사내 교육영상 제작
- 서강대 , 아주대 , OSS 포럼 등 Git/Github 강의
- 국민대 , 이화여대 등 Linux perf, Opensource 참여 관련 시간강사 활동
Instructor
How to develop with Git ?
Git 은 History 관리
Git 은 Collaboration Tool
Git 의 Commit ? Patch ?
https://lkml.org/lkml/2017/4/7/739
Hello world 찍을때 ,
Git 이 필요한가 ? Needs / Wants
Hello world 찍을때 ,
Git 이 Needs 인 세상 == Linux Kernel( 오픈소스 프로젝트 )
PATCH(commit) mail Review 와 Discussion
Hello world 찍을때 ,
Git 이 Needs 인 세상 == 다른 오픈소스 프로젝트
- Node.js (https://github.com/nodejs/node)
- Tensorflow (https://github.com/tensorflow/tensorflow)
- Spring-boot (https://github.com/spring-projects/spring-boot)
- React (https://github.com/facebook/react)
- Elasticsearch (https://github.com/elastic/elasticsearch)
- Flask (https://github.com/mitsuhiko/flask)
…
- Apache (http://git.apache.org)
- Linux kernel (http://git.kernel.org)
- GNU (http://git.savannah.gnu.org/cgit/)
- Webkit (git://git.webkit.org/WebKit.git)
…
Github 오픈소스 프로젝트
Not Github 오픈소스 프로젝트
https://github.com/tensorflow/tensorflow
Linux Kernel 공식 git repository https://git.kernel.org
Github 기반 프로젝트와의 차이점
Pull-request, Wiki, issue 등
Linux Kernel 프로젝트
Perf 개발과정
Linux Kernel 공식 perf git repository
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
…
Linux Kernel 공식 Mailing List: Review, Disscusion 목적
http://vger.kernel.org/vger-lists.html
Linux Kernel 프로젝트가
Active 하게 개발되고 있나 ?
Linux Kernel 프로젝트는
완전히 Active 하게 개발되고 있다
PATCH(commit) mail Review 와 Discussion
Kernel 소스 받기 (perf 기준 )
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
$ vi linux/MAINTAINERS
...
9425 PERFORMANCE EVENTS SUBSYSTEM
9426 M: Peter Zijlstra <peterz@infradead.org>
9427 M: Ingo Molnar <mingo@redhat.com>
9428 M: Arnaldo Carvalho de Melo <acme@kernel.org>
9429 R: Alexander Shishkin <alexander.shishkin@linux.intel.com>
9430 L: linux-kernel@vger.kernel.org
9431 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
9432 S: Supported
9433 F: kernel/events/*
9434 F: include/linux/perf_event.h
9435 F: include/uapi/linux/perf_event.h
9436 F: arch/*/kernel/perf_event*.c
9437 F: arch/*/kernel/*/perf_event*.c
9438 F: arch/*/kernel/*/*/perf_event*.c
9439 F: arch/*/include/asm/perf_event.h
9440 F: arch/*/kernel/perf_callchain.c
9441 F: arch/*/events/*
9442 F: tools/perf/
...
Commit 만들기 예시
$ git commit -asm “perf tools: Add a tip to tips”
commit 을 PATCH 파일로 만들고 code style 검사
$ git format-patch -1
$ scripts/checkpatch.pl <.patch 파일명 >
Git sendmail 설정
$ cat ~/.gitconfig
… 생략 ...
[sendemail]
smtpserver = smtp.gmail.com
smtpserverport = 587
smtpuser = 본인메일 @gmail.com
smtpencryption = tls
… 생략 ...
실제 PATCH mail 전송 예시
$ git send-email --confirm=never 
--to "Arnaldo Carvalho de Melo <acme@kernel.org>" 
--cc "linux-kernel@vger.kernel.org" 
--cc "Jiri Olsa <jolsa@kernel.org>" 
--cc "Namhyung Kim <namhyung@kernel.org>" 
--cc "Ingo Molnar <mingo@kernel.org>" 
--cc "Peter Zijlstra <peterz@infradead.org>"
https://lkml.org/lkml/2016/3/27/48
Date Sun, 27 Mar 2016 13:16:26 +0200
From Jiri Olsa <>
Subject Re: [PATCH] perf config: Tidy up the code setting buildid dir
On Thu, Mar 24, 2016 at 04:49:33PM +0900, Taeung Song wrote:
> Add new perf_buildid_config() into perf_default_config,
> bring set_buildid_dir() next to perf_default_config,
> rename some variable name as more readable name and etc
> in order to clean up code about buildid dir.
>
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Wang Nan <wangnan0@huawei.com>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
> tools/perf/perf.c | 3 +--
> tools/perf/util/config.c | 57 +++++++++++++++++++-----------------------------
> 2 files changed, 23 insertions(+), 37 deletions(-)
though it's failry simple change we try to separate changes
seems like 3 independent changes:
- perf.c hunk change
- buildid_dir_command_config/perf_buildid_config rework
- set_buildid_dir fix
thanks,
jirka
https://lkml.org/lkml/2016/3/27/77
Subject Re: [PATCH] perf config: Tidy up the code setting buildid dir
From Taeung Song <>
Date Mon, 28 Mar 2016 00:41:29 +0900
Hi, jirka
Thank you for your review :-)
On 03/27/2016 08:16 PM, Jiri Olsa wrote:
> On Thu, Mar 24, 2016 at 04:49:33PM +0900, Taeung Song wrote:
… …생략
>> tools/perf/util/config.c | 57 +++++++++++++++++++-----------------------------
>> 2 files changed, 23 insertions(+), 37 deletions(-)
>
> though it's failry simple change we try to separate changes
>
> seems like 3 independent changes:
>
> - perf.c hunk change
> - buildid_dir_command_config/perf_buildid_config rework
> - set_buildid_dir fix
>
You mean it is needed to separate this patch as 3 part?
I got it.
I'll resend the patchset.
Thanks,
Taeung
https://lkml.org/lkml/2016/3/28/373
Date Mon, 28 Mar 2016 21:52:42 +0200
From Jiri Olsa <>
Subject Re: [PATCH 1/3] perf config: Remove duplicated the code calling set_buildid_dir
share 0
share 0
On Mon, Mar 28, 2016 at 02:22:18AM +0900, Taeung Song wrote:
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
for the patchset:
Acked-by: Jiri Olsa <jolsa@kernel.org>
thanks,
jirka
> ---
> tools/perf/perf.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
… …생략
Commit log message ? title ?
Commit 단위는 어느정도로 ?
Commit 단위는 작게 나누는게 바람직
한 함수는 하나의 작업 , 코딩하듯
한 Commit 도 하나의 목적 / 이유로 구성하는게 바람직
명쾌한 이해 , 효과적인 Review, 코드변화과정추적용이
Cover Letter 란 ?
# git format-patch -7 --cover-letter --subject-prefix=”PATCH v7”
$ cat 0000-cover-letter.patch
FFrom c42eb78703b28c8bcb0c515abeff683d23e9ff87 Mon Sep 17 00:00:00 2001
From: Taeung Song <treeze.taeung@gmail.com>
Date: Mon, 5 Sep 2016 14:13:03 +0900
Subject: [PATCH v7 0/7] perf config: Introduce default config key-value pairs arrays
Hello, :)
When initializing default perf config values,
we currently use values of actual type(int, bool, char *, etc.).
But I suggest using default config key-value pairs arrays.
... 생략 ...
v7:
- fix wrong handling a exception from strdup (Arnaldo)
- rebased on current acme/perf/core
v6:
- rename 'fore_back_colors' to simple 'colors' of ui_browser_colorset (Namhyung)
- remove unnecssary whitespace changes of PATCH 4/7, 5/7 (Namhyung)
- make more general macro instead of making accessor macro for each config section
(Namhyung)
- rebased on current acme/perf/core
$ git shortlog -sn --no-merges | nl | head -100
1 5931 H Hartley Sweeten
2 5635 Al Viro
3 4919 Takashi Iwai
4 4769 Mauro Carvalho Chehab
5 3971 Mark Brown
6 3933 Tejun Heo
7 3843 Johannes Berg
8 3809 David S. Miller
9 3522 Russell King
10 3509 Greg Kroah-Hartman
…
46 1755 Linus Torvalds
…
80 1233 Namhyung Kim
…
1365 65 Taeung Song
...
16609 1 [ 생략 ] * 참고 : 2015-2017 active 개발자 수 : 6475 명
Linux Kernel 누적 commit 수 1 등
BUT
오픈소스 프로젝트 uftrace:
간단한 소개
github.com/namhyung/uftrace
https://github.com/namhyung/uftrace
https://github.com/namhyung/uftrace
https://youtu.be/U3hTR6-pWu0
http://tracingsummit.org/wiki/TracingSummit2016uftrace
https://youtu.be/LNav5qvyK7Ihttps://cppcon.org/
https://github.com/CppCon/CppCon2016/blob/master/Lightning%20Talks%20and%20Lunch%20Sessions/uftrace%20-%20A%20function%20graph%20tracer%20C%20C%2
B%2B%20userspace%20programs/uftrace%20-%20A%20function%20graph%20tracer%20C%20C%2B%2B%20userspace%20programs%20-%20Namhyung%20Kim%20and%20Honggyu
%20Kim%20-%20CppCon%202016.pdf
오픈소스 프로젝트 uftrace:
Pull request / Review 과정 예시
Thank you
미래부 KOSS LAB. – Software Engineer
taeung@kosslab.kr
송태웅

Contenu connexe

Tendances

Digital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingDigital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingHenry Schreiner
 
Licão 06 process text streams with filters
Licão 06 process text streams with filtersLicão 06 process text streams with filters
Licão 06 process text streams with filtersAcácio Oliveira
 
Linux Network commands
Linux Network commandsLinux Network commands
Linux Network commandsHanan Nmr
 
Scaling mysql with python (and Docker).
Scaling mysql with python (and Docker).Scaling mysql with python (and Docker).
Scaling mysql with python (and Docker).Roberto Polli
 
9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linuxchinkshady
 
PEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case StudyPEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case StudyHenry Schreiner
 
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFA Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFoholiab
 
Linux Container Basics
Linux Container BasicsLinux Container Basics
Linux Container BasicsMichael Kehoe
 
Tensorflow in Docker
Tensorflow in DockerTensorflow in Docker
Tensorflow in DockerEric Ahn
 
Qt native built for raspberry zero
Qt native built for  raspberry zeroQt native built for  raspberry zero
Qt native built for raspberry zeroSoheilSabzevari2
 
Orchestrating MySQL with Python and Docker
Orchestrating MySQL with Python and DockerOrchestrating MySQL with Python and Docker
Orchestrating MySQL with Python and DockerRoberto Polli
 
Sacándole jugo a git
Sacándole jugo a gitSacándole jugo a git
Sacándole jugo a gitBerny Cantos
 
The TCP/IP Stack in the Linux Kernel
The TCP/IP Stack in the Linux KernelThe TCP/IP Stack in the Linux Kernel
The TCP/IP Stack in the Linux KernelDivye Kapoor
 
Linux networking commands
Linux networking commandsLinux networking commands
Linux networking commandsSayed Ahmed
 
Kernel Recipes 2017: Performance Analysis with BPF
Kernel Recipes 2017: Performance Analysis with BPFKernel Recipes 2017: Performance Analysis with BPF
Kernel Recipes 2017: Performance Analysis with BPFBrendan Gregg
 

Tendances (20)

Rpm Introduction
Rpm IntroductionRpm Introduction
Rpm Introduction
 
Python at Facebook
Python at FacebookPython at Facebook
Python at Facebook
 
Digital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingDigital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meeting
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
 
Licão 06 process text streams with filters
Licão 06 process text streams with filtersLicão 06 process text streams with filters
Licão 06 process text streams with filters
 
packaging
packagingpackaging
packaging
 
Linux Network commands
Linux Network commandsLinux Network commands
Linux Network commands
 
Scaling mysql with python (and Docker).
Scaling mysql with python (and Docker).Scaling mysql with python (and Docker).
Scaling mysql with python (and Docker).
 
9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux
 
PEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case StudyPEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case Study
 
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFA Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
 
Linux Container Basics
Linux Container BasicsLinux Container Basics
Linux Container Basics
 
Tensorflow in Docker
Tensorflow in DockerTensorflow in Docker
Tensorflow in Docker
 
Qt native built for raspberry zero
Qt native built for  raspberry zeroQt native built for  raspberry zero
Qt native built for raspberry zero
 
Orchestrating MySQL with Python and Docker
Orchestrating MySQL with Python and DockerOrchestrating MySQL with Python and Docker
Orchestrating MySQL with Python and Docker
 
Sacándole jugo a git
Sacándole jugo a gitSacándole jugo a git
Sacándole jugo a git
 
The TCP/IP Stack in the Linux Kernel
The TCP/IP Stack in the Linux KernelThe TCP/IP Stack in the Linux Kernel
The TCP/IP Stack in the Linux Kernel
 
Linux networking commands
Linux networking commandsLinux networking commands
Linux networking commands
 
Kernel Recipes 2017: Performance Analysis with BPF
Kernel Recipes 2017: Performance Analysis with BPFKernel Recipes 2017: Performance Analysis with BPF
Kernel Recipes 2017: Performance Analysis with BPF
 
Containers for sysadmins
Containers for sysadminsContainers for sysadmins
Containers for sysadmins
 

En vedette

Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로
Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로
Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로Ubuntu Korea Community
 
런치패드를 통한 쉽고 재미있는 우분투 번역
런치패드를 통한 쉽고 재미있는 우분투 번역런치패드를 통한 쉽고 재미있는 우분투 번역
런치패드를 통한 쉽고 재미있는 우분투 번역Ubuntu Korea Community
 
게임해킹의 관심을 끄는데 미연시만한게 없죠
게임해킹의 관심을 끄는데 미연시만한게 없죠게임해킹의 관심을 끄는데 미연시만한게 없죠
게임해킹의 관심을 끄는데 미연시만한게 없죠Ubuntu Korea Community
 
300초만에 알아가는 Git 관련 꿀팁
300초만에 알아가는 Git 관련 꿀팁300초만에 알아가는 Git 관련 꿀팁
300초만에 알아가는 Git 관련 꿀팁Ubuntu Korea Community
 
FPGA 개발하면서 겪은 삽질에 대한 총 정리
FPGA 개발하면서 겪은 삽질에 대한 총 정리FPGA 개발하면서 겪은 삽질에 대한 총 정리
FPGA 개발하면서 겪은 삽질에 대한 총 정리Ubuntu Korea Community
 
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUXUbuntu Korea Community
 
How and why we have integrated Slack and IRC
How and why we have integrated Slack and IRCHow and why we have integrated Slack and IRC
How and why we have integrated Slack and IRCUbuntu Korea Community
 
synthetic aperture radar
synthetic aperture radarsynthetic aperture radar
synthetic aperture radarAmit Rastogi
 

En vedette (18)

Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로
Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로
Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로
 
Ubuntu for make things
Ubuntu for make thingsUbuntu for make things
Ubuntu for make things
 
고등수학 스터디 결과발표
고등수학 스터디 결과발표고등수학 스터디 결과발표
고등수학 스터디 결과발표
 
런치패드를 통한 쉽고 재미있는 우분투 번역
런치패드를 통한 쉽고 재미있는 우분투 번역런치패드를 통한 쉽고 재미있는 우분투 번역
런치패드를 통한 쉽고 재미있는 우분투 번역
 
DNS & Mail Server Study
DNS & Mail Server StudyDNS & Mail Server Study
DNS & Mail Server Study
 
변태적인 터미널 사용방법
변태적인 터미널 사용방법변태적인 터미널 사용방법
변태적인 터미널 사용방법
 
Ubuntu's Unity : Birth to Death
Ubuntu's Unity : Birth to DeathUbuntu's Unity : Birth to Death
Ubuntu's Unity : Birth to Death
 
LTE-M 을 이용한 IoT 통신
LTE-M 을 이용한 IoT 통신LTE-M 을 이용한 IoT 통신
LTE-M 을 이용한 IoT 통신
 
게임해킹의 관심을 끄는데 미연시만한게 없죠
게임해킹의 관심을 끄는데 미연시만한게 없죠게임해킹의 관심을 끄는데 미연시만한게 없죠
게임해킹의 관심을 끄는데 미연시만한게 없죠
 
300초만에 알아가는 Git 관련 꿀팁
300초만에 알아가는 Git 관련 꿀팁300초만에 알아가는 Git 관련 꿀팁
300초만에 알아가는 Git 관련 꿀팁
 
FPGA 개발하면서 겪은 삽질에 대한 총 정리
FPGA 개발하면서 겪은 삽질에 대한 총 정리FPGA 개발하면서 겪은 삽질에 대한 총 정리
FPGA 개발하면서 겪은 삽질에 대한 총 정리
 
How to manage Azure with open source
How to manage Azure with open sourceHow to manage Azure with open source
How to manage Azure with open source
 
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUX
 
HanJP IM Project 개요
HanJP IM Project 개요HanJP IM Project 개요
HanJP IM Project 개요
 
Snaps on Ubuntu Desktop
Snaps on Ubuntu DesktopSnaps on Ubuntu Desktop
Snaps on Ubuntu Desktop
 
How and why we have integrated Slack and IRC
How and why we have integrated Slack and IRCHow and why we have integrated Slack and IRC
How and why we have integrated Slack and IRC
 
synthetic aperture radar
synthetic aperture radarsynthetic aperture radar
synthetic aperture radar
 
Pratik
PratikPratik
Pratik
 

Similaire à Linux Kernel 개발참여방법과 문화 (Contribution)

Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os projectLasse Schuirmann
 
Linux Capabilities - eng - v2.1.5, compact
Linux Capabilities - eng - v2.1.5, compactLinux Capabilities - eng - v2.1.5, compact
Linux Capabilities - eng - v2.1.5, compactAlessandro Selli
 
Efficient System Monitoring in Cloud Native Environments
Efficient System Monitoring in Cloud Native EnvironmentsEfficient System Monitoring in Cloud Native Environments
Efficient System Monitoring in Cloud Native EnvironmentsGergely Szabó
 
Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023Henry Schreiner
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to androidOwen Hsu
 
Bundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMBundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMAlexander Shopov
 
101 3.2 process text streams using filters
101 3.2 process text streams using filters101 3.2 process text streams using filters
101 3.2 process text streams using filtersAcácio Oliveira
 
101 3.2 process text streams using filters
101 3.2 process text streams using filters101 3.2 process text streams using filters
101 3.2 process text streams using filtersAcácio Oliveira
 
Deploying and maintaining your software with RPM/APT
Deploying and maintaining your software with RPM/APTDeploying and maintaining your software with RPM/APT
Deploying and maintaining your software with RPM/APTJoshua Thijssen
 
Linux basic commands
Linux basic commandsLinux basic commands
Linux basic commandsSagar Kumar
 
Princeton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingPrinceton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingHenry Schreiner
 
Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Vincent Batts
 
3.2 process text streams using filters
3.2 process text streams using filters3.2 process text streams using filters
3.2 process text streams using filtersAcácio Oliveira
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionFabio Kung
 
Tox as project descriptor.
Tox as project descriptor.Tox as project descriptor.
Tox as project descriptor.Roberto Polli
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLinaro
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIYoni Davidson
 
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...Ontico
 
Source Code Management systems
Source Code Management systemsSource Code Management systems
Source Code Management systemsxSawyer
 
Profiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsProfiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsemBO_Conference
 

Similaire à Linux Kernel 개발참여방법과 문화 (Contribution) (20)

Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os project
 
Linux Capabilities - eng - v2.1.5, compact
Linux Capabilities - eng - v2.1.5, compactLinux Capabilities - eng - v2.1.5, compact
Linux Capabilities - eng - v2.1.5, compact
 
Efficient System Monitoring in Cloud Native Environments
Efficient System Monitoring in Cloud Native EnvironmentsEfficient System Monitoring in Cloud Native Environments
Efficient System Monitoring in Cloud Native Environments
 
Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to android
 
Bundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMBundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPM
 
101 3.2 process text streams using filters
101 3.2 process text streams using filters101 3.2 process text streams using filters
101 3.2 process text streams using filters
 
101 3.2 process text streams using filters
101 3.2 process text streams using filters101 3.2 process text streams using filters
101 3.2 process text streams using filters
 
Deploying and maintaining your software with RPM/APT
Deploying and maintaining your software with RPM/APTDeploying and maintaining your software with RPM/APT
Deploying and maintaining your software with RPM/APT
 
Linux basic commands
Linux basic commandsLinux basic commands
Linux basic commands
 
Princeton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingPrinceton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance Tooling
 
Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]
 
3.2 process text streams using filters
3.2 process text streams using filters3.2 process text streams using filters
3.2 process text streams using filters
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Tox as project descriptor.
Tox as project descriptor.Tox as project descriptor.
Tox as project descriptor.
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platform
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-API
 
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
 
Source Code Management systems
Source Code Management systemsSource Code Management systems
Source Code Management systems
 
Profiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsProfiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf Tools
 

Plus de Ubuntu Korea Community

권총 사격하러 우분투 써밋 참가한 썰.txt
 권총 사격하러 우분투 써밋 참가한 썰.txt  권총 사격하러 우분투 써밋 참가한 썰.txt
권총 사격하러 우분투 써밋 참가한 썰.txt Ubuntu Korea Community
 
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경Ubuntu Korea Community
 
우분투한국커뮤니티 2022년 활동 정리
우분투한국커뮤니티 2022년 활동 정리우분투한국커뮤니티 2022년 활동 정리
우분투한국커뮤니티 2022년 활동 정리Ubuntu Korea Community
 
우분투한국커뮤니티 2022년 신년회
우분투한국커뮤니티 2022년 신년회우분투한국커뮤니티 2022년 신년회
우분투한국커뮤니티 2022년 신년회Ubuntu Korea Community
 
Memory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack TechniquesMemory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack TechniquesUbuntu Korea Community
 
Python을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationPython을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationUbuntu Korea Community
 
케라스와 함께하는 재밌는 딥러닝 활용 사례들
케라스와 함께하는 재밌는 딥러닝 활용 사례들케라스와 함께하는 재밌는 딥러닝 활용 사례들
케라스와 함께하는 재밌는 딥러닝 활용 사례들Ubuntu Korea Community
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티Ubuntu Korea Community
 
우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고Ubuntu Korea Community
 
새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조Ubuntu Korea Community
 
스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기Ubuntu Korea Community
 

Plus de Ubuntu Korea Community (20)

권총 사격하러 우분투 써밋 참가한 썰.txt
 권총 사격하러 우분투 써밋 참가한 썰.txt  권총 사격하러 우분투 써밋 참가한 썰.txt
권총 사격하러 우분투 써밋 참가한 썰.txt
 
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
 
우분투한국커뮤니티 2022년 활동 정리
우분투한국커뮤니티 2022년 활동 정리우분투한국커뮤니티 2022년 활동 정리
우분투한국커뮤니티 2022년 활동 정리
 
우분투한국커뮤니티 2022년 신년회
우분투한국커뮤니티 2022년 신년회우분투한국커뮤니티 2022년 신년회
우분투한국커뮤니티 2022년 신년회
 
Ubuntu Korea at FOSSASIA Summit 2022
Ubuntu Korea at FOSSASIA Summit 2022Ubuntu Korea at FOSSASIA Summit 2022
Ubuntu Korea at FOSSASIA Summit 2022
 
Overview of the Flatpak
Overview of the FlatpakOverview of the Flatpak
Overview of the Flatpak
 
Usage of the MQTT
Usage of the MQTTUsage of the MQTT
Usage of the MQTT
 
Open Source and the License
Open Source and the LicenseOpen Source and the License
Open Source and the License
 
Memory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack TechniquesMemory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack Techniques
 
Python을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationPython을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop Application
 
나의 우분투 이야기
나의 우분투 이야기나의 우분투 이야기
나의 우분투 이야기
 
Malware Dataset & Ubuntu
Malware Dataset & UbuntuMalware Dataset & Ubuntu
Malware Dataset & Ubuntu
 
케라스와 함께하는 재밌는 딥러닝 활용 사례들
케라스와 함께하는 재밌는 딥러닝 활용 사례들케라스와 함께하는 재밌는 딥러닝 활용 사례들
케라스와 함께하는 재밌는 딥러닝 활용 사례들
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티
 
우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고
 
새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조
 
스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기
 
기계들의 소셜 미디어, MQTT
기계들의 소셜 미디어, MQTT기계들의 소셜 미디어, MQTT
기계들의 소셜 미디어, MQTT
 
모바일에 딥러닝 심기
모바일에 딥러닝 심기모바일에 딥러닝 심기
모바일에 딥러닝 심기
 

Dernier

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Dernier (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

Linux Kernel 개발참여방법과 문화 (Contribution)

  • 1. Linux Kernel 프로젝트는 어떻게 개발이 이루어 질까 ?
  • 2. Linux Kernel 의 기술내용이 아닌 개발 매커니즘 ( 오픈소스 개발방식 )
  • 3. How to develop with Git ?
  • 4. Linux Kernel – perf 오픈소스 개발과정의 이해 미래부 KOSS LAB. – Software Engineer taeung@kosslab.kr 송태웅
  • 5. 송태웅 (Taeung Song, https://github.com/taeung) - 미래창조과학부 KOSS Lab. Software Engineer - Linux Kernel Contributor 활동 중 (perf) 강의활동 - SK C&C Git/Github 사내 교육영상 제작 - 서강대 , 아주대 , OSS 포럼 등 Git/Github 강의 - 국민대 , 이화여대 등 Linux perf, Opensource 참여 관련 시간강사 활동 Instructor
  • 6. How to develop with Git ?
  • 9. Git 의 Commit ? Patch ?
  • 10.
  • 11.
  • 13. Hello world 찍을때 , Git 이 필요한가 ? Needs / Wants
  • 14. Hello world 찍을때 , Git 이 Needs 인 세상 == Linux Kernel( 오픈소스 프로젝트 )
  • 15. PATCH(commit) mail Review 와 Discussion
  • 16. Hello world 찍을때 , Git 이 Needs 인 세상 == 다른 오픈소스 프로젝트
  • 17. - Node.js (https://github.com/nodejs/node) - Tensorflow (https://github.com/tensorflow/tensorflow) - Spring-boot (https://github.com/spring-projects/spring-boot) - React (https://github.com/facebook/react) - Elasticsearch (https://github.com/elastic/elasticsearch) - Flask (https://github.com/mitsuhiko/flask) … - Apache (http://git.apache.org) - Linux kernel (http://git.kernel.org) - GNU (http://git.savannah.gnu.org/cgit/) - Webkit (git://git.webkit.org/WebKit.git) … Github 오픈소스 프로젝트 Not Github 오픈소스 프로젝트
  • 19. Linux Kernel 공식 git repository https://git.kernel.org
  • 20. Github 기반 프로젝트와의 차이점 Pull-request, Wiki, issue 등
  • 22. Linux Kernel 공식 perf git repository https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git …
  • 23. Linux Kernel 공식 Mailing List: Review, Disscusion 목적 http://vger.kernel.org/vger-lists.html
  • 24. Linux Kernel 프로젝트가 Active 하게 개발되고 있나 ?
  • 25. Linux Kernel 프로젝트는 완전히 Active 하게 개발되고 있다
  • 26.
  • 27. PATCH(commit) mail Review 와 Discussion
  • 28. Kernel 소스 받기 (perf 기준 ) $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
  • 29. $ vi linux/MAINTAINERS ... 9425 PERFORMANCE EVENTS SUBSYSTEM 9426 M: Peter Zijlstra <peterz@infradead.org> 9427 M: Ingo Molnar <mingo@redhat.com> 9428 M: Arnaldo Carvalho de Melo <acme@kernel.org> 9429 R: Alexander Shishkin <alexander.shishkin@linux.intel.com> 9430 L: linux-kernel@vger.kernel.org 9431 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core 9432 S: Supported 9433 F: kernel/events/* 9434 F: include/linux/perf_event.h 9435 F: include/uapi/linux/perf_event.h 9436 F: arch/*/kernel/perf_event*.c 9437 F: arch/*/kernel/*/perf_event*.c 9438 F: arch/*/kernel/*/*/perf_event*.c 9439 F: arch/*/include/asm/perf_event.h 9440 F: arch/*/kernel/perf_callchain.c 9441 F: arch/*/events/* 9442 F: tools/perf/ ...
  • 30. Commit 만들기 예시 $ git commit -asm “perf tools: Add a tip to tips”
  • 31. commit 을 PATCH 파일로 만들고 code style 검사 $ git format-patch -1 $ scripts/checkpatch.pl <.patch 파일명 >
  • 32.
  • 33. Git sendmail 설정 $ cat ~/.gitconfig … 생략 ... [sendemail] smtpserver = smtp.gmail.com smtpserverport = 587 smtpuser = 본인메일 @gmail.com smtpencryption = tls … 생략 ...
  • 34. 실제 PATCH mail 전송 예시 $ git send-email --confirm=never --to "Arnaldo Carvalho de Melo <acme@kernel.org>" --cc "linux-kernel@vger.kernel.org" --cc "Jiri Olsa <jolsa@kernel.org>" --cc "Namhyung Kim <namhyung@kernel.org>" --cc "Ingo Molnar <mingo@kernel.org>" --cc "Peter Zijlstra <peterz@infradead.org>"
  • 35. https://lkml.org/lkml/2016/3/27/48 Date Sun, 27 Mar 2016 13:16:26 +0200 From Jiri Olsa <> Subject Re: [PATCH] perf config: Tidy up the code setting buildid dir On Thu, Mar 24, 2016 at 04:49:33PM +0900, Taeung Song wrote: > Add new perf_buildid_config() into perf_default_config, > bring set_buildid_dir() next to perf_default_config, > rename some variable name as more readable name and etc > in order to clean up code about buildid dir. > > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Wang Nan <wangnan0@huawei.com> > Signed-off-by: Taeung Song <treeze.taeung@gmail.com> > --- > tools/perf/perf.c | 3 +-- > tools/perf/util/config.c | 57 +++++++++++++++++++----------------------------- > 2 files changed, 23 insertions(+), 37 deletions(-) though it's failry simple change we try to separate changes seems like 3 independent changes: - perf.c hunk change - buildid_dir_command_config/perf_buildid_config rework - set_buildid_dir fix thanks, jirka
  • 36. https://lkml.org/lkml/2016/3/27/77 Subject Re: [PATCH] perf config: Tidy up the code setting buildid dir From Taeung Song <> Date Mon, 28 Mar 2016 00:41:29 +0900 Hi, jirka Thank you for your review :-) On 03/27/2016 08:16 PM, Jiri Olsa wrote: > On Thu, Mar 24, 2016 at 04:49:33PM +0900, Taeung Song wrote: … …생략 >> tools/perf/util/config.c | 57 +++++++++++++++++++----------------------------- >> 2 files changed, 23 insertions(+), 37 deletions(-) > > though it's failry simple change we try to separate changes > > seems like 3 independent changes: > > - perf.c hunk change > - buildid_dir_command_config/perf_buildid_config rework > - set_buildid_dir fix > You mean it is needed to separate this patch as 3 part? I got it. I'll resend the patchset. Thanks, Taeung
  • 37. https://lkml.org/lkml/2016/3/28/373 Date Mon, 28 Mar 2016 21:52:42 +0200 From Jiri Olsa <> Subject Re: [PATCH 1/3] perf config: Remove duplicated the code calling set_buildid_dir share 0 share 0 On Mon, Mar 28, 2016 at 02:22:18AM +0900, Taeung Song wrote: > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Namhyung Kim <namhyung@kernel.org> > Signed-off-by: Taeung Song <treeze.taeung@gmail.com> for the patchset: Acked-by: Jiri Olsa <jolsa@kernel.org> thanks, jirka > --- > tools/perf/perf.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > … …생략
  • 38.
  • 39.
  • 40. Commit log message ? title ?
  • 41.
  • 42.
  • 44. Commit 단위는 작게 나누는게 바람직
  • 45. 한 함수는 하나의 작업 , 코딩하듯 한 Commit 도 하나의 목적 / 이유로 구성하는게 바람직 명쾌한 이해 , 효과적인 Review, 코드변화과정추적용이
  • 46. Cover Letter 란 ? # git format-patch -7 --cover-letter --subject-prefix=”PATCH v7”
  • 47. $ cat 0000-cover-letter.patch FFrom c42eb78703b28c8bcb0c515abeff683d23e9ff87 Mon Sep 17 00:00:00 2001 From: Taeung Song <treeze.taeung@gmail.com> Date: Mon, 5 Sep 2016 14:13:03 +0900 Subject: [PATCH v7 0/7] perf config: Introduce default config key-value pairs arrays Hello, :) When initializing default perf config values, we currently use values of actual type(int, bool, char *, etc.). But I suggest using default config key-value pairs arrays. ... 생략 ... v7: - fix wrong handling a exception from strdup (Arnaldo) - rebased on current acme/perf/core v6: - rename 'fore_back_colors' to simple 'colors' of ui_browser_colorset (Namhyung) - remove unnecssary whitespace changes of PATCH 4/7, 5/7 (Namhyung) - make more general macro instead of making accessor macro for each config section (Namhyung) - rebased on current acme/perf/core
  • 48. $ git shortlog -sn --no-merges | nl | head -100 1 5931 H Hartley Sweeten 2 5635 Al Viro 3 4919 Takashi Iwai 4 4769 Mauro Carvalho Chehab 5 3971 Mark Brown 6 3933 Tejun Heo 7 3843 Johannes Berg 8 3809 David S. Miller 9 3522 Russell King 10 3509 Greg Kroah-Hartman … 46 1755 Linus Torvalds … 80 1233 Namhyung Kim … 1365 65 Taeung Song ... 16609 1 [ 생략 ] * 참고 : 2015-2017 active 개발자 수 : 6475 명
  • 49. Linux Kernel 누적 commit 수 1 등
  • 50. BUT
  • 51. 오픈소스 프로젝트 uftrace: 간단한 소개 github.com/namhyung/uftrace
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 65. 오픈소스 프로젝트 uftrace: Pull request / Review 과정 예시
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74. Thank you 미래부 KOSS LAB. – Software Engineer taeung@kosslab.kr 송태웅