Linux and mobile telephony
Posted Dec 5, 2002 10:07 UTC (Thu) by
jonth (subscriber, #4008)
Parent article:
Linux and mobile telephony
I've worked in the mobile comms industry for 8 years, and spent most of that time down in layer 1, but I've also implemented the GSM circuit switched data stack on the side. Linux has never been considered as a serious contender in any of the companies I've worked in, or sold to (and I've been to most of the tier 1s and a lot of tier 2 and 3s.)
Current vanilla mobile phones (GSM and GPRS with a not very sophisticated MMI) run in something like 1-2MB Flash and 256KB RAM on a processor with maybe 10 MIPs. Typically 20-30KB of the code footprint is the OS, and the rest is protocols and MMI. What we need in an OS is something small and light, not feature rich. Proper RTOSs like Nucleus or HIOS are used in these devices for this reason. We don't want sophisticated schedulers, we don't want fancy VM, we want minimal resource usage, guaranteed (fast) latencies, and completely deterministic behaviour. When I call a function to allocate memory, I want to know that it is guaranteed that the function will return with my memory in a specified number of microseconds. Linux, for all its strengths, is not suitable for this purpose. Neither, for that matter, is any Micro$oft OS I've come across. To give you an idea of the sort of timescales we deal with, the GSM/GPRS frame rate is 4.5 ms, and there are things than must be processed in the GPRS stack that have to happen in fractions of that. On a 10 MIP processor, this is not a trivial problem. (It was even worse in the old days. Back then we only had 1-2 MIPs and a similar sort of problem.)
IMO, as the PDA and mobile device markets converge, there will be a place for general purpose OSs like Linux or Pocket PC, but typically the architecture of these devices consists of several processors - usually one DSP for the signal processing, one microcontroller for the 'modem' functionality and then something a bit more sophisticated for the applications processor - this is the bit that has lots of RAM/ROM, runs at hundreds of MHz, and may run something like Symbian or Pocket PC - or Linux. The other bits either operate without an OS at all, or use an RTOS - eCos, uCOS, Nucleus, whatever.
Clearly, we will ultimately converge the modem and applications processors. As PDA type processors get more capable, the hard real-time constraints we have to deal with in the mobile world become much easier to acheive, and the general purpose OSs can start to compete. In a Linux based world, I'd use things like RTLinux or RTAI to provide the modem part, and then put the application part in Linux.
(
Log in to post comments)