SlideShare a Scribd company logo
1 of 24
Technical breakfast
GNU/Linux for Safety Related Systems
Introduction



•   Embedded World – March 2011 – Nicholas McGuire (OSADL)

•   GNU/Linux for Safety Related Systems


Safety related systems



       Systems needed to guarantee the safety of their users and the environment


•   Find out if GNU/Linux is a suitable platform for safety-critical applications
Introduction: Contents



1. Linux and GNU/Linux
         • Software development
         • Kernel management: the git way
         • Modularity of Linux and GNU/Linux distributions


2. Tools for kernel development and its management

         •   git         •   make C=1
         •   cscope      •   coccinelle (spatch)
         •   sparse      •   gcov && gprof



3. Safety
         • Safety and IEC 61508
1.- Linux and GNU/Linux

•   Linux is the kernel of the GNU/Linux operating system.
•   It must guarantee a high quality of service (QoS).
•   Many important attributes are (RAMS): Operating System
     •   Reliability                           (e.g., GNU/Linux)
     •   Availability                                               Applications
     •   Maintainability
     •   Safety
                                                                       Kernel
                                                                    (e.g., Linux)

                                                                       HW


•   The kernel manages access to the hardware and forms a layer between the
    hardware and the so-called user space programs.
•   An operating system is more than a kernel. e.g. it offers compilers, editors,
    ftp/web servers, ...
1.- Software development: The Traditional Way



      • Build and Fix Cycle

      •   Software Life-Cycle Model
      •   The Waterfall Model
      •   The V-Model
      •   The Spiral Model
      •   The Incremental Model
      •   Extreme Programming
1.- Kernel development: The Open Source way

  •   Open Source Development Model

                                      Community


                                                      Review

                     Develop




Communication via email
   on mailing-lists                          Commit
1.- Kernel development: The Open Source way

•   Open Source Development Model: Some tools...



                            sum.orig.c

                  int sum (int a, int b)
                  {
                    return (a - b);
                  }
1.- Kernel development: The Open Source way

•   Open Source Development Model: Some tools...



                                          sum.c

                             int sum (int a, int b)
                             {
                               return (a + b);
                             }
1.- Kernel development: The Open Source way

•   Open Source Development Model: Some tools...

      diff Outputs changes to source code in a readable way


                                        sum_diff_file

                     --- sum.orig.c 2008-02-06 16:30:16.000000000 +01.00
                     +++ sum.c         2008-02-06 16:30:36.000000000 +01.00
                     @@ -1,4 +1,4 @@
                     int sum(int a, int b)
                     {
                     - return (a-b);
                     + return (a+b);
                     }
1.- Kernel development: The Open Source way

•   Open Source Development Model: Some tools...

      patch It is used to apply a diff to the original file


                                          sum_diff_file

                       --- sum.orig.c 2008-02-06 16:30:16.000000000 +01.00
                       +++ sum.c         2008-02-06 16:30:36.000000000 +01.00
                       @@ -1,4 +1,4 @@
                       int sum(int a, int b)
                       {
                       - return (a-b);
                       + return (a+b);
                       }
1.- Kernel development: The Open Source way

•     “The code will become ruined if everyone can submit code”  FALSE

    • Different layers of authority                      • Tag “signed-off by”



                             Linus Torvalds && Andrew                        2
                                Morton (Kernel v2.6)



                            Subarchitecture maintainer
                               (USB, networking, …)

                                                                            300

                              File maintainer (group)



                                      Userbase                             1000
1.- Kernel management: The git way


      git Is a source configuration management (SCM) tool as SVN, CVS, …
•   Typical git cycle:
          •   Programmer clones Linus’ repository
          •   Programmer makes a local branch
          •   Programmer edit files
          •   Programmer sends diff files to the mailing list
          •   Programmer commits files to his or her repository
          •   Linus incorporates the changes into the official tree
•   It guarantees source code integrity. SHA1 algorithm in each commit to generate
    checksum based in:
          • The content of a object
          • The “parent” commits of an object
          • The comment message for the object
•   Use a long-term stable version of the kernel
1.- The Modularity of Linux and GNU/Linux
distributions

•   Modularity(GNU/Linux) vs No-modularity (Windows, MAC, ...)

•   1st level: kernel  Disable unused features before compiling. They are not
    disabled at runtime, they do not exist in the binary image. File systems,
    networking features, ...

