
Written by Tools Working Group Co-Chairs Luigi Pellecchia (Red Hat) and Alessandro Carminati (NVIDIA), along with Eli Gurvitz (NVIDIA).
The ELISA Project Tools Working Group is bringing together the ELISA community around the investigation, development and usage of tools for functional safety in Linux.
Overview
We use tools for SW development almost every minute of our working day without even thinking about it. We write requirements with editors, store them in databases, review them in collaboration systems and trace them to other work products with tools. This list of activities and tools is only for a small set of work products, it is incomplete and doesn’t even mention the emerging AI based tools.
As we traverse the V model, the tasks become more complex and the tools more advanced. Think of architectural design systems, compilers, static analysis tools and test management systems. Clearly, tools are the basis of SW development and no Safety Case can be completed without them.
Commercial tools exist for some tasks but they are often not suitable for Linux because of several reasons, as an example, many of the tasks operate on pre-existing code and without following the standard V-Model, and as one of the main actors of the open source landscape, users are used to work with open source tools. Open source tools also exist, but many of them were developed without functional safety in mind and they all require tool classification. The Tools WG will evaluate open source tools and suggest methods to qualify them.
The goal of the ELISA Tools WG is to be a forum for ELISA members and the Linux community at large, for discussion and joint development of functional-safety related tools, with emphasis on tools suitable for Linux – from software requirements management to static code analysis, to code structure navigation, to SBOM generation, to continuous compliance, to impact analysis and more.
Members of the WG will be able to join the open discussions, learn about existing tools, participate in their development and maintenance, propose new features or influence the community to develop a new tool. Development of effective and safe tools is hard. The tool must be defined clearly, the code developed to a high standard, and the tools must be safe according to the requirements of safety standards like ISO 26262 part 8 chapter 11 (Confidence in use of tools). Therefore, the cooperation by members of the forum is a win-win situation. Even when a tool is wholly contributed by one member company, the adoption of the tool by other members results in improvements to the tool and its acceptance by the industry and assessors.
Industry cooperation is even more important with the emergence of AI-based tools and their inherent challenges. AI allows us to solve problems that were previously too hard to solve due to code complexity or the scale of the problem. But classification and qualification of AI-based tools requires new ideas and can benefit from joint development. The Tools working group aims to track the evolution of international standards on the usage of AI in safety related tools, and adopt them in its deliverables.
What we provide to the community
The Tools WG already provides the following tools that are being actively maintained.
BASIL
BASIL (https://github.com/elisa-tech/BASIL) is a tool for developing and managing work items such as requirements, test specifications, test cases, justifications, while building a traceability matrix that connects these artifacts and their relationships. It also provides test execution support, allowing test results to be linked back to the relevant work items and traceability relationships for end-to-end verification and coverage.
KSNav
https://github.com/elisa-tech/ks-nav
A static analysis / reverse engineering tool targeting elf executables with DWARF information and source code, specialized on the Linux kernel. It provides information on functions, data and call trees. It is used for static code analysis, safety analysis and more.
The tool is planned to support: the linux kernel, glibc, and unspecified elf executable. Not all targets provide the same results or accuracy.
Tool provides the following per target-diagrams for:
- function-level call trees;
- subsystem call trees;
- subsystem graphs with labeled edges;
- isolated target-subsystem views;
- functions referencing global data;
- subsystems referencing global data.
Stress-ng
Stress-ng (https://github.com/ColinIanKing/stress-ng) is the leading HW and SW stressing system for Linux. It is developed by Colin King and is partially supported by ELISA.
Cregit
Cregit (https://github.com/cregit/cregit) is a tool for analyzing Git repositories and generating HTML views that show who contributed which parts of the source code, using token-level analysis to produce more meaningful blame information. It processes repository history, maps commits and authors, and produces browsable visualizations of code contributions, making it useful for studying code ownership and developer contributions over time.
The Tools WG also provides sandbox environments for experimenting with the tools. This enables quick evaluation and easy integration of the tools into proprietary workflows.
Additional planned tools
The Tools WG plans to add the following tools:
Tigran – the brave MISRA classifier
Tigran will handle the flood of MISRA and CERT-C violations of the Linux kernel. It will implement a novel AI-based approach to classify all the violations into two classes:
- Deviated – there is proof that the violation can not cause a failure in a particular configuration of Linux
- Potential issues – all the rest, i.e. violations for which there is no proof that the violation can’t cause a failure.
Tigran will provide a database with ready-made classifications of multiple configurations of the Linux kernel. These classifications can be used directly in a safety case (the Deviated violations), or used to derive AoUs (assumptions of use) for potential issues. In other words, Tigran will help you mark “static code analysis” as done and provide all the evidence needed for the Safety Case.
Governance
The Tools WG operates under the guidance of the ELISA Technical Steering Committee (TSC). It is headed by Luigi Pellecchia from RedHat and co-hosted by Alessandro Carminati from NVIDIA.
The WG will meet on a weekly basis, reviewing ongoing work, discussing tooling issues and planning activities. The meetings will also include periodic demos and knowledge-sharing sessions. Apart from the weekly meetings, the WG will also sync on other channels like Discord and GitHub.
Join the Tools WG
If your company is building a safety-related system based on Linux, then the Tools WG is the place where you should be. We will help each other close down the sticky areas of the Safety Concept – safety analysis, traceability, static code analysis, complexity analysis and so on.
If you can contribute tools, time or expertise in application of functional safety processes, you are welcome to participate, make your voice heard and shape the evolution of open source tools for the functional safety community.
Participation does not require developing a tool: bringing a use case or tooling problem, reviewing proposed approaches, sharing experience, or just joining the technical discussion are all valuable contributions.
Get involved:
Subscribe to the Tools WG mailing list.
Participate in the weekly public meeting on Thursdays at 15:00 CET.
Join the Tools WG conversations on Discord.