SlideShare a Scribd company logo
演讲人:Chen Li
<chenli@uniontech.com>
打造操作系统创新生态
Participate in the Linux Community
—— A Guide To The Kernel Development Process and tools
01 powerful git tricks
02 Modern code navigation without
TAGS
04 Send and update your patch
03 Mailing list and mail client
目
录
Basic git concepts
plumbing porcelain object
database
index
working
tree
object type branch tag
head/HEA
D
merge rebase bisect
git worktree --help
What How
Example Why
Worktree is your working directory without index and
object database
- git worktree add
- git worktree remove
- git worktree list
- git worktree move
…
Share the same project-wise git config
Share the same remotes
Easily manage different worktrees
Avoid frequently but annoying git checkout/switch
$ git worktree add -b emergency-fix ../temp
master
$ pushd ../temp
# ... hack hack hack ...
$ git commit -a -m 'emergency fix for boss'
$ popd
$ git worktree remove ../temp
Package your git repo!
Git bundle and archive
Git archive
Git bundle
Move objects and refs by
archive
Hisotry is also included
Create an archive of files
from a named tree
Play well with all git worktrees
and git clone!
History is excluded
git bundle create 4-19-
90.bundle 4-19-90
git archive -o 4-19-90.zip 4-
19-90 -9
Make clean is not required!
Commit meeage or diff
Search something in git log
--grep
-S -G
Git hooks
firstlove@LAPTOP-N1A5G5V0 ~/p/k/linux-sw (6a-inspur-wutip-421)> cat
.git/hooks/post-commit
exec git show --format=email HEAD | ./scripts/checkpatch.pl --strict --codespell
fire off custom scripts when
certain important actions occur.
Why ctags
Modern code navigation without TAGS
efficient Simple
Most kernel
developer use it
Universal
It is really fast even on machine with
performance
Works quite well with vanilla vim!
So, you can easily learn ctags from them
Have many languages support by default
Why not ctags
Modern code navigation without TAGS
Lack on the fly syntax
check
Code completion is
missing or unusable
Know nothing about
how your code will be
compiled
No other modern ide
features!
You cannot know if it can pass compliation until you
really compile it!
It has to index all codes, regardless of .config!
That’s why its ofter Inaccurate even just for code
navigation!
● codelen
● symbol rename
● semantic highlighting
● hierarchies
Cannot take use of other powerful lints!
Kernel is really big, it’s not pritical to remember all
apis.
Code completion is really your friend if you are a
newbiee.
Modern code navigation without TAGS
ccls
c/c++/object-c lsp server, which supports all features mentioned last page
Have nearly all editors support, including vim, emacs, neovim, vscode ...
Mailing list and mail client
1,000 messages
each day
Emails Only (without
anything else!)
Simple but sufficient
Poor man’s forum
LKML
Mailing list and mail client
git-send-email Mutt
mu4e
nmh
Mail client
Mailing list and mail client
smtp imap
refile
archive
Mail client
Send and update your patch
Describe, check and extract your patch (single patch)
./scripts/checkpatch.pl -g HEAD
git format-patch -1 HEAD
Send and update your patch
Describe, check and extract your patch (multiple patches)
# n is your commits number
$ ./scripts/checkpatch.pl -g HEAD-n
$ git format-patch -n HEAD
$ man git-format-patch # for more details
Send and update your patch
Get maintainer and mailing list
$ ./scripts/get_maintainer.pl drivers/gpu/drm/radeon/atom.c
Alex Deucher <alexander.deucher@amd.com>
(supporter:RADEON and AMDGPU DRM DRIVERS)
"Christian König" <christian.koenig@amd.com>
(supporter:RADEON and AMDGPU DRM DRIVERS)
David Airlie <airlied@linux.ie> (maintainer:DRM DRIVERS)
Daniel Vetter <daniel@ffwll.ch> (maintainer:DRM DRIVERS)
amd-gfx@lists.freedesktop.org (open list:RADEON and
AMDGPU DRM DRIVERS)
dri-devel@lists.freedesktop.org (open list:DRM DRIVERS)
linux-kernel@vger.kernel.org (open list)
Send and update your patch
Update your patch
It’s quite common that your first version of patch/patches have
problems you were not aware of. Maintainer(or someone else)
may reply your mail and point out your mistakes.
You can fix/improve your patch/patches then send v2/v3/v4/...:
$ git format-patch … –reroll-count n # n stands for the n times
you send the patch/patches
$ Add changelog in cover-letter
Send and update your patch
Update your patch
Example of changelog inside cover-letter:
Signed-off-by: chenli <chenli at uniontech.com>
---
v1->v2:
* Convert the other assignments of msg as well.
* Casting types to avoid static checker warnings.
---
drivers/gpu/drm/radeon/radeon_uvd.c | 34 ++++++++++++++---------------
1 file changed, 17 insertions(+), 17 deletions(-)
https://www.spinics.net/lists/amd-gfx/msg59986.html
Send and update your patch
Fix other commits
Add: “Fixes:” tag in the commit
message:
Fixes: 3fcb4f01deed ("drm/radeon: Use
kvmalloc for CS chunks")
Signed-off-by: Chen Li
<chenli@xxxxxxxxxxxxx>
---
changelog:
v1->v2: add Fixes: tag
drivers/gpu/drm/radeon/radeon_cs.c | 6 +++--
-
1 file changed, 3 insertions(+), 3 deletions(-)
https://www.spinics.net/lists/amd-
gfx/msg59986.html
If your commits aim to fix bug introduced from other commits, you should:
Any question
Thanks For Listening
感谢聆听

More Related Content

What's hot

Testing curl for security
Testing curl for securityTesting curl for security
Testing curl for security
Daniel Stenberg
 
Source Code Management systems
Source Code Management systemsSource Code Management systems
Source Code Management systems
xSawyer
 
HTTP/3 in curl
HTTP/3 in curlHTTP/3 in curl
HTTP/3 in curl
Daniel Stenberg
 
HTTP/3 for everyone
HTTP/3 for everyoneHTTP/3 for everyone
HTTP/3 for everyone
Daniel Stenberg
 
Landing code in curl
Landing code in curlLanding code in curl
Landing code in curl
Daniel Stenberg
 
Fluentd and PHP
Fluentd and PHPFluentd and PHP
Fluentd and PHP
chobi e
 
Source Code Management with Git
Source Code Management with GitSource Code Management with Git
Source Code Management with Git
Things Lab
 
DNS over HTTPS
DNS over HTTPSDNS over HTTPS
DNS over HTTPS
Daniel Stenberg
 
AppDays Pordenone 2014: Web App Engineering With Dart
AppDays Pordenone 2014: Web App Engineering With DartAppDays Pordenone 2014: Web App Engineering With Dart
AppDays Pordenone 2014: Web App Engineering With Dart
Claudio d'Angelis
 
Deconstruct 2017: All programmers MUST learn C and Assembly
Deconstruct 2017: All programmers MUST learn C and AssemblyDeconstruct 2017: All programmers MUST learn C and Assembly
Deconstruct 2017: All programmers MUST learn C and Assembly
ice799
 
Docker and Fluentd
Docker and FluentdDocker and Fluentd
Docker and Fluentd
SATOSHI TAGOMORI
 
Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015
ice799
 
curl better
curl bettercurl better
curl better
Daniel Stenberg
 
An introduction to git
An introduction to gitAn introduction to git
An introduction to git
olberger
 
Php core. get rid of bugs and contribute
Php core. get rid of bugs and contributePhp core. get rid of bugs and contribute
Php core. get rid of bugs and contribute
Pierre Joye
 
curl roadmap 2020
curl roadmap 2020curl roadmap 2020
curl roadmap 2020
Daniel Stenberg
 
kikstart journey of Golang with Hello world - Gopherlabs
kikstart journey of Golang with Hello world - Gopherlabs kikstart journey of Golang with Hello world - Gopherlabs
kikstart journey of Golang with Hello world - Gopherlabs
sangam biradar
 
Functional Programming with Streams in node.js
Functional Programming with Streams in node.jsFunctional Programming with Streams in node.js
Functional Programming with Streams in node.js
Adam Crabtree
 
Linux CLI
Linux CLILinux CLI
Http3 fullstackfest-2019
Http3 fullstackfest-2019Http3 fullstackfest-2019
Http3 fullstackfest-2019
Daniel Stenberg
 

What's hot (20)

Testing curl for security
Testing curl for securityTesting curl for security
Testing curl for security
 
Source Code Management systems
Source Code Management systemsSource Code Management systems
Source Code Management systems
 
HTTP/3 in curl
HTTP/3 in curlHTTP/3 in curl
HTTP/3 in curl
 
HTTP/3 for everyone
HTTP/3 for everyoneHTTP/3 for everyone
HTTP/3 for everyone
 
Landing code in curl
Landing code in curlLanding code in curl
Landing code in curl
 
Fluentd and PHP
Fluentd and PHPFluentd and PHP
Fluentd and PHP
 
Source Code Management with Git
Source Code Management with GitSource Code Management with Git
Source Code Management with Git
 
DNS over HTTPS
DNS over HTTPSDNS over HTTPS
DNS over HTTPS
 
AppDays Pordenone 2014: Web App Engineering With Dart
AppDays Pordenone 2014: Web App Engineering With DartAppDays Pordenone 2014: Web App Engineering With Dart
AppDays Pordenone 2014: Web App Engineering With Dart
 
Deconstruct 2017: All programmers MUST learn C and Assembly
Deconstruct 2017: All programmers MUST learn C and AssemblyDeconstruct 2017: All programmers MUST learn C and Assembly
Deconstruct 2017: All programmers MUST learn C and Assembly
 
Docker and Fluentd
Docker and FluentdDocker and Fluentd
Docker and Fluentd
 
Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015
 
curl better
curl bettercurl better
curl better
 
An introduction to git
An introduction to gitAn introduction to git
An introduction to git
 
Php core. get rid of bugs and contribute
Php core. get rid of bugs and contributePhp core. get rid of bugs and contribute
Php core. get rid of bugs and contribute
 
curl roadmap 2020
curl roadmap 2020curl roadmap 2020
curl roadmap 2020
 
kikstart journey of Golang with Hello world - Gopherlabs
kikstart journey of Golang with Hello world - Gopherlabs kikstart journey of Golang with Hello world - Gopherlabs
kikstart journey of Golang with Hello world - Gopherlabs
 
Functional Programming with Streams in node.js
Functional Programming with Streams in node.jsFunctional Programming with Streams in node.js
Functional Programming with Streams in node.js
 
Linux CLI
Linux CLILinux CLI
Linux CLI
 
Http3 fullstackfest-2019
Http3 fullstackfest-2019Http3 fullstackfest-2019
Http3 fullstackfest-2019
 

Similar to Chenli linux-kerne-community

Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
thkoch
 
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devsITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
ITCamp
 
the productive programer: mechanics
the productive programer: mechanicsthe productive programer: mechanics
the productive programer: mechanics
elliando dias
 
Introduction to Git for developers
Introduction to Git for developersIntroduction to Git for developers
Introduction to Git for developers
Dmitry Guyvoronsky
 
Git_tutorial.pdf
Git_tutorial.pdfGit_tutorial.pdf
Git_tutorial.pdf
AliaaTarek5
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developer
mpaproductions
 
Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost” Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost”
LogeekNightUkraine
 
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil CholewińskiPilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
Sven Peters
 
Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)
anandvaidya
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
Alison Chaiken
 
