Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

FreeBSD device drivers in depth - training overview

133 views

Published on

This training aims to enable developers with Linux background to develop FreeBSD kernel modules and drivers in particular. It is focused on the general understanding of the concepts and consists mainly of hands on experience, rather than theoretical explanations.

Published in: Education
  • Be the first to comment

  • Be the first to like this

FreeBSD device drivers in depth - training overview

  1. 1. Training overview FreeBSD device drivers in depth
  2. 2. Copyright (C) 2016 Semihalf. All rights reserved.Semihalf Expert To Expert Academy Summary ● Overview/Objectives This training aims to enable developers with Linux background to develop FreeBSD kernel modules and drivers in particular. It is focused on the general understanding of the concepts and consists mainly of hands on experience, rather than theoretical explanations. ● Duration 3 days ● Number of participants min 2, max 8 (assuming pair programming) 2
  3. 3. Copyright (C) 2016 Semihalf. All rights reserved.Semihalf Expert To Expert Academy Contents of the training (1) 1. Linux vs. FreeBSD ● Differences between Linux and FreeBSD, kernel primitives (mutexes, locks, conditional variables), ● Threads (kthread, callout, taskqueue) ● Memory and time management ● Modules and drivers. 3 2. Kernel drivers ● Declaring, building and loading the kernel module ● DMA memory and registers handling (bus_dma, bus_space) ● PCI handling including SR-IOV (Virtual/Physical functions) ● device hierarchy and enumeration (newbus) ● The kernel object ● Pitfalls and common mistakes.
  4. 4. Copyright (C) 2016 Semihalf. All rights reserved.Semihalf Expert To Expert Academy Contents of the training (2) 3. Debugging and troubleshooting ● Review and usage examples of the observability tools including Dtrace, FlameGraphs, KGDB, KTR/ktrace buffer ● In-kernel debugger (DDB) ● Postmortem analysis including kernel core dumps 4 4. Code upstream ● How to work with FreeBSD community ● Phabricator tool ● Coding style ● Implementing and maintaining common driver code (contrib directory, OS independent layer).
  5. 5. Contact us! academy@semihalf.com 5

×