•   2nd level: application  Compile the applications with exactly the necessary
    features. Apache example

•   3rd level: choice of applications  Some other operating systems do not have
    this capability. Command line shell and GUI examples
1.- Testing

•   Safety standards require some degree of formal verification and testing which is
    necessary to guarantee safety



•   Industry has reacted to this important problem, and several organizations and
    projects has been created:
                            •   Linux Test Project (LTP)
                            •   Linux Foundation
                            •   Linux Kernel Performance
                            •   AutoTest
                            •   OSADL
1.- Kernel Stable tree



•   Kernel Stable-tree (2.6.x.y)

•   It is for updates on the safety and security of the system.

•   New features always have the potential of introducing new bugs.

•   Concentrating on fixing bugs without introducing new features is the best way to
    keep the system current and stable.

•   Some distributions provide backports to their stable line of distribution:
    v1.2.3_1,...
2.- Tools for kernel development (I) DEMO



•   git: source configuration management tool

•   cscope: developer’s tool for browsing source code

•   sparse: reports semantic errors and it is used when we compile with “make C=1”
     – address space mismatch
     – type mismatches
     – bad casting
     – lock context: semaphores, flags, locks, ...
     – portability warning
     – man sparse for (a lot) more
2.- Tools for kernel development (II) DEMO



•   make C = 1
•   make V = 1



•   coccinelle: semantic patching
     – Differences in spacing, indentation and comments
     – Choice of names given to variables (use of metavariables)
     – Irrelevant code (use of ‘...’ operator)
     – Other variations in coding style (use of isomorphisms)
         • E.g. if(!y)  if (y==NULL)  if(NULL==y)
2.- Tools for kernel development (III) DEMO



•   gcov: test coverage program
     – To help create more efficient and faster running code
     – To discover untested parts of a program



•   gprof: profiling tool to analyze the code’s performance. Find out some basic
    performance statistics, such as:
     – How often each line of code executes
     – What lines of code are actually executed
     – How much computing time each section of code uses
3.- Safety

   Safety definitions:
   • “Safety is reliability regarding critical failure modes”
   • “Absence of catastrophic consequences on the user(s) and the environment”



   • A system or application can only be termed safety-critical if it controls a
     process that can potentially harm its environment or users



   • Certification and safety-standards are used.
   • Standards describe how software should be tested: if it is enough to black-
     box test the software, of if additional white-box tests are required.
3.- Safety: IEC 61508

   • European standards (IEC 61508, e.g.) allow individual components of the
     safety-critical system to be certified.
   • There are four safety integrity levels (SIL).
   • SIL provides information about the criticality of a system.
   • Each level requires different development and verification methods.

              Severity of Failure                 IEC 61508
                 Catastrophic                       SIL 4
                    Severe                          SIL 3
                    Major                           SIL 2
                    Minor                           SIL 1
3.- Safety: EN 50128 Mandatory Requirements for
SIL4 Applications

•   Modular approach: Decomposition of a software system into small parts in order
    to limit the complexity of the system.

•   Design and Coding Standards: A document can be found in the kernel tree that
    describes the preferred coding style.

•   Functional testing: Tools for black-box testing and for code coverage analysis.

•   Performance testing: autotest project and kernel-perf project.

•   Data recording and analysis: all kernel data are recorded on the kernel homepage.
3.- Safety: EN 50128 Mandatory Requirements for
SIL4 Applications

•   Compliant with EN ISO 9000-3 and Company Quality System: it depends on the
    specific safety-critical system and the specific company and its quality system.

•   SW Configuration Management:
     – The whole life-cycle of a component is recorded in its git history
     – It is easy to compare two different versions of a source code file
     – The commit log files provide information on which changes occurred during
       the component’s life-cycle

•   Impact Analysis: to identify the effect that a change or an enhancement to a
    software system will have to other modules in that software system.
That’s all folks! Thank you!!!

   Questions, comments, … ??

                             ?           ?       ?           ?       ?
                     ?                                                       ?
            ?                    ?           ?       ?           ?
                         ?                                               ?
             ?
                     ?           ?           ?       ?           ?           ?
       ?                                                                         ?
                 ?
                         ?           ?       ?           ?       ?       ?
                                                                         ?
   References
       - Class: GNU/Linux for safety related systems (Embedded World 2011)
       - Book: Linux in Safety-Critical Applications (OSADL Academic Works)
                 Roland Kammerer (ISBN: 978-3-00-033885-4)
