Interfícies del nucli de Linux

visió general i comparació de les API i ABI del nucli de Linux

El nucli de Linux proporciona múltiples interfícies per a l'espai d'usuari i el codi en mode nucli que s'utilitzen per a diferents propòsits i que tenen diferents propietats segons el disseny. Hi ha dos tipus d'interfície de programació d'aplicacions (API) al nucli Linux:

  1. l'API "kernel – espai d'usuari"; i
  2. l'API "interna del nucli".

API de Linux

L'API de Linux es compon de la interfície de crida del sistema del nucli de Linux, la biblioteca GNU C (de GNU), libcgroup,[1] libdrm, libalsa i libevdev [2] (de freedesktop.org).

L'API de Linux inclou el nucli – API d'espai d'usuari, que permet que el codi de l'espai d'usuari accedeixi als recursos del sistema i als serveis del nucli de Linux.[3] Està compost per la interfície de crida al sistema del nucli Linux i les subrutines de la biblioteca estàndard C. L'objectiu del desenvolupament de l'API de Linux ha estat proporcionar les característiques utilitzables de les especificacions definides a POSIX d'una manera que sigui raonablement compatible, robusta i de rendiment, i proporcionar funcions útils addicionals no definides a POSIX, igual que el nucli – Les API d'espai d'usuari d'altres sistemes que implementen l'API POSIX també proporcionen funcions addicionals no definides a POSIX.

L'API de Linux, per elecció, s'ha mantingut estable al llarg de les dècades gràcies a una política de no introduir canvis de ruptura; aquesta estabilitat garanteix la portabilitat del codi font.[4] Al mateix temps, els desenvolupadors del nucli de Linux han estat històricament conservadors i meticulosos a l'hora d'introduir noves trucades al sistema.

Molt de programari gratuït i de codi obert està escrit per a l'API POSIX. Com que flueix molt més desenvolupament al nucli de Linux en comparació amb les altres combinacions de nucli i biblioteca estàndard C compatibles amb POSIX, el nucli de Linux i la seva API s'han augmentat amb funcions addicionals. La programació per a l'API Linux completa, en lloc de només l'API POSIX, pot proporcionar avantatges en els casos en què aquestes funcions addicionals siguin útils. Exemples actuals coneguts són udev, systemd i Weston.[5] Persones com Lennart Poettering advoquen obertament per preferir l'API Linux a l'API POSIX, on això ofereix avantatges.[6]

A FOSDEM 2016, Michael Kerrisk va explicar alguns dels problemes percebuts amb l'API d'espai d'usuari del nucli de Linux, descrivint que conté múltiples errors de disseny perquè no és extensible, no es pot mantenir, és massa complex, té un propòsit limitat, infringeix els estàndards i és inconsistent. La majoria d'aquests errors no es poden corregir perquè fer-ho trencaria l'ABI que el nucli presenta a l'espai d'usuari.[7]

Interfície de crida al sistema del nucli Linux

La biblioteca GNU C és un embolcall al voltant de la interfície de trucada del sistema del nucli de Linux.

La interfície de crida al sistema d'un nucli és un conjunt de totes les crides de sistema implementades i disponibles en un nucli. Al nucli Linux, diversos subsistemes, com ara el Direct Rendering Manager (DRM), defineixen les seves pròpies crides al sistema, totes elles part de la interfície de crides del sistema.

S'estan discutint públicament diversos problemes amb l'organització de les cridesal sistema del nucli de Linux. Els problemes han estat assenyalats per Andy Lutomirski, Michael Kerrisk i altres.[8][9][10][11]

La biblioteca estàndard C

Una biblioteca estàndard C per a Linux inclou embolcalls al voltant de les trucades al sistema del nucli de Linux; la combinació de la interfície de trucada del sistema del nucli de Linux i una biblioteca estàndard C és el que construeix l'API de Linux. Algunes implementacions populars de la biblioteca estàndard C són

Linux ABI

L'API de Linux i l'ABI de Linux

El terme Linux ABI es refereix a un ABI d'espai d'usuari del nucli. La interfície binària de l'aplicació fa referència als binaris compilats, en codi màquina. Per tant, qualsevol ABI d'aquest tipus està vinculat al conjunt d'instruccions. Definir un ABI útil i mantenir-lo estable és menys responsabilitat dels desenvolupadors del nucli de Linux o dels desenvolupadors de la Biblioteca C GNU, i més la tasca de les distribucions de Linux i dels proveïdors de programari independents (ISV) que vulguin vendre i donar suport als seus programari propietari com a binaris només per a un únic ABI de Linux, en lloc de donar suport a múltiples ABI de Linux.

Referències

🔥 Top keywords: PortadaEspecial:CercaJuraj CintulaPeretViquipèdia:ContacteManuel de Pedrolo i MolinaNova CaledòniaEspecial:Canvis recentsRobert FicoJessica Goicoechea JoverCarles Puigdemont i CasamajóEslovàquiaXavlegbmaofffassssitimiwoamndutroabcwapwaeiippohfffXOriol Junqueras i ViesMauricio WiesenthalEleccions al Parlament de Catalunya de 2024Cas Asunta BasterraClara Ponsatí i ObiolsJoan Salvat-PapasseitAntoni Comín i OliveresLluís Puig i GordiEsquerra Republicana de CatalunyaValtònycAamer AnwarBorratjaTor (Alins)Fermín López MarínLaia Flores i CostaSegona Guerra MundialLaura Borràs i CastanyerProvíncies de CatalunyaSílvia Orriols SerraJosep Costa i RossellóPresident de la Generalitat de CatalunyaParlament de CatalunyaAurora Madaula i GiménezHistòria del cristianismeComarques de CatalunyaRamón Cotarelo García