Redigerer
Linuxkjernen
(avsnitt)
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
=== Grensesnitt mot Linuxkjernen === ''Linuxkjernens grensesnitt'' er flere grensesnitt mellom kjernen og applikasjoner i [[brukermodus]], såvel som interne grensesnitt i kjernen. Det finnes to typer grensesnitt mellom kjernen og programmer som kjører i brukermodus: [[API (programmering)|applikasjonsprogrammeringsgrensesnitt]] (API) og [[Binærkompatibilitet|binære applikasjonsgrensesnitt]] (ABI). Internt i kjernen finnes det en rekke applikasjonsprogrammeringsgrensesnitt, men intet binært applikasjonsgrensesnitt.[[Fil:Linux kernel interfaces.svg|thumb|300px|Fire grensesnitt er definert: To interne i kjernen, og to mellom kjernen og brukermodus.{{byline|Illustrasjon: ScotXW|20. august 2013}}]] [[Fil:Linux AMD graphics stack.svg|thumb|300px|På XDC2014 kunngjorde Alex Deucher fra [[Advanced Micro Devices]] (AMD) en felles driver for [[grafikkort]] og [[AMD Accelerated Processing Unit|APU]]'er.<ref>{{cite web |url=http://wiki.x.org/wiki/Events/XDC2014/XDC2014DeucherAMD/ |title=AMD's New Unified Open Source Driver |last=Deucher |first=Alex |date=7. oktober 2014 |publisher=[[X.Org Foundation]] |accessdate=21. januar 2015}}</ref> Den propritære Linuxdriveren, [[AMD Catalyst|libGL-fglrx-glx]], deler [[Direct Rendering Manager]] med [[Mesa (datagrafikk)|Mesa 3D]]. Ettersom kjernen mangler et stabilt binærgrensesnitt, brukte AMD sin egen [[binary blob]].{{byline|Illustrasjon: ScotXW|20. januar 2015}}]] ==== Applikasjonsprogrammeringsgrensesnitt i brukermodus ==== {{utdypende|POSIX|Single UNIX Specification|Linuxkjernens API}} Portabilitet i kildekoden sikrer at et C-program som er skrevet i henhold til en standard kan kompileres og kjøres på ethvert system som følger samme standarden. De relevante standarder i sammenheng med Linuxkjernen, og [[GNU C Library]] som er tilknyttet den, er [[POSIX]] og [[Single UNIX Specification]]. Linuxdistribusjonene [[EulerOS]]<ref>{{cite web|url=http://www.huawei.com/en/news/2016/9/huawei-kunlun-euleros-unix-certification|title=Huawei KunLun EulerOS 2.0 Operating System Passes UNIX Certification |accessdate=2016-10-29|publisher=[[Huawei]]}}</ref><ref name="EulerOS_conformance_commands">{{cite web| url=http://www.opengroup.org/csq/repository/norationale=1&noreferences=1&RID=huawei%252FCX1%252F1.html| title=Huawei Conformance Statement: Commands and Utilities V4| author=Peng Shen| publisher=The Open Group| accessdate=2016-10-29| url-status=dead| archiveurl=https://web.archive.org/web/20161029175646/http://www.opengroup.org/csq/repository/norationale%3D1%26noreferences%3D1%26RID%3Dhuawei/CX1/1.html| archivedate=2016-10-29}}</ref> og [[Inspur K-UX]],<ref>{{cite web|url=http://www.opengroup.org/openbrand/register/brand3596.htm |title=The Open Brand Register of Certified Products|accessdate=2014-05-29|publisher=The Open Group|date=2014-05-29}}</ref><ref name="inspur_conformance_statement">{{cite web| url=http://www.opengroup.org/csq/repository/RID=inspur%252FXY1%252F1.html| title=Inspur Conformance Statement| author=Xie Ruohong| publisher=The Open Group| accessdate=2015-12-08| url-status=dead| archiveurl=https://web.archive.org/web/20151210194928/http://www.opengroup.org/csq/repository/RID%3Dinspur/XY1/1.html| archivedate=2015-12-10}}</ref> som begge er derivater av [[Red Hat Enterprise Linux]], følger offisielt UNIX-03 standarden. Ingen andre Linuxdistribusjoner har fått varemerket «UNIX» av [[Open Group]], hovedsakelig på grunn av kostnadene ved konformitets-testing. GNU C Library støtter standardene K&R C, [[ANSI C]], [[ISO]] [[C99]], ISO [[C11]], ISO [[C18]], [[Single UNIX Specification]] (UNIX 93, UNIX 95, UNIX 98, UNIX 03, UNIX V7), POSIX.1c, POSIX.1d, POSIX.1j, POSIX.2, POSIX.1-2001, POSIX-2004, POSIX-2008, POSIX.1-2017, [[Berkeley Software Distribution|BSD]]-grensesnitt, [[System V Interface Definition]] (SVID), [[X/Open|X/Open Portability Guide]] 4.2 og utvidelser av C-syntaksen som er spesifikke for Linuxkjernen. Biblioteket støtter også [[C++]]-standardene C++98, [[C++03]], [[C++11]], [[C++14]], [[C++17]] og den kommende standarden [[C++20]]. [[Linuxkjernens grensesnitt|Linuxkjernens API]] består hovedsakelig av systemkall. ==== Applikasjonsprogrammers binærgrensesnitt ==== {{utdypende|Linux Standard Base}} Binærportabilitet betyr at ethvert program som er kompilert for en gitt maskinvareplattform, kan kjøre i kompilert form på enhver annen maskinvareplattform som følger standarden. Binærportabilitet er et essensielt krav for den kommersielle levedyktighet til applikasjoner fra [[uavhengig programvareleverandør|uavhengige programvareleverandører]] som er bygd for operativsystemer som er basert på Linuxkjernen. Binærkompatibilitet er mye mer krevende enn kildekodeportabilitet. Per januar 2020 er [[Linux Standard Base]] (LSB) den eneste standard for binærkompatibilitet. ==== Applikasjonsgrensesnitt i kjernen ==== Flere interne applikasjonsgrensensnitt i kjernen anvendes mellom forskjellige undersystemer og deres undersystemer. Noen har vært stabile over flere versjoner, mens andre har endret seg. Det er ingen garanti for at de vil vedvare; vedlikeholdere og bidragsytere kan fritt endre dem når som helst.<ref>{{cite web |url=https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/stable_api_nonsense.txt |title=The Linux Kernel Driver Interface |author=Greg Kroah-Hartman |accessdate=10. april 2015 |url-status=dead |archiveurl=https://web.archive.org/web/20150426153026/https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/stable_api_nonsense.txt |archivedate=2015-04-26 |tittel=Arkivert kopi |besøksdato=2015-04-10 |arkivurl=https://web.archive.org/web/20150426153026/https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/stable_api_nonsense.txt |arkivdato=2015-04-26 |url-status=død }}</ref> Eksempler er rammeverk for de følgende klasser av utstyrsdrivere: * [[Video4Linux]] for videomaskinvare * [[Advanced Linux Sound Architecture]] (ALSA) for [[lydkort]] * [[New API]] for [[nettverkskort]] * [[Direct Rendering Manager]] for [[grafikkort]] * [[KMS-driver]] for [[fremvisningskontroller]]e * [[mac80211]] for trådløse [[nettverkskort]]<ref>{{cite web |url=https://wireless.wiki.kernel.org/en/developers/Documentation/mac80211 |title=About mac80211 |publisher=Linux Kernel Organization, Inc. |accessdate=8. juni 2014 |archive-date=2021-02-01 |archive-url=https://web.archive.org/web/20210201114135/https://wireless.wiki.kernel.org/en/developers/documentation/mac80211 |url-status=yes }}</ref> * WEXT for trådløse nettverkskort (foreldet) ==== Binærgrensesnitt i kjernen ==== Linuxkjernen har intet stabilt binærgrensesnitt.<ref>{{cite web|url=http://abi-laboratory.pro/tracker/timeline/linux/|title=Report on ABI changes in the Linux kernel|publisher=Andrey Ponomarenko's ABI laboratory|date=17. mars 2016}}</ref>
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Denne siden er medlem av 5 skjulte kategorier:
Kategori:Artikkelnavn som lett kan forveksles med andre artikkelnavn
Kategori:Artikler med offisielle lenker og uten kobling til Wikidata
Kategori:Artikler med seksjoner som behøver utvidelse
Kategori:Artikler uten offisielle lenker fra Wikidata
Kategori:CS1-vedlikehold: Uheldig URL
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Side
Diskusjon
norsk bokmål
Visninger
Les
Rediger
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon