From: eliot Date: Sun, 24 May 2020 15:05:52 +0000 (+0200) Subject: Moving file posix to correct directory X-Git-Url: https://git.g-eek.se/?a=commitdiff_plain;h=df6c7191e3b94cda8eff0fdc59c0400382c24c8e;p=inbyggd-frihet-wiki.git Moving file posix to correct directory --- diff --git a/linux-intro/posix.txt.mdwn b/linux-intro/posix.txt.mdwn new file mode 100644 index 0000000..5647fd5 --- /dev/null +++ b/linux-intro/posix.txt.mdwn @@ -0,0 +1,26 @@ +# POSIX + +När vi säger att Linux är ett Unix-likt system menas det att Linux följer POSIX. +POSIX är först och främst ett API (C POSIX biblioteket) mellan kernel och applikationer i userspace, men också kräver POSIX att det finns vissa verktyg tillgängliga som `ls` och `vi` (userspace). +När vi kodar C ska vi aldrig behöva köra ett system call direkt (även om det kan göras genom functionen `syscall()` i C), utan istället använda detta C-bibliotek som gör massa nice - framför allt gör detta det lättare att korskompilera till andra system som följer POSIX. + +Så om du ska programmera till Unix-liknande system bör du göra det genom att använda C POSIX biblioteket. (Exekverar då alla andra programmeringsspråk dessa C funktioner eller kör dom system calls direkt?) + +System som Linux och varianter på BSD är typ POSIX-kompatibla, då dessa lovar att erbjuda MINST det POSIX kräver. T ex att pipes är bidirectional på BSD, men bara unidirectional i Linux och enligt POSIX. + +# Linux + +Ett vanligt Linux-system innehåller alltså flera viktiga delar: + +* Linux kernel + +* C POSIX library (API) + +* Systemd (systemhanterare (allt möjligt), processhanterare (startar processer, agerar scheduler, etc)) + +* Core Utilities (exempelvis GNU coreutils som inkluderar mångs program så som bash, gcc, ls, och cd) + +* X11 (grafiskt system) + +Men en Linuxdistribution behöver inte ha GNU Utils (ex. Alpine Linux), eller vara POSIX (ex. Android), eller använda SystemD (ex. Slackware), eller använda X11 (eller grafik överhuvudtaget). +Det som gör dessa till Linux är att de alla kör Linuxkärnan