Sida 1 av 1
Embedded Linux-bok
Postat: 23 oktober 2007, 23:51:29
av chille
Kan någon rekomendera en bok som är up-to-date och fokuserar på Linux med inriktning mot inbyggda system, realtidsprocesser, drivrutiner, hårdvarunära programmering etc? Vore kul att göra en djupdykning och inte bara skriva program som körs i user-miljö.

Postat: 23 oktober 2007, 23:57:37
av RasmusB
Hmm, när jag läste rubriken trodde jag först att du byggt in en liten linuxdator i en bok

Undrar vilken typ av nördskada det tyder på

Postat: 24 oktober 2007, 00:01:55
av strombom
Postat: 24 oktober 2007, 00:28:32
av chille
Oj då, gratis är ju inte helt fel. Och att det dessutom är för 2.6 är ju riktigt bra. Den där boken i kombination med LFS (Linux From Scratch) kanske räcker för att man ska klara sig ganska långt. Sen lär man ju kunna kolla mer på hur man gör olika optimeringar osv i kernelen och ränsar bort grejer som inte behövs.
Postat: 24 oktober 2007, 09:12:25
av oJsan
Har haft den boken som kurslitteratur, helt okey. Gissar att den används på andra universitet också. Den är nog mest fokuserad på drivrutiner, saknar nog realtidsaspekten...
Postat: 24 oktober 2007, 12:19:04
av chille
Jo, det är ju inte så konstigt. Men drivrutiner är ju en väldigt stor del då man oftast lär få skriva en hel del specialanpassade drivrutiner när man arbetar med inbyggda systsem. Resten går nog att läsa sig till någon annanstans.
Postat: 24 oktober 2007, 15:42:37
av speakman
Med håll på det som sägs. Många egna drivers blir det (oftast) och boken är kalas.
Äkta realtidsystem har jag ingen erfarenhet av tyvärr.
Postat: 24 oktober 2007, 17:40:41
av chille
Om jag inte är ute och cyklar nu så är väl realtids-linux ändå ett extra tillägg till kernel som kallas "RT-Linux"? Borde väl kanske finnas någon bok som fokuserar på just precis det.
Är det ingen här som har hållt på med realtidsystem baserade på Linux?
Webbaserade gratis Embedded Linux kurser:
Postat: 27 januari 2009, 16:08:21
av manw
Försöker väcka tråden igen, med lite webbaserade kurser i Embedded Linux. Letar också efter någon bra lärarledd kurs, har hittat på Init och Enea, men det borde finnas fler? Problemet med böcker i detta ämne borde annars vara att de blir ganska kvickt föråldrade?
Webbaserade gratis Embedded Linux kurser:
CNW Consulting Network AB
http://cmsms.cnw.se/index.php?page=embe ... s&hl=sv_SE
Free-Electrons
http://free-electrons.com/docs/kernel/
ENEA
http://www.enea.com/templates/Extension____24705.aspx
Re: Embedded Linux-bok
Postat: 27 januari 2009, 17:35:21
av AndLi
Nu är jag ju partisk i frågorna om lärarledda embedded linuxkurser och bara fått en privat snabbversion av Eneas grundkurs. Men jag tycker den är bra upplagd med bra kursmaterial.
Och våra lärare är kunniga...
Nu ska jag sluta göra reklam
chille: ja det är ett tillägg, men nä jag har ingen hands on på just det...
Re: Embedded Linux-bok
Postat: 27 januari 2009, 19:06:26
av SvenW
Kan nämna att jag gjorde en stegmotorstyring med en linuxdriver, där jag utgick från ett exempel från ovan nämnda bok, Corbet&Rubini, för några år sedan. Char-drivers. Kernel 2.4.
Den gick att köra upp till ca 3 kHz mot avbrott från parallellporten, alltså ett par tiopotenser snabbare än user-mode. Körkommando från perlskripter i user-mode.
Det tog väl någon vecka att komma igång, men sedan gick det smidigt.
Som jämförelse kan jag säga att det nog är lite lättare att göra motsvarande med separat mikroprocessor(AVR), i alla fall så länge mikroprocessorn går autonomt. Om den skall kommunicera med PCn kan det kanske gå på ett ut.
Re: Embedded Linux-bok
Postat: 27 januari 2009, 19:40:39
av Mupp
Problemen med realtidsprestanda i Linux äro många tyvärr.
För det första så är det i regel inte ett tillägg, utan flera, och dessa hamnar rätt ofta på nåt arkitekturspecifikt i slutänden. Så realtid handlar en hel del om vilken arkitektur man vill köra. x86 kommer nog alltid ha bäst stöd. PowerPC ska ha rätt bra stöd, men jag har aldrig testat. Jag har mest kört Linux på Atmels ARM9, och där är det ju lite sådär kan man säga. Så länge man inte pröjsar för en realtidskärna så är det åtminstone ett jävla fippel innan det funkar, om det funkar. Pröjsar man så kan det mycket väl funka, men man får se till att ha stora plånboken med sig, om man inte lyckas hitta nån "evaluation" nånstans. Realtidsprestandan med "vanilla"-kärna på Atmels ARM9 är lite sådär, någon hård realtid i mikrosekundklass hade iaf inte uppenbarat sig senast jag pysslade med sånt. Skiter man i realtidsprestandan, åtminstone hård realtid, så funkar Atmels grejer bra, både Arm och AVR32. Den senare är dessutom billig i form av utvecklingskort, som ju annars brukar kosta som ett helt gäng skjortor.
... och inte bara skriva program som körs i user-miljö.

