Home
Accesso / Registrazione

Andrea Righi

ritratto di Andrea Righi

User title

User

PROFILO

Profilo Google+

Google+

Cronologia

Membro da
2 anni 1 settimana
Blog
Vedi messaggi recenti del blog

 

 

Ultimi POST

ritratto di Andrea Righi

Riservato agli Abbonati PremiumCome funziona l'I/O su file in Linux

Linux
ritratto di Andrea Righi

Riservato agli Abbonati PLATINUMOttimizzare i tempi di Boot sulla Raspberry Pi

Embedded PC Linux & Windows
ritratto di Andrea Righi

Riservato agli Abbonati PLATINUMEmbedded GNU/Linux partendo da zero: test sulla Raspberry Pi

Linux

Ultimi Commenti

Esatto. Il discorso sulla stratificazione dell'I/O vale per tutte le distro Linux, perché il kernel è sempre lo stesso, indipendentemente dalla particolare distro scelta. Per quanto riguarda l'esempio pratico possiamo dire che vale per tutte le distro e molto di più. Di fatto vale su tutti i sistemi POSIX-compliant (cioè che rispettano la standardizzazione delle API per sistemi UNIX), quindi anche BSD, Mac OS X, ... Per i microkernel, dipende, se il sistema in questione soddisfa gli standard POSIX allora vale, altrimenti non è detto.
Lo swap entra in gioco quando il sistema si trova a corto di memoria, per fare un po' di spazio in memoria centrale il kernel puo` decidere di liberare memoria invalidando varie cache, es. la cache dei file (page cache), oppure spostare temporaneamente memoria cosiddetta anonima (cioe` che non ha una rispettiva backing store su file - es. la memoria allocata con malloc()) su un'area di swap. In questo caso non si parla propriamente di I/O su file, trattandosi di memoria anonima e essendo completamente gestito dal kernel, cioe` lo user-space non ha modo di controllare esattamente cosa swappare. Tipicamente le pagine da swappare vengono scelte identificando un working set (cioe` memoria correntemente piu` utilizzata dal sistema) e spostando su swap alcune pagine meno utilizzate *non* appartenenti al working set. Al momento che una pagina swappata viene richiesta di nuovo dal sistema, il kernel intercetta questo evento tramite il meccanismo di page fault e provvede al caricamento della...
Per fare porting di Linux su un'architettura "nuova" (immagino si riferisca a questo la domanda) e` necessario scrivere un layer di compatibilita` che andra` poi collocato sotto arch/arm/. Se hai i sorgenti di un kernel recente alla mano puoi provare a listare la directory arch/arm per avere un'idea delle varie architetture ARM correntemente suportate: $ ls arch/arm/ boot mach-ebsa110 mach-mv78xx0 mach-s5pc100 Makefile common mach-ep93xx mach-mvebu mach-s5pv210 mm configs mach-exynos mach-mxs mach-sa1100 net crypto mach-footbridge mach-netx mach-shark nwfpe include mach-gemini mach-nomadik mach-shmobile oprofile Kconfig mach-highbank mach-nspire mach-socfpga plat-iop Kconfig.debug mach-imx mach-omap1 mach-spear plat-omap Kconfig-nommu mach-integrator mach-omap2 mach-sti plat-orion kernel mach-iop13xx mach-orion5x mach-...
Ciao Ivan, scusami per la risposta in ritardo. Allora, se ti interessa capire come costruire una board che supporti Linux mi viene difficile darti consigli, perche` non ho esperienza in merito. Io ho sempre lavorato su hardware gia` fatto, sono un softwarista / kernel-ista puro. Al limite mi limito a dire "questo hardware non va, fa schifo, rifatelo". :) Per il discorso porting Linux, qualora ti interessase imparare come fare, io a scopo didattico ti consiglieri di partire da una board esistente che ha gia` un supporto Linux completo, es. una RaspberryPi o una BeagleBoard. Partendo da un'architettura del genere proverei ad esempio a riscrivere un driver di un dispositivo semplice, un RTC, un driver per controllare dei semplici pin di GPIO, anche accendere e spengere un LED via procfs o sysfs, roba del genere insomma. Se qualcosa non funziona o non sai come fare puoi consultare il driver originale se c'e`, oppure puoi consultare un driver che fa qualcosa di simile, se ti servono delle...
Grazie, mi fa piacere che l'articolo ti abbia incuriosito. Allora, pasticci troppo grossi sulla RPi in genere non se ne dovrebbero fare... al limite basta ri-flashare l'SD card per tornare ad uno stato funzionante. :) Ad ogni modo sentiti libero di contattarmi mandando un messaggio o postando un commento qua sotto se hai bisogno di aiuto o riscontri errori, problemi, etc. nel seguire i passaggi riportati sopra.
Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 3 utenti e 45 visitatori collegati.

Ultimi Commenti