Door Dimitri Verspecht Borg voor Palm Door Dimitri Verspecht
Borg porten naar palm Borg router porten Routerless borg porten 2 bovenstaande samenbrengen in volledige Borgport
Borg router porten PalmOS ondersteunt linux berkeley sockets Linux Borg Router code is portable naar palmos Toevoegen extra functies om berkeley socket ondersteuning in palm mogelijk te maken Borg makefiles aanpassen om noodzakelijke files te includen. Gebruikte functies in de library uittesten in testprogramma’s op de visor.
Berkeley socket support Palmos ondersteund 2 TCP/IP api’s : -NetLibrary API (eigen aan palmos) -Berkeley API (uitbreiding van de NetLibrary d.m.v. « glue » code) Berkeley API ondersteund de meest gebruikte TCP/IP socket functies uit linux Naast berkeley API nog enkele NetLib functies nodig voor totale controle & compatibiliteit. (Sluiten en openen van de NetLib) Berkeley API Net library API TCP/IP
_socket_initialise_() Berkeley API in borg Sockets.h StdPalm.h StdPalm.c _socket_initialise_() _socket_cleanup_() Standaard Router functies Include libraries met « glue » code Std Type declaraties Std Var declaraties Implemenatie v.d. Functies in Sockets.h & StdPalm.h Toevoegen enkele NetLibrary functies & « glue » code noodzakelijk. _socket_initialise_() opent de NetLibrary (Activeerd TCP/IP ondersteuning) Bestaat reeds in de StdFiles van alle platformen _socket_cleanup_() sluit de NetLibrary Is toegevoegd in alle StdFiles
Geheugen segmentatie Geheugenbeperkingen onder palmOS : -Elke Form (stukje programma) mag slechts een beperkte hoeveelheid geheugen gebruiken (64 Kb standaard, 128 kb max) Borg gebruikt uiteraard meer geheugen -Geheugen segmentatie over verschillende « forms » is nodig
Geheugen segmentatie Segment controller maken -Maakt forms aan naarmate geheugen nodig is -Beheert de segmenten -Weet naar welke form weg te schrijven -Weet uit welke form te lezen BORG (Memory manager) Segment controller Form Form Form Form Form Memory Memory Memory Memory Memory
Geheugen segmentatie De Segment controller zorgt er dus voor dat de borg geheugencontroler denkt dat het palmOS geheugen ongesegmenteerd is Benodigd voor geheugensegmentatie -De segmenter die forms aanmaakt/verwijdert en die ervoor zorgt dat voor borg het geheugen ongesegmenteerd lijkt. -Form creator die de invisible forms zal aanmaken -Form remover die overbodig geworden forms verwijdert
Reeds gedaan In StdPalm.h & c de nodige glue code en definities toegevoegd voor ondersteuning van de berkeley sockets De nodige borg Router functies in de StdPalm files gedeclareerd.
Mee bezig … Demoprogjes voor de visor aan het debuggen. -TCP/IP socket functies die gebruikt worden in de borg router demonstreren. De Borg makefiles aan het aanpassen zodat compilatie voor palmos mogelijk is (Al zal het voorlopig nog niet werken) Geheugen segmentatie probleem aan het analyseren
Te doen Routerless borg porten -Segmentatieprobleem verder uitwerken & implementeren -Berkeley socket API voor palm verder debuggen -Makefiles verder aanpassen voor PalmOS compilatie
Verband met thesis De meeting planner/mail-agent heeft een netwerkverbinding nodig & dus moet de borg router op een palmOS toestel werken Borg zelf is uiteraard nodig om de agents te runnen. (Segmentatie probleem, makefiles, …)