1. FemtoLinux
Making real-time Linux applications a reality
www.femtolinux.com
info@femtolinux.com
FemtoLinux. Making real-time Linux apps a reality.
2. FemtoLinux in a Nutshell
● Allows execution of applications in kernel mode
● Applications can access hardware and kernel resources
● System call overhead is eliminated
● Huge performance and latency improvement
● Effortless porting from legacy RTOS
● Geared towards real-time and embedded systems
● Supports ARM,MIPS and PowerPC architectures
● Fully working system
FemtoLinux. Making real-time Linux apps a reality.
3. Features
● Allows to run regular Linux processes in kernel
mode
● Some processes can run in kernel and some in user mode
● The same process can run in either kernel or user mode
● No application modifications are required
● All user mode libraries are available
● C, C++ and all other languages are supported
FemtoLinux. Making real-time Linux apps a reality.
4. Features, continued
● FemtoLinux applications have no restrictions
● Can access kernel resources
● System call overhead reduces to a function call
● Can read, write and allocate kernel memory
● Can access hardware resources
● Access HW, including CPU, registers
● Enable/disable interrupts
● Etc...
FemtoLinux. Making real-time Linux apps a reality.
5. FemtoLinux vs. VxWorks 5.x/6.x
● VxWorks 5.x has flat memory model
● Tasks communicate directly with kernel
● Low latency and low system call overhead
● VxWorks 6.x adds (optional) memory protection
● Process based programming model
● Memory protection
● Significant system call overhead
● FemtoLinux adds (optional) flat memory model to Linux
● FemoLinux processes run in kernel mode
● Similar to VxWorks tasks
FemtoLinux. Making real-time Linux apps a reality.
6. FemtoLinux can be used to
● Significantly improve embedded application
performance
● Improve embedded application latency
● Easily port RTOS applications to Linux
● Create zero-copy networking applications
● Much more!
FemtoLinux. Making real-time Linux apps a reality.
7. Porting From RTOS to plain Linux
● RTOS applications tend to be monolithic
● No separation between driver and application
● Porting to RTOS from Linux requires
architectural changes, not just API adaptation
● Huge development effort
● Kernel-user communications overhead
● Hard to support both Linux and RTOS
● Risk
FemtoLinux. Making real-time Linux apps a reality.
8. Porting from RTOS to FemtoLinux
● Similar to porting from one RTOS to another
● No architectural changes
● Faster time-to-marker
● Smaller risk
● The same code base can run on Linux & RTOS
● With thin OS abstraction layer
● Less support and QA issues
FemtoLinux. Making real-time Linux apps a reality.
9. Benchmarks
● Benchmarks performed on ARM9 based system
● 20% system call latency improvement
● Measured for frequently used gettimeofday(2) call
● 30% networking performance improvement
● Measured using standard iperf without any modifications
● Not including optional memory copying optimizations
● Up to 200% improvement applications that frequenyl
copy memory to/from kernel (most networking apps)
● Requires minor changes to application
FemtoLinux. Making real-time Linux apps a reality.
10. FemtoLinux Delivery
● Software ● Services
● Modified Linux kernel ● FemtoLinux porting to
(or kernel patches) client HW
● Modified eglibc library ● Development
(or patches) environment
● Development adaptation to client
environment – full needs
cross compiler ● Application porting to
toolchain FemtoLinux
● Training
FemtoLinux. Making real-time Linux apps a reality.
11. For more information visit our web site at
http://www.femtolinux.com or contact us by email
at info@femtolinux.com
FemtoLinux. Making real-time Linux apps a reality.