Technical breakfast
GNU/Linux for Safety Related Systems

More Related Content

What's hot

From L3 to seL4: What have we learnt in 20 years of L4 microkernels
From L3 to seL4: What have we learnt in 20 years of L4 microkernelsFrom L3 to seL4: What have we learnt in 20 years of L4 microkernels
From L3 to seL4: What have we learnt in 20 years of L4 microkernelsmicrokerneldude
 
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...Novell
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016Kuniyasu Suzaki
 
HKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolationHKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolationLinaro
 
Real Time Kernels
Real Time KernelsReal Time Kernels
Real Time KernelsArnav Soni
 
Porting linux on ARM
Porting linux on ARMPorting linux on ARM
Porting linux on ARMSatpal Parmar
 
Solving Real-Time Scheduling Problems With RT_PREEMPT and Deadline-Based Sche...
Solving Real-Time Scheduling Problems With RT_PREEMPT and Deadline-Based Sche...Solving Real-Time Scheduling Problems With RT_PREEMPT and Deadline-Based Sche...
Solving Real-Time Scheduling Problems With RT_PREEMPT and Deadline-Based Sche...peknap
 
Real-time soultion
Real-time soultionReal-time soultion
Real-time soultionNylon
 
A tour of F9 microkernel and BitSec hypervisor
A tour of F9 microkernel and BitSec hypervisorA tour of F9 microkernel and BitSec hypervisor
A tour of F9 microkernel and BitSec hypervisorLouie Lu
 

What's hot (20)

From L3 to seL4: What have we learnt in 20 years of L4 microkernels
From L3 to seL4: What have we learnt in 20 years of L4 microkernelsFrom L3 to seL4: What have we learnt in 20 years of L4 microkernels
From L3 to seL4: What have we learnt in 20 years of L4 microkernels
 
Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0
 
L4 Microkernel :: Design Overview
L4 Microkernel :: Design OverviewL4 Microkernel :: Design Overview
L4 Microkernel :: Design Overview
 
Construct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoTConstruct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoT
 
Unix v6 Internals
Unix v6 InternalsUnix v6 Internals
Unix v6 Internals
 
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Linux Internals - Interview essentials - 1.0
Linux Internals - Interview essentials - 1.0Linux Internals - Interview essentials - 1.0
Linux Internals - Interview essentials - 1.0
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016
 
RT linux
RT linuxRT linux
RT linux
 
HKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolationHKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolation
 
Real Time Kernels
Real Time KernelsReal Time Kernels
Real Time Kernels
 
Porting linux on ARM
Porting linux on ARMPorting linux on ARM
Porting linux on ARM
 
Priority Inversion on Mars
Priority Inversion on MarsPriority Inversion on Mars
Priority Inversion on Mars
 
Solving Real-Time Scheduling Problems With RT_PREEMPT and Deadline-Based Sche...
Solving Real-Time Scheduling Problems With RT_PREEMPT and Deadline-Based Sche...Solving Real-Time Scheduling Problems With RT_PREEMPT and Deadline-Based Sche...
Solving Real-Time Scheduling Problems With RT_PREEMPT and Deadline-Based Sche...
 
seL4 intro
seL4 introseL4 intro
seL4 intro
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Real-time soultion
Real-time soultionReal-time soultion
Real-time soultion
 
Device Drivers
Device DriversDevice Drivers
Device Drivers
 
A tour of F9 microkernel and BitSec hypervisor
A tour of F9 microkernel and BitSec hypervisorA tour of F9 microkernel and BitSec hypervisor
A tour of F9 microkernel and BitSec hypervisor
 

Viewers also liked

Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereAdaCore
 
IEC 61508-3 SW Engineering
IEC 61508-3 SW EngineeringIEC 61508-3 SW Engineering
IEC 61508-3 SW EngineeringHongseok Lee
 
Impact of IEC 61508 Standards on Intelligent Electrial Networks and Safety Im...
Impact of IEC 61508 Standards on Intelligent Electrial Networks and Safety Im...Impact of IEC 61508 Standards on Intelligent Electrial Networks and Safety Im...
Impact of IEC 61508 Standards on Intelligent Electrial Networks and Safety Im...Schneider Electric
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
UNIZO Lokaal Economisch beleid voor burgemeesters en schepen lokale Economie
UNIZO Lokaal Economisch beleid voor burgemeesters en schepen lokale EconomieUNIZO Lokaal Economisch beleid voor burgemeesters en schepen lokale Economie
UNIZO Lokaal Economisch beleid voor burgemeesters en schepen lokale EconomieBert Serneels
 
