Ik ben met een projectje bezig, waar ik een bepaalde functionele core in heb. Die core bevat een soort van virtueel file-systeempje. Waar ik tekst, binaire data en functies in kan mouten.
Het word een soort van (bash, maar toch ook weer helemaal niet, achtige) shell. Je tikt het path in van een funtie en dan voert ie dat uit. Allemaal vanuit het RAM.
Nu moeten de functies per pakketje uit een dll gehaald worden, die dynamisch ingeladen word. Je kan zo dus runtime de functionalitiet van de core uitbreiden.
Dat werkt nog niet helemaal, maar dat moet geen probleem worden, zoek ik allemaal nog wel uit.
Waar ik wel mee zit, de beveiliging. Ik wil het uiteindelijk multi-user gaan maken. Maar stel je voor je bent als user ingelogd en je laad een module in voot het afspelen van mp3's. Wat vanaf dan mogelijk is vanuit mijn shell. Als die module een vette bug genereerd, is dat een probleem, omdat niet alleen de mp3-module door het OS het geheugen uit word gepleurd, maar ook de core.
Die draaien immers in dezelfde process space.
Ik heb hier nog niet echt een idee voor, en om nou elk plugin-pakketje in een appart process op te laten starten en dan via sockets (ofzo) te gaan communiceren lijkt me ook een beetje omslachtig.
Iemand suggesties...
Het word een soort van (bash, maar toch ook weer helemaal niet, achtige) shell. Je tikt het path in van een funtie en dan voert ie dat uit. Allemaal vanuit het RAM.
Nu moeten de functies per pakketje uit een dll gehaald worden, die dynamisch ingeladen word. Je kan zo dus runtime de functionalitiet van de core uitbreiden.
Dat werkt nog niet helemaal, maar dat moet geen probleem worden, zoek ik allemaal nog wel uit.
Waar ik wel mee zit, de beveiliging. Ik wil het uiteindelijk multi-user gaan maken. Maar stel je voor je bent als user ingelogd en je laad een module in voot het afspelen van mp3's. Wat vanaf dan mogelijk is vanuit mijn shell. Als die module een vette bug genereerd, is dat een probleem, omdat niet alleen de mp3-module door het OS het geheugen uit word gepleurd, maar ook de core.
Die draaien immers in dezelfde process space.
Ik heb hier nog niet echt een idee voor, en om nou elk plugin-pakketje in een appart process op te laten starten en dan via sockets (ofzo) te gaan communiceren lijkt me ook een beetje omslachtig.
Iemand suggesties...