Green Hills Software and Linux Q & A
Q: Does Green Hills Software support Linux?
Yes, Green Hills Software has extensive support for Linux. Green Hills Software's entire family of development tools runs on Linux. Products that run on Linux or are used when developing from Linux include:
In addition, many of Green Hills Software's development tools support Linux as a target operating system:
- Optimizing C, and C++, and Ada compilers - with the GNU C compatibility in our compilers, we have reduced the code size of the Linux kernel by up to 35%. Read more.
- MULTI and AdaMULTI integrated development environment - with support for multi-threaded application-level development as well as Linux kernel and driver development.
- SuperTrace, Green Hills Probe, and Slingshot probes - these hardware debug devices are Linux Memory Management Unit (MMU) aware, allowing them to be used effectively for kernel-level software development.
Q: Why does Green Hills Software support Linux as a target when it has its own operating systems?
As the leading vendor of embedded software development tools, Green Hills Software is committed to providing and supporting an open development environment on which our customers can standardize on across a wide variety of projects, whether embedded or general-purpose, legacy or new. Consequently, we support not only our own operating systems but also customers' homegrown solutions, Linux, and commercial real-time operating systems such as VxWorks.
Q: What are the differences between INTEGRITY and Linux?
INTEGRITY and Linux are very different operating systems and address very different requirements.
Green Hills Software designed INTEGRITY from the ground up to address a broad spectrum of embedded and real-time requirements, ranging from the lowest-cost consumer devices to the highest-performance telecommunications systems to the most safety-critical avionics applications. Linux, on the other hand, was designed to be a general-purpose operating system and free replacement for UNIX-like systems.
Consequently, there are a number of substantive differences between INTEGRITY and Linux:
- For resource-constrained applications, INTEGRITY is highly scalable and can require as little as 30 KB of ROM and 4 KB of RAM. This compares to the megabytes of memory required by Linux.
- For real-time applications, INTEGRITY is fully deterministic and guarantees extremely low worst-case response times. To guarantee absolute minimum interrupt latency, the kernel never disables interrupts. On a 233 MHz PowerPC processor, INTEGRITY guarantees worst-case interrupt response times of about 200 nanoseconds and worst-case task switch times of under a microsecond. Linux cannot guarantee real-time performance and even the measured worst-case times on optimized derivatives (i.e., preemptible kernel) are hundreds of times slower than INTEGRITY.
- For applications requiring total reliability, INTEGRITY's design and implementation meet the most stringent safety standards, such as RTCA/DO 178B for flight-critical systems. Moreover, INTEGRITY's modular and scalable architecture means that developers only need to verify or test those portions of the operating system that an application is using. With Linux, its size, monolithic implementation, and lack of formal, traceable design mean that it can never be certified or trusted in applications with high reliability requirements.
- For applications requiring total security, INTEGRITY provides secure partitioning with guaranteed resource availability, putting brick walls between different application tasks and the operating system itself and fully protecting INTEGRITY applications from viruses, worms, and denial of service attacks. Linux does not provide such protections or guarantees. Linux also has an inherently insecure device driver model. Linux drivers must execute as part of the kernel, with direct access to all physical memory, and thus circumvent the memory protection provided between application tasks.
Q: What are the similarities between INTEGRITY and Linux
First introduced in 1996, INTEGRITY was developed to address the requirements of today's embedded software developers. Therefore, it naturally shares characteristics with the popular Linux platform. These include:
- Support for full memory protection and virtual memory management (INTEGRITY's secure partitioning exceeds Linux's support)
- Royalty-free licensing
- Source code availability
- Standard POSIX programming interfaces
- Robust networking support (pdf), including IPv6, IPsec, and SSL
- Extensive processor and board support
To request information on Green Hills Software products, or if you have additional questions or comments, please contact us or submit our information request form. |