Fidia develops Numerical Control (NC) systems, currently based on a proprietary hardware and software platform. This project aims at using open source software (Real Time Linux) to implement the software platform, and specifically the embedded real time operating system at the heart of the NC. Further, open source Python will be used to substitute a proprietary language used to write macros for housekeeping functions on the NC. Initially, the software architecture of the NC is analyzed to discover key issues in the substitution. Next, Real Time Linux distributions and related development tools are evaluated and one is selected. Finally, the migration work is performed in two phases, first without real time constraints which are added later. In parallel, Python and an open source version of CORBA are used in specific parts of the NC. Measures and observation will be used to extract and disseminate lessons learnt with this approach.
a) Substitute the proprietary operating system with Real Time Linux, port the NC on top of it;
b) Exploit much more powerful development tools (the debugger, the profiler, pointer validators, etc) available for Linux RT, and not available for the proprietary OS;
c) Obtain run time configurability of the NC;
d) Obtain better modularity of the NC code, so that it will be feasible to employ advanced Inter-process communication protocols (such as CORBA);
e) Obtain better portability of NC to other hardware platforms.
- Exit from the OS business while maintaining control on OS functionalities;
- Make the product independent of hardware, allow easier porting to new/other hardware platforms;
- Make the product not dependent on the OS vendor, allow easier porting to new/other Linux distributions;
- Offer to the customer a faster product.;
- Decrease cost of product;
- Speed up machine installation for the customer.
DESCRIPTION OF WORK
Fidia intends to substitute their proprietary operating system, at the heart of the Numerical Control, with Real Time Linux. This requires reorganizing the NC, modularizing it, and porting it on the new software platform. This porting is the right chance to substitute another part of the NC with Python, and to experiment the use of CORBA on top of it. WP1 NC Analysis. It is dedicated to an analysis of the proprietary OS and to a comparison with the POSIX standard. Also, the NC application code is analyzed and architectural flaws or incompatibilities with Posix are assessed. WP2 OS and tool selection. Linux distributions are evaluated. Tools and RT extensions are evaluated, one is selected. Tools are purchased and installed. Key staff is trained.
WP3 Userland migration. The NC is ported on top of RT Linux, in simulation mode (only Userland processes are used, the environment is simulated, no RT constraints are considered).
WP4 Kernel mode migration. RT constraints are now considered, and the real environment is used. This requires using Linux's Kernel mode processes.
WP5 PLC migration. The PLC subsystem of the NC is now ported. Meanwhile, the proprietary language Aucol is substituted by Python.
WP6 Measurement and evaluation. Measures are defined and collected to objectively characterize results. Process measures (effort, defects) and performance measures are used to check business and technical goals. WP7 Dissemination packages the results and makes them available to a larger audience. A project web site is activated and maintained.
WP8 Management is dedicated to manage the project and report on it.