Om du med detta menar realtidstrådar, så ska man nog vara medveten om att det finns flera skolor här. Dels kan man satsa på att köra trådar i kärnan, i vanliga moduler egentligen, men med nån typ av tillagt API för att göra det. RTAI funkar så. Går att göra utan tillägg också, men då hamnar det nog mest i kategorin fulhack, och jag tror inte du får med det på kernel.org iaf.
En annan skola är att köra ett litet OS som i sin tur kör dels Linux, dels dina realtidstrådar. Kommer inte på nåt bra exempel, men tänk ut ett fånigt namn med "microkernel" med nånstans så hittar du säkert nåt.
En tredje variant är att försöka göra kärnan så pass duktig att den kan schemalägga en usermode-process så pass deterministiskt snabbt att man fortsätta som vanligt, med drivare för att hantera hårdvaran, och usermode-processer för att använda sagda hårdvara. Med den fantastiska nya egenskapen att saker och ting faktiskt går att lita på, tidsmässigt. Dock blir det ju alltid fler hopp mellan kernelmode och usermode med en sån taktik.
Personligen så får jag lite utslag av första och andra alternativet. Det är väl å andra sidan dom som uppvisar bäst prestanda i praktiken. Skulle tippa på att dom slutat i ett och annat magsår också. Vad gäller det tredje så vill jag minnas att det har funnits benchmarks på x86 med worst case runt 50 mikrosekunder på en 1GHz, och det är ju rätt bra för att vara grejtiss. Vet inte om nån annan arkitektur kommit ikapp, det vore ju kanske mer intressant med en Arm eller en PowerPC än x86 i de flesta lägen, innan Atomen blir var ingenjörs egendom iaf.
Det var ett tag sen jag grottade i det här, och det fanns egentligen aldrig tid mer än för att konstatera att realtidsprestandan inte var alldeles mogen på den plattform det gällde då, så ta det med en matsked salt. Nån bra bok har jag egentligen aldrig hittat, det finns kanske nån vettig bok om inbyggda system och linux, men nåt som är aktuellt och handlar om realtidslinux har jag inte sett. Vill du bara skriva drivare så är O'Reillys LDD bra, men inte helt aktuell överallt. Har du väl kommit så långt att du börjat knappa så märker du dock snart vad som inte stämmer, och du har dessutom hunnit komma på var du ska titta för att se vad som gäller nu.
Re: Embedded Linux-bok
Postat: 27 januari 2009, 21:14:59
av Henrik
Finns det någon defacto-standard för vad som definierar realtidsprestanda?
Re: Embedded Linux-bok
Postat: 27 januari 2009, 21:33:29
av Mupp
Njae, det kan man väl inte säga, jag tycker inte det iaf. För mig handlar realtidsprestanda mer om spridning än om absoluta värden. Mjuk realtid kan man väl säga handlar om saker som inte är farliga, och där är det väl intressant att svarstider hamnar under en viss gräns i 99% av fallen, eller 99.9% osv. Hård realtid handlar enligt min mening enbart om det sämsta fallet, att vad som än händer så hamnar svarstiden aldrig över en viss gräns. Var man sen sätter gränsen beror på applikationen, och sen får man välja den plattform som klarar den satta gränsen.
Jag har en bestämd känsla av att jag läst den där benchmarken om x86, men jag vet inte var, och jag får inte vara uppe längre nu så jag kan inte leta på den. Men 50 mikrosekunder i Linux är jävligt snabbt, om det handlar om worst case. För en ARM9 (180 MHz) hamnade kravet i en applikation jag känner till på 0.5-1 millisekund, och det klarade inte vanilla-kärnan då, ca 2-3 år sen. Jag har inte testat nåt nyligen, men jag skulle bli glatt överraskad om kärnan klarade det nu. Fyll i, den som vet!
Re: Embedded Linux-bok
Postat: 28 januari 2009, 09:27:54
av blueint
På nyare FreeBSD/Linux versioner går det visst att byte schedulern som modul. Så då borde det gå att modifiera den för att hantera ens egna realtids "trådar".
För mig är realtid, när man vet att t.ex. en insignal besvaras inom maximalt X µs. Kan vara rätt bra om man hanterar någon form av reglering
