Fråga
Hej!
Hur programmerar man ett operativsystem?
Svar
När man pratar om operativsystem brukar man oftast dela upp det i två delar, kernel space (kärna) och user space. Kernel-space fungerar som ett lager mellan datorns hårdvara och programmen man kör, här finns exempelvis drivrutiner. Ovanpå det finns user-space och alla program som gör själva operativsystemet, som att hantera filer, surfa p nätet, kommandoprompt och så vidare. För att ta ett exempel är det som många kallar Linux just bara själva kärnan, som oftast distribueras med ett antal user-space program runtomkring (GNU).
Kärnans uppgift är alltså att presentera ett väldefinierat gränssnitt till övriga program för att man inte ska behöva fundera p vilken hårdvara som finns, till exempel programmet för att kopiera en fil ska inte behöva fundera på vilken sorts filsystem filen ligger lagrad i, om det är en nätverksmonterad katalog eller om det är en fysisk hårddisk, eller usb-minne. Oftast programmerar man operativsystem med hårdvarunära språk som till exempel C. Det här är en mycket komplex fråga, men det finns många bra resurser, boken ”Applied Operating System Concepts” (Silberschatz, Galvin, et. al) är väl allmänt ansedd som referenslitteraturen kring operativsystem. Du kan även göra en sökning på till exempel MINIX, GeekOS och Hurd.