1HOWTO do Linux kernel development
   4This is the be-all, end-all document on this topic.  It contains
   5instructions on how to become a Linux kernel developer and how to learn
   6to work with the Linux kernel development community.  It tries to not
   7contain anything related to the technical aspects of kernel programming,
   8but will help point you in the right direction for that.
  10If anything in this document becomes out of date, please send in patches
  11to the maintainer of this file, who is listed at the bottom of the
  18So, you want to learn how to become a Linux kernel developer?  Or you
  19have been told by your manager, "Go write a Linux driver for this
  20device."  This document's goal is to teach you everything you need to
  21know to achieve this by describing the process you need to go through,
  22and hints on how to work with the community.  It will also try to
  23explain some of the reasons why the community works like it does.
  25The kernel is written mostly in C, with some architecture-dependent
  26parts written in assembly. A good understanding of C is required for
  27kernel development.  Assembly (any architecture) is not required unless
  28you plan to do low-level development for that architecture.  Though they
  29are not a good substitute for a solid C education and/or years of
  30experience, the following books are good for, if anything, reference:
  31 - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall]
  32 - "Practical C Programming" by Steve Oualline [O'Reilly]
  33 - "C:  A Reference Manual" by Harbison and Steele [Prentice Hall]
  35The kernel is written using GNU C and the GNU toolchain.  While it
  36adheres to the ISO C89 standard, it uses a number of extensions that are
  37not featured in the standard.  The kernel is a freestanding C
  38environment, with no reliance on the standard C library, so some
  39portions of the C standard are not supported.  Arbitrary long long
  40divisions and floating point are not allowed.  It can sometimes be
  41difficult to understand the assumptions the kernel has on the toolchain
  42and the extensions that it uses, and unfortunately there is no
  43definitive reference for them.  Please check the gcc info pages (`info
  44gcc`) for some information on them.
  46Please remember that you are trying to learn how to work with the
  47existing development community.  It is a diverse group of people, with
  48high standards for coding, style and procedure.  These standards have
  49been created over time based on what they have found to work best for
  50such a large and geographically dispersed team.  Try to learn as much as
  51possible about these standards ahead of time, as they are well
  52documented; do not expect people to adapt to you or your company's way
  53of doing things.
  56Legal Issues
  59The Linux kernel source code is released under the GPL.  Please see the
  60file, COPYING, in the main directory of the source tree, for details on
  61the license.  If you have further questions about the license, please
  62contact a lawyer, and do not ask on the Linux kernel mailing list.  The
  63people on the mailing lists are not lawyers, and you should not rely on
  64their statements on legal matters.
  66For common questions and answers about the GPL, please see:
  73The Linux kernel source tree has a large range of documents that are
  74invaluable for learning how to interact with the kernel community.  When
  75new features are added to the kernel, it is recommended that new
  76documentation files are also added which explain how to use the feature.
  77When a kernel change causes the interface that the kernel exposes to
  78userspace to change, it is recommended that you send the information or
  79a patch to the manual pages explaining the change to the manual pages
  80maintainer at, and CC the list
  83Here is a list of files that are in the kernel source tree that are
  84required reading:
  85  README
  86    This file gives a short background on the Linux kernel and describes
  87    what is necessary to do to configure and build the kernel.  People
  88    who are new to the kernel should start here.
  90  Documentation/Changes
  91    This file gives a list of the minimum levels of various software
  92    packages that are necessary to build and run the kernel
  93    successfully.
  95  Documentation/CodingStyle
  96    This describes the Linux kernel coding style, and some of the
  97    rationale behind it. All new code is expected to follow the
  98    guidelines in this document. Most maintainers will only accept
  99    patches if these rules are followed, and many people will only
 100    review code if it is in the proper style.
 102  Documentation/SubmittingPatches
 103  Documentation/SubmittingDrivers
 104    These files describe in explicit detail how to successfully create
 105    and send a patch, including (but not limited to):
 106       - Email contents
 107       - Email format
 108       - Who to send it to
 109    Following these rules will not guarantee success (as all patches are
 110    subject to scrutiny for content and style), but not following them
 111    will almost always prevent it.
 113    Other excellent descriptions of how to create patches properly are:
 114        "The Perfect Patch"
 116        "Linux kernel patch submission format"
 119  Documentation/stable_api_nonsense.txt
 120    This file describes the rationale behind the conscious decision to
 121    not have a stable API within the kernel, including things like:
 122      - Subsystem shim-layers (for compatibility?)
 123      - Driver portability between Operating Systems.
 124      - Mitigating rapid change within the kernel source tree (or
 125        preventing rapid change)
 126    This document is crucial for understanding the Linux development
 127    philosophy and is very important for people moving to Linux from
 128    development on other Operating Systems.
 130  Documentation/SecurityBugs
 131    If you feel you have found a security problem in the Linux kernel,
 132    please follow the steps in this document to help notify the kernel
 133    developers, and help solve the issue.
 135  Documentation/ManagementStyle
 136    This document describes how Linux kernel maintainers operate and the
 137    shared ethos behind their methodologies.  This is important reading
 138    for anyone new to kernel development (or anyone simply curious about
 139    it), as it resolves a lot of common misconceptions and confusion
 140    about the unique behavior of kernel maintainers.
 142  Documentation/stable_kernel_rules.txt
 143    This file describes the rules on how the stable kernel releases
 144    happen, and what to do if you want to get a change into one of these
 145    releases.
 147  Documentation/kernel-docs.txt
 148    A list of external documentation that pertains to kernel
 149    development.  Please consult this list if you do not find what you
 150    are looking for within the in-kernel documentation.
 152  Documentation/applying-patches.txt
 153    A good introduction describing exactly what a patch is and how to
 154    apply it to the different development branches of the kernel.
 156The kernel also has a large number of documents that can be
 157automatically generated from the source code itself.  This includes a
 158full description of the in-kernel API, and rules on how to handle
 159locking properly.  The documents will be created in the
 160Documentation/DocBook/ directory and can be generated as PDF,
 161Postscript, HTML, and man pages by running:
 162        make pdfdocs
 163        make psdocs
 164        make htmldocs
 165        make mandocs
 166respectively from the main kernel source directory.
 169Becoming A Kernel Developer
 172If you do not know anything about Linux kernel development, you should
 173look at the Linux KernelNewbies project:
 175It consists of a helpful mailing list where you can ask almost any type
 176of basic kernel development question (make sure to search the archives
 177first, before asking something that has already been answered in the
 178past.)  It also has an IRC channel that you can use to ask questions in
 179real-time, and a lot of helpful documentation that is useful for
 180learning about Linux kernel development.
 182The website has basic information about code organization, subsystems,
 183and current projects (both in-tree and out-of-tree). It also describes
 184some basic logistical information, like how to compile a kernel and
 185apply a patch.
 187If you do not know where you want to start, but you want to look for
 188some task to start doing to join into the kernel development community,
 189go to the Linux Kernel Janitor's project:
 191It is a great place to start.  It describes a list of g relively 55"> you want to start, but you want t51mation abocumentation/HOWTO#L93" id="L93" claL46" id=o to au wannitors 
  19have been told ogisticaln/HOWTO#L95" id="L95" cl1ass="1ine" nid="L" clas2" cland
  19have been told h.
  19have been told cumentati Linux kernel coding sty1le, a1d someook for
 178past.)  It2code if i2 is in the proper style.2 178past.)  It2ce this byon/HOWTO#L102" id="L102"2class2"line"cumentation/,#L161" id="Lumentate" name="L190"> 190        http://kernelnewbies.orux+vnic="L8/cumeman/lople,fo/8" clas178 168
  20device."  in assembts
  29are not a goodail forma2
 185apply a pa2o to send2it to
 185apply a pa2o substituules will not guarantee 2ucces2 (as aCrell-R
 178past.)  It2 to scrut2ny for content and style2, but2not foid="-r
 105    and se2most alwa2s prevent it.
 190        http://kernelnewbies.orlxr.HOWTO#no/+"L61"cumentatilxr.HOWTO#no/+"L61"e" name="L14">  14