Git 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsGit 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizations
Ian Walls
 
Systemd for developers
Systemd for developersSystemd for developers
Systemd for developers
Alison Chaiken
 
Presentation for git jira and linux
Presentation for git jira and linuxPresentation for git jira and linux
Presentation for git jira and linux
dkylko1
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developers
Wim Godden
 
Version Control ThinkVitamin
Version Control ThinkVitaminVersion Control ThinkVitamin
Version Control ThinkVitamin
Alex Hillman
 
DotNet Introduction
DotNet IntroductionDotNet Introduction
DotNet Introduction
Wei Sun
 
Docker interview Questions-3.pdf
Docker interview Questions-3.pdfDocker interview Questions-3.pdf
Docker interview Questions-3.pdf
Yogeshwaran R
 
Makefile
MakefileMakefile
Makefile
Ionela
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
arun.arwachin
 

Similar to Chenli linux-kerne-community (20)

Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devsITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
 
the productive programer: mechanics
the productive programer: mechanicsthe productive programer: mechanics
the productive programer: mechanics
 
Introduction to Git for developers
Introduction to Git for developersIntroduction to Git for developers
Introduction to Git for developers
 
Git_tutorial.pdf
Git_tutorial.pdfGit_tutorial.pdf
Git_tutorial.pdf
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developer
 
Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost” Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost”
 
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil CholewińskiPilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
 
