SlideShare a Scribd company logo
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
송태웅

More Related Content

What's hot

Rpm Introduction
Rpm IntroductionRpm Introduction
Rpm Introduction
Shrinivasan T
 
Python at Facebook
Python at FacebookPython at Facebook
Python at Facebook
Angelo Failla
 
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
Henry Schreiner
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
Utkarsh Sengar
 
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
Acácio Oliveira
 
packaging
packagingpackaging
packaging
Eddy Mulyono
 
Linux Network commands
Linux Network commandsLinux Network commands
Linux Network commands
Hanan 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 linux
chinkshady
 
PEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case StudyPEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case Study
Henry 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 eBPF
oholiab
 
Linux Container Basics
Linux Container BasicsLinux Container Basics
Linux Container Basics
Michael Kehoe
 
Tensorflow in Docker
Tensorflow in DockerTensorflow in Docker
Tensorflow in Docker
Eric Ahn
 
Qt native built for raspberry zero
Qt native built for  raspberry zeroQt native built for  raspberry zero
Qt native built for raspberry zero
SoheilSabzevari2
 
Orchestrating MySQL with Python and Docker
Orchestrating MySQL with Python and DockerOrchestrating MySQL with Python and Docker
Orchestrating MySQL with Python and Docker
Roberto Polli
 
Sacándole jugo a git
Sacándole jugo a gitSacándole jugo a git
Sacándole jugo a git
Berny 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 Kernel
Divye Kapoor
 
Linux networking commands
Linux networking commandsLinux networking commands
Linux networking commands
Sayed 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 BPF
Brendan Gregg
 
Containers for sysadmins
Containers for sysadminsContainers for sysadmins
Containers for sysadmins
Carlos de Alfonso Laguna
 

What's hot (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
 

Viewers also liked

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

Viewers also liked (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
 

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

Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os project
Lasse 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, compact
Alessandro 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 Environments
Gergely Szabó
 
Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023
Henry Schreiner
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to android
Owen 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 RPM
Alexander 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 filters
Acá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 filters
Acá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/APT
Joshua Thijssen
 
Linux basic commands
Linux basic commandsLinux basic commands
Linux basic commands
Sagar Kumar
 
Princeton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingPrinceton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance Tooling
Henry 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 filters
Acácio Oliveira
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
Fabio 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 platform
Linaro
 
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
Yoni Davidson
 
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Ontico
 
Source Code Management systems
Source Code Management systemsSource Code Management systems
Source Code Management systems
xSawyer
 
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
emBO_Conference
 

Similar to 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
 

More from 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
 
Ubuntu Korea at FOSSASIA Summit 2022
Ubuntu Korea at FOSSASIA Summit 2022Ubuntu Korea at FOSSASIA Summit 2022
Ubuntu Korea at FOSSASIA Summit 2022
Ubuntu Korea Community
 
Overview of the Flatpak
Overview of the FlatpakOverview of the Flatpak
Overview of the Flatpak
Ubuntu Korea Community
 
Usage of the MQTT
Usage of the MQTTUsage of the MQTT
Usage of the MQTT
Ubuntu Korea Community
 
Open Source and the License
Open Source and the LicenseOpen Source and the License
Open Source and the License
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 Techniques
Ubuntu Korea Community
 
Python을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationPython을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop Application
Ubuntu Korea Community
 
나의 우분투 이야기
나의 우분투 이야기나의 우분투 이야기
나의 우분투 이야기
Ubuntu Korea Community
 
Malware Dataset & Ubuntu
Malware Dataset & UbuntuMalware Dataset & Ubuntu
Malware Dataset & Ubuntu
Ubuntu 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
 
기계들의 소셜 미디어, MQTT
기계들의 소셜 미디어, MQTT기계들의 소셜 미디어, MQTT
기계들의 소셜 미디어, MQTT
Ubuntu Korea Community
 
모바일에 딥러닝 심기
모바일에 딥러닝 심기모바일에 딥러닝 심기
모바일에 딥러닝 심기
Ubuntu Korea Community
 

More from 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
 
모바일에 딥러닝 심기
모바일에 딥러닝 심기모바일에 딥러닝 심기
모바일에 딥러닝 심기
 

Recently uploaded

Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 

Recently uploaded (20)

Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 

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 송태웅