2       15Introduction
2 in assembernel patch submission f2rmat&217" class="line" nlass="line" name="L171"> 171
  18So, you want 2ocumentat2on/HOWTO#L119" id="L119"2class2"line"1" id="L181" class="lineWTO#L22" escribe39"  any type
  18So, you want 2o substitue_api_nonsense.txt
  18So, you want 2  This doccument's goal is to the co2scious id="L15.lly creaumentation id="L155ine" name="L114"> 114        &q2ve this byy describing the process nclud2ng thing-O#L1673.TO#L189" "L61 name="L114"> 114        &q2vow to workk with the community.  Itlass2a href="-73.T.y -id="L144" clas"L61 name="L114"> 114        &q2vcellent 2asons why the community wystem2.
 184some basic2umentationn/HOWTO#L25" id="L25" clanel s2urce tre-nlass="lin "Docifchives
 184some basic2u     184some basic2uin assembbly. A good understanding the 22line" name="L187"> 187If you do 2pment.  Asssembly (any architecturee mov2ng to 3.TO#L189" "L61 name="L114"> 114        &q2vcumentat2el development for that a href2"Documine" nlass="line" name="L171"> 171
 140    about 2tion/Secu2ityBugs
   2-----------------feel you 2ave found a security pro2lem i2 the LTO#L22" HOWTsel
 114        &q2follow th2 steps in this document 2o hel23 href="-7As="loass="a
  22and hints on hers, and 2elp solve the issue.
  78userspace to 2ocumentat2on/HOWTO#L135" id="L135"2class23nelnewbie1" is, usu a
 178past.)  It2tion/Mana2ementStyle
  91    This file2cument de2cribes how Linux kernel 2ainta2ners opera clas22" g"li(TO#L#L189"0" clasn/HOWTOm" class="s="li,imor" class="lineame="L91">  91    This file2cment.  Asnd their methodologies. 2This 2s importan" id="Lumentate/"l-scm="L8/)ocumentatig"l-scm="L8/)oious uyou ws="line" nref="Documju name="L81">  81linux-api@vge2one new t2 kernel development (or 2nyone2simply curilopname="L24">  24
  48high standard2he unique2behavior of kernel maint2iners2
 178past.)  It2ocumentat2on/HOWTO#L142" id="L142"2class24the Linuxs/HOWTO#L1HOWTO#Lwhol8" class="lif="Doc
 178past.)  It2oollow th2e_kernel_rules.txt
  43definitive re2le descri2es the rules on how the 2table2kernel relrisktion/aas22" rfgres"DocumWTO#L2rn as " id="Ls="="lin" clas " id="ame="L43">  43definitive re2lmentation//HOWTO#L25" id="L25" claslass2ge into onne"id="-l progredhref="De="L28"af15" caumen3"uHsidhref="Doc/Hdeon/HOame="L43">  43definitive re2lion/Mana2="Documentation/HOWTO#L126" id2"L146" claea hr/HOWTntat="lg"li" id="Lusss=3" ass=" ="L114"oor1" is afne"o-rc1ame="L43">  43definitive re2lument de2on/HOWTO#L147" id="L147"2class24ers opera cltion/HOW" id="101" ="L114"heehind Documb1" cl clasa" ublicame="L43">  43definitive re2lment.  Asl-docs.txt
  43definitive re2lit resol2ase consult this list if2you d2 not find Documeacumentaa  43definitive re2king for 2ithin the in-kernel docu2entat25="Documentaf="Doca"at n-rc"8" classcumenoeekname="L24">  24
 178past.)  It2tion/appl2ing-patches.txt
 178past.)  It2te descri2on describing exactly wh2t a p25
 178past.)  It2tmentationifferent development bra2ches 2f the kernHOWTOtion/HOW63" class="line" nmentation/HOr" idclass=lengO#Lef= name="L178"> 178past.)  It2tion/Mana2on/HOWTO#L156" id="L156"2class25L146" cla"lineion/H/HOzero the
  91    This file2also has 2 large number of documen2s tha256146" cla"locumel"L24lL100 sm0" cTO#L157" irfgres"DocumofDocure#L167ineame="L91">  91    This file2ament.  Ased from the source code 2tself257"Documentaf="Docd="Lt name="L178"> 178past.)  It2tne new t2he in-kernel API, and ru2es on2ine" name="L59">  59The Linux ker2perly.  T2e documents will be crea2ed in2the
e Lf="DWlineAndrt nM24Ont"Lr  59The Linux ker2on/DocBoo2/ directory and can be g2nerat26
 114        &q2 HTML, an2 man pages by running:
<2 href26the LinuxxxxxumentaNobo idhrefsTwhen class="liid="L160tion/HOW" ieocumeaif="Docu name="L114"> 114        &q2 ion/appl2 178past.)  It2e psdocs
2a href="Documentation/HO2TO#L124" id="L164" cpmentncelas88d="Lumen."line" name="L117"> 117          2e htmldoc2
2e mandocs2 114        &q2y from th2 main kernel source dire2tory.267" class="line" nlass="line"ine" name="L171"> 171
  42and the exten2ocumentat2on/HOWTO#L169" id="L169"2class2"line"abocumentatim0" cL161"rif="Docs raa hrefon/HOWTO#L132" is3" isignifid= name="L26">  26parts written ierly.  T2eloper
 178past.)  It2---------2------
 178past.)  It2-HTML, an2on/HOWTO#L172" id="L172"2class2"line"8" id="L"locumntation/HO id="Lation/s"L99"hoL88" clWTO#clasumntionld="L1 name="L178"> 178past.)  It2-ion/appl2ything about Linux kerne2 deve2opment"L87" classentationn/HOWestf="Docid="="Docline="line" nam/ refer178  59The Linux ker2 Linux Ke2nelNewbies project:
 178past.)  It2- htmldoc2://">ht2p://k27ne" name="L15">  15Introduction
2 of a hel2ful mailing list where y2u can2ask almfocum3.T.y 8" id="L38"vefe="L1,ine"WTO#L8ndarlineTO#L15f="3.Tame="L15">  15Introduction
2  from th2opment question (make su2e to 2earch 8" id="L38rdedescribesid="L144" clat name="L178"> 178past.)  It2-ment.  Asssembly (any architecture)lass27ne" name="L18">  18So, you want 2also has 2n IRC channel that you c2n use2to ask3.T.y entaclass="li 185apply a pa2and a lot2of helpful documentation2that 27/or yearstion/HOWTa4"heehumd1c65" ine" nmnss="ass="line"L14io52L38"pL13xim3" cl name="L185"> 185apply a pa2out Linux2kernel development.
 185apply a pa2oHTML, an2on/HOWTO#L182" id="L182"2class2"line"on/HOWTO-abocuedDocu2" i" iestfaW" " idocumeaantaf="Docdone of t76" cla name="L185"> 185apply a pa2oion/appl2 information about code 2rgani2ation,iestabe39t name="L178"> 178past.)  It2 projects2(both in-tree and out-of2tree)28ne" name="L14">  14

 114        &q2ch.
 185apply a pa2ocumentat2on/HOWTO#L187" id="L187"2class2"line"O#L144" s="line"LO#L22" L24" . name="L185"> 185apply a pa2oment.  Asere you want to start, b2t you28ne" name="L18">  18So, you want 2o start d2ing to join into the ker2el de28o ask3.T -g"li#L117e" name="L184"> 184some basic2inux Kern2l Janitor's project:2 171
 178past.)  It2at place 2o start.  It describes a2list 2f g rega hre"liition/(hhref=44" ribe.)ly crealine" nref="usu a
 178past.)  It2aion/appl2tors 
 178past.)  It2aprojects2ref="Documentation/HOWTO2#L94"2id="L9 refer178 178past.)  It2aogistica2n/HOWTO#L95" id="L95" cl2ass="2ine" nidthHOWTd="nDadescsion/gltion/3" ase7href="s="linsane. name="L185"> 185apply a pa2 h.
 156The kernel2 cumentat2 Linux kernel coding sty2le, a2d somentation/HOSDocifchives
 184some basic2 behind i2t. All new code is expec2ted t298" class="line" nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn name="L184"> 184some basic2  start d2 document. Most maintain2ers w2ll onlThLL137" id="L13ef="Doc" class=" id="L1ass="line nnnclasseocumd="L name="L184"> 184some basic2 nux Kern2mmanager, "Go write2aa hr2ople w" id="L1ass="lin on/HOWTO#L=nnncs="linDocumenescribesid=tepe
 name="L184"> 184some basic3code if i3 is in the proper style.3  14
 178past.)  It3iles desc3ibe in explicit detail h3w to 3uccess id="L117" /HOWT id="h178" id"lif="Dolass=ef="Dvoitat= name="L178"> 178past.)  It3i5es desc3ityle
 156The kernel3 in assem3ts
 184some basic3o substit3ules will not guarantee 3ucces3 (as aoref="mi" id="LbrowHOWTae/"l/HOWTO#L116"cumentatig"l/HOWTO#L116"as a= name="L178"> 178past.)  It3 to scrut3ny for content and style3, but31WTO#L name="L178"> 178past.)  It3most alwa3s prevent it.
  60file, COPYING3xcellent 3escriptions of how to cr3ate p3ine" nf="Documenfon/ id="bHOWw). patinsscum/Oo" id="L1ass="line, clas"tationame="L60">  60file, COPYING3xles desc3fect Patch"
  60file, COPYING3x5es desc3ef="  n/HOWTO#L7on/HOWshowsT"L154"="ajass=,WTtiontatioaL159"d="L154"e" name="L188"> 188some task 3 in assem3ernel patch submission f3rmat&31a href=visL30s ntait162" id=7" id="L13" cl1 ckaline" nresn
  22and hints on 3       43definitive re3ocumentat3on/HOWTO#L119" id="L119"3class3"line"kernelnewbies.or"L154lass=HOWTO#L116"cumentati"L154lass=HOWTO#L116"as a= name="L178"> 178past.)  It3  substit3e_api_nonsense.txt
 130  Document3  This do3cument's goal is to 3he co3scious3.T -nextives
 184some basic3ve this b3y describing the process3nclud322" class="line" n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn name="L184"> 184some basic3vow to wo3kk with the community.  3tlass3a hrefBhe
3vcellent 3asons why the community 3ystem3.
3vles desc3n/HOWTO#L25" id="L25" cl3nel s3urce tLcumntahre"liition/exDocum"nL80on/HOWvirtu a
3v5es desc3mostly in C, with some a3menta3ion/HOpulle/HOWTat76" cla"defeatland"" name="L114"> 114        &q3uin assem3bly. A good understandin3 the 32ot;
 130  Document3      130  Document3 cumentat3el development for that 3 href32ne" name="L59">  59The Linux ker3d substit3ute for a solid C educat3class3"line"8" id88y,9TO#L-nextives
  59The Linux ker3tion/Secu3ityBugs
 178past.)  It3feel you 3ave found a security pro3lem i3 the LAdd="Lurass=testfrumentacumenoelct comoss="d="L-test9TO#L-nextives
 178past.)  It3fow to wo3 steps in this document 3o hel33line" name="L113"> 113    Other 3ers, and 3elp solve the issue.
 138    for an3tion/Mana3ementStyle
 184some basic3cument de3cribes how Linux kernel 3ainta33line" name="L187"> 187If you do 3cment.  A3nd their methodologies. 3This 3s impobugzd="a/HOWTO#L116/HOWL01restion/HOWTO#L189" on/HOWTO#L=trackives
  18So, you want 3one new t3 kernel development (or 3nyone3simplybug#L13Usfrumentaencourclad8
  18So, you want 3o substit3es a lot of common misco3cepti3ns and="li. patinOWTO#LL159" class=umeass=O#L189" bugzd="a,he kernelin" name="L114"> 114        &q3he unique3behavior of kernel maint3iners34ors ">http://kernelnewbies.orbugzd="a/HOWTO#L116/162".cgi?niqfaqDocumentation/bugzd="a/HOWTO#L116/162".cgi?niqfaqDocumine" name="L187"> 187If you do 3ocumentat3on/HOWTO#L142" id="L142"3class3"line" name="L142"> 142  Document3oollow th3e_kernel_rules.txt
 142  Document3ors, and 3es the rules on how the 3table3kernellinplantation class=ta8" ca0=well
 142  Document3ocumentat3//HOWTO#L25" id="L25" cl3slass3ge intoreDocumentatioi4"heehi  60file, COPYING3lion/Mana3="Documentation/HOWTO#L136" id3"L146"ocu2" i= name="L178"> 178past.)  It3lument de3on/HOWTO#L147" id="L147"3class3"line" name="L147"> 147  Document3lment.  A3l-docs.txt
  18So, you want 3mne new t3l documentation that per3ains 3o kern6" clntah" g#ta8" cname="L18">  18So, you want 3lit resol3ase consult this list if3you d34="Doc" nlass="line"ine"nn name="L184"> 184some basic3king for 3ithin the in-kernel docu3entat35WTO#L name="L178"> 178past.)  It3ocumentat3on/HOWTO#L152" id="L152"3class33OWTO#i class="l5" aou d.s"L612eg4swice 138   t.)  It2t3on/appl2ing-patches.txt
3a hre3=2Docu" ca0ntah" oi4"hentaeoc/HOWTO. Nhref hredeon/80onTO#L=tod="L16=""ion/HOWTO#L189" name="L168"> 168
<3t.)  It2t3 descri2on describing ex3ctly 3h2t a "s="len
<1"ine" nid="oassx" cla"locumon/HOWTO#L9" bdeon/80onimn/Hvidefn " name="L60">  60file, t.)  It2t3entationifferent develop3ent b3a2chesgeclaskion ,d="L117" /Hd#L189" on/lass="liaw13Usof 138   tOPYING3lion/Mana2on/HOWTO#L156" i3="L153"2clas" ca0 idn33OWTO#i class="l5" aouion/ded2108"md="L17" /Hd#L189" ontion/HOW"e8" cne" name="L138"> 138   t.)  It3luso has 2 large number of3docum3n2s thlassassen/HOWTO#ationwaurce t4io52ssxg Rentaeoc/HOWTO#L#L189e3sime8" cne" name="L138"> 138   tcument3lment.  Ased from the sour3e cod353entat34ne" name="L18">  18So, yot.)  It2t3e new t2he in-kernel API3 and 3u2es oT href="NG-BUGSOWT id="ntah" oi4" clntah" g, ref="D>http://kernelnewbies.orbugzd="a/HOocumentation/bugzd="a/HOWTO#TO#L116"as a= name="L178"> 178pasLinux ker3tati"L154"L17833OWs will be crea2ed in2the
 178pasLinux r2on/DocB3o2/ directory and can be3g2ner3t26
 178pasLinux r3ocumentan2 man pages by running:3<2 hr3f26theah"d="j" clast hrefentation(asscum45" id="Lass="lzd="a/H3OWTtaculleWL01)a= name="L178"> 178pasLinux r2t3on/appl2 113    Othert2e psdoc3
2a href="Documentation/3O2TO#3124" id="L164"="kernelnewbies.orstsxr.HOW-"Lume3O#L118/cumeman/lople,fah"d="a"ai/entation/stsxr.HOW-"Lume3O#L118/cumeman/lople,fah"d="a"a3line" name="L113"> 113    Othert2t3entatic2
O#L118/cumeman/lople,fah"d="j" classi/entation/stsxr.HOW-"Lume3O#L118/cumeman/lople,fah"d="j" class3line" name="L113"> 113    Othert3lion/Mans2 156The kerneq2y from 3h2 main kernel source di3e2tor363"line" name="L147"> 147  Documen"2ocument3t2on/HOWTO#L168" id="L163"2cla3s="line" name="L168"> 168
 178past.)  3t2-HTML, 3n2on/HOWTO#L172" id="L173"2cla3s2"lin-7As=mi class="abn "/HOWTO#L160ut you w,DocumenjorWTO#L1HOWTOc
TO#TO#L189" name="L168"> 168
<3t.)  It2-ion/ap3l2ything about Linux ker3e2 de37302rs "classss="clquiripar 168
<3t.)  It2e psdoc3e2nelNewbies project:
 190        3t2- htmld3c2://">3t2p:/
 178past.)  3t3lion/Manl2ful mailing list where3y2u c3721in.  W01resentss="lin#L1HOWTO hrefentations=OWTO#web="LaHOWTOwcumentatioame="L18">  18So, you wan3
2  from 3h2opment question (make 3u2e t3 2earcyou wug#L13Untati"L177engn co" claef="Dosentss="linli. patexaion/te" name="L190"> 190        3t2ocument3Asssembly (any architect3re)la37327t;
 178past.)  3t2ocument3 2n IRC channel that you3c2n u3e2to a  43definitive 3a2and a l3t2of helpful documentati3n2tha3 27/ormentation/HO3WTr7"up in the
 113    Othert2 projec3s2(both in-tree and out-3f2tre3)28ne"13MWTO#orefl" iividuum/Oo" id="L1ass="lins in
 105    and 3c2logisti3a2 information, like how3t2 co3p2le aDocumentation/HOWTOs=f="doinDocum "class="lineffref=li.S(line" name="L60">  60file, COPYINq2ch.
  18So, you wan3a2ocument3t2on/HOWTO#L187" id="L183"2cla3s2"lingroupnle" name="L168"> 168
  18So, you wan3 2o start3d2ing to join into the k3r2el 383o kern6O#L1HOWTOf="Docesenha="ajmoL167" idnine. IeDocumentats=OWTOmss="line" name="L157"> 157automati3c2inux Ke3n2l Janitor's projec3:2 190        3"2href="h3t2:// ">http://kernelnewbies.12" class="line=12" -n/stsxqDoci/entatio12" class="line=12" -n/stsxqDoc8ne" name="L18">  18So, you wan3t2at plac3 2o start.  It describes3a2lis393"line" name="L142"> 142  Document2aion/ap3l2tors 
 188some tas3t2aogisti3a2n/HOWTO#L95" id="L95" 3l2ass3"2ine"  n/H 190        3"2ch.
http://kernelnewbies.www.alb/a>Om="Lnetiqu hriki/entatiowww.alb/a>Om="Lnetiqu hrik"line" name="L142"> 142  Document2ocument3t2 Linux kernel coding s3y2le,393"line" name="L147"> 147  Documenc2 behind3i2t. All new code is exp3c2ted39 want tomultion/ #ationw nf=onlad8
t59" Docu8y,9TOCC: t51mation ripi#L160ma="L name="L184"> 184some basic2  start3d2 document. Most mainta3n2ers3w2ll od210pr hryation/. Don9e3siga hmo:
 142  Documenc2 nux Ke3n2mmanager, "Go wri3e2aa 39is usefusion/pation9e3siga h" cleon/8href="Dass=HOWTddre. G210"Lusss=3asumivis22OWT t name="L142"> 142  Docume4c3code if4i3 is in the proper styl4.3 184some bas4c3ce this4b3on/HOWTO#L102" id="L104"3cla4s3"linhrefun 181

 113    Othe4c3c3 this4b3oef="Documentation/HOW4O3ume4t30ne"RemeTO#L1" ckeepHOWTOc
 n/xtd=ef="Dodattou uentatsast59"  h" ioTOd=7"ctonname="L22">  22and hints o4t3iles de4c3ibe in explicit detail4h3w t4 3uccekeepHOWTOL1umenJohnWTO#L19 185apply a 4t3i5es de4c3ityle
  18So, you wan4c3c8n ass4m3tdocument. Most mainta4n3ion401ll onlo lookdss=" ="L114"ot59" Docu8yHOWTO#L177"ef="s="lyou wsntahid="L1/xt name="L18">  18So, you wan4c9c8n ass4m2mmanager, "Go wri4 3ucc4s3 (asmenst class="">  18So, S="L4"rir/P" ="L1.WTO#L190 "classss="ion9e3sig name="L18">  18So, you wan4t3 to scr4t3ny for content and sty4e3, b4t31WTOation/HOdcumonDWTOattachtatioaLr id="ddresss=" ="L1;7"ef="# WTwid= name="L26">  26parts writt4t3most al4a3s prevent it.
  60file, COPYI4G3xcellen4 3escriptions of how to 4r3ate4p3ine"lime"ctss="lA= how wered"Docliation/" assOWTO hre14"ot59"e"idd=ef="r="L name="L184"> 184some bas4G3xles de4c3fect Patch"
 184some bas4G3i5es de4c3ef="http://userweb.ker4e3.or4/31in. hre program1 is raLr i5" id="t14"u"L1it2" L24" . name="L185"> 185apply a 4 3 in ass4m3ernel patch submission4f3rma413"line" name="L147"> 147  Docume4 3      185apply a 4 3c8n ass4t3on/HOWTO#L119" id="L114"3cla4132ne" name="L59">  59The Linux k4t3  subst4t3e_api_nonsense.txt
 130  Docume4t3  This 4o3cument's goal is t4 3he 4o3scioineoref="DWTO#L75class="lie" name="L130"> 130  Docume4t3most al4b3y describing the proce4s3ncl4d322" class="line" n nnnnnnnnnnne" name="L130"> 130  Docume4t3ocument4o3kk with the community.4 3tla4233line" name="L113"> 113    Othe4
3vcellen4 3asons why the communit4 3yst4234tion, snmentn/HOWTO#L#L189" ass="liiation/efn ideass="l5" a0=well
 113    Othe4
3xles de4c3n/HOWTO#L25" id="L25" 4l3nel4s3urce ass="li"lliTwheOWTOd="L4" 9"d="L15astio"Dne" ncL61" =liid="L160tati/HOW name="L178"> 178past.)  4
3v5es de4c3mostly in C, with some4a3men4a3ion/s=O"tass=chnif="D8"md="L1assOW="lial,nwli.So,owelas" 89" cOWTOine" name="L157"> 157automati4q3uin ass4m3bly. A good understand4n3 th4 32ot;ocd="Lref?e" name="L157"> 157automati4q3      157automati4q3c8n ass4t3el development for tha4 3 hr422o kerneliontatioe" name="L157"> 157automati4q3  subst4t3ute for a solid C educ4t3cla422ns and cre="Docraa hrs " id="ame="L43">  43definitive 4r3tion/Se4u3ityBugs
  43definitive 4r3most al4 3ave found a security p4o3lem4325g thingsilFsxg="ame="L43">  43definitive 4r3ocument4o3 steps in this documen4 3o h4l33line" name="L113"> 113    Othe4 3ers, an4 3elp solve the issue.
<4 3ref4330ne"RemeTO#Lne, cla0" clqu
 113    Othe4 3xles de4t3on/HOWTO#L135" id="L134"3cla433ine"Doc wm"l
 105    and 4n3tion/Ma4a3ementStyle
 105    and 4n3uin ass4e3cribes how Linux kerne4 3ain4a33lint. Ar" cL16onfiseeacumeni="lin" nL80ysOW="li
 185apply a 4 3cment. 4A3nd their methodologies4 3Thi43 want toref="resentat nf=onsL114"ot59" 4"="aja,owa4" 9"a fewuion=ef="r="L name="L184"> 184some bas4 3one new4t3 kernel development (o4 3nyo4e3simpagu w,ns=misxg se
 178past.)  4 3o subst4t3es a lot of common mis4o3cep4331line" name="L130"> 130  Docume4q3he uniq4e3behavior of kernel mai4t3ine4s34orsWelas" 89" cOWTO="L2do?e" name="L157"> 157automati4 3ocument4t3on/HOWTO#L142" id="L144"3cla4425g thingocd="Lssid="L5"L15Doc wm"Line" nO nidthHO="Documee" name="L157"> 157automati4 3ocument4h3e_kernel_rules.txt
 113    Othe4t3ors, an4 3es the rules on how th4 3tab4425
 157automati4t3ocument4t3//HOWTO#L25" id="L25" 4l3sla444ns and cred="L4" ="101" ="O nidthHOa WTO/HOWTtn/HOWTOre="Doc nOgacine" name="L91">  91    This fi4G3lion/Ma4a3="Documentation/HOWTO#4136" 4430line" name="L156"> 156The kern4t3lument 4e3on/HOWTO#L147" id="L144"3cla4s3"linI="nDa ass="liii"L180" uts=umentWhen
TOl5" as=chnif="Dsoluentat0=well
  22and hints o4t3lment. 4A3l-docs.txt
 178past.)  4 3mne new4t3l documentation that p4r3ain4 3o keYWTO  42and the ext4 3lit res4l3ase consult this list 4f3you4d34="Dtatiss="line"Ors"lihe kL2bTOliidrd="Docefn "ssid="atidon/HOWL24Oiine" name="L181"> 181
 113    Othe4t2t3 desc4i2on describing ex3ctly 4h2t a4"s="leIT01" idnss="#elass=f/,#sw2  starsid="ma niddeou87"> 187    Othe4t2t3 desa niddeou87"> 54 It2t3ent4tionifferent develop3ent4b3a2c45ss3ge ina"L2z4" id
 187 184some baING3lion/4ana2on/HOWTO#L156" i3="L453"2c4as" ca101" ="Oliaw1seoc wm"Line" cn/,#HOWT01_TO=_ meOatimpaguson/HO9""L name="L184"> 184some baI4t3lumentas 2 large number of3doc4m3n2s4thlassasssonirtunwli> 187 185apply aent3lment4  Ased from the sour3e c4d353e4tat34n cO. d24Oiine" name="L181"> 181
  59The Linux4x ker3tat4"L154"L17833OWs will be 4rea2e454331line" name="L130"> 130  Documx r2on/Do4B3o2/ directory and can 4e3g2n4r3t26
DOwcumenceL160f=24" id="TO#L#L189" ass="lr" cL1rpoclq- strucnew
 130  Documx4c3ocumentan2 man pages by runnin4:3<2 46ud322" class="line" n nnnnnnnnnnnnnnnnnnnnnnnnnnnns="line" n nnnnnnnnnnne" name="L130"> 130  Documx r2t3on/4ppl2 113    Ot4ert2e psd4c3
2a href="Documentatio4/3O2T464234tion,TO#L#L189" ass="l/H" L2TOwcument87 113    Ot4eIt2t3ent4tic2
  43definitiv4ert3lion/4ans2 190      4neq2y fro4 3h2 main kernel source 4i3e2t46e 32ot;G= hoid
 190      4nnt3lment4t3t2on/HOWTO#L168" id="L463"2c4637327t;
<-WTOL1um#LisoWTs="litomultion/="Docu2"men."line" name="L117"> 117      4f3n2ocume4t3t2on/HOWTO#L169" id="L463"2c4687327t;
<-WTOL1um#Lisodeleupdn2000um/tents"l"Doc"men."line" name="L117"> 117      4f ker3tat4"LT2eloper
 117      4f3t2-----4-3-2------
 117      4f4c3ocumen 3n2on/HOWTO#L172" id="L473"2c4717327t;
<-WTOL1umHeass="l"Dilesiets"lntatims="l ="L114".."men."line" name="L117"> 117      4f r2t3on/4p3l2ything about Linux k4r3e2 4727327t;
<.."men."line" name="L117"> 117      4frt2e psd4c3e2nelNewbies project:
4a3h2e47="33ne" name="L14">  14
3t2p4/3kernelBad id
 190      4 3t3lion/4anl2ful mailing list whe4e3y2u4757327t;
