SlideShare uma empresa Scribd logo
1 de 126
Baixar para ler offline
KERNEL DEVELOPMENT:
DRAWING LESSONS FROM
      "MISTAKES"
    Japan Linux Symposium 2009
          October 23, 2009
          Toshiharu Harada
       haradats@nttdata.co.jp
    NTT DATA CORPORATION
ABSTRACTS
Every kernel developer knows that Linux comes with plenty of precious
documentation as an integral part. From coding style to how to post
patches, almost everything has been documented. However, history
shows that error is human nature. Sometimes developers do not well
know Don’ts, but there are also cases when they make mistakes despite
being aware of such rules. Why this happen is unsolved, but a
documentation, so far missing, of the consequences of this misbehavior
could discourage it. The presenter is project manager of TOMOYO
Linux, a security enhancement feature merged in version 2.6.30.
Thinking open-minded, he decided to share the errors his project
made, wishing it could be a helpful warning to other projects, especially
newcomers. In this presentation, it will try to explain the mistake
circumstances in TOMOYO Linux project, highlighting the thoughts of
project members and the community reactions.
“Experience is the name everyone gives to
his mistakes” --- Oscar Wild
WHAT’S THIS ALL ABOUT
WHAT’S THIS ALL ABOUT


• Linux   comes with a set of great documentation
WHAT’S THIS ALL ABOUT


• Linux   comes with a set of great documentation

• DOs     and DON’Ts are there already
WHAT’S THIS ALL ABOUT


• Linux   comes with a set of great documentation

• DOs     and DON’Ts are there already

• Yet   we keep on making mistakes
WHAT’S THIS ALL ABOUT


• Linux   comes with a set of great documentation

• DOs     and DON’Ts are there already

• Yet   we keep on making mistakes

• Finding   a missing piece
WHAT IS MISSING?
WHAT IS MISSING?


• In   my humble opinion:
WHAT IS MISSING?


• In   my humble opinion:

  • Human    nature (hard to fix)
WHAT IS MISSING?


• In   my humble opinion:

  • Human    nature (hard to fix)

  • Most   of us don’t really like readings (hard to fix)
WHAT IS MISSING?


• In   my humble opinion:

  • Human       nature (hard to fix)

  • Most   of us don’t really like readings (hard to fix)

  • Real-life   examples taken from TOMOYO Linux project
WHO AM I?
WHO AM I?

• Project   manager of TOMOYO Linux
WHO AM I?

• Project   manager of TOMOYO Linux

• What   is “project manager”?
WHO AM I?

• Project   manager of TOMOYO Linux

• What   is “project manager”?

  • Something   put in between an Open Source projects and a
   Company
WHO AM I?

• Project    manager of TOMOYO Linux

• What      is “project manager”?

  • Something     put in between an Open Source projects and a
    Company

  • It’s   an adventurous role (experimental stage)
OUCH, IS THIS “SECURE LINUX” TALK?




• No. (so   please remain seated, you are safe)
COVERED TOPICS

• Chapter   1: Where to find DOs and DON’Ts
• Chapter2: TOMOYO Linux posting history
 overview
• Chapter
       3: Step by step introduction of DOs and
 DON’Ts of the TOMOYO Linux
CHAPTER 1
Where to find DOs and DON’Ts
Gentle Reminder
Gentle Reminder
Documentation is a part of Linux
Kernel
Gentle Reminder
Documentation is a part of Linux
Kernel

After checking out the kernel, cd to
“Documentation”
Gentle Reminder
Documentation is a part of Linux
Kernel

After checking out the kernel, cd to
“Documentation”

Problem is “there are just too many
files and directories” and people prefer
coding than reading
How Great is It?
How Great is It?
$Documentation/ManagementStyle
How Great is It?
$Documentation/ManagementStyle

  “Most people are idiots, and
  being a manager means you'll
  have to deal with it, and
  perhaps more importantly, that
  _they_ have to deal with
  _you_.”
How Great is It?
How Great is It?

$Documentation/ManagementStyle
How Great is It?

$Documentation/ManagementStyle

  “Thing will go wrong,
  and people want
  somebody to blame. Tag
  you’re it.”
Okay, I’ll do so
Okay, I’ll do so
Okay, I’ll do so




           Me
     Blame
The truth is people will blame you regardless
of you are tagged or not (you can omit)

Just these two statements illustrate the
essential part of managements

Linux documentation is so
practical
Minimal Reading
Minimal Reading

Entire Scheme
Minimal Reading

Entire Scheme

  $Documentation/HOWTO
Minimal Reading

Entire Scheme

  $Documentation/HOWTO

Submitting Patches
Minimal Reading

Entire Scheme

  $Documentation/HOWTO

Submitting Patches

  $Documentation/SubmitChecklist
Minimal Reading

Entire Scheme

  $Documentation/HOWTO

Submitting Patches

  $Documentation/SubmitChecklist

  $Documentation/CodingStyle
References
References


Note that the title is “How to Participate in
the Linux Community”
References


Note that the title is “How to Participate in
the Linux Community”