Lịch treo tường
Lịch treo tườngLịch treo tường
Lịch treo tườngKhiem Duong
 
アクアホームの行き方
アクアホームの行き方アクアホームの行き方
アクアホームの行き方RazielDios
 
10remarkableentrepreneurshipthoughts 131008125313-phpapp01
10remarkableentrepreneurshipthoughts 131008125313-phpapp0110remarkableentrepreneurshipthoughts 131008125313-phpapp01
10remarkableentrepreneurshipthoughts 131008125313-phpapp01Gina Gu
 
Mans nākotnes novads2
Mans nākotnes  novads2Mans nākotnes  novads2
Mans nākotnes novads2egilsdo
 
Before and-after-rehab
Before and-after-rehabBefore and-after-rehab
Before and-after-rehabthreezings
 
Acquisition of Cerro Del Gallo
Acquisition of Cerro Del GalloAcquisition of Cerro Del Gallo
Acquisition of Cerro Del Galloprimero_mining
 
Egypt Tours - Five Family Friendly Vacations Ideas And How To Make Them Affor...
Egypt Tours - Five Family Friendly Vacations Ideas And How To Make Them Affor...Egypt Tours - Five Family Friendly Vacations Ideas And How To Make Them Affor...
Egypt Tours - Five Family Friendly Vacations Ideas And How To Make Them Affor...hbwmike
 

Viewers also liked (20)

Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get There
 
Apex cnc catalogue
Apex cnc catalogueApex cnc catalogue
Apex cnc catalogue
 
IEC61508
IEC61508IEC61508
IEC61508
 
IEC 61508-3 SW Engineering
IEC 61508-3 SW EngineeringIEC 61508-3 SW Engineering
IEC 61508-3 SW Engineering
 
IEC 61508
IEC 61508IEC 61508
IEC 61508
 
SPINDLE
SPINDLESPINDLE
SPINDLE
 
Sil presentation
Sil presentationSil presentation
Sil presentation
 
Impact of IEC 61508 Standards on Intelligent Electrial Networks and Safety Im...
Impact of IEC 61508 Standards on Intelligent Electrial Networks and Safety Im...Impact of IEC 61508 Standards on Intelligent Electrial Networks and Safety Im...
Impact of IEC 61508 Standards on Intelligent Electrial Networks and Safety Im...
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Yerevan branch MESI
Yerevan branch MESI Yerevan branch MESI
Yerevan branch MESI
 
Question 1
Question 1Question 1
Question 1
 
UNIZO Lokaal Economisch beleid voor burgemeesters en schepen lokale Economie
UNIZO Lokaal Economisch beleid voor burgemeesters en schepen lokale EconomieUNIZO Lokaal Economisch beleid voor burgemeesters en schepen lokale Economie
UNIZO Lokaal Economisch beleid voor burgemeesters en schepen lokale Economie
 
Lịch treo tường
Lịch treo tườngLịch treo tường
Lịch treo tường
 
About me
About meAbout me
About me
 
アクアホームの行き方
アクアホームの行き方アクアホームの行き方
アクアホームの行き方
 
10remarkableentrepreneurshipthoughts 131008125313-phpapp01
10remarkableentrepreneurshipthoughts 131008125313-phpapp0110remarkableentrepreneurshipthoughts 131008125313-phpapp01
10remarkableentrepreneurshipthoughts 131008125313-phpapp01
 
Mans nākotnes novads2
Mans nākotnes  novads2Mans nākotnes  novads2
Mans nākotnes novads2
 
Before and-after-rehab
Before and-after-rehabBefore and-after-rehab
Before and-after-rehab
 
Acquisition of Cerro Del Gallo
Acquisition of Cerro Del GalloAcquisition of Cerro Del Gallo
Acquisition of Cerro Del Gallo
 
Egypt Tours - Five Family Friendly Vacations Ideas And How To Make Them Affor...
Egypt Tours - Five Family Friendly Vacations Ideas And How To Make Them Affor...Egypt Tours - Five Family Friendly Vacations Ideas And How To Make Them Affor...
Egypt Tours - Five Family Friendly Vacations Ideas And How To Make Them Affor...
 

