User Tools

Site Tools


gsoc:2018-gsoc-safety-critical-linux

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gsoc:2018-gsoc-safety-critical-linux [2018/03/11 08:34]
lukas.bulwahn Add another proposal
gsoc:2018-gsoc-safety-critical-linux [2018/03/19 13:04] (current)
lukas.bulwahn Two more proposals
Line 106: Line 106:
 This is a quite challenging project; in the application,​ we expect that you have proved that you can run Facebook Infer on the complete Linux kernel source code and you obtained a first analysis result. This is a quite challenging project; in the application,​ we expect that you have proved that you can run Facebook Infer on the complete Linux kernel source code and you obtained a first analysis result.
  
-If you cannot run Facebook Infer on the complete Linux kernel source, you should prove that you understand why Facebook Infer fails on certain parts, suggest different alternative work arounds and solutions, and already applied ​on the work arounds, so that you can run Facebook Infer on the kernel source code with a fully known, understood and limited number of work arounds.+If you cannot run Facebook Infer on the complete Linux kernel source, you should prove that you understand why Facebook Infer fails on certain parts, suggest different alternative work arounds and solutions, and already applied the work arounds, so that you can run Facebook Infer on the kernel source code with a fully known, understood and limited number of work arounds.
  
 The project proposal should include first technical steps that show how you write models in Infer. The project proposal should include first technical steps that show how you write models in Infer.
Line 117: Line 117:
   - Required: good analytical skills to understand why static analysis reports findings in certain source code parts, solid documentation skills, good English writing skills with clear precise style   - Required: good analytical skills to understand why static analysis reports findings in certain source code parts, solid documentation skills, good English writing skills with clear precise style
   - Desired: Basic knowledge of the kernel build system   - Desired: Basic knowledge of the kernel build system
 +
 +==== 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
 +
 +==== Make Linux kernel community aware of tool findings ====
 +
 +The Linux kernel community has a number of tools to ensure the quality of the continuous kernel development. Among these tools are coccinelle, sparse, checkpatch.pl,​ lock dependency validator, KASAN, syzkaller and many more.
 +
 +In the GSoC project, the student should find suitable ways to make the Linux developers aware of the tools' findings. There are various way in which this could be implemented,​ e.g.:
 +
 +  - Setting up an infrastructure that runs those tools on patches provided on the mailing list and reports the findings back to the patch authors
 +  - Including the tool findings in the elixir development service
 +  - Providing means to tag and comment on tool findings in the distributed Linux kernel development
 +
 +This project idea is quite wide and we expect the student to provide a more specific description of the task to tackle with some evidence that he/she will be able to implement the proposal.
 +
 +Required Knowledge:
 +  - Required: Very good knowledge of a suitable programming language, e.g., python
 +  - Required: Good understanding of git
 +  - Required: Good knowledge of C
 +  - Recommended:​ Basic understanding how the kernel community works
 +  - Recommended:​ Basic understanding of the kernel tools
 +
 +==== Assess, Aggregate and Provide Detailed Statistics on Kernel Bug Fixes ====
 +
 +Goal of this project is to create and gather detailed information on bugs in the Linux kernel.To obtain this information,​ the student will have to analyse commits of the Linux kernel stabilisation process in a large number by manual assessment.
 +
 +The assessment should allow us to answer these kind of questions:
 +
 +  - Which type of problems are identified in the early stage of the stabilisation process?
 +  - Which type of problems are identified in the later stages of the stabilisation process?
 +  - How are problems identified, by review, by testing, by tools, by production use?
 +
 +This project will require to create an ontology of bugs; this will require some work reading general literature and quite some effort assessing and understanding the bug fix commits.
 +You will not mainly program new features, but you will learn a lot about the kernel code by looking and assessing bug fixes and trying to derive general statements from these observations.
 +
 +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 understanding of software development processes and software development methods
 +  - Required: Good understanding of git
gsoc/2018-gsoc-safety-critical-linux.1520757285.txt.gz ยท Last modified: 2018/03/11 08:34 by lukas.bulwahn