Making your code upstream
means your participation in the
Linux Community (Be nice!)
My favorite one
http://www.linuxfoundation.jp/jp_uploads/
seminar20070710/Jon-Dev-Process.pdf
Picked up Two pages
I was laughing when I saw the slides for the
first time (in 2007)

When I came to realize that it was true, I
couldn’t laugh any more ...

They kept asking me “not yet?” ;-)
CHAPTER 2
TOMOYO Linux by Numbers
Leo Tolstoy said


All Happy Families Resemble Each
Other, Each Unhappy Family Is
Unhappy in Its Own Way.
2,700,000
  9,230
   2,700,000
Number of employees
  2,700,000
   of NTT DATA
       2,700,000
  CORPORATION
2,700,000
     3
   2,700,000
2,700,000
Number of project
    2,700,000
   members
2,700,000
0.0325%
   2,700,000
Possibilities to be
2,700,000
 assigned to the
      2,700,000
     project
2,700,000
     3
   2,700,000
TOMOYO is the 3rd
  2,700,000
(and the latest) LSM
       2,700,000
  module merged
     upstream
2,700,000
    0
   2,700,000
Number of people
 2,700,000
  who expected
     2,700,000
TOMOYO would be
    merged
2,700,000
   15
   2,700,000
2,700,000
We posted patches 15
       2,700,000
       times
2,700,000
    716
   2,700,000
2,700,000
Merged since 716
days after the first
      2,700,000
      post
2,700,000
    162
   2,700,000
Number of comments
   2,700,000
      from LKML
         2,700,000
 (0.2 comments/day)
Proposal History
http://tomoyo.sourceforge.jp/wiki-e/?JLS2009
CHAPTER 3
Drawing Lessons from the “Mistakes”
    of TOMOYO Linux Project
CHAPTER 3
Drawing Lessons from the “Mistakes”
    of TOMOYO Linux Project




         B lame
            Me
IN THE 1ST POSTING

I wrote:
snip
All right, that's almost everything. Please
visit the following
URL for the code and documents:
  http://tomoyo.sourceforge.jp/wiki-e/
If you want to see the code first, then:
  http://tomoyo.sourceforge.jp/cgi-bin/lxr/
source/security/tomoyo/?v=linux-2.6.21.3-
tomoyo-2.0
DON’T
Send URL




Send patches
DON’T
Send URL




Send patches
WHAT HAPPENED?

•Igot a personal message from Stephen Smalley, a
 maintainer of that famous SELinux

     –“If you really want feedback or to get your code
      into the kernel, you need to do more than post a
      URL to the code - you need to break your code
      down into a number of patches and post them,
      just like the AppArmor folks have been doing. “
SO WE RUSHED TO POSTED
     PATCHES NEXT DAY


• Pavel   Machek gave a comment

 •“Looks      whitespace-damaged to me.”
DON’T
Ignore the Linux standard coding style




         Always apply checkpatch.pl
DON’T
Ignore the Linux standard coding style




         Always apply checkpatch.pl
DO
DO




• Carefully   read the $Document/CodingStyle
DO




• Carefully   read the $Document/CodingStyle

• Check   your code with $scripts/checkpatch.pl
DO




• Carefully   read the $Document/CodingStyle

• Check   your code with $scripts/checkpatch.pl

• Also   use other $scripts/check*.pl
• Jiri   Kosina pointed us to make patches bisectable

  • “Justa trivial minor nitpick - IMHO this breaks
    bisectability. It might be better to add the Kconfig/
    Makefile patch at the end of the whole series, so
    that bisect doesn't end up in the tree in which
    Makefile references non-existing files/directories.”
DO




• Add the Kconfig/Makefile patch at the end of the whole
 series, so that bisect doesn't end up in the tree in which
 Makefile references non-existing files/directories.”
DO




• Add the Kconfig/Makefile patch at the end of the whole
 series, so that bisect doesn't end up in the tree in which
 Makefile references non-existing files/directories.”
IN THE 3RD PATCH

• James   Morris taught us series of patches should form a
 thread

 •“I'dalso suggest making all of the
  patches a reply to the first email, so
  they can be threaded.”
LIKE THIS
DO




• Send series of patches as children of the first message so that
 they can form a thread or you want people to read your
 messages
DO




• Send series of patches as children of the first message so that
 they can form a thread or you want people to read your
 messages
• James     Morris said:

 • “Please   use standard kernel list handling, per include/linux/list.h”

• YOSHIFUJI        Hideaki also mentioned:

 • You'reintroducing a custom API, which is open-coded repeatedly
   throughout your module.

 • All  linked lists (at least, new ones) must use the standard kernel
   list API.
DON’T
Propose new data structure




       Use existing one
DON’T
Propose new data structure




       Use existing one
IN THE 5TH POSTING


• James   Morris suggested to CC netdev mailing list

 • “Youshould send anything which touches core networking to
  netdev, too, and get an ack from one of the core developers
  there.”
DO




• Carefully   choose CCs and get a review from them
DO




• Carefully   choose CCs and get a review from them
IN THE 6TH POSTING


