Too busy with work…
Have been too busy with work lately to even think about working on my project…
Well for those who haven’t noticed it yet, I have started to work a little bit on Toobo’s application architecture. For a start I have chosen to go with a multi-process model with each core functionality running as a separate process.
For example, I have split up the app into the following processes.
- The origin script – This is an odd one out in the following list. This script would startup any process that needs to be in place while Toobo is alive and running.
- Startup Manager – Manages any start up work like drawing a loading screen, going to the last saved screen etc.
- Standby Manager – Handles putting the device in standby and taking it out of standby mode. Provides hooks to perform any low priority tasks during standby.
- Shutdown Manager – Handles saving preferences, last visited screen, shutting down various subsystems cleanly before Toobo shuts down.
- Input Manager – Receives input, notifies the state machine, ignores keys when necessary.
- Sound Manager – Takes care of audio playback, mute & unmute mechanisms.
- Screen Manager – This guy is tied closely to the core state machine and contains the code that would help one draw a screen on toobo.
- more to come…
Of course, the directory structure and process architecture has not yet been finalized. This is still a work in progress. As and when I find issues with the architecture that I have picked I plan to go back a few steps and correct the issues. (Well in reality this is a tough one but I have to do what is right so that Toobo has a long life
)
I still need to decide on what IPC mechanism to use to communicate and synchronize various processes/threads. One of the ideas I thought that was cool even though it is a bit slower is to use Unix domain sockets to communicate between various processes. I can use netcat to test each core process independently and unit test them.
I still need to look into pre-existing solutions like SDL to manage the UI event loop… I will document any useful projects and ideas here when I come across them.
Gotto go for now…
December 28th, 2008 at 9:43 pm
What is the overall scope of the project?
What does it plan to achieve?
What is the overall memory needed for the Linux OS and drivers?
January 3rd, 2009 at 2:10 pm
The scope of the project is limited for the first phase. Check the following link for the road map – http://code.google.com/p/toobo/wiki/RoadMapVersionLaika
The goal of the project is to be able to create a simple linux based ‘web companion’ that is open source in both hardware [I am considering migrating to sbc's provided by beagleboard.org in the future for this.] and software aspects. When I say a web companion, I mean a device that helps you browse the web, use interactive web applications, experience online media, connect friends and family across countries using existing and new IM/VOIP technologies.
The key advantage of using toobo would be it’s simplicity in terms of UI, quick startup times, and it’s portability. Essentially, even people with minimum or no computer knowledge should be able to use the device.
Ideally, at some point, I would like to see a community of enthusiasts work on toobo and help write apps and improve the overall design.
Currently the board that I am using is from embeddedarm.com [TS7250] and it has 32MB of RAM. I haven’t really looked into the memory requirement of the kernel itself. But the zimage is roughly 1.4Megs and top tells me I am using around 4Megs of Ram which includes memory used by apache, sshd etc that I am running. As far as the drivers go, I only have a graphics lcd module inserted and it is roughly 20k in size…