Similar to Gnu linux for safety related systems

Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMSherif Mousa
 
Container Security
Container SecurityContainer Security
Container SecuritySalman Baset
 
The eBay-Way Meetup IL - CI/CD with Microservices
The eBay-Way Meetup IL - CI/CD with MicroservicesThe eBay-Way Meetup IL - CI/CD with Microservices
The eBay-Way Meetup IL - CI/CD with Microservicesyinonavraham
 
Automatize everything
Automatize everythingAutomatize everything
Automatize everythingBoris Bucha
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systemsVandana Salve
 
Design, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformDesign, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformSZ Lin
 
Introduction to ,NET Framework
Introduction to ,NET FrameworkIntroduction to ,NET Framework
Introduction to ,NET FrameworkANURAG SINGH
 
EMBA Firmware analysis - TROOPERS22
EMBA Firmware analysis - TROOPERS22EMBA Firmware analysis - TROOPERS22
EMBA Firmware analysis - TROOPERS22MichaelM85042
 
introduction.pdf
introduction.pdfintroduction.pdf
introduction.pdfxiso
 
Lightweight Virtualization in Linux
Lightweight Virtualization in LinuxLightweight Virtualization in Linux
Lightweight Virtualization in LinuxSadegh Dorri N.
 
OSC2023_security_automation_data.pdf
OSC2023_security_automation_data.pdfOSC2023_security_automation_data.pdf
OSC2023_security_automation_data.pdfMarcus Meissner
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteTushar B Kute
 
Applied Security for Containers, OW2con'18, June 7-8, 2018, Paris
Applied Security for Containers, OW2con'18, June 7-8, 2018, ParisApplied Security for Containers, OW2con'18, June 7-8, 2018, Paris
Applied Security for Containers, OW2con'18, June 7-8, 2018, ParisOW2
 

Similar to Gnu linux for safety related systems (20)

Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
kali linux
kali linux kali linux
kali linux
 
Container Security
Container SecurityContainer Security
Container Security
 
The eBay-Way Meetup IL - CI/CD with Microservices
The eBay-Way Meetup IL - CI/CD with MicroservicesThe eBay-Way Meetup IL - CI/CD with Microservices
The eBay-Way Meetup IL - CI/CD with Microservices
 
Automatize everything
Automatize everythingAutomatize everything
Automatize everything
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
Design, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformDesign, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux Platform
 
Introduction to ,NET Framework
Introduction to ,NET FrameworkIntroduction to ,NET Framework
Introduction to ,NET Framework
 
EMBA Firmware analysis - TROOPERS22
EMBA Firmware analysis - TROOPERS22EMBA Firmware analysis - TROOPERS22
EMBA Firmware analysis - TROOPERS22
 
introduction.pdf
introduction.pdfintroduction.pdf
introduction.pdf
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
The Linux System
The Linux SystemThe Linux System
The Linux System
 
Os file
Os fileOs file
Os file
 
2. microkernel new
2. microkernel new2. microkernel new
2. microkernel new
 
Lightweight Virtualization in Linux
Lightweight Virtualization in LinuxLightweight Virtualization in Linux
Lightweight Virtualization in Linux
 
OSC2023_security_automation_data.pdf
OSC2023_security_automation_data.pdfOSC2023_security_automation_data.pdf
OSC2023_security_automation_data.pdf
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
 
Linux
LinuxLinux
Linux
 
Applied Security for Containers, OW2con'18, June 7-8, 2018, Paris
Applied Security for Containers, OW2con'18, June 7-8, 2018, ParisApplied Security for Containers, OW2con'18, June 7-8, 2018, Paris
Applied Security for Containers, OW2con'18, June 7-8, 2018, Paris
 
Container Security
Container SecurityContainer Security
Container Security
 

More from DTQ4

Trampas en c ++
Trampas en c ++Trampas en c ++
Trampas en c ++DTQ4
 
Dtq4_portugués
Dtq4_portuguésDtq4_portugués
Dtq4_portuguésDTQ4
 
Dtq4_ita
Dtq4_itaDtq4_ita
Dtq4_itaDTQ4
 
Dtq4_eus
Dtq4_eusDtq4_eus
Dtq4_eusDTQ4
 
Dtq4_fra
Dtq4_fraDtq4_fra
Dtq4_fraDTQ4
 
