I would like to create my own smartphone OS. I know C, C++ and I am currently working with assembly. I am completely clueless, how can I get started?
I would like to create my own smartphone OS. I know C, C++ and I am currently working with assembly. I am completely clueless, how can I get started?
I would study Android and build a toolchain to run and develop Android on your desktop or laptop. If that is not hardcore enough, I would look into webos, maemo, or meego, or any of a handful of OS's that are Waiting for Godot.
(Hint: Godot never comes.)
Last edited by tgalati4; May 12th, 2013 at 01:30 AM.
-------------------------------------
Oooh Shiny: PopularPages
Unumquodque potest reparantur. Patientia sit virtus.
So what you are suggesting is taking the source code of an existing smartphone OS and tweaking it? Also I did not understand that part with waiting for Godot
I suggest you start by learning MINIX. MINIX was created by Andrew S. Tanenbaum to teach the concepts used in operating systems.
And for those with insatiable appetites for trivia, here is Linus Torvalds 's announcement of Linux on the MINIX newsgroup.
Just my 0.00000002 million dollars worth,
Shawn
Programming is as much about organization and communication as it is about coding.
Thanks for the reply, but can you be more specific about "learning MINIX?" I found this book 102-1327526-9316154 and it sesms like a good introduction in operating systems but I don't know if it will help me on developing for mobile.
Just my 0.00000002 million dollars worth,
Shawn
Programming is as much about organization and communication as it is about coding.
So I could for example study the code of MINIX and add support for phone hardware?
Just my 0.00000002 million dollars worth,
Shawn
Programming is as much about organization and communication as it is about coding.
Since Android has a large user base and will probably be around for a while, it's worth spending some time to understand the Linux-like kernel that Android runs on. Ubuntu phone will probably run on the Android kernel as well, so that is another phone OS to study. Once you understand Android, you can compare it to Maemo, Meego, WebOS and several other phone operating systems so you can see the similarities and differences. When you have that knowledge, then you can start writing your own phone OS.
Or start with a blank page and just start coding.
-------------------------------------
Oooh Shiny: PopularPages
Unumquodque potest reparantur. Patientia sit virtus.
Well, first off, finish learning Assembly and then practice using Assembly in home-made hardware using transistors, resistors, etc. Once you have some experience under your belt with using Hardware AND Assembly, then you could begin learning how to implement C alongside Assembly properly. Once that step is accomplished, and you have a bare-bones computer, you could develop a GUI for your machine.
Check out this link: http://www.homebrewcpu.com/construction.htm
Of course, that process above might take years, and as much of a painstakingly hard time it is to get such a meager harvest (4-8bit CPU @ ~1Mhz) you'll have a new found respect for the old fogies back in the 70's and 80's that had to put up with this crap.
However, fortunately for you there is such a thing as an internet with bountiful information to save you from this hell. what is this thing that will save me you ask? Why, it's LinuxFromScratch of course!
http://www.linuxfromscratch.org/
Remember, Android uses the same kernel as Linux, so do not think for one second that LFS is only for desktops. And most importantly, patience is important and DO NOT CUT CORNERS!
Goodluck!
Bookmarks