Blog
Hello ๐,
In this article and the following ones I would like to share a road map for Embedded Linux Software Engineers, All the materials presented here I Used them and I teach them in my Embedded Linux Diploma You can join us my contact me on Whatsapp (๐ฌ 01125724372)
First I need to clarify some points:
- Some Topics Here influenced by Automotive industry.
- There are links between those materials, I will show that latter on.
- To be Embedded Linux Engineer, you need to be patient ๐, Nothing easy till now I made mistakes.
Pre-requisites:
- C Programming Lang skills.
- Basic Linux Command Line Knowledge.
Rules:
- To study Linux well (In my opinion any Software topic), you need to start with the Linux Architecture otherwise you will be missed up !
- You need set of drawing and visualization tools while you study those components, I highly recommend [Draw IO, Eraser IO ].
- Please don’t use Paper and pens while studying Linux use any Notes Management System Like [Obsidian].
- Practise —> Make mistakes —> Understand your mistake —> Practise.
I think I need to Apply the 1st rule, so below you can find Layered Diagram for Linux
What the hell is that, You Said ๐, If you need to Understand Linux Layered Diagram I highly recommend you to watch this video Linux Layered Diagram.
Did you watch it ? mmmmmm … let’s continue as we discussed in the video we can classify Linux Skills into Five Main parts:
- User Land .
- Kernel Space.
- Device Drivers.
- Application development and init-process integration.
- Embedded Linux Customization.
๐ I am going to discuss more about each section and the links and priority between books in a separated posts.
1. User Land
Let’s start with the books that will help us understand User Land and Linux Layered Diagram In general (as I said I used this book)
I highly recommend this books:
- Learn Modern linux written by Michael Hausenblas
- The Linux Command Line written by William E. Shotts
2. Kernel Space
I highly recommend this Books:
- Linux Internals Simplified written by @Haris Kundan Prasad
Then after you finishing this book you need to choose any stack from Linux Kernel and Start Study them, For Network Stack I highly recommend this books
2. Linux Networking 101 written by @David M. Davis
3. Understanding Linux Network Internals written by @Christian Benvenuti
๐ Anybody here ? Yes … Nice Let’s continue !
3. Device Drivers.
Let’s Jump Into Device Drivers and Hardware specific Knowledge
I highly recommend this books for device drivers:
- Easy Linux Driver written by @Mahesh Sambhaji
- Linux Device Driver Development written by @john
For Hardware Specific Board in this case Raspberry PI, I highly recommend :
- Learning Computer Architecture with Raspberry Pi @eben upton
4. Application development.
Now we Understand Linux Kernel and We Interact with its stacks, Let’s now focus on development Applications over linux, mainly in the Automotive Industries we use:
- Modern C++ >= 11
I classified Modern C++ into Three main levels:
- Basic Level Resources:
- Modern C++ Basics Video course Basic C++
- The C++ Workshop written by @Dale Green and Kurt Guntheroth and Shaun Ross Mitchell
- Intermediate Level Resources:
- Template Meta-Programming written by Marius Bancila
- Mastering C++ 17 STL written by Arthur O’Dwyer
- CMake Best Practices written by Dominik Berner and Mustafa Kemal GILOR
- Advanced Level Resources:
- Object Oriented Analysis and Design Cookbook written by Edwin M.
- Dive into Design Patterns written by https://refactoring.guru
- C++ Software Design written by Klaus Iglberger
Init process resources:
- Linux Service Management Made Easy with Systemd written by Donald A. Tevault
5. Embedded Linux Customization.
I highly recommends this books:
- Mastering Embedded Linux Written by Chris Simmonds
- Embedded Linux Systems with YOCTO project written by @Rudolf J. Streif
If you need a short-path for all of this you can join our Embedded Linux Diploma, please text me if you need any support Whatsapp (๐ฌ 01125724372)
โก๏ธ Next Diploma will be started at 15-June-2024 and you can start reserve now ๐๐๐๐๐
If you have good recommendations please tell us.
Finally if you want to see the the full image you can click here.
Thanks !