Dtq4_esp
Dtq4_espDtq4_esp
Dtq4_espDTQ4
 
Dtq4_eng
Dtq4_engDtq4_eng
Dtq4_engDTQ4
 
Dtq4_deu
Dtq4_deuDtq4_deu
Dtq4_deuDTQ4
 

More from DTQ4 (8)

Trampas en c ++
Trampas en c ++Trampas en c ++
Trampas en c ++
 
Dtq4_portugués
Dtq4_portuguésDtq4_portugués
Dtq4_portugués
 
Dtq4_ita
Dtq4_itaDtq4_ita
Dtq4_ita
 
Dtq4_eus
Dtq4_eusDtq4_eus
Dtq4_eus
 
Dtq4_fra
Dtq4_fraDtq4_fra
Dtq4_fra
 
Dtq4_esp
Dtq4_espDtq4_esp
Dtq4_esp
 
Dtq4_eng
Dtq4_engDtq4_eng
Dtq4_eng
 
Dtq4_deu
Dtq4_deuDtq4_deu
Dtq4_deu
 

Recently uploaded

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Gnu linux for safety related systems

  • 1. Technical breakfast GNU/Linux for Safety Related Systems
  • 2. Introduction • Embedded World – March 2011 – Nicholas McGuire (OSADL) • GNU/Linux for Safety Related Systems Safety related systems Systems needed to guarantee the safety of their users and the environment • Find out if GNU/Linux is a suitable platform for safety-critical applications
  • 3. Introduction: Contents 1. Linux and GNU/Linux • Software development • Kernel management: the git way • Modularity of Linux and GNU/Linux distributions 2. Tools for kernel development and its management • git • make C=1 • cscope • coccinelle (spatch) • sparse • gcov && gprof 3. Safety • Safety and IEC 61508
  • 4. 1.- Linux and GNU/Linux • Linux is the kernel of the GNU/Linux operating system. • It must guarantee a high quality of service (QoS). • Many important attributes are (RAMS): Operating System • Reliability (e.g., GNU/Linux) • Availability Applications • Maintainability • Safety Kernel (e.g., Linux) HW • The kernel manages access to the hardware and forms a layer between the hardware and the so-called user space programs. • An operating system is more than a kernel. e.g. it offers compilers, editors, ftp/web servers, ...
  • 5. 1.- Software development: The Traditional Way • Build and Fix Cycle • Software Life-Cycle Model • The Waterfall Model • The V-Model • The Spiral Model • The Incremental Model • Extreme Programming
  • 6. 1.- Kernel development: The Open Source way • Open Source Development Model Community Review Develop Communication via email on mailing-lists Commit
  • 7. 1.- Kernel development: The Open Source way • Open Source Development Model: Some tools... sum.orig.c int sum (int a, int b) { return (a - b); }
  • 8. 1.- Kernel development: The Open Source way • Open Source Development Model: Some tools... sum.c int sum (int a, int b) { return (a + b); }
  • 9. 1.- Kernel development: The Open Source way • Open Source Development Model: Some tools... diff Outputs changes to source code in a readable way sum_diff_file --- sum.orig.c 2008-02-06 16:30:16.000000000 +01.00 +++ sum.c 2008-02-06 16:30:36.000000000 +01.00 @@ -1,4 +1,4 @@ int sum(int a, int b) { - return (a-b); + return (a+b); }
  • 10. 1.- Kernel development: The Open Source way • Open Source Development Model: Some tools... patch It is used to apply a diff to the original file sum_diff_file --- sum.orig.c 2008-02-06 16:30:16.000000000 +01.00 +++ sum.c 2008-02-06 16:30:36.000000000 +01.00 @@ -1,4 +1,4 @@ int sum(int a, int b) { - return (a-b); + return (a+b); }
  • 11. 1.- Kernel development: The Open Source way • “The code will become ruined if everyone can submit code”  FALSE • Different layers of authority • Tag “signed-off by” Linus Torvalds && Andrew 2 Morton (Kernel v2.6) Subarchitecture maintainer (USB, networking, …) 300 File maintainer (group) Userbase 1000
  • 12. 1.- Kernel management: The git way git Is a source configuration management (SCM) tool as SVN, CVS, … • Typical git cycle: • Programmer clones Linus’ repository • Programmer makes a local branch • Programmer edit files • Programmer sends diff files to the mailing list • Programmer commits files to his or her repository • Linus incorporates the changes into the official tree • It guarantees source code integrity. SHA1 algorithm in each commit to generate checksum based in: • The content of a object • The “parent” commits of an object • The comment message for the object • Use a long-term stable version of the kernel
  • 13. 1.- The Modularity of Linux and GNU/Linux distributions • Modularity(GNU/Linux) vs No-modularity (Windows, MAC, ...) • 1st level: kernel  Disable unused features before compiling. They are not disabled at runtime, they do not exist in the binary image. File systems, networking features, ... • 2nd level: application  Compile the applications with exactly the necessary features. Apache example • 3rd level: choice of applications  Some other operating systems do not have this capability. Command line shell and GUI examples
  • 14. 1.- Testing • Safety standards require some degree of formal verification and testing which is necessary to guarantee safety • Industry has reacted to this important problem, and several organizations and projects has been created: • Linux Test Project (LTP) • Linux Foundation • Linux Kernel Performance • AutoTest • OSADL
  • 15. 1.- Kernel Stable tree • Kernel Stable-tree (2.6.x.y) • It is for updates on the safety and security of the system. • New features always have the potential of introducing new bugs. • Concentrating on fixing bugs without introducing new features is the best way to keep the system current and stable. • Some distributions provide backports to their stable line of distribution: v1.2.3_1,...
  • 16. 2.- Tools for kernel development (I) DEMO • git: source configuration management tool • cscope: developer’s tool for browsing source code • sparse: reports semantic errors and it is used when we compile with “make C=1” – address space mismatch – type mismatches – bad casting – lock context: semaphores, flags, locks, ... – portability warning – man sparse for (a lot) more
  • 17. 2.- Tools for kernel development (II) DEMO • make C = 1 • make V = 1 • coccinelle: semantic patching – Differences in spacing, indentation and comments – Choice of names given to variables (use of metavariables) – Irrelevant code (use of ‘...’ operator) – Other variations in coding style (use of isomorphisms) • E.g. if(!y)  if (y==NULL)  if(NULL==y)
  • 18. 2.- Tools for kernel development (III) DEMO • gcov: test coverage program – To help create more efficient and faster running code – To discover untested parts of a program • gprof: profiling tool to analyze the code’s performance. Find out some basic performance statistics, such as: – How often each line of code executes – What lines of code are actually executed – How much computing time each section of code uses
  • 19. 3.- Safety Safety definitions: • “Safety is reliability regarding critical failure modes” • “Absence of catastrophic consequences on the user(s) and the environment” • A system or application can only be termed safety-critical if it controls a process that can potentially harm its environment or users • Certification and safety-standards are used. • Standards describe how software should be tested: if it is enough to black- box test the software, of if additional white-box tests are required.
  • 20. 3.- Safety: IEC 61508 • European standards (IEC 61508, e.g.) allow individual components of the safety-critical system to be certified. • There are four safety integrity levels (SIL). • SIL provides information about the criticality of a system. • Each level requires different development and verification methods. Severity of Failure IEC 61508 Catastrophic SIL 4 Severe SIL 3 Major SIL 2 Minor SIL 1
  • 21. 3.- Safety: EN 50128 Mandatory Requirements for SIL4 Applications • Modular approach: Decomposition of a software system into small parts in order to limit the complexity of the system. • Design and Coding Standards: A document can be found in the kernel tree that describes the preferred coding style. • Functional testing: Tools for black-box testing and for code coverage analysis. • Performance testing: autotest project and kernel-perf project. • Data recording and analysis: all kernel data are recorded on the kernel homepage.
  • 22. 3.- Safety: EN 50128 Mandatory Requirements for SIL4 Applications • Compliant with EN ISO 9000-3 and Company Quality System: it depends on the specific safety-critical system and the specific company and its quality system. • SW Configuration Management: – The whole life-cycle of a component is recorded in its git history – It is easy to compare two different versions of a source code file – The commit log files provide information on which changes occurred during the component’s life-cycle • Impact Analysis: to identify the effect that a change or an enhancement to a software system will have to other modules in that software system.
  • 23. That’s all folks! Thank you!!! Questions, comments, … ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? References - Class: GNU/Linux for safety related systems (Embedded World 2011) - Book: Linux in Safety-Critical Applications (OSADL Academic Works) Roland Kammerer (ISBN: 978-3-00-033885-4)
  • 24. Technical breakfast GNU/Linux for Safety Related Systems