Git 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsGit 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizations
 
Systemd for developers
Systemd for developersSystemd for developers
Systemd for developers
 
Presentation for git jira and linux
Presentation for git jira and linuxPresentation for git jira and linux
Presentation for git jira and linux
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developers
 
Version Control ThinkVitamin
Version Control ThinkVitaminVersion Control ThinkVitamin
Version Control ThinkVitamin
 
DotNet Introduction
DotNet IntroductionDotNet Introduction
DotNet Introduction
 
Docker interview Questions-3.pdf
Docker interview Questions-3.pdfDocker interview Questions-3.pdf
Docker interview Questions-3.pdf
 
Makefile
MakefileMakefile
Makefile
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 

Recently uploaded

Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
Madhumitha Jayaram
 
Low power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniquesLow power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniques
nooriasukmaningtyas
 
digital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdfdigital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdf
drwaing
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
Exception Handling notes in java exception
Exception Handling notes in java exceptionException Handling notes in java exception
Exception Handling notes in java exception
Ratnakar Mikkili
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
ClaraZara1
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
JamalHussainArman
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
gerogepatton
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
NidhalKahouli2
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
PuktoonEngr
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
MIGUELANGEL966976
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
wisnuprabawa3
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
ssuser36d3051
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
PauloRodrigues104553
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 

