FAQ
ABOUT MAPUSOFT
What value does MapuSoft provide?
Why don’t I hire a consulting company to make a porting kit or abstraction layer?
Why don’t I use an open source porting kit or abstraction layer?
How can MT’s solutions provide value to OS vendors?
How can MT’s solutions provide value to silicon and OEM vendors?
How can MT’s solutions provide value to the medical market?
How can MT’s solutions provide value to the telecommunications market?
How can MT’s solutions provide value to the military/aerospace market?
Who are your customers?
Can I see testimonials of your customers?
Do your products come with source code?
Are your products royalty free?
What is the pricing and licensing of your products?
Should I use the standalone OS Changer and OS Abstractor products or the OS PAL solution?
ABOUT MAPUSOFT SUPPORT & SERVICES
Where can I find the latest release notes?
What operating systems do you support?
You don’t appear to support my operating system. Can you still help me?
What API’s do you support?
You don’t support every API used by my application. Can you still help me?
What impact do your products have on my code size and speed?
How can I get a reference manual?
Where can I download an evaluation?
I want to evaluate your products on my hardware. Is this possible?
What does a support contract include?
What services do you provide?
ABOUT OS CHANGER
What value does OS Changer provide?
Why not do a port myself?
Why don’t I use my new OS vendor’s porting kit?
Why don’t I throw out my code and start anew?
Why would I need to change my OS?
Which operating systems can I port my legacy code from?
ABOUT OS ABSTRACTOR
What value does OS Abstractor provide?
Can I start developing my application with the OS Abstractor APIs without a RTOS?
Why not use an in-house abstraction?
Why develop portable code?
Why use a standardized OS interface?
Why support multiple operating systems?
Why should I leverage open source code in my platform?
Why use POSIX OS Abstractor on a POSIX based OS?
Why should I use OS Abstractor with my proprietary OS?
Is OS Abstractor CPU dependent?
What is the default maximum stack size for the main thread?
Which POSIX Standard your product is in conformity to?
How do you schedule process in multiprocess application? Does this depend on target OS?
If three same priority processes, A,B, and C are created, Which process starts execution first? When will it switch to another process?
If a task is created with priority 100, and it is changed to priority 50, then will the created task start executing? Is it not possible to set higher priority than the parent process
There are three processes, A,B, and C, created of the same priority and are in ready state. If process A create new task D, with a priority higher than other three processes,then will Process D start first? If priority D is lower,then will process A keep executing? If priority D is equal to other processes,will the application execution be in this series: A -> B -> C -> D -> A,,,,?
ABSTRACTOR document says that we can use target OS native IO functions if I set MAP_OS_ANSI_IO to OS_FALSE. Does this mean that I can also call other target OS APIs from application program?
If target OS is uITRON,can I call set_tim(set system time api)?
How about sig_sem(signal semaphore) ? Or you mean supported only open, close, read, write, and ioctl?
If target OS is uITRON and it has Windows compatible file system and TCP/IP which support BSD Socket,then can the customer use open, close, read, write functions for file related operation?
If target OS is uITRON and it has Windows compatible file system and TCP/IP which support BSD Socket, can the customer use socket functions such as socket, accept, listen., etc by calling native OS system call?
Since I do not have a source code for OSABSTRACTOR, it is difficult to understand your products. Is it possible to send me the full source code?
I generated source code for windows xp as target in OSPAL, compiled, and executed the program in VC++. I hope the resultant tasks are scheduled by the windows scheduler?
If I select uITRON as a target OS, who schedules the task? Does OSPAL libraries call uITRON dispatcher?
If a customer purchases OS Abstractor and/or OS Changer, what kind of software and documents are provided? Does the software include source code?
ABOUT OS PAL
What value does OS PAL provide?
Why should I develop on a host instead of the target platform?
Why should I use a unified architecture for development?
Why should I use the Eclipse IDE?
What host platforms does OS PAL support?
What development APIs does OS PAL support?
How do I acquire a license for OS PAL?
How do I install the OS PAL license?
How do I use OS PAL?
OS PAL contains libraries in the directory ospal/plugins/mapusoft.ospal.host_1.3.3/lib/windows. If customer purchases OS PAL, do you provide the source code for these lib files?
ABOUT AdaMagic
Once AdaMagic converts Ada run-time to C/C++, can it be re-hosted on a different OS?
Is AdaMagic being used and tested in the market?
How do you migrate the Ada tasking model to C/C++?
Can I evaluate AdaMagic?
What is the difference between AdaMagic and an Ada to C language syntax converter?
What are the components of AdaMagic?
How does AdaMagic handle run-time errors?
How is my application’s safety certification maintained or re-asserted after converting to C?
ABOUT MAPUSOFT
Q: What value does MapuSoft provide?
A: MapuSoft Technologies (MT) is the number one provider of embedded software re-usability solutions and services that are designed to protect software investment by providing customers a greater level of flexibility and control with product development. MT offers porting, integration, support and training services to help developers easily migrate from legacy platforms to the next generation. We believe that our advanced software and vision will revolutionize the embedded software industry. We are working hard to provide software that is practical, familiar, financially reasonable, and easily operable. We provide full source code with no royalty fees. Our licensing strategy makes it extremely affordable for you to incorporate our products into your embedded applications. In addition, our attention to engineering detail provides you with robust software and requires minimal technical maintenance.
Q: Why don’t I hire a consulting company to make a porting kit or abstraction layer?
A: Consulting solutions are very expensive and take time since they don’t have off the shelf products. MapuSoft is unique in offering ready made off-the-shelf porting and abstraction products and therefore can offer you solutions quicker and at a lower cost.
Q: Why don’t I use an open source porting kit or abstraction layer?
A: Open-source solutions are limited, unsupported and risky. MapuSoft provides you fully supported porting and abstraction solutions that are more reliable since they were developed working with the OS vendors themselves.
Q: How can MT’s solutions provide value to OS vendors?
A: MapuSoft’s products OS Changer, OS Abstractor and OS PAL provide value to OS vendors by giving your customers the ability to reuse their software on your operating system in order to make it easier for them to adapt to your solution. This smooth and successful transition will create goodwill with your customers and is crucial for repeat business from them as well as their downstream customers.
More information about our offerings to OS vendors can be found here:
http://mapusoft.com/solutions/os-vendors/
Q: How can MT’s solutions provide value to silicon and OEM vendors?
A: MapuSoft’s products OS Changer, OS Abstractor and OS PAL provide value to OEM & silicon vendors by giving your customers the ability to use their preferred operating system in order to make it easier for them to adapt to your solution.
More information about our offerings to silicon and OEM vendors including a list of customers can be found here:
http://mapusoft.com/solutions/oemsilicon/
Q: How can MT’s solutions provide value to the medical market?
A: MapuSoft provides value to medical companies by providing an easy way to reuse legacy code with OS Changer, safety critical features for new development with OS Abstractor and an Eclipse based IDE for porting, abstracting and optimizing code with OS PAL.
More information about our offerings to the medical market including a list of medical customers can be found here:
http://mapusoft.com/solutions/medical/
Q: How can MT’s solutions provide value to the telecommunications market?
A: MapuSoft provides value to telecommunications companies by providing an easy way to reuse your code with OS Changer, developing portable code with OS Abstractor and an Eclipse based IDE for porting, abstracting and optimizing code with OS PAL.
More information about our offerings to the telecommunications market including a list of telecommunications customers can be found here:
http://mapusoft.com/solutions/telecommunications/
Q: How can MT’s solutions provide value to the military/aerospace market?
A: With MapuSoft you can
- Recycle your code to protect your software investment
- Re-use your knowledge-base by using a standard API
- Reduce your testing & certification effort when changing OS
- Add robustness, real-time & safety critical features to your OS
- Add real portability & performance to your POSIX application
More information about our offerings to the mil/aero market including a list of mil/aero customers can be found here:
http://mapusoft.com/solutions/milaero/
Q: Who are your customers?
A: We have many success stories from our customers. A list of some of our customers can be found here:
http://mapusoft.com/solutions/customers/
Q: Can I see testimonials of your customers?
A: Yes, testimonials can be viewed on our website here:
http://mapusoft.com/solutions/testimonials/
Q: Do your products come with source code?
A: Yes, all of MapuSoft’s products are provided with full source code
Q: Are your products royalty free?
A: Yes, all of MapuSoft’s products are royalty free, there are only downstream costs when your customer is not the end user and will continue development of the application
Q: What is the pricing and licensing of your products?
A: An explanation of our product licensing can be found here: http://mapusoft.com/licensing
You can request a quote by filling out the form here: http://mapusoft.com/downloads/purchase-os-pal-license/
Q: Should I use the standalone OS Changer and OS Abstractor products or the OS PAL solution?
A: Choosing between the standalone solutions and OS PAL depends on your technical and licensing needs. For an overview of the licensing differences please contact MapuSoft for more information by following this link:
http://mapusoft.com/contact/
Here are a few technical points of distinction between the two choices:
| Standalone | OS PAL |
|---|---|
no IDE included |
all the features, plus integration to an Eclipse based IDE |
purchasing the standalone solutions for the host platform. Also requires the necessary integration with your tools. |
debugging of applications on Linux, Windows & Solaris host platforms using Eclipse framework without a need for the target hardware. Porting legacy applications under a host environment is much easier than porting on the actual target. |
without obfuscation |
without obfuscation |
multiple OS Abstractor & OS Changer solutions |
|
source code library |
generated based on the level of API usage by the application for a more custom solution and to increase the application performance |
are done by the compiler tools |
APIs for execution speed optimization in addition to other compiler optimizations |
Some integration is required to tie one or more libraries to the applications. |
made part of the application or can be a standalone library |
OS specific initializations (excluding the board level initializations) |
specific initialization code (excluding board level initializations) |
for some tools |
(make/visual C++/eclipse/etc.) |
ABOUT MAPUSOFT SUPPORT & SERVICES
Q: Where can I find the latest release notes?
A: A document detailing release notes for our latest releases can be found here:
http://mapusoft.com/products/techdata/
Q: What operating systems do you support?
A: For a list of supported operating systems please click this link:
http://mapusoft.com/products/offerings/
Q: You don’t appear to support my operating system. Can you still help me?
A: Yes, MapuSoft often adds support for operating systems as requested by customers. To send a request for MapuSoft to add an operating system please click this link:
http://mapusoft.com/contact/
Q: What API’s do you support?
A: In each datasheet is a list of APIs supported by that product.
For a list of VxWorks APIs supported in VxWorks OS Changer please click this link:
http://mapusoft.com/admin/wp-content/uploads/vxworks_os_changer_datasheet.pdf
For a list of pSOS APIs supported in pSOS OS Changer please click this link:
http://mapusoft.com/admin/wp-content/uploads/psos_os_changer_datasheet.pdf
For a list of Nucleus APIs supported in Nucleus OS Changer please click this link:
http://mapusoft.com/admin/wp-content/uploads/nucleus_os_changer_datasheet.pdf
For a list of APIs supported in BASE OS Abstractor please click this link:
http://mapusoft.com/admin/wp-content/uploads/os-abstractor-datasheet1.pdf
For a list of APIs supported in POSIX OS Abstractor please click this link:
http://mapusoft.com/admin/wp-content/uploads/os_abstractor_with_posix_datasheet1.pdf
OS PAL will support all APIs supported by the other products.
Q: You don’t support every API used by my application. Can you still help me?
A: OS Abstractor is designed to even out the OS landscape. If a feature is missing in the underlying target OS, then OS Abstractor library will automatically provide that feature. The goal for OS Abstractor is to provide portability without compromising performance. For example, the OS Abstractor process feature is still available on single memory based OS because. However, if there is no mmu support, then we may not be able to provide hardware protection.
While there may be few APIs not supported in the current OS Changer release, which would result in printing run-time errors, we are constantly extending support for additional APIs and feature sets for each release. Please contact MapuSoft if you would like to request the addition of certain APIs: http://mapusoft.com/contact/
Q: What impact do your products have on my code size and speed?
A: MapuSoft’s products are designed to have very little impact on your code size and speed. Our products have been tried and tested in many performance critical areas such as medical and mil/aero. The exact size of the footrprint of our products varies by target operating system. In some target operating systems it can be as little as 2k. In some cases, using our products will enhance the speed of your application due to our advanced development features. For more technical information about this please click this link to contact MapuSoft with your question:
http://mapusoft.com/contact/
Q: How can I get a reference manual?
A: Our product reference manuals provide more technical information than can be found on this website. In order to receive a reference manual you must first sign a NDA (Non Disclosure Agreement). To send a request for a product reference manual please click this link:
http://mapusoft.com/contact/
Q: Where can I download an evaluation?
A: A free evaluation of our products is available for download here:
http://mapusoft.com/evaluation/
A 30 day advanced evaluation is also available by request. Please contact MapuSoft for an advanced evaluation license by following this link:
http://mapusoft.com/downloads/freelicense/
Q: I want to evaluate your products on my hardware. Is this possible?
A: Our evaluations are only available on Windows, Linux and soon Solaris.
Q: What does a support contract include?
A: A support contract includes access to support by phone or e-mail, bug-fixes and upgrades for the products you have purchased, all at no extra costs. Only customers with current support contracts will have access to support.
Q: What services do you provide?
A: In addition to off-the-shelf products, MapuSoft also offers porting, integration, support and training services to help developers easily migrate from legacy platforms to the next generation. A list of our services includes adding proprietary OS support, customization and full service porting. More information can be found here:
http://mapusoft.com/services/
ABOUT OS CHANGER
Q: What value does OS Changer provide?
A: The OS Changer family of products gives users the freedom to switch operating systems while leveraging on their existing embedded code and knowledge base to protect their software investment and avoid costly porting issues. OS Changer also allows developers to write code using a familiar application programming interface (API) and run the application on a wide variety of supported target OS platforms.
More information can be found here:
http://mapusoft.com/products/oschanger/
Q: Why not do a port myself?
A: It’s not easy to make existing software adapt to a new OS without incurring high cost and time to market. It’s an error prone, tedious and time-consuming task and it requires expensive and skillful resources that take away the focus on building your product.
Q: Why don’t I use my new OS vendor’s porting kit?
A: OS vendor’s solutions are restricted and tied to a specific OS. Comparatively, MapuSoft provides solutions that port to many different operating systems. OS vendor’s solutions are usually unsupported because they are more focused on building and maintaining their operating system; many of them are partners with MapuSoft and would rather rely on us to help you move your code to their OS.
Q: Why don’t I throw out my code and start anew?
A: There are many reasons to leverage your legacy code. Here are a few:
- Leverage existing software and knowledge base when migrating to next generation platforms
- Achieve your time to market goals
- Don’t throw away your software investment
Q: Why would I need to change my OS?
A: There are many reasons you would need to change your operating system. Here are a few:
- OS becomes unsupported or obsolete
- New chip architecture has different OS availability
- Customer demands for different OS
- Need to adhere to industry standards
- Change in your technical requirements
- Change in your commercial business model
- Need to use a better development environment
- Need to move to a widely used OS and target platform that offers a wide range of driver, protocol and middleware support
Q: Which operating systems can I port my legacy code from?
A: OS Changer supports porting from VxWorks, pSOS and Nucleus PLUS to different operating systems.
Additional OS component support is also available:
- VxWorks ANSI File and VxWorks BSD Network API compliance for other target RTOS’s
- pSOS Classic OS Changer allows developers to re-use their pSOS 4.1 rev. 3/10/1986 code on different operating systems
- Nucleus NET OS Changer allows developers to re-use their Nucleus NET code on a Linux netstack
For a list of supported target operating systems please click this link:
http://mapusoft.com/products/offerings/
ABOUT OS ABSTRACTOR
Q: What value does OS Abstractor provide?
A: By using OS Abstractor, your embedded application can run on many real time (RTOS) and non-real time operating systems to negate any porting issues in the future when your platform changes. BASE OS Abstractor provides you a robust and standard OS interface architecture for flexible application development while eliminating the risks associated with selecting an OS and dependency on a single vendor. OS Abstractor makes your application adapt to multiple operating system platforms with a standard OS interface, thereby reducing cost associated with code maintenance and learning multiple operating systems. POSIX OS Abstractor enhances the BASE OS Abstractor standard OS interface architecture with the addition of optimized non-proprietary and industry standard POSIX Application Programming Interface (API) to facilitate using open source POSIX/Linux in your design.
More information can be found here:
http://mapusoft.com/products/osabstractor/
Q: Can I start developing my application with the OS Abstractor APIs without a RTOS?
A: Yes, the OS Abstractor APIs are available in OS PAL to enable the development of applications on a host x86 platform.
Q: Why not use an in-house abstraction?
A: Developing in-house OS abstraction requires considerable
- Time, resources and money
- Planning to support multiple OS
- Detailed knowledge of low level OS functions and interfaces
- Development
- Testing
- Maintenance
- Up front cost associated with purchase of various OS and tools in order to validate your product
- OS Abstractor is an effective and economical alternative.
Q: Why develop portable code?
A: Developing portable code will
- Protect software investment by enabling efficient software re-use across multiple platforms
- Eliminate manual updates to applications when upgrading to newer versions of OS
- Allow you to easily switch your OS platform for more cost effective development
Q: Why use a standardized OS interface?
A: Using a standardized OS interface architecture will
- Reduce the learning curve associated with adopting a new OS by using intuitive, flexible and standard APIs across multiple operating systems
- Protect software investment by enabling efficient software re-use across multiple platforms
- Eliminate manual updates to applications when upgrading to newer versions of OS
Q: Why support multiple operating systems?
A: Developing software to run on multiple operating systems will
- Expand your market share and opportunities
- Provide flexibility to your customer to use your software on their preferred OS platform
- Protect your software investment from OS platform changes in the future
- Allow you to easily switch your OS platform for more cost effective development
Q: Why should I leverage open source code in my platform?
A: Leveraging open source code will give you the following benefits:
- Efficiently add feature rich services in a cost effective manner regardless of the underlying OS
- Get to market faster with compelling open-source applications and content in your design
- Tap into the large talent pool of available engineers with POSIX/Linux experience
POSIX OS Abstractor enhances the BASE OS Abstractor standard OS interface architecture with the addition of optimized non-proprietary and industry standard POSIX Application Programming Interface (API) to facilitate using open source POSIX/Linux in your design.More information can be found here:
http://mapusoft.com/products/osabstractor/
Q: Why use POSIX OS Abstractor on a POSIX based OS?
A: Benefits only provided by POSIX OS Abstractor:
- BASE OS Abstractor APIs
- Allows development of highly portable applications
- True Portability
- Code written for an older version of POSIX will run on a newer version
- Code written for one POSIX type such as UNIX or Linux will run on all POSIX types
- Development Flexibility
- OS features beyond the POSIX standard provide more development features which are missing in POSIX
- Adds Performance, OS Hardening and Reliability
- Maximizes use of compile-time translations
- Maximizes use of low-level OS functions
- Zero data copy of messages - BASE OS Abstractor APIs
- Static allocation of control blocks
- Scalability at component & feature levels
- Real-time enhancements and other safety critical OS features are added to your OS
-
- Protect resources or optionally share them with other applications and processes
- Unique process features enables independent development of complex and multiple applications
- Dynamic application reconfiguration and restart
- Provides Task Pooling feature to reuse task envelopes
- Every POSIX distribution offers different features, our APIs will fill in the missing pieces to give you the “best of the best”
-
Q: Why should I use OS Abstractor with my proprietary OS?
A: Using OS Abstractor with your proprietary OS will give you the following benefits:
- Leverage re-usable open source POSIX/Linux code to efficiently add feature rich services in a cost effective to your proprietary OS
- Make your application more compelling and valuable to your end users and customers
- Make your proprietary OS more adaptable for your customers
Q: Is OS Abstractor CPU dependent?
A: OS Abstractor APIs are not CPU dependent, since there is not any target specific code and OS Abstractor is 100% C code. We have customers using OS Abstractor on many different CPU platforms. While, there should be no problems across platforms, MapuSoft does offer validation services if requested.
In the new release, we have added a feature called OS_PROFILER that allows the application to collect performance data. By default, this feature is disabled, however when it is enabled, there is small architecture specific code that retrieves CPU clock frequency. Right now, we only support x86 architectures for this feature and we will add support for other architectures in subsequent releases.
Q: What is the default maximum stack size for the main thread?
A: The stack size defined under OS Abstractor for QNX is as follows:
#define OS_MIN_STACK_SIZE 16384
#define OS_MAX_STACK_SIZE 0xffffffff
The above defines are in osabstractor_def.h.
It is reccommended that you always use the default OS_MIN_STACK_SIZE which is defined across various target OS. For example, under Linux, this is directly mapped to pthread_stack_min define.
Q: Which POSIX Standard your product is in conformity to?
A: We are not conformant in terms of supporting required POSIX functionalities in Posix profile 51, 52, 53, and 54. For some of the posix features (such as, run-time libraries, math libraries, and so on, we are dependant on the underlying OS. But we plan to provide all of this directly from MapuSoft in the future).
For example, OS Abstractor for VxWorks is pretty close to profile 53. OS Abstractor for lynxOS would be close to profile 54. However, the listed APIs in the posix datasheet for OS Abstractor comes from MapuSoft libraries.
Q: How do you schedule process in multiprocess application? Does this depend on target OS?
A: We do not schedule process. All OS Abstractor processes are created equal and each thread within a process competes directly with the threads from the other. Also, we do not have a concept of parent/child/grandchild, etc. when it comes to processes. All the processes stand in a single level.
To answer your second question, it does not depend on target OS.
Note that uITRON and TKernel scheduler is First Come First Serve and preemptive. I am not sure of other OS scheduling policies. Most of them must be roundrobin.
We provide support for all the scheduling (refer to OS_Create_Task api) as defined when you create a task using OS Abstractor API. If an underlying target OS does not support, we find a way to support the required scheduling.
Q: If three same priority processes, A,B, and C are created, Which process starts execution first? When will it switch to another process?
A: OS Abstractor processes do not compete with each other, but only the threads within them. The process will be started First In First Out (FIFO).
Q: If a task is created with priority 100, and it is changed to priority 50, then will the created task start executing? Is it not possible to set higher priority than the parent process?
A: You can set any priority when creating tasks. If you want it to run immediately, you pass along the flag parameter START, it will resume, irrespective of the priority.
Q: There are three processes, A,B, and C, created of the same priority and are in ready state. If process A create new task D, with a priority higher than other three processes,then will Process D start first? If priority D islower,then will process A keep executing? If priority D is equal to other processes,will the application execution be in this series: A -> B -> C -> D -> A,,,, ?
A: Processes do not compete.
Q: ABSTRACTOR document says that we can use target OS native IO functions if I set MAP_OS_ANSI_IO to OS_FALSE. Does this mean that I can also call other target OS APIs from application program?
A: You should be able to use any native APIs directly from the target OS (as long as the API names are not the same).
Q: If target OS is uITRON, can I call set_tim(set system time api)?
A: You should be able to set_tim native uitron API, however, that line of code will not be portable. It is recommended to use the clock routines provided by either the basic APIs or the posix APIs.
Q: How about sig_sem(signal semaphore) ? Or you mean supported only open, close, read, write, and ioctl?
A: You should be able to use sig_sem native API. But it is recommended to use the signal APIs from OS Abstractor basic to ensure that your code be portable. I do not understand the second part of your question.
Q: If target OS is uITRON and it has Windows compatible file system and TCP/IP which support BSD Socket,then can the customer use open, close, read, write functions for file related operation?
A: The customer has the options to use OS_open, OS_close, etc (OR) they can set MAP_ANSI to TRUE and have open(), close() calls map to OS Abstractor APIs. The customer also has the option to use both APIs OS_open and open() by setting the MAP_ANSI to false.
Q: If target OS is uITRON and it has Windows compatible file system and TCP/IP which support BSD Socket, can the customer use socket functions such as socket, accept, listen., etc by calling native OS system call?
A: OS Abstractor does not provide socket APIs, so the target OS needs to supply them. We have developed BSD compliance wrapper for many netstack on custom solution basis if customer wants.
Q: Since I do not have a source code for OSABSTRACTOR, it is difficult to understand your products. Is it possible to send me the full source code?
A: Have you had a chance to generate code?
For more information on our OS Abstractor manual, go to http://mapusoft.com/new-customer/ You can use the same license key that we gave.
Q: I generated source code for windows xp as target in OSPAL, compiled, and executed the program in VC++. I hope the resultant tasks are scheduled by the windows scheduler?
A: OS Abstractor does not do scheduling on any port. We use the OS scheduler. However, configure the threads to be real-time priority (e.g. on windows we use the threads priorities that are normally not used by MFC app).
Q: If I select uITRON as a target OS, who schedules the task? Does OSPAL libraries call uITRON dispatcher?
A: Yes, ITRON scheduler will schedule the thread. The ITRON port has not been validated. We are right now validating ITRON and are also in the process of updating t-kernel port.
Refer to http://mapusoft.com/admin/wp-content/uploads/release-notes_1-3-3.pdf
Q: If a customer purchases OS Abstractor and/or OS Changer, what kind of software and documents are provided? Does the software include source code?
A: Source code is always provided except when you run on OS PAL host platforms.
ABOUT OS PAL
Q: What value does OS PAL provide?
A: With OS Porting and Abstraction Lab (OS PAL) you can easily port, abstract and optimize your code on a host machine and run the application on different target platforms. OS PAL leverages the existing OS Changer and OS Abstractor technologies while adding advanced code optimization capacities on multiple OS environments. OS PAL provides users an easy-to-use graphical user interface that is integrated with the Eclipse® based CDT environment.
More information can be found here:
http://mapusoft.com/products/ospal/
Q: Why should I develop on a host instead of the target platform?
A: Developing on a host will provide you the following benefits:
- Don’t be constrained by a limited availability of your target hardware
- Begin developing the application before the hardware is available to improve your time to market
- Simulate your application on a host for easy testing, verification and presentation
With OS Porting and Abstraction Lab (OS PAL) you can easily port, abstract and optimize your code on a host machine, and run the application on different target platforms. OS PAL leverages the existing OS Changer and OS Abstractor technologies while adding advanced code optimization capacities on multiple OS environments. OS PAL provides users an easy-to-use graphical user interface that is integrated with the Eclipse® based CDT environment.
More information can be found here:
http://mapusoft.com/products/ospal/
Q: Why should I use a unified architecture for development?
A: Using a unified architecture will provide you the following benefits:
- Reduce the learning curve by using a standard IDE across multiple operating systems
- Re-use same code base across multiple OS to reduce time consuming maintenance
- Eliminate manual updates to applications when upgrading to newer versions of OS
OS PAL provides users an easy-to-use graphical user interface that is integrated with the Eclipse® based CDT environment.
More information can be found here:
http://mapusoft.com/products/ospal/
Q: Why should I use the Eclipse IDE?
A: Using the Eclipse IDE will provide you the following benefits:
- Offers state-of-the-art CDT for productive development
- It’s the industry de facto standard
- Offers open source plug-ins for economical development
Q: What host platforms does OS PAL support?
A: OS PAL provides host platforms on Windows, Linux and soon Solaris
Q: What development APIs does OS PAL support?
A: OS PAL supports development with the following APIs:
- BASE OS Abstractor
- POSIX OS Abstractor
- VxWorks
- pSOS
- Nucleus
Q: How do I acquire a license for OS PAL?
A: OS PAL is licensed by host and target licenses. A 30 day advanced evaluation license is also available for the host licenses. Please click here to request a license:
http://mapusoft.com/downloads/freelicense/
Q: How do I install the OS PAL license?
A: Copy the license file given to you by MapuSoft into the “license” folder on your drive where you installed OS PAL.
Q: How do I use OS PAL?
A: Visit this link for steps to use OS PAL:
http://mapusoft.com/support/ospalinformation/
Q: OS PAL contains libraries in the directory ospal/plugins/mapusoft.ospal.host_1.3.3/lib/windows. If customer purchases OS PAL, do you provide the source code for these lib files?
A: The customer can get source code with appropriate OS PAL license in two ways. The first way is through OS PAL code generation licenses, where source for osabstractor & oschanger gets generated based on individual applications need and target OS. The second way is to generate a Stand-alone Packages from OS PAL for use in non-ospal environment as a link-in library.
ABOUT AdaMagic
Q: Once AdaMagic converts Ada runtime to C/C++, can it be re-hosted on a different OS?
A: The Ada run-time is written in Ada 95, and then translated to C/C++. The run-time is layered, and is re-hostable on various operating systems. As delivered, it depends only on C’s native setjmp/longjmp, but is structured to allow re-hosting on POSIX-like OS’s, or other RTOS’s that have support for threads and some kind of “mutex”.
Q: Is AdaMagic being used and tested in the market?
A: This tool uses the same Ada 95 font end that is used by Green Hills, Aonix, Analog Devices and Raytheon for their validated Ada 95 compilers. The C-generating “emitter” is used on daily basis both in-house and at customer sites, compiling millions of lines of Ada 95 code.
Q: How do you migrate the Ada tasking model to C/C++?
A: If the original code uses Ada tasking, the translated code makes calls on the routines that implement the Ada tasking model. As mentioned above, these are in turn implemented by a layered Ada run-time system that can be hosted on top of most modern RTOS’s.
Q: Can I evaluate AdaMagic?
A: Because of the nature of the tool, we generally do not provide evaluation licenses. However, we are happy to perform trial conversions for modest-size self-contained examples of Ada code provided by a potential customer.
Q: What is the difference between AdaMagic and an Ada to C language syntax converter?
A: AdaMagic is not an Ada to C language syntax converter, which is very inefficient. AdaMagic technology is actually an Ada compiler along with a few command line switches that are used to perform Ada to C conversion. Since the conversion is performed via a compiler engine, the resultant code is optimized and guaranteed to execute. A C compiler can then be used on the resultant C code, which provides double optimization, therefore, the performance of the resultant C code is not compromised but optimized.
Q: What are the components of AdaMagic?
A: There are six components of AdaMagic:
- AdaCgen - Ada compiler which automatically compiles all user-registered Ada source and generates interim optimized C files, then the compiler will go through the optimized C files and convert them to readable/maintainable C source.
- AdaBgen - Ada builder/linker generates final executables by first automatically compiling required files (using AdaCgen) and then linking all the compiled modules to generate the executables
- Adareg - helper utility that will allow users to register all the Ada source for conversion
- Lister - helper utility that will generate cross-reference listings
- Adaopts - helper utility to set the Ada compiler/linker configuration options
- RTL - ‘C’ run-time modules that provides I/O, tasking, exception handling, and memory management modules which are normally required by Ada language for the ‘C’ converted code base
Q: How does AdaMagic handle run-time errors?
A: Ada language, by default, automatically handles various run-time errors that are not handled by the application. It is recommended that the Ada code be first inspected manually or using Ada Inspector tool to ensure there is enough error handling code in place before performing the ‘C’ conversion.
More information can be found here:http://mapusoft.com/products/adamagic/
Q: How is my application’s safety certification maintained or re-asserted after converting to C?
A: Probably the best analogy is recompiling the system with a new compiler. Clearly you would have to rerun all your tests, but presuming you translate any Ada unit tests/drivers as well, you should be able to achieve the same level of MC/DC coverage achieved before the translation. Fault analysis, etc. should be identical. All of the comments in the code are preserved, and the code component names remain essentially the same, meaning that documentation should not need to be altered in any significant way. Given the ability to translate the tests/drivers, achieving adequate MC/DC coverage should not need redoing.
AdaMagic is very mature. The Ada 95 front end used to drive the translation has been in active use for over 10 years, in many safety-critical systems, because of its use as part of the Aonix and Green Hills compilers.