[ACCEPTED]-Is it possible for a single developer to write a simple mobile OS for android phones?-mobile-phones
If you mean from scratch: it would certainly 59 be possible. But it requires a lot of human 58 resources :-). Manufactures of mobile phones 57 often have hundreds of programmers, and 56 yet the SW it often filled with bugs :-).
Simplifying 55 things you could say that there's often 54 two SW modules in a mobile phone:
- The "UI OS" which handles display, sound and user input.
- The "Baseband OS" which handles communication towards the mobile network.
The UI 53 OS could be for example Linux or something 52 simpler. A vanilla Linux kernel can easily 51 run on almost any modern mobile phones.
The 50 second part is the baseband OS. This part 49 usually requires real time properties to 48 be able to handle communication with the 47 mobile network as the timing needs to be 46 precise when sending data in specific "time 45 slots".
There's only one catch: you 44 need to find a "open hardware mobile 43 phone" where to put the OS on. Telecom 42 operators often require rigorous security 41 measures on todays phones so it's very hard 40 to program your own OS on a phone out on 39 the market. Also you would need access to 38 the circuit board schematics, chip details 37 and so on, which is not going to happen 36 :-).
One idea could be OpenMoko which is 35 a "open phone project": http://wiki.openmoko.org/wiki/Main_Page or the 34 Google Android project.
Also, the CPU:s used 33 in todays phones, such as TI OMAP, are often 32 available via development boards such as 31 http://www.igep-platform.com/index.php?option=com_content&view=article&id=46&Itemid=55
The down thing here is that the board does 30 not contain a baseband chip to handle communication 29 towards the mobile network.
Edit: About building 28 and running SW for mobile phones. What happens 27 in the startup of a mobile phone depends 26 on the hardware platform obviously but something 25 like this could happen (this is also true 24 for most embedded systems):
- ASIC (which contains the CPU) starts up, resets itself and starts executing a so called boot strap (hard coded into the ASIC).
- The boot strap tries to set up flash chips connected to the ASIC.
- The boot strap loads SW from the flash into the SRAM of the chip (Integrated RAM on the ASIC silicon).
- The SW in SRAM sets up the SDRAM (timings et c) and loads the "OS" (or whatever SW you would want) into the SDRAM from the flash.
- The SW in SRAM sets the internal instruction pointer in the CPU to the SDRAM and thus the CPU core of the ASIC starts executing in the SDRAM.
- The SW in the SDRAM ("The OS") sets up timers, interrupts, memory management or whatever is needed.
- The SW could be whatever, an unlimited for loop, a full blown OS, or just a SW pulling some LED's hi or low.
If the ASIC would 23 have a NOR flash it could execute directly 22 without first uploading the SW into the 21 SDRAM.
The OS in the SDRAM could be a vanilla 20 Linux kernel. The only thing the Linux kernel 19 would need is a few information blocks such 18 as memory size, physical location of that 17 memory and so on (one way is using an ATAG 16 list). Of course it would also need to know 15 some of the internals of the ASIC, this 14 would be added to the Linux kernel. But 13 most chips out on the market today exist 12 in the Linux kernel already. Nokia has for 11 example contributed a lot of code to the 10 TI OMAP3430 adaption and this can be seen 9 in the kernel source code itself (arch/ directory 8 or similar). I am not certain which phones 7 from Nokia uses this chip, but it's probably 6 the high-end Linux and Symbian phones.
Giving 5 a more detailed answer than above would 4 require a few pages, so your best bet would 3 be to use the answers you got on SO and 2 try to use it to get more information from 1 elsewhere.
Good luck :-)
I think it would be difficult on your own, and 4 without detailed information regarding the 3 devices you expect to run it on. But if 2 you still want to try...
Symbian have just open sourced their entire mobile operating system. That might be 1 a good place to start.
Android is also open source, if you're not looking 4 to start from scratch. Otherwise, you'll 3 need to find documentation for your phone's 2 architecture. Do you have a particular phone 1 in mind?
Hopefully this is more Phantom and less Phantom 3 Menace (badoom-tish) but this person is 2 writing their own mobile operating system 1 and you might find the website interesting.
More Related questions