Recently uploaded (20)

Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
 
Low power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniquesLow power architecture of logic gates using adiabatic techniques
Low power architecture of logic gates using adiabatic techniques
 
digital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdfdigital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdf
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
Exception Handling notes in java exception
Exception Handling notes in java exceptionException Handling notes in java exception
Exception Handling notes in java exception
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 

Chenli linux-kerne-community

  • 1. 演讲人:Chen Li <chenli@uniontech.com> 打造操作系统创新生态 Participate in the Linux Community —— A Guide To The Kernel Development Process and tools
  • 2. 01 powerful git tricks 02 Modern code navigation without TAGS 04 Send and update your patch 03 Mailing list and mail client 目 录
  • 3. Basic git concepts plumbing porcelain object database index working tree object type branch tag head/HEA D merge rebase bisect
  • 4. git worktree --help What How Example Why Worktree is your working directory without index and object database - git worktree add - git worktree remove - git worktree list - git worktree move … Share the same project-wise git config Share the same remotes Easily manage different worktrees Avoid frequently but annoying git checkout/switch $ git worktree add -b emergency-fix ../temp master $ pushd ../temp # ... hack hack hack ... $ git commit -a -m 'emergency fix for boss' $ popd $ git worktree remove ../temp
  • 5. Package your git repo! Git bundle and archive Git archive Git bundle Move objects and refs by archive Hisotry is also included Create an archive of files from a named tree Play well with all git worktrees and git clone! History is excluded git bundle create 4-19- 90.bundle 4-19-90 git archive -o 4-19-90.zip 4- 19-90 -9 Make clean is not required!
  • 6. Commit meeage or diff Search something in git log --grep -S -G
  • 7. Git hooks firstlove@LAPTOP-N1A5G5V0 ~/p/k/linux-sw (6a-inspur-wutip-421)> cat .git/hooks/post-commit exec git show --format=email HEAD | ./scripts/checkpatch.pl --strict --codespell fire off custom scripts when certain important actions occur.
  • 8. Why ctags Modern code navigation without TAGS efficient Simple Most kernel developer use it Universal It is really fast even on machine with performance Works quite well with vanilla vim! So, you can easily learn ctags from them Have many languages support by default
  • 9. Why not ctags Modern code navigation without TAGS Lack on the fly syntax check Code completion is missing or unusable Know nothing about how your code will be compiled No other modern ide features! You cannot know if it can pass compliation until you really compile it! It has to index all codes, regardless of .config! That’s why its ofter Inaccurate even just for code navigation! ● codelen ● symbol rename ● semantic highlighting ● hierarchies Cannot take use of other powerful lints! Kernel is really big, it’s not pritical to remember all apis. Code completion is really your friend if you are a newbiee.
  • 10. Modern code navigation without TAGS ccls c/c++/object-c lsp server, which supports all features mentioned last page Have nearly all editors support, including vim, emacs, neovim, vscode ...
  • 11. Mailing list and mail client 1,000 messages each day Emails Only (without anything else!) Simple but sufficient Poor man’s forum LKML
  • 12. Mailing list and mail client git-send-email Mutt mu4e nmh Mail client
  • 13. Mailing list and mail client smtp imap refile archive Mail client
  • 14. Send and update your patch Describe, check and extract your patch (single patch) ./scripts/checkpatch.pl -g HEAD git format-patch -1 HEAD
  • 15. Send and update your patch Describe, check and extract your patch (multiple patches) # n is your commits number $ ./scripts/checkpatch.pl -g HEAD-n $ git format-patch -n HEAD $ man git-format-patch # for more details
  • 16. Send and update your patch Get maintainer and mailing list $ ./scripts/get_maintainer.pl drivers/gpu/drm/radeon/atom.c Alex Deucher <alexander.deucher@amd.com> (supporter:RADEON and AMDGPU DRM DRIVERS) "Christian König" <christian.koenig@amd.com> (supporter:RADEON and AMDGPU DRM DRIVERS) David Airlie <airlied@linux.ie> (maintainer:DRM DRIVERS) Daniel Vetter <daniel@ffwll.ch> (maintainer:DRM DRIVERS) amd-gfx@lists.freedesktop.org (open list:RADEON and AMDGPU DRM DRIVERS) dri-devel@lists.freedesktop.org (open list:DRM DRIVERS) linux-kernel@vger.kernel.org (open list)
  • 17. Send and update your patch Update your patch It’s quite common that your first version of patch/patches have problems you were not aware of. Maintainer(or someone else) may reply your mail and point out your mistakes. You can fix/improve your patch/patches then send v2/v3/v4/...: $ git format-patch … –reroll-count n # n stands for the n times you send the patch/patches $ Add changelog in cover-letter
  • 18. Send and update your patch Update your patch Example of changelog inside cover-letter: Signed-off-by: chenli <chenli at uniontech.com> --- v1->v2: * Convert the other assignments of msg as well. * Casting types to avoid static checker warnings. --- drivers/gpu/drm/radeon/radeon_uvd.c | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) https://www.spinics.net/lists/amd-gfx/msg59986.html
  • 19. Send and update your patch Fix other commits Add: “Fixes:” tag in the commit message: Fixes: 3fcb4f01deed ("drm/radeon: Use kvmalloc for CS chunks") Signed-off-by: Chen Li <chenli@xxxxxxxxxxxxx> --- changelog: v1->v2: add Fixes: tag drivers/gpu/drm/radeon/radeon_cs.c | 6 +++-- - 1 file changed, 3 insertions(+), 3 deletions(-) https://www.spinics.net/lists/amd- gfx/msg59986.html If your commits aim to fix bug introduced from other commits, you should: