All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@s-opensource.com>
To: Linux Doc Mailing List <linux-doc@vger.kernel.org>
Cc: Mauro Carvalho Chehab <mchehab@s-opensource.com>,
	Mauro Carvalho Chehab <mchehab@infradead.org>,
	Markus Heiser <markus.heiser@darmarit.de>,
	Jonathan Corbet <corbet@lwn.net>,
	Jani Nikula <jani.nikula@linux.intel.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>
Subject: [PATCH v2 12/20] stable_api_nonsense.rst: convert it to ReST markup
Date: Mon, 12 Sep 2016 23:18:03 -0300	[thread overview]
Message-ID: <646c27db8ab345b0c480145f09153c9ecedfdf93.1473732263.git.mchehab@s-opensource.com> (raw)
In-Reply-To: <cover.1473732263.git.mchehab@s-opensource.com>
In-Reply-To: <cover.1473732263.git.mchehab@s-opensource.com>

Add markups for it to be properly parsed by Sphinx.

As people browsing this document may not notice that the source
file title is "stable_api_nonsense", I opted to use bold to
the rationale for this document. I also found it better to
add a note when it says that the nonsense applies only to the
kABI/kAPI, and not to uAPI.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 .../development-process/stable_api_nonsense.rst    | 33 +++++++++++++++-------
 1 file changed, 23 insertions(+), 10 deletions(-)

diff --git a/Documentation/development-process/stable_api_nonsense.rst b/Documentation/development-process/stable_api_nonsense.rst
index db3be892afb2..0d375c115b0c 100644
--- a/Documentation/development-process/stable_api_nonsense.rst
+++ b/Documentation/development-process/stable_api_nonsense.rst
@@ -1,17 +1,24 @@
 The Linux Kernel Driver Interface
+==================================
+
 (all of your questions answered and then some)
 
 Greg Kroah-Hartman <greg@kroah.com>
 
-This is being written to try to explain why Linux does not have a binary
-kernel interface, nor does it have a stable kernel interface.  Please
-realize that this article describes the _in kernel_ interfaces, not the
-kernel to userspace interfaces.  The kernel to userspace interface is
-the one that application programs use, the syscall interface.  That
-interface is _very_ stable over time, and will not break.  I have old
-programs that were built on a pre 0.9something kernel that still work
-just fine on the latest 2.6 kernel release.  That interface is the one
-that users and application programmers can count on being stable.
+This is being written to try to explain why Linux **does not have a binary
+kernel interface, nor does it have a stable kernel interface**.
+
+.. note::
+
+  Please realize that this article describes the **in kernel** interfaces, not
+  the kernel to userspace interfaces.
+
+  The kernel to userspace interface is the one that application programs use,
+  the syscall interface.  That interface is **very** stable over time, and
+  will not break.  I have old programs that were built on a pre 0.9something
+  kernel that still work just fine on the latest 2.6 kernel release.
+  That interface is the one that users and application programmers can count
+  on being stable.
 
 
 Executive Summary
@@ -51,19 +58,23 @@ Binary Kernel Interface
 Assuming that we had a stable kernel source interface for the kernel, a
 binary interface would naturally happen too, right?  Wrong.  Please
 consider the following facts about the Linux kernel:
+
   - Depending on the version of the C compiler you use, different kernel
     data structures will contain different alignment of structures, and
     possibly include different functions in different ways (putting
     functions inline or not.)  The individual function organization
     isn't that important, but the different data structure padding is
     very important.
+
   - Depending on what kernel build options you select, a wide range of
     different things can be assumed by the kernel:
+
       - different structures can contain different fields
       - Some functions may not be implemented at all, (i.e. some locks
 	compile away to nothing for non-SMP builds.)
       - Memory within the kernel can be aligned in different ways,
 	depending on the build options.
+
   - Linux runs on a wide range of different processor architectures.
     There is no way that binary drivers from one architecture will run
     on another architecture properly.
@@ -105,6 +116,7 @@ As a specific examples of this, the in-kernel USB interfaces have
 undergone at least three different reworks over the lifetime of this
 subsystem.  These reworks were done to address a number of different
 issues:
+
   - A change from a synchronous model of data streams to an asynchronous
     one.  This reduced the complexity of a number of drivers and
     increased the throughput of all USB drivers such that we are now
@@ -166,6 +178,7 @@ very little effort on your part.
 
 The very good side effects of having your driver in the main kernel tree
 are:
+
   - The quality of the driver will rise as the maintenance costs (to the
     original developer) will decrease.
   - Other developers will add features to your driver.
@@ -175,7 +188,7 @@ are:
     changes require it.
   - The driver automatically gets shipped in all Linux distributions
     without having to ask the distros to add it.
-    
+
 As Linux supports a larger number of different devices "out of the box"
 than any other operating system, and it supports these devices on more
 different processor architectures than any other operating system, this
-- 
2.7.4

  parent reply	other threads:[~2016-09-13  2:19 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-13  2:17 [PATCH v2 00/20] Create a book for Kernel development Mauro Carvalho Chehab
2016-09-13  2:17 ` [PATCH v2 01/20] docs-rst: move HOWTO and mentioned documents to a separate dir Mauro Carvalho Chehab
2016-09-13  2:17 ` [PATCH v2 02/20] docs-rst: HOWTO.rst: convert to ReST notation Mauro Carvalho Chehab
2016-09-13  2:17 ` [PATCH v2 03/20] docs-rst: applying-patches.rst: convert it to ReST markup Mauro Carvalho Chehab
2016-09-13  2:17 ` [PATCH v2 04/20] docs-rst: Changes.rst: " Mauro Carvalho Chehab
2016-09-13  2:17 ` [PATCH v2 05/20] docs-rst: CodingStyle.rst: Convert " Mauro Carvalho Chehab
2016-09-13  2:59   ` Joe Perches
2016-09-13  8:46     ` Mauro Carvalho Chehab
2016-09-13  2:17 ` [PATCH v2 06/20] CodingStyle.rst: use the proper tag for verbatim font Mauro Carvalho Chehab
2016-09-13  2:17 ` [PATCH v2 07/20] CodingStyle.rst: replace underline markups Mauro Carvalho Chehab
2016-09-13  2:17 ` [PATCH v2 08/20] CodingStyle.rst: use the .. note:: markup where needed Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 09/20] kernel-docs.rst: convert it to ReST markup Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 10/20] ManagementStyle.rst: " Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 11/20] SecurityBugs.rst: " Mauro Carvalho Chehab
2016-09-13  2:18 ` Mauro Carvalho Chehab [this message]
2016-09-13  2:18 ` [PATCH v2 13/20] stable_kernel_rules.rst: " Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 14/20] SubmittingDrivers.rst: " Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 15/20] SubmittingPatches.rst: " Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 16/20] HOWTO.rst: add cross-references to other documents Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 17/20] doc: development-process: rename files to rst Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 18/20] doc: development-process: convert it to ReST markup Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 19/20] doc: adjust references to development-process Mauro Carvalho Chehab
2016-09-13  2:18 ` [PATCH v2 20/20] doc: Add the development-process to Sphinx build Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=646c27db8ab345b0c480145f09153c9ecedfdf93.1473732263.git.mchehab@s-opensource.com \
    --to=mchehab@s-opensource.com \
    --cc=corbet@lwn.net \
    --cc=jani.nikula@linux.intel.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=markus.heiser@darmarit.de \
    --cc=mchehab@infradead.org \
    --cc=mchehab@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.