Documentation/translations/it_IT/process/stable-api-nonsense.rst
Source file repositories/reference/linux-study-clean/Documentation/translations/it_IT/process/stable-api-nonsense.rst
File Facts
- System
- Linux kernel
- Corpus path
Documentation/translations/it_IT/process/stable-api-nonsense.rst- Extension
.rst- Size
- 10308 bytes
- Lines
- 210
- Domain
- Support Tooling And Documentation
- Bucket
- Documentation
- Inferred role
- Support Tooling And Documentation: documentation
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
.. include:: ../disclaimer-ita.rst
:Original: :ref:`Documentation/process/stable-api-nonsense.rst <stable_api_nonsense>`
:Translator: Federico Vaga <federico.vaga@vaga.pv.it>
.. _it_stable_api_nonsense:
L'interfaccia dei driver per il kernel Linux
============================================
(tutte le risposte alle vostre domande e altro)
Greg Kroah-Hartman <greg@kroah.com>
Questo è stato scritto per cercare di spiegare perché Linux **non ha
un'interfaccia binaria, e non ha nemmeno un'interfaccia stabile**.
.. note::
Questo articolo parla di interfacce **interne al kernel**, non delle
interfacce verso lo spazio utente.
L'interfaccia del kernel verso lo spazio utente è quella usata dai
programmi, ovvero le chiamate di sistema. Queste interfacce sono **molto**
stabili nel tempo e non verranno modificate. Ho vecchi programmi che sono
stati compilati su un kernel 0.9 (circa) e tuttora funzionano sulle versioni
2.6 del kernel. Queste interfacce sono quelle che gli utenti e i
programmatori possono considerare stabili.
Riepilogo generale
------------------
Pensate di volere un'interfaccia del kernel stabile, ma in realtà non la
volete, e nemmeno sapete di non volerla. Quello che volete è un driver
stabile che funzioni, e questo può essere ottenuto solo se il driver si trova
nei sorgenti del kernel. Ci sono altri vantaggi nell'avere il proprio driver
nei sorgenti del kernel, ognuno dei quali hanno reso Linux un sistema operativo
robusto, stabile e maturo; questi sono anche i motivi per cui avete scelto
Linux.
Introduzione
------------
Solo le persone un po' strambe vorrebbero scrivere driver per il kernel con
la costante preoccupazione per i cambiamenti alle interfacce interne. Per il
resto del mondo, queste interfacce sono invisibili o non di particolare
interesse.
Innanzitutto, non tratterò **alcun** problema legale riguardante codice
chiuso, nascosto, avvolto, blocchi binari, o qualsia altra cosa che descrive
driver che non hanno i propri sorgenti rilasciati con licenza GPL. Per favore
fate riferimento ad un avvocato per qualsiasi questione legale, io sono un
programmatore e perciò qui vi parlerò soltanto delle questioni tecniche (non
per essere superficiali sui problemi legali, sono veri e dovete esserne a
conoscenza in ogni circostanza).
Dunque, ci sono due tematiche principali: interfacce binarie del kernel e
interfacce stabili nei sorgenti. Ognuna dipende dall'altra, ma discuteremo
prima delle cose binarie per toglierle di mezzo.
Interfaccia binaria del kernel
------------------------------
Supponiamo d'avere un'interfaccia stabile nei sorgenti del kernel, di
conseguenza un'interfaccia binaria dovrebbe essere anche'essa stabile, giusto?
Sbagliato. Prendete in considerazione i seguenti fatti che riguardano il
kernel Linux:
- A seconda della versione del compilatore C che state utilizzando, diverse
strutture dati del kernel avranno un allineamento diverso, e possibilmente
Annotation
- Atlas domain: Support Tooling And Documentation / Documentation.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.