•
    Tetsuo posted 30  series of messages with the subject,
    “Subject: [TOMOYO #7 00/30] TOMOYO Linux 1.6.0
    released”

• The   problem was “TOMOYO 1.6.0” did not use LSM and
    implemented different hooks
DON’T
Try to invent a new API




Respect a standard and follow one
DON’T
Try to invent a new API




Respect a standard and follow one
• Tetsuoand I knew that posting such patches will never be
 accepted

• However, we   had been stuck and we couldn’t find another
 way

• Our posting was thoughtless, but we were so serious to make
 our code upstream
IN THE 7TH POSTING

I changed my mind and wrote:

We apologize for the confusion we caused in
the last posting,
but we don't want to give up returning our
work to the mainline.
We cordially request LSM changes to pass
vfsmount parameters.
• Stephen   Smalley kindly responded on the list

 –“Don't cordially request it - submit
  patches to make it happen.  Or work
  with others who have been
  submitting such patches. “
DON’T
Cordially ask to merge your code ;-)




     Make good patches and post them
DON’T
Cordially ask to merge your code ;-)




     Make good patches and post them
IN THE 16TH POSTING


• Tetsuoposted 25series of messages with the subject,
 “Subject: [TOMOYO #16 00/25] Starting TOMOYO 2.3”

• The patches included enhancements as well as garbage
 collector functionality (so Tetsuo had a reason for 25)
• Pavel   Machek commented:

 •You    are expected to submit
  diffs in smaller steps, not here
  it is, totally rewritten, take it or
  leave it.
IT HAPPENED IN THE 7TH

• Serge    E. Hallyn once gave us a same comment:

 • First
       let me point out that reviewing patches is
  always a lot of work. What you've done here by
  posting an entirely new 30-patch implementation
  of tomoyo when (I hope) you're not even serious
  about that is to basically tell us our time means
  nothing to you...
CONCLUSION
• Our mistakes, presented in this slides, are merely the tip of the
 iceberg

• We made many failures and we sometimes behaved very
 badly

• Nevertheless, this   Linux community reacted and even merged
 our code
• Feedbacks    were not limited by mailing list replies

• There    were people who sent off-list messages and left advices
 in face
WITH ALL MY EXPERIENCES
       I CAN SAY
WITH ALL MY EXPERIENCES
                I CAN SAY



•Linux   is not just free code
WITH ALL MY EXPERIENCES
                     I CAN SAY



•Linux        is not just free code
• Linux   is great because people are great
WITH ALL MY EXPERIENCES
                     I CAN SAY



•Linux        is not just free code
• Linux   is great because people are great

• Sending   your code is a conversation with people
WITH ALL MY EXPERIENCES
                     I CAN SAY



•Linux        is not just free code
• Linux   is great because people are great

• Sending   your code is a conversation with people

• Theymight not appear friendly for the first time, but try to
 speak them first
ACKNOWLEDGMENTS
Al Viro, Albert Cahalan, Alexey Dobriyan, Andi Kleen,
Andrew Morton, Bodo Eggert, Casey Schaufler, Chris
Wright, Christoph Hellwig, Crispin Cowan, Daniel
Walker, David Howells, David Lang, David P. Quigley,
Greg KH, James Morris, Jamie Lokier, Jiri Kosina,
Jonathan Corbet, Joshua Brindle, KaiGai Kohei,
Kamezawa Hiroyuki, KOSAKI Motohiro, Kyle
Moffett, Linus Torvalds, Matthew Wilcox, Miklos
Szeredi, Paul E. McKenney, Paul Moore, Pavel
Machek, Peter Dolding, Peter Zijlstra, Rik van Riel,
Serge E. Hallyn, Seth Arnorld, Shaya Potter, Stephen
Smalley, Tim Bird, Trond Myklebust, Valdis Kletnieks,
William Leibzon, YOSHIFUJI Hideaki
WE COULDN’T HAVE DONE IT
          WITHOUT YOUR HELP
Al Viro, Albert Cahalan, Alexey Dobriyan, Andi Kleen,
Andrew Morton, Bodo Eggert, Casey Schaufler, Chris
Wright, Christoph Hellwig, Crispin Cowan, Daniel
Walker, David Howells, David Lang, David P. Quigley,
Greg KH, James Morris, Jamie Lokier, Jiri Kosina,
Jonathan Corbet, Joshua Brindle, KaiGai Kohei,
Kamezawa Hiroyuki, KOSAKI Motohiro, Kyle
Moffett, Linus Torvalds, Matthew Wilcox, Miklos
Szeredi, Paul E. McKenney, Paul Moore, Pavel
Machek, Peter Dolding, Peter Zijlstra, Rik van Riel,
Serge E. Hallyn, Seth Arnorld, Shaya Potter, Stephen
Smalley, Tim Bird, Trond Myklebust, Valdis Kletnieks,
William Leibzon, YOSHIFUJI Hideaki
AND OF COURSE
• We thank NTT DATA CORPORATION for their support of
 the project
RELATED PRESENTATIONS

Realities of Mainlining
 - Case of the TOMOYO Linux Project -



             Toshiharu Harada
         haradats@nttdata.co.jp
          haradats@gmail.com            Time to Glean
                                        !#$%'$()*+,-$.)/0'1$2*3$0.4$%+0+'4
       NTT DATA CORPORATION

               July 9, 2008                            July 25, 2008
                                                     Toshiharu Harada
                                                 haradats@nttdata.co.jp
                                                      Kentaro Takeda
                                                       Tetsuo Handa
                                                NTT DATA CORPORATION
What does it mean being an
Open Source project manager
       in Enterprise
     enterprise edition             What does it mean being an
                                   Open Source project manager
      LinuxCon 2009 (Business)
         September 23, 2009               in Enterprise
          Toshiharu Harada
        haradats@nttdata.co.jp      Open Source Edition
      NTT DATA CORPORATION

                                         LinuxCon2009 (Business)
                                            September 23, 2009
                                             Toshiharu Harada
                                          haradats@gmail.com
                                         TOMOYO Linux Project
TRADEMARKS


• Linuxis a registered trademark of Linus Torvalds in Japan and
 other countries

• TOMOYOis a registered trademark of NTT DATA
 CORPORATION in Japan

Mais conteúdo relacionado

Destaque (8)

Intersection
IntersectionIntersection
Intersection
 
Section of solids
Section of solidsSection of solids
Section of solids
 
Orthographic projection
Orthographic projectionOrthographic projection
Orthographic projection
 
Engineering drawing (geometric construction) lesson 4
Engineering drawing (geometric construction) lesson 4Engineering drawing (geometric construction) lesson 4
Engineering drawing (geometric construction) lesson 4
 
Section of solids
Section of solidsSection of solids
Section of solids
 
Development of surfaces of solids
Development of surfaces of solidsDevelopment of surfaces of solids
Development of surfaces of solids
 
Projections of solids
Projections of solidsProjections of solids
Projections of solids
 
Orthographic Projection
Orthographic ProjectionOrthographic Projection
Orthographic Projection
 

Semelhante a Kernel Development: Drawing Lessons from "Mistakes" (Japan Linux Symposium 2009)

Open Source Software and Libraries
Open Source Software and LibrariesOpen Source Software and Libraries
Open Source Software and LibrariesEllyssa Kroski
 
Rolling Your Own Embedded Linux Distribution
Rolling  Your  Own  Embedded  Linux  DistributionRolling  Your  Own  Embedded  Linux  Distribution
Rolling Your Own Embedded Linux DistributionEmanuele Bonanni
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!Pradeep Singh
 
20180324 leveraging unix tools
20180324 leveraging unix tools20180324 leveraging unix tools
20180324 leveraging unix toolsDavid Horvath
 
Search-Driven Programming
Search-Driven ProgrammingSearch-Driven Programming
Search-Driven ProgrammingEthan Herdrick
 
Shell scrpting(payal harne)
Shell scrpting(payal harne)Shell scrpting(payal harne)
Shell scrpting(payal harne)PayalHarne
 
Intro To Linux
Intro To LinuxIntro To Linux
Intro To Linuxtechlug
 
python presntation 2.pptx
python presntation 2.pptxpython presntation 2.pptx
python presntation 2.pptxArpittripathi45
 
Scale11x lxc talk
Scale11x lxc talkScale11x lxc talk
Scale11x lxc talkdotCloud
 
IzPack - fOSSa 2009
IzPack - fOSSa 2009IzPack - fOSSa 2009
IzPack - fOSSa 2009julien.ponge
 
Introduction to Linux for bioinformatics
Introduction to Linux for bioinformaticsIntroduction to Linux for bioinformatics
Introduction to Linux for bioinformaticsBITS
 
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Chef
 
Unix++: Plan 9 from Bell Labs
Unix++: Plan 9 from Bell LabsUnix++: Plan 9 from Bell Labs
Unix++: Plan 9 from Bell LabsAnant Narayanan
 
Getting help with Docker, reporting and fixing bugs in an opensource component
Getting help with Docker, reporting and fixing bugs in an opensource componentGetting help with Docker, reporting and fixing bugs in an opensource component
Getting help with Docker, reporting and fixing bugs in an opensource componentAkos Takacs
 

Semelhante a Kernel Development: Drawing Lessons from "Mistakes" (Japan Linux Symposium 2009) (20)

Open Source Software and Libraries
Open Source Software and LibrariesOpen Source Software and Libraries
Open Source Software and Libraries
 
Rolling Your Own Embedded Linux Distribution
Rolling  Your  Own  Embedded  Linux  DistributionRolling  Your  Own  Embedded  Linux  Distribution
Rolling Your Own Embedded Linux Distribution
 
How to Become a Hacker?
How to Become a Hacker?How to Become a Hacker?
How to Become a Hacker?
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!
 
20180324 leveraging unix tools
20180324 leveraging unix tools20180324 leveraging unix tools
20180324 leveraging unix tools
 
Search-Driven Programming
Search-Driven ProgrammingSearch-Driven Programming
Search-Driven Programming
 
Shell scrpting(payal harne)
Shell scrpting(payal harne)Shell scrpting(payal harne)
Shell scrpting(payal harne)
 
Intro To Linux
Intro To LinuxIntro To Linux
Intro To Linux
 
python presntation 2.pptx
python presntation 2.pptxpython presntation 2.pptx
python presntation 2.pptx
 
Scale11x lxc talk
Scale11x lxc talkScale11x lxc talk
Scale11x lxc talk
 
2011 02-14-libre
2011 02-14-libre2011 02-14-libre
2011 02-14-libre
 
week1.ppt
week1.pptweek1.ppt
week1.ppt
 
IzPack - fOSSa 2009
IzPack - fOSSa 2009IzPack - fOSSa 2009
IzPack - fOSSa 2009
 
Linux shell scripting_v2
Linux shell scripting_v2Linux shell scripting_v2
Linux shell scripting_v2
 
Introduction to Linux for bioinformatics
Introduction to Linux for bioinformaticsIntroduction to Linux for bioinformatics
Introduction to Linux for bioinformatics
 
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
 
Unix++: Plan 9 from Bell Labs
Unix++: Plan 9 from Bell LabsUnix++: Plan 9 from Bell Labs
Unix++: Plan 9 from Bell Labs
 
Getting help with Docker, reporting and fixing bugs in an opensource component
Getting help with Docker, reporting and fixing bugs in an opensource componentGetting help with Docker, reporting and fixing bugs in an opensource component
Getting help with Docker, reporting and fixing bugs in an opensource component
 
python into.pptx
python into.pptxpython into.pptx
python into.pptx
 
Introduction to FOSS
Introduction to FOSSIntroduction to FOSS
Introduction to FOSS
 

Mais de Toshiharu Harada, Ph.D

Job's 2005 Stanford Speech Translation Kit
Job's 2005 Stanford Speech Translation KitJob's 2005 Stanford Speech Translation Kit
Job's 2005 Stanford Speech Translation KitToshiharu Harada, Ph.D
 
’You’ve got to find what you love,’ Jobs says
’You’ve got to find what you love,’ Jobs says’You’ve got to find what you love,’ Jobs says
’You’ve got to find what you love,’ Jobs saysToshiharu Harada, Ph.D
 
CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御Toshiharu Harada, Ph.D
 
The role of "pathname based access control" in security"
The role of "pathname based access control" in security"The role of "pathname based access control" in security"
The role of "pathname based access control" in security"Toshiharu Harada, Ph.D
 
振る舞いに基づくSSHブルートフォースアタック対策
振る舞いに基づくSSHブルートフォースアタック対策振る舞いに基づくSSHブルートフォースアタック対策
振る舞いに基づくSSHブルートフォースアタック対策Toshiharu Harada, Ph.D
 
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」Toshiharu Harada, Ph.D
 
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」Toshiharu Harada, Ph.D
 
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...Toshiharu Harada, Ph.D
 
プロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システムプロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システムToshiharu Harada, Ph.D
 
使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指してToshiharu Harada, Ph.D
 

Mais de Toshiharu Harada, Ph.D (20)

20090703 tomoyo thankyou
20090703 tomoyo thankyou20090703 tomoyo thankyou
20090703 tomoyo thankyou
 
Job's 2005 Stanford Speech Translation Kit
Job's 2005 Stanford Speech Translation KitJob's 2005 Stanford Speech Translation Kit
Job's 2005 Stanford Speech Translation Kit
 
’You’ve got to find what you love,’ Jobs says
’You’ve got to find what you love,’ Jobs says’You’ve got to find what you love,’ Jobs says
’You’ve got to find what you love,’ Jobs says
 
CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御
 
TOMOYO Linuxのご紹介
TOMOYO Linuxのご紹介TOMOYO Linuxのご紹介
TOMOYO Linuxのご紹介
 
LSM Leaks
LSM LeaksLSM Leaks
LSM Leaks
 
The role of "pathname based access control" in security"
The role of "pathname based access control" in security"The role of "pathname based access control" in security"
The role of "pathname based access control" in security"
 
Tomoyo linux introduction
Tomoyo linux introductionTomoyo linux introduction
Tomoyo linux introduction
 
Your First Guide to "secure Linux"
Your First Guide to "secure Linux"Your First Guide to "secure Linux"
Your First Guide to "secure Linux"
 
振る舞いに基づくSSHブルートフォースアタック対策
振る舞いに基づくSSHブルートフォースアタック対策振る舞いに基づくSSHブルートフォースアタック対策
振る舞いに基づくSSHブルートフォースアタック対策
 
Why TOMOYO Linux?
Why TOMOYO Linux?Why TOMOYO Linux?
Why TOMOYO Linux?
 
Deep inside TOMOYO Linux
Deep inside TOMOYO LinuxDeep inside TOMOYO Linux
Deep inside TOMOYO Linux
 
ComSys2009
ComSys2009ComSys2009
ComSys2009
 
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
 
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
 
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
 
プロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システムプロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システム
 
TOMOYO Linux
TOMOYO LinuxTOMOYO Linux
TOMOYO Linux
 
使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して
 
TOMOYO Linuxへの道
TOMOYO Linuxへの道TOMOYO Linuxへの道
TOMOYO Linuxへの道
 

Último

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Último (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Kernel Development: Drawing Lessons from "Mistakes" (Japan Linux Symposium 2009)

  • 1. KERNEL DEVELOPMENT: DRAWING LESSONS FROM "MISTAKES" Japan Linux Symposium 2009 October 23, 2009 Toshiharu Harada haradats@nttdata.co.jp NTT DATA CORPORATION
  • 2. ABSTRACTS Every kernel developer knows that Linux comes with plenty of precious documentation as an integral part. From coding style to how to post patches, almost everything has been documented. However, history shows that error is human nature. Sometimes developers do not well know Don’ts, but there are also cases when they make mistakes despite being aware of such rules. Why this happen is unsolved, but a documentation, so far missing, of the consequences of this misbehavior could discourage it. The presenter is project manager of TOMOYO Linux, a security enhancement feature merged in version 2.6.30. Thinking open-minded, he decided to share the errors his project made, wishing it could be a helpful warning to other projects, especially newcomers. In this presentation, it will try to explain the mistake circumstances in TOMOYO Linux project, highlighting the thoughts of project members and the community reactions.
  • 3. “Experience is the name everyone gives to his mistakes” --- Oscar Wild
  • 5. WHAT’S THIS ALL ABOUT • Linux comes with a set of great documentation
  • 6. WHAT’S THIS ALL ABOUT • Linux comes with a set of great documentation • DOs and DON’Ts are there already
  • 7. WHAT’S THIS ALL ABOUT • Linux comes with a set of great documentation • DOs and DON’Ts are there already • Yet we keep on making mistakes
  • 8. WHAT’S THIS ALL ABOUT • Linux comes with a set of great documentation • DOs and DON’Ts are there already • Yet we keep on making mistakes • Finding a missing piece
  • 10. WHAT IS MISSING? • In my humble opinion:
  • 11. WHAT IS MISSING? • In my humble opinion: • Human nature (hard to fix)
  • 12. WHAT IS MISSING? • In my humble opinion: • Human nature (hard to fix) • Most of us don’t really like readings (hard to fix)
  • 13. WHAT IS MISSING? • In my humble opinion: • Human nature (hard to fix) • Most of us don’t really like readings (hard to fix) • Real-life examples taken from TOMOYO Linux project
  • 15. WHO AM I? • Project manager of TOMOYO Linux
  • 16. WHO AM I? • Project manager of TOMOYO Linux • What is “project manager”?
  • 17. WHO AM I? • Project manager of TOMOYO Linux • What is “project manager”? • Something put in between an Open Source projects and a Company
  • 18. WHO AM I? • Project manager of TOMOYO Linux • What is “project manager”? • Something put in between an Open Source projects and a Company • It’s an adventurous role (experimental stage)
  • 19. OUCH, IS THIS “SECURE LINUX” TALK? • No. (so please remain seated, you are safe)
  • 20. COVERED TOPICS • Chapter 1: Where to find DOs and DON’Ts • Chapter2: TOMOYO Linux posting history overview • Chapter 3: Step by step introduction of DOs and DON’Ts of the TOMOYO Linux
  • 21. CHAPTER 1 Where to find DOs and DON’Ts
  • 23. Gentle Reminder Documentation is a part of Linux Kernel
  • 24. Gentle Reminder Documentation is a part of Linux Kernel After checking out the kernel, cd to “Documentation”
  • 25. Gentle Reminder Documentation is a part of Linux Kernel After checking out the kernel, cd to “Documentation” Problem is “there are just too many files and directories” and people prefer coding than reading
  • 27. How Great is It? $Documentation/ManagementStyle
  • 28. How Great is It? $Documentation/ManagementStyle “Most people are idiots, and being a manager means you'll have to deal with it, and perhaps more importantly, that _they_ have to deal with _you_.”
  • 30. How Great is It? $Documentation/ManagementStyle
  • 31. How Great is It? $Documentation/ManagementStyle “Thing will go wrong, and people want somebody to blame. Tag you’re it.”
  • 34. Okay, I’ll do so Me Blame
  • 35.
  • 36. The truth is people will blame you regardless of you are tagged or not (you can omit) Just these two statements illustrate the essential part of managements Linux documentation is so practical
  • 39. Minimal Reading Entire Scheme $Documentation/HOWTO
  • 40. Minimal Reading Entire Scheme $Documentation/HOWTO Submitting Patches
  • 41. Minimal Reading Entire Scheme $Documentation/HOWTO Submitting Patches $Documentation/SubmitChecklist
  • 42. Minimal Reading Entire Scheme $Documentation/HOWTO Submitting Patches $Documentation/SubmitChecklist $Documentation/CodingStyle
  • 44. References Note that the title is “How to Participate in the Linux Community”
  • 45. References Note that the title is “How to Participate in the Linux Community” Making your code upstream means your participation in the Linux Community (Be nice!)
  • 47. Picked up Two pages
  • 48.
  • 49.
  • 50.
  • 51. I was laughing when I saw the slides for the first time (in 2007) When I came to realize that it was true, I couldn’t laugh any more ... They kept asking me “not yet?” ;-)
  • 53. Leo Tolstoy said All Happy Families Resemble Each Other, Each Unhappy Family Is Unhappy in Its Own Way.
  • 54. 2,700,000 9,230 2,700,000
  • 55. Number of employees 2,700,000 of NTT DATA 2,700,000 CORPORATION
  • 56. 2,700,000 3 2,700,000
  • 57. 2,700,000 Number of project 2,700,000 members
  • 58. 2,700,000 0.0325% 2,700,000
  • 59. Possibilities to be 2,700,000 assigned to the 2,700,000 project
  • 60. 2,700,000 3 2,700,000
  • 61. TOMOYO is the 3rd 2,700,000 (and the latest) LSM 2,700,000 module merged upstream
  • 62. 2,700,000 0 2,700,000
  • 63. Number of people 2,700,000 who expected 2,700,000 TOMOYO would be merged
  • 64. 2,700,000 15 2,700,000
  • 65. 2,700,000 We posted patches 15 2,700,000 times
  • 66. 2,700,000 716 2,700,000
  • 67. 2,700,000 Merged since 716 days after the first 2,700,000 post
  • 68. 2,700,000 162 2,700,000
  • 69. Number of comments 2,700,000 from LKML 2,700,000 (0.2 comments/day)
  • 71. CHAPTER 3 Drawing Lessons from the “Mistakes” of TOMOYO Linux Project
  • 72. CHAPTER 3 Drawing Lessons from the “Mistakes” of TOMOYO Linux Project B lame Me
  • 73. IN THE 1ST POSTING I wrote: snip All right, that's almost everything. Please visit the following URL for the code and documents:   http://tomoyo.sourceforge.jp/wiki-e/ If you want to see the code first, then:   http://tomoyo.sourceforge.jp/cgi-bin/lxr/ source/security/tomoyo/?v=linux-2.6.21.3- tomoyo-2.0
  • 76. WHAT HAPPENED? •Igot a personal message from Stephen Smalley, a maintainer of that famous SELinux –“If you really want feedback or to get your code into the kernel, you need to do more than post a URL to the code - you need to break your code down into a number of patches and post them, just like the AppArmor folks have been doing. “
  • 77. SO WE RUSHED TO POSTED PATCHES NEXT DAY • Pavel Machek gave a comment •“Looks whitespace-damaged to me.”
  • 78. DON’T Ignore the Linux standard coding style Always apply checkpatch.pl
  • 79. DON’T Ignore the Linux standard coding style Always apply checkpatch.pl
  • 80. DO
  • 81. DO • Carefully read the $Document/CodingStyle
  • 82. DO • Carefully read the $Document/CodingStyle • Check your code with $scripts/checkpatch.pl
  • 83. DO • Carefully read the $Document/CodingStyle • Check your code with $scripts/checkpatch.pl • Also use other $scripts/check*.pl
  • 84. • Jiri Kosina pointed us to make patches bisectable • “Justa trivial minor nitpick - IMHO this breaks bisectability. It might be better to add the Kconfig/ Makefile patch at the end of the whole series, so that bisect doesn't end up in the tree in which Makefile references non-existing files/directories.”
  • 85. DO • Add the Kconfig/Makefile patch at the end of the whole series, so that bisect doesn't end up in the tree in which Makefile references non-existing files/directories.”
  • 86. DO • Add the Kconfig/Makefile patch at the end of the whole series, so that bisect doesn't end up in the tree in which Makefile references non-existing files/directories.”
  • 87. IN THE 3RD PATCH • James Morris taught us series of patches should form a thread •“I'dalso suggest making all of the patches a reply to the first email, so they can be threaded.”
  • 89. DO • Send series of patches as children of the first message so that they can form a thread or you want people to read your messages
  • 90. DO • Send series of patches as children of the first message so that they can form a thread or you want people to read your messages
  • 91. • James Morris said: • “Please use standard kernel list handling, per include/linux/list.h” • YOSHIFUJI Hideaki also mentioned: • You'reintroducing a custom API, which is open-coded repeatedly throughout your module. • All linked lists (at least, new ones) must use the standard kernel list API.
  • 92. DON’T Propose new data structure Use existing one
  • 93. DON’T Propose new data structure Use existing one
  • 94. IN THE 5TH POSTING • James Morris suggested to CC netdev mailing list • “Youshould send anything which touches core networking to netdev, too, and get an ack from one of the core developers there.”
  • 95. DO • Carefully choose CCs and get a review from them
  • 96. DO • Carefully choose CCs and get a review from them
  • 97. IN THE 6TH POSTING • Tetsuo posted 30 series of messages with the subject, “Subject: [TOMOYO #7 00/30] TOMOYO Linux 1.6.0 released” • The problem was “TOMOYO 1.6.0” did not use LSM and implemented different hooks
  • 98. DON’T Try to invent a new API Respect a standard and follow one
  • 99. DON’T Try to invent a new API Respect a standard and follow one
  • 100.
  • 101. • Tetsuoand I knew that posting such patches will never be accepted • However, we had been stuck and we couldn’t find another way • Our posting was thoughtless, but we were so serious to make our code upstream
  • 102. IN THE 7TH POSTING I changed my mind and wrote: We apologize for the confusion we caused in the last posting, but we don't want to give up returning our work to the mainline. We cordially request LSM changes to pass vfsmount parameters.
  • 103. • Stephen Smalley kindly responded on the list –“Don't cordially request it - submit patches to make it happen.  Or work with others who have been submitting such patches. “
  • 104. DON’T Cordially ask to merge your code ;-) Make good patches and post them
  • 105. DON’T Cordially ask to merge your code ;-) Make good patches and post them
  • 106. IN THE 16TH POSTING • Tetsuoposted 25series of messages with the subject, “Subject: [TOMOYO #16 00/25] Starting TOMOYO 2.3” • The patches included enhancements as well as garbage collector functionality (so Tetsuo had a reason for 25)
  • 107. • Pavel Machek commented: •You are expected to submit diffs in smaller steps, not here it is, totally rewritten, take it or leave it.
  • 108. IT HAPPENED IN THE 7TH • Serge E. Hallyn once gave us a same comment: • First let me point out that reviewing patches is always a lot of work. What you've done here by posting an entirely new 30-patch implementation of tomoyo when (I hope) you're not even serious about that is to basically tell us our time means nothing to you...
  • 110.
  • 111. • Our mistakes, presented in this slides, are merely the tip of the iceberg • We made many failures and we sometimes behaved very badly • Nevertheless, this Linux community reacted and even merged our code
  • 112.
  • 113. • Feedbacks were not limited by mailing list replies • There were people who sent off-list messages and left advices in face
  • 114. WITH ALL MY EXPERIENCES I CAN SAY
  • 115. WITH ALL MY EXPERIENCES I CAN SAY •Linux is not just free code
  • 116. WITH ALL MY EXPERIENCES I CAN SAY •Linux is not just free code • Linux is great because people are great
  • 117. WITH ALL MY EXPERIENCES I CAN SAY •Linux is not just free code • Linux is great because people are great • Sending your code is a conversation with people
  • 118. WITH ALL MY EXPERIENCES I CAN SAY •Linux is not just free code • Linux is great because people are great • Sending your code is a conversation with people • Theymight not appear friendly for the first time, but try to speak them first
  • 120.
  • 121. Al Viro, Albert Cahalan, Alexey Dobriyan, Andi Kleen, Andrew Morton, Bodo Eggert, Casey Schaufler, Chris Wright, Christoph Hellwig, Crispin Cowan, Daniel Walker, David Howells, David Lang, David P. Quigley, Greg KH, James Morris, Jamie Lokier, Jiri Kosina, Jonathan Corbet, Joshua Brindle, KaiGai Kohei, Kamezawa Hiroyuki, KOSAKI Motohiro, Kyle Moffett, Linus Torvalds, Matthew Wilcox, Miklos Szeredi, Paul E. McKenney, Paul Moore, Pavel Machek, Peter Dolding, Peter Zijlstra, Rik van Riel, Serge E. Hallyn, Seth Arnorld, Shaya Potter, Stephen Smalley, Tim Bird, Trond Myklebust, Valdis Kletnieks, William Leibzon, YOSHIFUJI Hideaki
  • 122. WE COULDN’T HAVE DONE IT WITHOUT YOUR HELP Al Viro, Albert Cahalan, Alexey Dobriyan, Andi Kleen, Andrew Morton, Bodo Eggert, Casey Schaufler, Chris Wright, Christoph Hellwig, Crispin Cowan, Daniel Walker, David Howells, David Lang, David P. Quigley, Greg KH, James Morris, Jamie Lokier, Jiri Kosina, Jonathan Corbet, Joshua Brindle, KaiGai Kohei, Kamezawa Hiroyuki, KOSAKI Motohiro, Kyle Moffett, Linus Torvalds, Matthew Wilcox, Miklos Szeredi, Paul E. McKenney, Paul Moore, Pavel Machek, Peter Dolding, Peter Zijlstra, Rik van Riel, Serge E. Hallyn, Seth Arnorld, Shaya Potter, Stephen Smalley, Tim Bird, Trond Myklebust, Valdis Kletnieks, William Leibzon, YOSHIFUJI Hideaki
  • 123. AND OF COURSE • We thank NTT DATA CORPORATION for their support of the project
  • 124. RELATED PRESENTATIONS Realities of Mainlining - Case of the TOMOYO Linux Project - Toshiharu Harada haradats@nttdata.co.jp haradats@gmail.com Time to Glean !#$%'$()*+,-$.)/0'1$2*3$0.4$%+0+'4 NTT DATA CORPORATION July 9, 2008 July 25, 2008 Toshiharu Harada haradats@nttdata.co.jp Kentaro Takeda Tetsuo Handa NTT DATA CORPORATION
  • 125. What does it mean being an Open Source project manager in Enterprise enterprise edition What does it mean being an Open Source project manager LinuxCon 2009 (Business) September 23, 2009 in Enterprise Toshiharu Harada haradats@nttdata.co.jp Open Source Edition NTT DATA CORPORATION LinuxCon2009 (Business) September 23, 2009 Toshiharu Harada haradats@gmail.com TOMOYO Linux Project
  • 126. TRADEMARKS • Linuxis a registered trademark of Linus Torvalds in Japan and other countries • TOMOYOis a registered trademark of NTT DATA CORPORATION in Japan