The Neo FreeRunner smart phone
The Neo FreeRunner is a touch screen smart phone, which operating system is based on Linux. The phone is intended to be used by software developers familiar with Linux as the general consumer, but in time as development progress, this audience should broaden to all phone consumers. Software developers have taken the Neo FreeRunner to their heart because of the total freedom they have to use it, and to design software for it. In time the broader consumer will appreciate the high quality product, the performance of the phone, and the wide range of free software packages expected to emerge in time. This will allow users, to make the maximum use of the hardware by tailoring it to fit their needs.
Is it usable?
At present time the Neo FreeRunner is fully functional. It is used by many as a day-to-day phone. There are many phones with fully functional GPS, and there is good software (Locations, TangoGPS, Navit (for use in cars) and many more) to use, especially with OpenStreetMap. With the current shipping, the battery life is only a little over one day, and it has an alarm clock, media player, internet browser, game console, email reader and contacts manager: all in different version, which can be downloaded and installed (all open source and free). The new version called GTA07 is available.
How much does it cost?
The Neo FreeRunner is sold through many channels (this includes www.openmoko.com) and the official price has been set to ca. €290 , but the price may vary slightly from country to country.
Hardware specification of the Neo FreeRunner GTA02
![clip_image002[9] clip_image002[9]](http://www.allanjp.dk/image.axd?picture=WindowsLiveWriter/Isthemonolithicstructurethebestforasmart/1BB9D355/clip_image0029_thumb.jpg)
- Display- Topply o2.8, 480 x 640 pixels, VGA, 200 NIT minimum, resistance type touch
- User Interface Navigation- Touch screen on LCD, 2 control “buttons”, 1 Power button, 1 Aux for 911 emergency call
- Built-in 802.11b/g Radio (Atheros chipset AR6001 Flash version)
- Built-in Bluetooth 2.0 + EDR (CSR and support PCM audio , BC4 firmware version)
- Built-in 2D/3D graphics acceleration chip (S-Media 3362)
- 2 built-in Tri-Axis sensors (ST accelerometer LIS302DL)
- Built-in GPS Radio – -130 dBm with internal antenna, -157 dBm tracking on chipset specification, TTFF under 40 seconds with -130 dBm signal strength, and tracking (u-Blox)
- Antenna – Specialized antenna for best in hand hold GPS, GPRS and Wi-Fi/Bluetooth performance are required, -105dBm on receiving, Tx 30dbm+2 on GSM
- External Antennae – MMCX GPS connector
- GPRS Radio –GSM/GPRS radio. A Pre-PTCRB certified module will be preferred
- Linux – Linux kernel 2.6.24 or later Openmoko kernel
- USB - Client and Host-mode switchable (to be used for software downloading), provide host 5V power
The dicussion with back ground
Linux kernel 2.6 (Monolithic kernel)
The Linux kernel is developed by Linus Torvalds, but maintained by thousands of individuals. It is a monolithic operating systems structure, which is constructed in a layer fashion. The system is constantly enhanced to make it fit the needs of the marked (in embedded systems, PC systems and servers). It is enhanced so that it often changes its structure. System functions like the process and memory management, the process and thread scheduling, drivers and I/O is implemented in kernel space - where I/O communication are provided by modules, which can be inserted/removed in runtime – they are all built against the kernel. Now when the all that functionality is built against the kernel, this also means that if the kernel changes, so does the set of modules. To add or change features provided by the hardware, all the “layers” above the changed one also has to be changed, this is of course a worst case scenario, but it still if the concept change too much in the kernel, things such as modules ( I/O communication and parts of drivers) needs more than just a recompilation, it needs a complete code modification. The Linux 2.6 kernel does support soft real-time performance. This is done through a configuration of the kernel, to make the kernel fully preemptable, this is done with a new configuration option for the kernel, that changes the behavior of the kernel by allowing processes to be preempted high priority work is available to be done (if the standard 2.6 kernel is used, then when a userspace process makes a system call, a high priority process have to wait until the call is complete before getting access to the CPU).
The Microkernel
The idea of the Microkernel appeared in the late 1980’s, and the concept was to move as much as possible out of the kernel space (and into the processors first-level cache) and in to user space, meaning to reduce the kernel to basic process communication and I/O control and let the other system services live in user space in the form of normal processes also called daemons. There exist daemons for handling memory management, one for process management, one for managing drivers, and so on. Because the daemons do not run in kernel space, a context switches are needed to allow user processes access to the kernel (to run in kernel mode). In the memory management of the microkernel (L4) every process consists of three primitives. A process maps its memory pages to another process if its wants to share these pages. When a process gives the pages to another process, it can no longer access them, and they are under the control of the other process, as long as the first process does not flush the pages. This means that if a process flushes its shared memory pages, it retrieves the control back on those pages. The system now works as follows, the microkernel reserves all memory at startup, to one process called a base process (which live in user space, all processes do), and if another process needs memory, it can directly ask the base process for memory, which saves the trip down through the kernel. Because of the way processes are built in the microkernel (with the three primitives: grant, map and flush), a process can only grant, map or flush memory pages, memory protection still exists and the overhead of context switches is reduced.
What is the ultimate operating system for the Neo FreeRunner?
I believe that the Microkernel structure is the best way to make the mobile phone stable. When looking at the kernel structure of the microkernel, there are several smart phones on the marked based on the microkernel structure, purely based on the stability of the kernel, and because the further development on the kernel has a higher degree of maintainability. If one were to add a new features to a monolithic system (e.g. a new memory management routine), it means recompilation of the whole kernel, often including the whole driver infrastructure. If you have a new memory management routine and want to implement it into a monolithic architecture, modification of other parts of the system could be needed. In case of a microkernel the services are isolated from each other through the message system (Microkernel’s uses message queues build in as FIFO queue). It is enough to re-implement the new memory manager. The processes which formerly used the other manager, do not notice the change. Microkernel’s also show their flexibility in removing features. That way a microkernel can be the base of real-time appliances in single chip systems. On the other hand microkernel’s itself must be highly optimized for the processor they are intended to run on. To try to sum up the monolithic structure, it suffers from the fact that it includes all of the basic services inside kernel space, which makes the kernel lack on extensibility and maintainability, on the sheer size of the kernel growing big, and the fact that bug fixing or the adding of new features mean a complete re-compilation of the kernel which is time and memory consuming. The fact that microkernel has – for a long time been used – in mobile phones should also give an indication of the stability of the kernel. Toshiba W47T is one of many that run on a microkernel, and there are many different microkernel structured operating systems out there for mobile/smart phones, and there are all in use in different phones. One exiting system is the Cosmos microkernel developed by a former developer from Microsoft, and the operating system is .NET based, and open source.
Currently rated 3.0 by 2 people
- Currently 3/5 Stars.
- 1
- 2
- 3
- 4
- 5