|
lordghost |
new kernel |
04-05-2010 08:54 |
|
|
lordghost |
Black Lord
Registered: Oct 2005
Posts: 232 (0.03 al dì)
Location: Milan
Corso: Informatica
Anno: 3
Time Online: 2 Days, 9:48:49 [...]
Status: Offline
Edit | Report | IP: Logged |
new kernel
C'è qualcuno interessato a sviluppare un nuovo kernel didattico?
Giusto per dar senso a quello che si dice a lezione
È ovviamente richiesta una minima conoscenza di assembly e C
__________________
My 3D blog: http://www.webgl.it
|
04-05-2010 08:54 |
|
|
| |
|
lordghost |
Ho impostato alcuni punti fondamentali da cui part ... |
09-05-2010 10:32 |
|
|
lordghost |
Black Lord
Registered: Oct 2005
Posts: 232 (0.03 al dì)
Location: Milan
Corso: Informatica
Anno: 3
Time Online: 2 Days, 9:48:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Ho impostato alcuni punti fondamentali da cui partire. Il kernel che ho in mente dovrebbe inglobare molte caratteristiche d'avanguardia nascendo da una concezione nuova di kernel.
Dovrebbe essere un kernel assolutamente modulare che si autoadatta all'ambiente in cui opera.
L'idea principale è un kernel basato sui principali algoritmi di intelligenza artificiale ed è quindi in grado di automodificarsi a seconda dell'uso dell'utente.
Inoltre grazie ad una banca dati centralizzata ogni kernel può reperire informazioni sull'evoluzione di tutte le entità kernel, ottenendo così uno sviluppo decentrato con una potenza algoritmica senza pari.
Un'altro punto fondamentale sono i nuovi sistemi di user interface ed le novità in campo hardware che se sfruttate al massimo potrebbero permettere la creazione di un sistema operativo altamente vettorializzato.
Se qualcuno è interessato si potrebbe mettere in piedi un team ed entro un anno al massimo potremmo già distribuire una prima versione funzionante sbaragliando così l'attuale mercato con un prodotto d'avanguardia dalle potenzialità senza precedenti.
__________________
My 3D blog: http://www.webgl.it
|
09-05-2010 10:32 |
|
|
| |
|
fain182 |
non per frenare il tuo entusiasmo... ma tu hai vag ... |
10-05-2010 09:38 |
|
|
fain182 |
dsy newser
Registered: Apr 2008
Posts: 126 (0.02 al dì)
Location: Milano
Corso: informatica
Anno: 3
Time Online: 2 Days, 1:09:39 [...]
Status: Offline
Edit | Report | IP: Logged |
non per frenare il tuo entusiasmo... ma tu hai vagamente presente quanto lavoro c'è dietro un kernel?
e vuoi fare un intero sistema operativo in un anno?
|
10-05-2010 09:38 |
|
|
| |
|
lordghost |
Tutti hanno iniziato da zero, se non si comincia d ... |
10-05-2010 12:47 |
|
|
lordghost |
Black Lord
Registered: Oct 2005
Posts: 232 (0.03 al dì)
Location: Milan
Corso: Informatica
Anno: 3
Time Online: 2 Days, 9:48:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Tutti hanno iniziato da zero, se non si comincia da qualche punto è ovvio che poi sembra impossibile farlo. L'ottimismo non ha mai ucciso nessuno
Disse un vecchio saggio che è difficile raggiungere la luna, ma se punti a raggiungere una lontana stella male che vada sei comunque arrivato alla luna
__________________
My 3D blog: http://www.webgl.it
|
10-05-2010 12:47 |
|
|
| |
|
DarkSchneider |
l'obiettivo è incredibilmente ambizioso, ma mi se ... |
13-05-2010 10:02 |
|
|
DarkSchneider |
Why so serious?
Registered: Feb 2004
Posts: 1250 (0.16 al dì)
Location: Brescia
Corso: Informatica
Anno: out of bounds :/
Time Online: 26 Days, 1:01:59 [...]
Status: Offline
Edit | Report | IP: Logged |
l'obiettivo è incredibilmente ambizioso, ma mi sembra si parlasse di kernel didattico, non di windows 8 ...
e concordo che da qualche parte bisogna pure cominciare ....
comunque, bello il proverbio, non lo conoscevo, ma in parole povere dice quello che ho sempre pensato pure io
|
13-05-2010 10:02 |
|
|
| |
|
TheKaneB |
Scusa, ma come intendi integrare il concetto di In ... |
13-05-2010 14:09 |
|
|
TheKaneB |
.primate.
Registered: Aug 2009
Posts: 63 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 15:29:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Scusa, ma come intendi integrare il concetto di Intelligenza Artificiale con lo sviluppo degli algoritmi interni del kernel?
Tutti gli algoritmi di IA, ma anche gli algoritmi genetici, il simulated annealing, gli algoritmi evolutivi e via discorrendo, sono utili per creare algoritmi che abbiano un certo margine di fault tolerance.
Ad esempio non mi aspetto che un robot con visione artificiale riconosca correttamente tutti gli oggetti che gli si pongono davanti, ma mi accontento di una percentuale di successo del 90%.
Se un kernel ti garantisce che (ad esempio) la tua memoria virtuale sia mappata correttamente con un 90% di possibilità di successo, significa che nel 10% dei casi due processi stanno mappando la stessa pagina e quindi avrai serissimi problemi di race conditions...
Ecco, io ho fatto solo un esempio magari stupido, ma gradirei capire in che modo (un modo possibilmente concreto, e non filosofico) intendi sfruttare questi algoritmi di natura prettamente euristica, per risolvere problemi di natura booleana (cioè problema risolto / non risolto).
Per il resto, se ti interessa, avrei già iniziato un mio progetto simile qualche anno fa... si tratta di un microkernel per sistemi distribuiti e decentralizzati, dovrebbe consentire l'esecuzione decentralizzata di processi con tecniche adattive. In questo caso gli algoritmi di IA sono utili per garantire un buon livello di load balancing tra gli host della macchina distribuita...
Per ottenere lo scopo ultimo (la completa decentralizzazione) però, sto progettando una virtual machine con relativo compilatore di bytecode, per rendere la macchina indipendente dall'architettura degli host. Questo è necessario in quanto l'obiettivo del progetto dovrebbe essere quello di creare delle reti casalinghe usando PC, Smartphone, Console da gioco, Set-Top-Boxes e quant'altro (tutti con combinazioni OS/Arch potenzialmente diversi) in modo tale che venga creato un piccolo sistema virtualizzato all'interno del quale puoi usare le stesse applicazioni (e lo stesso ambiente) da ogni dispositivo connesso al "cloud" (odio questa parola, ma oggi va di moda).
Tutte le macchine del cloud contribuiscono a far girare i processi, in modo proporzionale alle proprie risorse hardware (e anche ai settaggi dell'ambiente). Questo, in teoria, dovrebbe comportare la possibilità di aumentare a piacere la potenza del cloud semplicemente aggiungendo nuovi apparecchi, scaricando su questi un client che rappresenti l'istanza "locale" del sistema operativo decentralizzato.
I client comunicheranno tramite una mesh P2P, anch'essa costruita sulla base di algoritmi adattivi (e qui rientra in gioco l'AI).
Comunque... mostraci qualche dettaglio un po' più tecnico, sul quale poter discutere, altrimenti parliamo solo di filosofia :p
__________________
Software Failure: Guru Meditation
|
13-05-2010 14:09 |
|
|
| |
|
DarkSchneider |
[QUOTE][i]Originally posted by TheKaneB [/i]
... |
13-05-2010 15:36 |
|
|
DarkSchneider |
Why so serious?
Registered: Feb 2004
Posts: 1250 (0.16 al dì)
Location: Brescia
Corso: Informatica
Anno: out of bounds :/
Time Online: 26 Days, 1:01:59 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by TheKaneB
Scusa, ma come intendi integrare il concetto di Intelligenza Artificiale con lo sviluppo degli algoritmi interni del kernel?
Tutti gli algoritmi di IA, ma anche gli algoritmi genetici, il simulated annealing, gli algoritmi evolutivi e via discorrendo, sono utili per creare algoritmi che abbiano un certo margine di fault tolerance.
Ad esempio non mi aspetto che un robot con visione artificiale riconosca correttamente tutti gli oggetti che gli si pongono davanti, ma mi accontento di una percentuale di successo del 90%.
Se un kernel ti garantisce che (ad esempio) la tua memoria virtuale sia mappata correttamente con un 90% di possibilità di successo, significa che nel 10% dei casi due processi stanno mappando la stessa pagina e quindi avrai serissimi problemi di race conditions...
non credo che lui parli di utilizzare euristica per mansioni mission-critical come la gestione della memoria o dei processi, io ho inteso qualcosa di più easy tipo che il sistema operativo si adegui all'utilizzo dell'utente decidendo di volta in volta se adottare un algoritmo fcfs oppure sjf, sulla base di certi parametri statistici raccolti, oppure che si ottimizzi per un uso batch anzichè ad alta interattività, questo facendo due esempi da quattro soldi che non mi sembrano irrealizzabili ....
è chiaro che sto fantasticando, anche perchè è lordghost che deve dirci cosa intendeva...
però mi defilo dal discorso, non ho ancora dato, ahimè, sistemi operativi , mentre vedo che thekaneb, da quel che ha scritto, sa proprio il fatto suo ....
Last edited by DarkSchneider on 13-05-2010 at 15:39
|
13-05-2010 15:36 |
|
|
| |
|
lordghost |
Il linea di principio quello a cui pensavo è infa ... |
13-05-2010 17:48 |
|
|
lordghost |
Black Lord
Registered: Oct 2005
Posts: 232 (0.03 al dì)
Location: Milan
Corso: Informatica
Anno: 3
Time Online: 2 Days, 9:48:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Il linea di principio quello a cui pensavo è infatti una modulazione delle impostazioni del kernel in base all'utilizzo dell'utente con una specie di profiling. Anche qualcosa del genere: cercare di prevedere il comportamento di certe applicazioni più o meno conosciute e magari condividerne le caratteristiche (sto fantasticando).
Per esempio anche sul filesystem, cercare di organizzarlo per conoscenza del contenuto e non solo come stream di byte, abbiamo un so che impara i comportamenti di un file.
I computer al giorno d'oggi rimangono molto spesso in idle e potrebbe giovare l'utilizzo di algoritmi burst durante questi tempi morti.
In secondo luogo era ovvio che non ho nessun progetto in tasca, nè pensavo di brevettare niente di fatto anche perché devo ancora passare sistemi operativi
Infatti mi chiedevo se negli orizzonti del dsy ci fosse qualcuno con il mio stesso interesse da coltivare. L'unica cosa che ho fatto per adesso è un bootloader che legge uno stage2 che lancia un kernel pmode in C con una banale console.
__________________
My 3D blog: http://www.webgl.it
|
13-05-2010 17:48 |
|
|
| |
|
TheKaneB |
beh, se sviluppate come si deve le tue sono delle ... |
14-05-2010 01:21 |
|
|
TheKaneB |
.primate.
Registered: Aug 2009
Posts: 63 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 15:29:49 [...]
Status: Offline
Edit | Report | IP: Logged |
beh, se sviluppate come si deve le tue sono delle buone idee :-)
Il mio kernel fa il boot su x86 tramite GRUB, su PPC (Nintendo Wii) e su ARM (Nintendo DS). Intendo costruirci sopra una VM per i motivi che ho detto sopra, in modo da appianare le differenze architetturali, nonostante mi piaccia molto programmare a basso livello :-)
Teniamoci in contatto, quando vorrai mettere mano seriamente al codice fammi un fischio ;-)
__________________
Software Failure: Guru Meditation
|
14-05-2010 01:21 |
|
|
| |
|
TheKaneB |
[QUOTE][i]Originally posted by TheKaneB [/i]
... |
14-05-2010 01:28 |
|
|
TheKaneB |
.primate.
Registered: Aug 2009
Posts: 63 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 15:29:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by TheKaneB
beh, se sviluppate come si deve le tue sono delle buone idee :-)
Il mio kernel fa il boot su x86 tramite GRUB, su PPC (Nintendo Wii) e su ARM (Nintendo DS). Intendo costruirci sopra una VM per i motivi che ho detto sopra, in modo da appianare le differenze architetturali, nonostante mi piaccia molto programmare a basso livello :-)
Teniamoci in contatto, quando vorrai mettere mano seriamente al codice fammi un fischio ;-)
Ah dimenticavo, al momento ho soltanto un abbozzo di filesystem basato su FAT16/32, un task manager (gestisce delle entità simili ai processi, ma con meno proprietà rispetto ai classici processi Unix), uno scheduler round-robin preemptive basato su thread (sicuramente pieno di bug da fixare o da rifare da capo), un memory manager (al momento senza memoria virtuale, visto che su ARM946E-S manca la MMU), una semplice console di debug (per ora solo su x86 e su ARM, manca quella per PPC) e un abbozzo di driver model sul quale ho impiantato i driver per la tastiera (su x86 soltanto), per il framebuffer e per il touchscreen (soltanto su DS).
Comunque opterei per una riscrittura completa, perchè negli anni ho notato che molte cose le avrei fatte meglio, soprattutto nel comparto Filesystem. Anche perchè le mie abilità di programmatore sono aumentate notevolmente negli ultimi 3 anni grazie ad alcune importanti esperienze lavorative :-)
__________________
Software Failure: Guru Meditation
|
14-05-2010 01:28 |
|
|
| |
|
TheKaneB |
[QUOTE][i]Originally posted by fain182 [/i]
... |
14-05-2010 01:40 |
|
|
TheKaneB |
.primate.
Registered: Aug 2009
Posts: 63 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 15:29:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by fain182
non per frenare il tuo entusiasmo... ma tu hai vagamente presente quanto lavoro c'è dietro un kernel?
e vuoi fare un intero sistema operativo in un anno?
dipende cosa intendi per sistema operativo :-)
un sistema embedded real-time per applicazioni specifiche (ad esempio robotica) si può sviluppare in un anno. Certo, se intendi un sistema operativo general purpose per l'home computing, di anni ce ne vogliono almeno 5 con 50 programmatori al lavoro h24, senza ferie, ne pausa pranzo
__________________
Software Failure: Guru Meditation
|
14-05-2010 01:40 |
|
|
| |
|
lordghost |
Molto interessante il tuo lavoro, di cose da impar ... |
14-05-2010 09:44 |
|
|
lordghost |
Black Lord
Registered: Oct 2005
Posts: 232 (0.03 al dì)
Location: Milan
Corso: Informatica
Anno: 3
Time Online: 2 Days, 9:48:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Molto interessante il tuo lavoro, di cose da imparare ne ho ancora parecchie visto che in confronto al tuo lavoro io "ho appena iniziato". Purtroppo l'unico problema è che in questo periodo riesco a dedicarci poco tempo e quindi vado molto a rilento.
Una volta sbrogliato questi ultimi esami vorrei dedicarmi più seriamente.
Hai qualche libro da consigliarmi? Oltre al Tanenbaum si intende
Ho visto che c'è Protected Mode, o simile, e mi sembra interessante come libro visto che dovrebbe trattare aspetti prettamente di basso livello. Ho il difetto/pregio di voler capire quello che faccio al 100%, poichè non mi accontento di copiare codice indiscriminatamente
Un'altra cosa: ho visto che alcuni sistemi operativi implementano le opengl, hai qualche idea di come si possa fare una cosa del genere? Non credo che Khronos sparga liberamente il codice sorgente, però ho pensato che basterebbero le librerie da linkare con le proprie syscall. Brancolo un pò nel buio però sarebbe figo.
Riguardo al tuo kernel, come dialoghi con le periferiche? Usi le chiamate del bios ho hai implementato dei driver che si interfacciano direttamente ai controller?
Ma per curiosità poi come lo testi il compilato? Non sono pratico di DS, esiste un emulatore o qualcosa del genere?
__________________
My 3D blog: http://www.webgl.it
|
14-05-2010 09:44 |
|
|
| |
|
TheKaneB |
[QUOTE][i]Originally posted by lordghost [/i]
... |
14-05-2010 09:54 |
|
|
TheKaneB |
.primate.
Registered: Aug 2009
Posts: 63 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 15:29:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by lordghost
Molto interessante il tuo lavoro, di cose da imparare ne ho ancora parecchie visto che in confronto al tuo lavoro io "ho appena iniziato". Purtroppo l'unico problema è che in questo periodo riesco a dedicarci poco tempo e quindi vado molto a rilento.
Una volta sbrogliato questi ultimi esami vorrei dedicarmi più seriamente.
Hai qualche libro da consigliarmi? Oltre al Tanenbaum si intende
Ho visto che c'è Protected Mode, o simile, e mi sembra interessante come libro visto che dovrebbe trattare aspetti prettamente di basso livello. Ho il difetto/pregio di voler capire quello che faccio al 100%, poichè non mi accontento di copiare codice indiscriminatamente
ti consiglio di leggerti i manuali tecnici di sistemi operativi esistenti. Qualcosa sugli internals di FreeBSD, BeOS, AmigaOS, ecc...
Un'altra cosa: ho visto che alcuni sistemi operativi implementano le opengl, hai qualche idea di come si possa fare una cosa del genere? Non credo che Khronos sparga liberamente il codice sorgente, però ho pensato che basterebbero le librerie da linkare con le proprie syscall. Brancolo un pò nel buio però sarebbe figo.
Vanno implementate come libreria in user space. Il kernel deve soltanto esporre una singola syscall, che consente il passaggio di un messaggio (un paio di numeri interi e qualche puntatore) al driver della scheda video. Questo messaggio poi conterrà i comandi GL, che verranno impacchettati dalla libreria in User Space.
Riguardo al tuo kernel, come dialoghi con le periferiche? Usi le chiamate del bios ho hai implementato dei driver che si interfacciano direttamente ai controller?
interfaccia diretta con il controller. In genere basta avere gli indirizzi dei registri di controllo, e scriverci dentro dei valori speciali, rispettando un certo timing. Il datasheet del componente di solito fornisce tutte le info necessarie.
Ma per curiosità poi come lo testi il compilato? Non sono pratico di DS, esiste un emulatore o qualcosa del genere? [/B]
Ci sono vari emulatori, come no$gba, DeSmuMe, iDeaS e altri. Ci sono anche degli adattatori microsd->cartuccia per caricare il codice direttamente sull'hardware e testarlo dal vivo, però così non hai supporto di debugging, quindi meglio lavorare in prima istanza con l'emulatore.
__________________
Software Failure: Guru Meditation
|
14-05-2010 09:54 |
|
|
| |
|
TheKaneB |
allora... a che punto siamo qui? :D
... |
01-07-2010 14:50 |
|
|
TheKaneB |
.primate.
Registered: Aug 2009
Posts: 63 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: 3
Time Online: 15:29:49 [...]
Status: Offline
Edit | Report | IP: Logged |
allora... a che punto siamo qui?
sei pronto per buttare giù due linee di codice? io ti aspetto :p
__________________
Software Failure: Guru Meditation
|
01-07-2010 14:50 |
|
|
| |
|
lordghost |
Che tristezza, non riesco più a concederci tempo. ... |
01-07-2010 17:24 |
|
|
lordghost |
Black Lord
Registered: Oct 2005
Posts: 232 (0.03 al dì)
Location: Milan
Corso: Informatica
Anno: 3
Time Online: 2 Days, 9:48:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Che tristezza, non riesco più a concederci tempo.. troppi impegni tra lavoro, gli ultimi esami, tesi, gruppo musicale, sport, un po di vita sociale.. sono alla frutta.
Ma non ho fretta
__________________
My 3D blog: http://www.webgl.it
|
01-07-2010 17:24 |
|
|
| |
|
All times are GMT. The time now is 14:42. |
|
|
|
|
|
|
|
| |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|