User Tools

Site Tools


gsoc:2019-gsoc-safety-critical-linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
gsoc:2019-gsoc-safety-critical-linux [2019/01/14 22:31]
till created
gsoc:2019-gsoc-safety-critical-linux [2019/03/04 12:53] (current)
lukas.bulwahn start to edit titles to be closer to ELISA
Line 1: Line 1:
-====== Linux in Safety-Critical Systems ​======+====== ​GSoC Projects around Enabling ​Linux in Safety ​Applications (ELISA) ====== 
 + 
 +[[:​gsoc:​google-summer-code-2019|Main GSoC Linux Foundation page: How to apply, deadlines, other workgroups, ...]] 
 + 
 +To use Linux in high-integrity regulated environment,​ such as safety-critical systems, security systems or systems subject to other regulatory norms, it requires to show evidences that Linux has a high software quality. High software quality is roughly assessed by two classes of measurements:​ 
 + 
 +  * Observation,​ Measurement and Assessment of the Software Development Process and Practices 
 +  * Verification,​ Analysis and Assessment of the Software Artefact 
 + 
 +The Google Summer of Code Projects are activities that contribute to those two fields of work. 
 + 
 +Primary mentoring contacts: Lukas Bulwahn, lukas.bulwahn at gmail.com; Julia Lawall, julia.lawall at lip6.fr; Nicholas Mc Guire, der.herr at hofr.at; Ralf Ramsauer, ralf.ramsauer at oth-regensburg.de 
 + 
 +==== Some background on Enabling Linux in Safety Applications ​====
  
 The SIL2LinuxMP project is an collaborative research project to provide procedures and methods to qualify Linux on a multi-core embedded platform at safety integrity level 2 (SIL2) according to IEC 61508 Ed 2. The SIL2LinuxMP project is an collaborative research project to provide procedures and methods to qualify Linux on a multi-core embedded platform at safety integrity level 2 (SIL2) according to IEC 61508 Ed 2.
Line 11: Line 24:
 https://​www.youtube.com/​watch?​v=1eyJ6dAqMmg https://​www.youtube.com/​watch?​v=1eyJ6dAqMmg
  
-Primary mentoring contact: Lukas Bulwahn, lukas.bulwahn at gmail.com, Nicholas Mc Guire, der.herr at hofr.at 
  
-===== Student Project Proposals =====+The SIL2LinuxMP project has ended at the end of 2018 and the activities around Linux in safety-critical systems will be continued in a new organisational structure in 2019. 
 + 
 +====== Student Project Proposals ​2019 ====== 
 + 
 +==== Applying Clang Thread Safety Analyser to Linux Kernel ==== 
 + 
 +The Linux kernel can be compiled with clang recently. This allows to employ clang tools to the Linux kernel source. The clang thread safety analyser is a tool to detect when data is accessed without being locked before, when suitable annotations are provided. The GSoC student project proposal should describe how you would use the clang thread safety Analyser to detect missing locks for on widely used and central kernel data structures in the Linux kernel. The GSoC student project proposal should sketch how this would implemented,​ it would be best to provide an example and foreseen challenges and explain which the first investigations and design decisions need to be done and provide a first working assumption on those design decisions. 
 + 
 +Main contact person for this project proposal: Lukas Bulwahn, lukas.bulwahn at gmail.com 
 + 
 +==== Fuzzing System Calls against POSIX Specifications ==== 
 + 
 +The fuzzer for system calls, syzkaller, is used to detect kernel crashes and issues in the kernel'​s internal state, but with its current setup, it is not able to detect if a system call provides wrong output, i.e., output that does not follow the POSIX specification. The Linux Test Project has some basic tests that some of the POSIX specification. The GSoC student project proposal should describe how you would implement a fuzzer to fuzz system calls against the POSIX specifications,​ possibly making use of the aforementioned resources. The GSoC student project proposal should sketch how this would implemented,​ it would be best to provide an example and foreseen challenges and explain which the first investigations and design decisions need to be done and provide a first working assumption on those design decisions. 
 + 
 +Main contact person for this project proposal: Lukas Bulwahn, lukas.bulwahn at gmail.com 
 + 
 +==== Patch Trace Analysis with PaStA ==== 
 + 
 +The PaStA tool, developed by Ralf Ramsauer, relates patch emails sent on the mailing lists to commits in the git repository. This allows to analyse the development process on the mailing list, measure some interesting metrics on the development,​ and identify outliers with respect to some central properties. 
 + 
 +The issue tracker, https://​github.com/​lfd/​PaStA/​issues,​ provides a good overview of possible student activities in a GSoC project related to PaStA. A student start look into those issues and determine a suitable selection of tasks and goals from that issue tracker that can be handled within the timeframe of the GSoC project. A project proposal should breakdown the goals stated in the issue tracker to a more detailed plan of activities, needed extensions of PaStA and the implementation tasks.  
 + 
 +Main contact person for this project proposal: Ralf Ramsauer, ralf.ramsauer at oth-regensburg.de 
 + 
 +==== Handling Complex Types and Attributes in Coccinelle ==== 
 + 
 +Coccinelle, developed by Julia Lawall and her group, is a program matching and transformation engine which provides the language SmPL (Semantic Patch Language) for specifying desired matches and transformations in C code. 
 +The GSoC project proposal would be to improve the management of complex types and attributes (const, __user, etc) in the program matching and transformation tool Coccinelle. 
 +Currently, complex types are represented incorrectly,​ which makes it impossible to match against 
 +them in a general way.  Various kinds of attributes are increasingly used in Linux kernel code, and it is important to be able to check these annotations and add them where they are missing. 
 +This project is relevant to Linux, Zephyr and many more applications. 
 + 
 +Main contact person for this project proposal: Julia Lawall, julia.lawall at lip6.fr 
 + 
 +==== Develop Methods for Tracking Tool Analysis Findings over Time ==== 
 + 
 +We use a number of tools, checkpatch.pl,​ coccinelle scripts, sparse, etc. and these tools report certain findings. 
 +While the valid ones are addressed by the kernel developers, the invalid tool findings are manually assessed and not acted upon. Over time with addressing the valid findings, the proportion of invalid findings increase compared to newly appearing valid findings, as invalid findings of those tools are not marked and tracked over the various versions. 
 + 
 +In this GSoC project, the student should work out methods and tools to track the tool findings and make these tools useful in the Linux kernel community. 
 +  
 +Required Knowledge:​ 
 +  - Required: Very good knowledge of C, skill to READ AND UNDERSTAND source code in the Linux kernel in independent work 
 +  - Required: Very good knowledge of python 
 +  - Required: Good understanding of git 
 +  - Recommended:​ Some understanding of static analysis tools 
 +  - Recommended:​ Some understanding of coccinelle 
 + 
 +Main contact person for this project proposal: Lukas Bulwahn, lukas.bulwahn at gmail.com 
 + 
 +====== Student Project Proposals 2018 ======
  
 ==== Tailoring clang compiler warnings with coccinelle scripts ==== ==== Tailoring clang compiler warnings with coccinelle scripts ====
gsoc/2019-gsoc-safety-critical-linux.1547505087.txt.gz · Last modified: 2019/01/14 22:31 by till