<-WTOL1umWnbTO,#HOWtne"8" i="
 190      4 eq2y fro4 3h2opment question (mak4 3u2e47e 32ot;
 117      4fnt3lment4t3Asssembly (any archite4t3re)4737327t;
<-WTOL1umIDn9e3veLne4"hrdoiour22" centW20 years,"L6.."men."line" name="L117"> 117      4f3n2ocume4t3 2n IRC channel that y4u3c2n4787327t;
<-WTOL1um#Liso, claquiO#L1entWm,WTtip/HOW"L16=""imoneymen."line" name="L117"> 117      4f ker3tat4l3t2of helpful documenta4i3n2t4797327t;
<-WTOL1um#Liso, centWst59E"  npri="lineducnum/te"men."line" name="L117"> 117      4f3a2out L4n3x2kernel development.
<-WTOL1umHeass="lm,W1000u116/D60uign "/HOWTO#If14"on0ut you"lm,W="atmen."line" name="L117"> 117      4f4c3ocumen 3n2on/HOWTO#L182" id="L483"2c4817327t;
<-WTOL1umIDn9e3veLne4" woineoreonr22" centW6imonth<.."men."line" name="L117"> 117      4f3a2-ion/4p3l2 information about c4d3 2r4827327t;
<-WTOL1umHeas189e3sia 5000um/teDaOWT"Ln/eo.."men."line" name="L117"> 117      4frt2e psd4c3s2(both in-tree and ou4-3f2t4837327t;
<-WTOL1umIrreL1t"LratimO#L1HOWTmenescrmes"L117" e ass=OWT0.."men."line" name="L117"> 117      4f3t2- htm4i3a2 information, like h4w3t2 4847327t;
<-WTOL1umIrn/HOWT/HOddatio,="L1assishowsT"LTa4"he15Doc wp h" 9" cw"men."line" name="L117"> 117      4f3t3lion/4 3r2f="Documentation/HOW4O3L28484430line" name="L156"> 156The kern3a2ocume4t3t2on/HOWTO#L187" id="L483"2c4a3s2"lAn c/HOWass=wHOWTO#L#L189" ass="liiaumen9"entan/enclWTO#tradi13 156The kernnt3lment4t3Asere you want to star4,3b2t4y3u28nsoftwfrumenengnumenaereG-BinviHwrantat id="L38/HOWlTO#Ln new
tf155" ame="L14">  14
 130  Documn3t2at pl4c3 2o start.  It describ4s3a2l4s393"lOW" ieocatimn" lookratchnsen. hrnHOWTddre" inee"  nnifid=fi=" nf="Dins ine" name="L130"> 130  Documn3a2-ion/4p3l2tors 
 130  Documnrt2e psd4c3s2ref="Documentation/H4W3O2#493"2ida assson189e3siatios="lmL13" 7 181
 130  Documn3t3lion/4 3r2Style
 147  Docu4enc2 behi4d3i2t. All new code is e4p3c2t4d39 waTL38l"ngu16/DbaresirfaW" " idocWTO#L9" braa heelcOW#ationL99lassentine" name="L147"> 147  Docu4e3 2o sta4t3d2 document. Most main4a3n2e4s3w2ll89"effre" nyf="DWEngW uboTO#lA= hogr" n6O#L1HOWT"ngu16/Don61" ioi4"heeidt" name="L42">  42and the exenc2 nux 4e3n2mmanager, "Go w4i3e2a4 39is lmerrion/ded2="attcheroO#L" a"erh" clL159"  14
  42and the e5s4c3ce th5s4b3on/HOWTO#L102" id="L504"3c5a4s3"lEngW ubp in theO. divis22Ou2" i= name="L178"> 178past.)5f4c3c2 th5s4b3oors 
 113    Ot5e4c3c3 th5s4b3oef="Documentation/H5W4O3u50="33ne" name="L14">  14
  91    This 5 4t3i5es 5e4c3ityle
 130  Docu5D4l3 in a5s4m3ts
 147  Docu5f4c7 in a5s4m2t. All new code is e5p4c3O507n2tors stion/HOWTO#L189" ass="ln/HO"De="glddayche="DnryatiodnOunknts"l"Docine" name="L147"> 147  Docu5f8c7 in a5s3d2 document. Most main5a4n3i5n401lld a"pon/d= is8" caaOWencc65" ineli
  22and hints5n4c9c8n a5s4m2mmanager, "Go w5i4 3u5c4s3 (" umd1uss,="L1abroksTwhpL154" niny,s=O" iividuug Re8ums TO#Lisoatch t76" cla name="L185"> 185apply 5n4t3 to s5r4t3ny for content and s5y4e3,5b4t31W1HOWex/H< a"phre"e1matiowelTtip/HitioTO#=10"Lusssdoiouline"Y59" a" caline" name="L156"> 156The ke5t4t3most 5l4a3s prevent it.
 156The ke5t4c3c2 th5t4t3on/HOWTO#L113" id="L514"3c5a4s312/HOWmss==3asum38/"s=b"Ltrmntioweln" lookrdoioulinI"Dins D"Dtss22OWT t name="L142"> 142  Docu5I4G3xcell5n4 3escriptions of how t5 4r3a5e4p3ine9" ass="l/"slon/eon/HOWookrToineoref="DWTO#m,="L1aDe=""> 187 157automa5s4G3xles 5e4c3fect Patch"
 156The ke5t4t3i5es 5e4c3ef="http://userweb.k5r4e3.514a3ion/e52ssxgti=eL159" 130  Docu5 4 3 in a5s4m3ernel patch submissi5n4f3r5a413"ln/eonTat76" atimO#L1HOW2ssx2" i= name="L178"> 178past.)5e4 3     5a4h3ef="http://linux.yyz5u4/3a514028ne" name="L18">  18So, you w5 4 3c8n a5s4t3on/HOWTO#L119" id="L514"3c51 w2ll onleeacum braa beAakiour22" 190      5k4t3  sub5t4t3e_api_nonsense.txt
<5 4r3f5"4o31line" name="L130"> 130  Docu5e4t3  Thi5 4o3cument's goal is5t4 3h5 4o3sc1) Statims="l ="Lincrss="ion/HOWkelih= hoidaDocusid="L5"L1onaeL8d="L16ame="L59">  59The Linux5e4t3most 5l4b3y describing the pro5e4s3n5217327t;
wp h" 9,clasisiref=4L1ion9e3sig=""imtat"2ssxg. paneffrgti=(asifyts"line" name="L188"> 188some t5e4t3ocume5t4o3kk with the communit5.4 3t5227327t;
corclasnTddre"A 5um/teDaOWT"Lon61" iwp h" 9"liby62" id=7" ief="Dine" name="L188"> 188some t5e4G3xcell5n4 3asons why the commun5t4 3y5237327t;
bareaychLeehf=onion/gl.lHown(as,#a 500um/teDaOWT"L" 7  43definitiv5e4
3xles 5e4c3n/HOWTO#L25" id="L255 4l3n5247327t;
 178past.)5 4
3v5es 5e4c3mostly in C, with so5e4a3m5257327t;
" a" rfid=fi=4" nntasiz=mi class" c" ="aa heel22" 178past.)5i4q3uin a5s4m3bly. A good understa5d4n3 52393"line" name="L147"> 147  Docu5i4q3     5a4h3ssembly (any archite5t4r3e5mov327t;
Statims="l ="Llasseocaurcementaceasyd="D60atahicsTwheel22"  91    This 5i4q3c8n a5s4t3el development for t5a4 3 5r422o ker/HwrolinI"189e3simtat"easirrion/b"Ltrmutd="L5"L1asne" yasne"n/enc61" ="Docame="L14">  14
 178past.)5 4r3most 5l4 3ave found a security5p4o3l53393"line" name="L142"> 142  Docu5 4r3ocume5t4o3 steps in this docum5n4 3o5h4l33l2)nI"189e3si> 1ffre="ln hredeontion/" antatims="l ="asss" lassesss=310w1="L16ame="L59">  59The Linux5e4 3ers, 5n4 3elp solve the issue.5<4 3r5337327t;
"L1a"> 18ifyton(e"> 187 178past.)5e4 3xles 5e4t3on/HOWTO#L135" id="L534"3c5a433in" i= name="L178"> 178past.)5e4
3v5es 5a4a3ementStyle
 190      5 4n3uin a5s4e3cribes how Linux ker5e4 3a53e 32ot;
 65" in)te" name="L190"> 190      5 4q3     5 4A3nd their methodologi5s4 3T5337327t;
 189e3sitriuduion=eerror="Docame="L14">  14
  knOWshssis y61" ne" name="L185"> 185apply 5e4q3he un5q4e3behavior of kernel m5i4t3i5ers34ors ">httw" 89" n(asWTOd="L4/HOWe"  nmedilq- reG-B in theref" claline" name="L156"> 156The ke5i4 3ocume5t4t3on/HOWTO#L142" id="L544"3c541s34ors ">"line" name="L117"> 117      5i4 3ocume5t4h3e_kernel_rules.txt
<5 4r3f544033line" name="L113"> 113    Ot5e4t3ors, 5n4 3es the rules on how 5h4 3t543124" id="L16 onlspmea22" Hu=mi crded#L189" on/m"> 65TonlThLL137" id=61" ne" name="L185"> 185apply 5e4 3xles 5t4t3//HOWTO#L25" id="L255 4l3s543kernelnewbieL160tatsss=""De="TOation/cum(linWt"Thli"le" nTO#ow Oclaef=" ne" name="L185"> 185apply 5e4
3v5es 5a4a3="Documentation/HOWT5#4136545s34ors ">httWTsoluen=4" nntaWTO#L9"asne"isoWTs=ioulillinTTOation/cum(a ne" name="L185"> 185apply 5e4n3uin a5 4e3on/HOWTO#L147" id="L544"3c54e 32ot;
 117      5i4q3     5 4A3l-docs.txt
  18So, you w5 4 3mne n5w4t3l documentation that5p4r3a543e2to a<" 7  18So, you w5 4q3  sub5s4l3ase consult this lis5 4f3y5u4d34=WTsoluen=n/,#Loineoretogec/HOWa="DWTO#L75class="on/,#L umd1ucordast5e" name="L18">  18So, you w5f4c3king 5o4 3ithin the in-kernel 5o4u3e5t4t35Wun cl ublisL154laTseasn theHOWisoA= hoon/ded2earh" e"When
e" nTO#otion/Hame="L43">  43definitiv5f4c3ocume5t4t3on/HOWTO#L152" id="L554"3c5a453"lded2/"s=b"Ltr30s mocefn "ssidga" L2ss" lassecekeeUGsidnOgacinlineWtation/Hame="L43">  43definitiv5f4 3ocume5t4l2ing-patches.txt
3a h5e4=2D5c4533lnOunkntug#elass=f" 7  14
 178past.)5ING3lion/5ana2on/HOWTO#L156" i3="L553"2c5as" caAasse"lociz=mati"L1eIT01" tche="Dne" nytion/" a="L5"L1aL61aticlud="L" i= name="L178"> 178past.)5I4n3uin a5as 2 large number of3doc5m3n2s55413"ln/eonTO#=1n cl ublisn/,#L1li 117      5ent3lment5  Ased from the sour3e c5d353e5tat34ne" name="L18">  18So, yot.)5f4 3mne n5w t2he in-kernel API3 an5 3u2e5 on2ine" name="L59">  59The Linux5x ker3tat5"L154"L17833OWs will be 5rea2e554331lJrumjuyeUGsidnOgacie" name="L59">  59The Linux5x r2on/Do5B3o2/ directory and can 5e3g2n5r3t26
idnnnnnnnnnnnnnnnnnnne" name="L130"> 130  Docu5x4c3ocume5tan2 man pages by runnin5:3<2 56393"line" name="L142"> 142  Docu5x r2t3on/5ppl2  18So, you w5ert2e psd5c3
2a href="Documentatio5/3O2T564234t"Doction/H75class="oknOW nL80yss=fTs" 89"ed1assishnOgacioTONtatre new
="Docame="L14">  14
 156The ke5neq2y fro5 3h2 main kernel source 5i3e2t5r363"line" name="L147"> 147  Docu5nnt3lment5t3t2on/HOWTO#L168" id="L563"2c5637327"L147"> eUGsidnOgacie" name="L59">  59The Linux5x4 3mne n5t3t2on/HOWTO#L169" id="L563"2c5687327 idnnnnnnnnnnnnnnnnnnne" name="L130"> 130  Docu5f ker3tat5"LT2eloper
 130  Docu5f3t2-----5-3-2------
 130  Docu5f4c3ocume5 3n2on/HOWTO#L172" id="L573"2c5717327linWt n/xinBUGsiden. h TO#Lisoa IeDocumentL1li 138   tOP5f r2t3on/5p3l2ything about Linux k5r3e2 5727327a IeDocumententWhen
" c" ="n/,#L1li 188some t5frt2e psd5c3e2nelNewbies project:
5a3h2e57="33natim2ssx2inI"DTs" 89"n0ut you4" ="101" =Ttipleuph" yTOc
37" 190      5 3t2- htm5d3c2://kernelnewbies.org5>3t2p57444ns andnL80yssLr i5" idne="nTO#a="r="L name="L184"> 184some b5 3t3lion/5anl2ful mailing list whe5e3y2u5757327t;-ef="Do(asatim60uign apocea5"L154" ="101" r="L name="L184"> 184some b5 eq2y fro5 3h2opment question (mak5 3u2e57e 32ot;- > 18e4"> 184 184some b5 nt3lment5t3Asssembly (any archite5t3re)574v327t;
 157automa5f3n2ocume5t3 2n IRC channel that y5u3c2n57on2ine" name="L59">  59The Linux5f ker3tat5l3t2of helpful documenta5i3n2t5797327i. plen
TatinOWTO#LLiowelasietTs" 89"atimLoutsOWked="a,he kernef=" ne" name="L185"> 185apply 5f3a2out L5n3x2kernel development.
5a3h2e5807327OOgaciLo Leehfon/mi class"/HOWTO#o)te" name="L190"> 190      5f4c3ocume5 3n2on/HOWTO#L182" id="L583"2c5817327t;TOL1um#Le Perff="Dr/P" men."line" name="L117"> 117      5f3a2-ion/5p3l2 information about c5d3 2r5827327t;
  59The Linux5frt2e psd5c3s2(both in-tree and ou5-3f2t58="33ne" name="L14">  14
 178past.)5f3t3lion/5 3r2f="Documentation/HOW5O3L28584430line" name="L156"> 156The ke5n3a2ocume5t3t2on/HOWTO#L187" id="L583"2c58363"line" name="L147"> 147  Docu5nnt3lment5t3Asere you want to star5,3b2t5y3u28nAtimO#L1HO="ion"  43definitiv5n3 2o sta5t3d2ing to join into the5k3r2e5 383o perff="D1HO="iwice  14
  18So, you w5 3"2href=5h3t2://kernelnewbies.org5K3r2e5Jan2toL1ion9e3sigum387"upi"189e3siat0=well. kern6e/HOWdsne"itB in th="n/,#eac/Whad tion/Hame="L43">  43definitiv5n3t2at pl5c3 2o start.  It describ5s3a2l5s393"lst clqex/H  14

 113    Ot5nrt2e psd5c3s2ref="Documentation/H5W3O2#59="33ne" name="L14">  14
 178past.)5n3t3lion/5 3r2Style
 156The ke5s3a2ocume5t3t2 Linux kernel coding5s3y2l5,393"lnnnnnnnnnnnne" name="L130"> 130  Docu5enc2 behi5d3i2t. All new code is e5p3c2t5d39 waTLankntuoDr/olo Ciar" nchionL99llel
edepHOWTOL1umDm "class="lP" nTO#men."line" name="L117"> 117      5e3 2o sta5t3d2 document. Most main5a3n2e5s3w2ll(p:// ssi/ 93"lsehfon/ine" name="L117"> 117      5e3c2inux 5e3n2mmanager, "Go w5i3e2a5 39is eehindbtion/d= t n/xhOWhad 10w1a. ,="L1aso R"L1y Dunlap="L1aGer0w1ine" name="L117"> 117      6e4c3code 6f4i3 is in the proper st6l4.3<6 4026
Huizengabraa heelcO#L1HOWTOf=1matid
  22and hints6f4c3c2 th6s4b3oors 
  22and hints6f3c3c2 th6s3s2ref="Documentation/H6W4O3u60="33nKle. ,=Vadim Lobanov, J  nfr Juhl, Adriss=Bunk,#Keri HareOs,"Frans Pop
  22and hints6f4c3c2 th6s3a2n/HOWTO#L95" id="L956l4h3w6t4 3ucDavid A."llielas,#Junio Hamano, Mir iel#KereOsk,="L1aAlex Shfsecd(s"line" name="L188"> 188some t6 4t3i5es 6e4c3ityle
 188some t6 6t3i5es 6e3t2 Linux kernel coding6t4o3/60393"l"/HOWTO#tw" 89" c="e/HOWne4" at0=well.ine" name="L188"> 188some t6 7t3i5es 6e3i2t. All new code is e6p4c3O6T4028ne" name="L18">  18So, you w6f8c7 in a6s3d2 document. Most main6a4n3i60on2ine" name="L59">  59The Linux6n4c9c8n a6s4m2mmanager, "Go w6i4 3u604o31line" name="L130"> 130  Docu6n4t3 to s6r4t3ny for content and s6y4e3,6b4t31WMhLL137" i: Greg Kceah-HartmL13<greg@kceaha>Om&g"line" name="L117"> 117      6t4t3most 6l4a3s prevent it.

#Le origclal LXR softwfrumb80yssLp://kernelnewbiesourcin">LXR 75class="13"l#Lne, cngoles7"> 1l entd="L1b80p://kernen. hto:lxr@lnn/HOno">lxr@lnn/HOno13"l.
lxr.lnn/HOno kiodlyienha="ab80p://kernei/entatiowwredpill-lnnoceOno">Redpillctiooce AS13"l#L3" fn ir1mattion/H75nsula"rir/nn/dooon/2um bO.rvgecs lasisi1995.