Uploaded by danielpontep

Linux Systems Architecture

advertisement


(/)
Embedded GNU/Linux
Systems Architecture
Like 0
Tweet
Share
Course Objectives
To provide an understanding of the essentials of embedded
GNU/Linux, how the bits and pieces fit together. What
components are needed to build an embedded GNU/Linux
system,
where
to
get
them
from
and
how
to
configure/build/install them? Where to get help from? What
about those software licenses? Hands-on exercises provide you
with the necessary practical experience to go ahead and develop your own embedded
GNU/Linux systems after completing this training successfully.
Description
This five day training class uses hands-on exercises combined with instruction to illustrate the
concepts of embedded GNU/Linux. It is designed to bring you quickly up to speed. The
philosophy, concepts and commands necessary to make effective use of GNU/Linux are
described through a combination of theory and on-the-job training. Don’t reinvent the wheel,
but learn from an experienced trainer and take home a working knowledge of GNU/Linux and
the ability to use it effectively in your own embedded development project.
Prerequisites
• Basic familiarity with using a GNU/Linux system (e.g. Ubuntu) as an end user in user
space
• Basic familiarity with a command line shell
• Basic knowledge of user space/application development with GNU/Linux
• Basic knowledge concerning embedded processors and development boards
• Basic C programming knowledge
• …and/or no fear to learn the above…
Who should attend?
Managers, project managers, software-, hardware-, development-, systems engineers, testers,
administrators, technicians and other parties interested in the technology, who want to
understand as quickly as possible how Embedded GNU/Linux works. You must use GNU/Linux
or you have to luxury to decide whether it makes sense to use it or not. Maybe you already tried
to use Embedded GNU/Linux, but are not quite sure that you did everything the right way. You
currently use a different operating system and want to figure out whether GNU/Linux might be
better and/or cheaper.
Delivery Options
All the training material is English, but the presentation of it can be in English or in German, as
you wish, worldwide.
• on-site - instructor driven*)
• on-line - instructor driven**)
• on-site/on-line combination - instructor driven*)**)
During the training we’ll provide laptops*), boards*)**), workbooks (in English)*)**), remote
access to servers and boards**), screen-sharing**), audio-bridge**).
Check out our training delivery options (/index.php/trainings/training-overview) to see how we
can present/customise our material to your specific needs. Feel free to contact us
(/index.php/trainings/inquiry) for further inquiries.
Course Outline
Introduction
• History of Unix/Linux
• Licensing
• Standards
• Working with Free Software
• Spelunking
• Unix Philosophy
Host playground
• architecture
• shell
• FHS (file hierarchy standard)
◦ Devices, Daemon, Booting, Program Sections, Static/Shared Libraries
• permissions
◦ Access Control, Changing Permissions, umask
• hard/soft links
• real/effective uid/gid
Process/IPC
• Intro
◦ What's an OS?
◦ What's a scheduler?
◦ Linux: scheduler, priorities, scheduling classes
◦ process/task/thread
◦ errno
◦ fork
◦ Process termination
◦ Process states
◦ Zombies
◦ More about Processes
• IPC simple
◦ shell redirection, shelling out, tmpfiles
• IPC Generic
◦ Message passing vs. shared memory
• Advanced IPC
◦ pipes
◦ signals
◦ interrupted system calls
◦ message queues
◦ semaphores
◦ shared memory
◦ sockets
◦ select/poll
• IPC techniques to avoid
Embedded Specifics
• Intro
• Portability
• Build
◦ Cross/Native toolchain
Toolchains
• C-Libraries
◦ glibc, uclibc, eglibc, others
◦ reduce shared lib size
Eval Board
• Booting
◦ How does LInux boot on a PC?
◦ How is an Embedded System different?
• Booting the target
◦ Boot sequence, SD card and partitions
Stuff Needed
• Host
◦ Toolkit
◾ The Yocto Project
◾ Install Yocto SDK
◦ SD card
◦ screen
◦ minicom
◦ tftp server
◦ Root file systems
◦ Nfs server
• Target
◦ U-Boot
◾ Das U-Boot
◾ Scripting
◾ Fancy stuff
◾ Spash Screen
◾ U-Boot environment from Linux
◾ Post mortem
◾ Automatic SW update
◾ How to contribute?
◾ Get/Configure/Build/Install
◾ Commands
◦ Flat device tree
◾ What is a flat device tree?
◾ Device tree compiler
◾ Examples/Documentation
◦ Linux kernel
◾ Get
◾ Kbuild
◾ Multi Platfrom Support
◾ Configure/Build/Install
◾ Get/configure/build install
◾ What is uImage?
◾ Build fdt
◾ In-tree kernel modules
Rool File Systems
• Available root file systems
• prepare minimal-dev rootfs
• tftp server
• rootfs on ramdisk
• mtd
• rootfs on jffs2
• mtdparts
• rootfs on cramfs
• rootfs on ro ext2
• build/execute what's applicable from above on the target board
• rootfs comparison
Customizations
• System hangs
• pseudo tty
• getty
• runlevel
• static ip
• mount nfs
• ssh server
User Space Debugging
• Debugging Intro
◦ What's a bug?
◦ Types of bugs
◦ Debugging strategy
• Simple tools
◦ lsof, ltrace, strace,...
◦ procfs, top, netstat, syslog,...
• Advanced tools
• What’s a debugger?
• gdb
◦ host gdb
◦ target gdb
◦ gdb remote debugging
◦ gdb remote debugging with GUI
User Space Profiling/Tracing
• Profiling/Tracing tools
◦ strace
◦ system timers
◦ gprof
◦ gcov
◦ code optimization
◦ oprofile
◦ perf
• top an friends
◦ top
◦ latencytop
◦ powertop
◦ powerdebug
• crash
Real-time
• prerequisites
◦ Kernel vs. User Space
◦ interrupts
◦ reentrant code
• Real-time Intro
◦ What is Real-time
◦ Determinism
• Real-time Linux
◦ Hypervison
◦ Dual kernel
◦ Fully preemtive kernel
◦ 0 Vanilla Linux kernel
◦ 1 explicit preemption points
◦ 2 implicit preemption points
◦ 3 real-time preemption patch
◦ fully preemptive kernel
◦ hard real-time extensions
• Adeos/Xenomai
◦ adeos patch
◦ xenomai
◦ patch/config/build kernel
◦ run it on board
• Real-time myths
◦ must be fast
◦ rate monotonic
◦ universal methodology
◦ scheduling theory
◦ RTOS vs. Linux
◦ New hardware
◦ Dual kernel vs. Preempt-rt
◦ Future outlook Dual kernel
◦ Future outlook Preempt-rt
Please fill in this form (/index.php/trainings/inquiry) if you have further questions
regarding this or any other training and do not hesitate to contact us
(/index.php/misc/contact-us)if you have any further questions.
Public EGLiSA
Embedded GNU/Linux Systems Architecture
(/index.php/component/jevents/eventdetail/118/91|100|103/embeddedgnu-linux-systems-architecture?Itemid=1)
public, 5-day training class

04 Jun 2018

Munich/Germany, in German
GUARANTEED TO RUN
Embedded GNU/Linux Systems Architecture
(/index.php/component/jevents/eventdetail/149/91|100|103/embeddedgnu-linux-systems-architecture?Itemid=1)
public, 5-day training class

09 Jul 2018

Zurich/Switzerland
Pick a Training
(/index.php/component/jevents/eventdetail/145/91|100|103/pick-atraining?Itemid=1)
public/private, 2 to 5 day training class

23 Jul 2018

Europe, German/English TBD
Pick a Training
(/index.php/component/jevents/eventdetail/90/91|100|103/pick-atraining?Itemid=1)
public/private, 2 to 5 day training class

27 Aug 2018

Europe, German/English TBD
You are here: Home (/index.php) / Trainings (/index.php/trainings)
/ Embedded (/index.php/trainings/embedded-training-overview)
/
embedded training (/index.php/trainings/embedded-training-overview/85-embeddedtraining)
/ Embedded GNU/Linux Systems Architecture
(http://creativecommons.org/licenses/by-nc-sa/4.0/)
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0
International License (http://creativecommons.org/licenses/by-nc-sa/4.0/)
Download