Awesome
How to learn modern Linux
A simple but long path to the intrepid adventurer.
Description
Unix as a family of systems, is one of the greatest bodies of intellectual work ever achieved by the human mind! It was the brainchild of Ken Thompson in 1969, because he wanted to play a simple game called Space Travel that he had developed for Multics, and he wanted to be able to run the program in a small computer of its own! With the help of Dennis Ritchie and many others it was born at the Bell Labs and quickly became, in several ways, a creature of all mankind! A free bird to fly by its own means and to be used as a tool for whoever wishes to learn deeper its ways of working. It's a coherent agglomerate of different technologies that never gets old and like a Fenix, re-borns from the ashes.
The objective of this How to
The objective of this How to is to be a small guide, to give anyone a path to becoming a Linux in depth knowledge person.
The general path that we will follow ... explore and discover
First, you will need to have a Linux installed. You should start with Ubuntu Linux, preferably in a secondary machine (or virtual machine [Virtual Box]). Install it and play normally with it, as if it would be your main machine. Play with it for 3 months all days, explore and discover. By then, you will find that you are really comfortable with your Linux Ubuntu system, then, think if you are ready to make it your main system for everyday use. If you are, then install it on your main system and use it all day long, continue to explore and to discover. Then in your secondary machine, install the Debian distribution (rock solid distro) with gnome once, and then with KDE, and use it for 3 months to get a real feeling for it, learn it inside out. Then install an Arch system with rolling release for 3 months. Do all the process of installation and get into all the details that make Linux work and how it works. Go in depth into Linux. Learn to fix it when it breaks. Then choose what you want to install on your main system: a Debian, a Arch Linux or if you would like to try another distro out there. By this time you will be a more knowledgeable person and you could decide your next move. <br> <br> You should, from the start, embark on a reading and studying journey, the path is listed below and some of the reading material is listed below. <br> <br> The major steps are: <br>
- Learn and appreciate the history of Unix, Linux, GNU, X, FreeBSD and C
- Learn by reading the documentation of the 3 major distros Ubuntu, Debian and Arch linux
- Learn to use the shell, and more specific the bash
- Learn how to navigate with the most common editors, vi and Emacs, learn what they represent in context, and learn other editors
- Learn system administration
- Learn how Linux internals works
- Learn about open source and the major software and hardware licenses
- Learn how to program on Linux
- Craftsmanship and software design
- Learn how systems programming works
- Linux kernel development
- Hardware knowledge
- Artificial Intelligence and Machine Learning
- Learn Raspberry Pi and embedded Linux
- FreeBSD knowledge
- Do the NAND To Tetris challenge in Rust, C, C++, GO or Python
- Become an enlightened person in terms of Linux and use it to accomplish your goals in a better way
1. Learn and appreciate the history of Unix, Linux, GNU, X, FreeBSD and C
-
Video - Bell Labs Song <br> https://www.youtube.com/watch?v=IFfdnFOiXUU
-
Video - The Thompson and Ritchie Story <br> https://www.youtube.com/watch?v=g3jOJfrOknA
-
Video - The History of Unix, Rob Pike <br> https://www.youtube.com/watch?v=_2NI6t2r_Hs
-
Video - UNIX: Making Computers Easier To Use -- AT&T Archives 1982, Bell Laboratories <br> https://www.youtube.com/watch?v=XvDZLjaCJuw
-
Video - VCF East 2019 - Brian Kernighan interviews Ken Thompson <br> https://www.youtube.com/watch?v=EY6q5dv_B-o
-
Video - Jon "maddog" Hall talks Unix and Linux history <br> https://www.youtube.com/watch?v=EZMA3Ge144U
-
Video - Revolution OS <br> https://www.youtube.com/watch?v=4vW62KqKJ5A
-
Video - The Origins of Linux - Linus Torvalds <br> https://www.youtube.com/watch?v=WVTWCPoUt8w
-
Video - Why C is so Influential - Computerphile<br> https://www.youtube.com/watch?v=ci1PJexnfNE
-
Video - C Programming Language: Brian Kernighan - Computerphile <br> https://www.youtube.com/watch?v=de2Hsvxaf8M
-
Video - Dennis Ritchie - Write in C <br> https://www.youtube.com/watch?v=H4YRPdRXKFs
-
Harley Hahns Guide to Unix and Linux <br> by Harley Hahn
-
UNIX: A History and a Memoir <br> by Brian W Kernighan
-
Just for Fun: The Story of an Accidental Revolutionary <br> by Linus Torvalds, David Diamond
-
UNIX Philosophy <br> A program should do one thing and do it well. <br> Video - Is The Unix Philosophy Still Important? - DistroTube <br> https://www.youtube.com/watch?v=bWQIBTB695w
-
Unix <br> https://en.wikipedia.org/wiki/Unix
-
Ken Thompson <br> https://en.wikipedia.org/wiki/Ken_Thompson
-
Dennis Ritchie <br> https://en.wikipedia.org/wiki/Dennis_Ritchie
-
Bell Labs <br> https://en.wikipedia.org/wiki/Bell_Labs
-
FreeBSD <br> https://en.wikipedia.org/wiki/FreeBSD
-
Bill Joy <br> https://pt.wikipedia.org/wiki/Bill_Joy
-
GNU Project <br> https://en.wikipedia.org/wiki/GNU_Project
-
Richard Stallman <br> https://en.wikipedia.org/wiki/Richard_Stallman
-
Linux <br> https://en.wikipedia.org/wiki/Linux
-
Linus Torvalds <br> https://en.wikipedia.org/wiki/Linus_Torvalds
-
Free Software Foundation <br> https://en.wikipedia.org/wiki/Free_Software_Foundation
-
C (programming language) <br> https://en.wikipedia.org/wiki/C_(programming_language)
-
Brian Kernighan <br> https://en.wikipedia.org/wiki/Brian_Kernighan
-
Plan 9 from Bell Labs <br> https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs
-
Inferno <br> https://en.wikipedia.org/wiki/Inferno_(operating_system)
-
C++ (programming language) <br> https://en.wikipedia.org/wiki/C%2B%2B
-
Bjarne Stroustrup <br> https://en.wikipedia.org/wiki/Bjarne_Stroustrup
-
Python (programming Language) <br> https://en.wikipedia.org/wiki/Python_(programming_language)
-
Guido van Rossum <br> https://en.wikipedia.org/wiki/Guido_van_Rossum
-
Go (programming language) <br> https://en.wikipedia.org/wiki/Go_(programming_language)
-
Rob Pike <br> https://en.wikipedia.org/wiki/Rob_Pike
-
Video - Google I/O 2012 - Meet the Go Team - Ken Thompson <br> https://www.youtube.com/watch?v=sln-gJaURzk
-
Rust (programming Language) <br> https://en.wikipedia.org/wiki/Rust_(programming_language)
2. Learn by reading the documentation of the 3 major distros Ubuntu, Debian and Arch linux
-
Ubuntu tutorials <br> https://ubuntu.com/tutorials
-
Debian extensive documentation including administration <br> https://www.debian.org/doc/
-
Arch linux in depth and extensive wiki <br> https://wiki.archlinux.org/
3. Learn to use the shell, and more specific bash
-
man and info pages, the web, forums and books are all your friends!
-
Video - Shell Scripting Tutorial | Edureka <br> https://www.youtube.com/watch?v=GtovwKDemnI
-
Video - Linux Command Line Full course: Beginners to Experts. Bash <br> https://www.youtube.com/watch?v=2PGnYjbYuUo
-
Video - Shell Scripting Crash Course - Beginner Level - Traversy Media <br> https://www.youtube.com/watch?v=v-F3YLd6oMw
-
Video - Shell Scripting Tutorial - Derek Banas <br> https://www.youtube.com/watch?v=hwrnmQumtPw
-
100 Useful Command-Line Utilities <br> https://www.oliverelliott.org/article/computing/ref_unix/#mkdirrmdir
-
Guia 500 comandos Linux <br> https://www.linuxpro.com.br/dl/guia_500_comandos_Linux.pdf
-
500+ Linux Commands <br> https://steemit.com/linux/@arshi731/500-linux-commands
-
Linux Pocket Guide, 3rd Edition Essential Commands <br> by Daniel J. Barrett
-
The Linux Command Line A Complete Introduction <br> by William E. Shotts
-
Bash Pocket Reference Help for Power Users and Sys Admins <br> by Arnold Robbins
-
Grep Pocket Reference <br> by John Bambenek, Agnieszka Klus
4. Learn how to navigate with the most common editors, vi and Emacs, learn what they represent in context, and learn other editors
-
nano - How to Use Nano, the Linux Command Line Text Editor <br> https://linuxize.com/post/how-to-use-nano-text-editor/
-
vi / vim wikipedia <br> https://en.wikipedia.org/wiki/Vi
-
Video Vim Tutorial <br> https://www.youtube.com/watch?v=IiwGbcd8S7I
-
Video - The Vim Tutorial - Part One - Basic Commands <br> https://www.youtube.com/watch?v=ER5JYFKkYDg
-
Video - The Vim Tutorial - Part Two - More Commands <br> https://www.youtube.com/watch?v=tExTz7GnpdQ
-
Video - Managing Your Splits In Vim <br> https://www.youtube.com/watch?v=Zir28KFCSQw
-
Learning the vi and Vim Editors, 7 Edition <br> by Arnold Robbins, Elbert Hannah, Linda Lamb
-
Emacs wikipedia <br> https://en.wikipedia.org/wiki/Emacs
-
Video - Emacs Tutorial <br> https://www.youtube.com/watch?v=Iagbv974GlQ
-
GNU Emacs Manuals Online <br> https://www.gnu.org/software/emacs/manual/
-
Harley Hahns Emacs Field Guide <br> by Harley Hahn
-
Visual Studio Code <br> https://code.visualstudio.com/
-
Sublime Text <br> https://www.sublimetext.com/
-
The geany editor <br> https://www.geany.org/
-
The Howl editor <br> https://howl.io/
-
Video - LaTeX Tutorial <br> https://www.youtube.com/watch?v=VhmkLrOjLsw
5. Learn system administration
-
Linux Command Line and Shell Scripting Bible 4th Edition <br> by Richard Blum Christine Bresnahan
-
Linux Bible 10th Edition <br> by Christopher Negus
-
UNIX and Linux System Administration Handbook 5th Edition <br> by Evi Nemeth, Garth Snyder, Trent Hein, Ben Whaley, Dan Mackin
-
The Debian Administrator's Handbook <br> by Raphael Hertzog, Roland Mass <br> https://www.debian.org/doc/manuals/debian-handbook/
-
Wicked Cool Shell Scripts <br> by Dave Taylor, Brandon Perry
6. Learn how Linux internals works
-
How Computers Really Work A Hands-On Guide to the Inner Workings of the Machine <br> by Matthew Justice
-
How Linux Works What Every Superuser Should Know, 3th Edition <br> by Brian Ward
7. Learn about open source and the major software and hardware licenses
-
The Open Source Definition <br> https://opensource.org/osd
-
Open Source <br> https://en.wikipedia.org/wiki/Open_source
-
Software license <br> https://en.wikipedia.org/wiki/Software_license
-
GNU General Public License <br> https://en.wikipedia.org/wiki/GNU_General_Public_License
-
MIT License <br> https://en.wikipedia.org/wiki/MIT_License
-
BSD licenses <br> https://en.wikipedia.org/wiki/BSD_licenses
-
Open-source hardware <br> https://en.wikipedia.org/wiki/Open-source_hardware
-
Open Hardware License's <br> https://en.wikipedia.org/wiki/Open_Hardware_License
8. Learn how to program on Linux
-
The Art of UNIX Programming <br> by Eric Raymond <br> http://www.catb.org/~esr/writings/taoup/ <br> http://www.catb.org/~esr/writings/taoup/html/
-
The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition <br> by David Thomas, Andrew Hunt
-
The Jargon File <br> http://www.catb.org/~esr//jargon/
-
The Cathedral and the Bazaar <br> http://www.catb.org/esr/writings/cathedral-bazaar/ <br> http://www.catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/
-
Video - Python Tutorial - Derek Banas <br> https://www.youtube.com/watch?v=H1elmMBnykA
-
Python Crash Course, 2nd Edition <br> A Hands-On, Project-Based Introduction to Programming <br> by Eric Matthes
-
How to learn modern Python <br> https://github.com/joaocarvalhoopen/How_to_learn_modern_Python
-
An Introduction to GCC: For the GNU Compilers GCC and G++ <br> by Brian J. Gough, Richard M. Stallman <br> https://www.linuxtopia.org/online_books/an_introduction_to_gcc/index.html
-
Video - C programming video tutorial - Derek Banas <br> https://www.youtube.com/playlist?list=PLGLfVvz_LVvSaXCpKS395wbCcmsmgRea7
-
Simple notes on the C Programming Language <br> https://github.com/joaocarvalhoopen/Simple_notes_on_the_C_Programming_Language
-
C Programming Language, 2nd Edition 1988 <br> by Brian W. Kernighan, Dennis M. Ritchie
-
C Programming A Modern Approach 2nd Edition <br> by K. N. King
-
Beginning Linux programming <br> by Neil Matthew, Richard Stones
-
Linux for Developers Jumpstart Your Linux Programming Skills <br> by William Rothwell
-
Regular Expression Pocket Reference Regular Expressions for Perl, Ruby, PHP, Python, C, Java and .NET, 2Th Edition <br> by Tony Stubblebine
-
Ry's Git Tutorial <br> See the EPUB. <br> https://github.com/syn-bit/ry-s-git-tutorial
-
Pro Git 2th edition <br> Everything you need to know about Git <br> by Scott Chacon, Ben Straub <br> https://git-scm.com/book/en/v2
-
Video - C++ Tutorial 2020 - Derek Banas <br> https://www.youtube.com/watch?v=6y0bp-mnYU0
-
Programming: Principles and Practice Using C++, 2nd Edition <br> by Bjarne Stroustrup
-
C++ - Crash Course A Fast-Paced Introduction <br> by Josh Lospinoso
-
How to learn modern C++ <br> https://github.com/joaocarvalhoopen/How_to_learn_modern_C_Plus_Plus
-
Video - Rust and the Future of Systems Programming <br> https://www.youtube.com/watch?v=8EPsnf_ZYU0
-
Video - Unlocking the Power of Parallelism with Rust <br> https://www.youtube.com/watch?v=cNeIOt8ZdAY
-
The Rust Programming Language <br> by Steve Klabnik and Carol Nichols, with contributions from the Rust Community <br> https://doc.rust-lang.org/stable/book/
-
Video - Rust Crash Course - Rustlang - Traversy Media <br> https://www.youtube.com/watch?v=zF34dRivLOw
-
How to learn modern Rust <br> https://github.com/joaocarvalhoopen/How_to_learn_modern_Rust
C, C++ and Rust can use the following tools. <br>
-
Tool - GDB: The GNU Project Debugger <br> https://www.gnu.org/software/gdb/documentation/
-
Tool - The LLDB Debugger <br> https://lldb.llvm.org/
-
Tool - Valgrind User Manual <br> https://valgrind.org/docs/manual/manual.html
-
Tool - The perf Linux profiler - Examples of use <br> https://www.brendangregg.com/perf.html
-
Tool - American Fuzzy Lop - A good fuzzer <br> https://lcamtuf.coredump.cx/afl/
-
Tool - QuickCheck - QuickCheck is a way to do property based testing using randomly generated input. Rust <br> https://github.com/BurntSushi/quickcheck
-
Tool - Criterion rs - Statistics-driven Microbenchmarking in Rust <br> https://github.com/bheisler/criterion.rs
-
Video - Go Programming - Derek Banas <br> https://www.youtube.com/watch?v=CF9S4QZuV30
-
The Go Programming Language <br> by Alan Donovan, Brian Kernighan
-
Video - Lets LISP like it's 1959 <br> https://www.youtube.com/watch?v=hGY3uBHVVr4
-
LISP 1.5 Programmer's Manual - 1962 <br> By John McCarthy, Paul W. Abrahams, Daniel J. Edwards, Timothy P. Hart, Michael I. Levin <br> https://direct.mit.edu/books/book/2851/LISP-1-5-Programmer-s-Manual
-
Scheme a small dialect of LISP <br> Structure and Interpretation of Computer Programs - 2nd Edition <br> by Harold Abelson, Gerald Jay Sussman, Julie Sussman <br> https://mitpress.mit.edu/sites/default/files/sicp/index.html
-
Video - Lectures - MIT Open Courseware <br> by Harold Abelson, Gerald Jay Sussman <br> https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/
-
Scheme a small dialect of LISP <br> Software Design for Flexibility: How to Avoid Programming Yourself into a Corner <br> by Chris Hanson, Gerald Jay Sussman <br> (In Creative Commons)
-
Video - SQL Tutorial - MySQL <br> https://www.youtube.com/watch?v=XqIk2PwP0To
-
Video - The Art of Code - Dylan Beattie <br> https://www.youtube.com/watch?v=gdSlcxxYAA8
9. Craftsmanship and software design
-
The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition - 2nd Edition <br> by David Thomas, Andrew Hunt
-
The Practice of Programming <br> by Brian Kernighan, Rob Pike
-
Clean Code: A Handbook of Agile Software Craftsmanship <br> by Robert C. Martin
-
The Clean Coder: A Code of Conduct for Professional Programmers <br> by Robert Martin
-
Video - Object Oriented Design - Derek Banas <br> https://www.youtube.com/playlist?list=PLGLfVvz_LVvS5P7khyR4xDp7T9lCk9PgE
-
Video - UML 2.0 Tutorial - Derek Banas <br> https://www.youtube.com/playlist?list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc
-
Video - Design Patterns Tutorial - Derek Banas <br> https://www.youtube.com/playlist?list=PLF206E906175C7E07
-
Video - Code Refactoring - Derek Banas <br> https://www.youtube.com/playlist?list=PLGLfVvz_LVvSuz6NuHAzpM52qKM6bPlCV
-
Design Patterns: Elements of Reusable Object-Oriented Software <br> by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Grady Booch
-
Head First Design Patterns <br> Building Extensible and Maintainable Object-Oriented Software 2nd Edition <br> by Eric Freeman, Elisabeth Robson
-
Clean Architecture: A Craftsman's Guide to Software Structure and Design <br> by Robert Martin
-
Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People <br> by Aditya Bhargava
-
Introduction to Algorithms, 3rd Edition <br> by Thomas H. Cormen
-
The Art of Computer Programming, Volumes 1-4A + Facicles <br> by Donald Knuth and Donald John Fuller
-
The Art of Multiprocessor Programming 2nd Edition <br> by Maurice Herlihy, Nir Shavit, Victor Luchangco, Michael Spear
-
C++ Concurrency in Action 2nd Edition <br> by Anthony Williams
10. Learn how systems programming works
-
The Linux programming interface a Linux and UNIX system programming handbook <br> by Michael Kerrisk
-
Video - Linux System Programming 6 Hours Course <br> https://www.youtube.com/watch?v=6OSeJFo6GOc
-
Operating Systems Three Easy Pieces <br> by Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau <br> http://pages.cs.wisc.edu/~remzi/OSTEP/
-
Linux system programming talking directly to the kernel and C library <br> by Robert Love
-
Advanced Programming in the UNIX Environment <br> by W. Richard Stevens, Stephen A. Rago
-
Systems Programming in Unix/Linux <br> by K. C. Wang
-
Autotools A practitioners guide to GNU Autoconf, Automake, and Libtool <br> by John Calcote
-
Linux Device Drivers, 3th Edition <br> https://lwn.net/Kernel/LDD3/
-
Mastering Linux Device Driver Development <br> Write custom device drivers to support computer peripherals in Linux operating systems <br> by John Madieu
-
Computer Systems A Programmer’s Perspective <br> by Randal E. Bryant David R. O’Hallaron
-
Computer Networking A Top-Down Approach, 7th Edition <br> by James Kurose, Keith Ross
-
The Illustrated Network How TCPIP Works in a Modern Network <br> by Walter Goralski
-
Compilers: Principles, Techniques, and Tools <br> by Alfred Aho, Monica Lam, Ravi Sethi
-
Crafting Interpreters <br> by Robert Nystrom <br> https://craftinginterpreters.com
-
Writing An Interpreter In Go <br> by Thorsten Ball
-
Writing A Compiler In Go <br> by Thorsten Ball
-
C++ System Programming Cookbook Practical recipes for Linux system-level programming using the latest C++ features <br> by Onorato Vaticone
-
How to learn modern Rust <br> https://github.com/joaocarvalhoopen/How_to_learn_modern_Rust
11. Linux kernel development
-
Understanding the Linux Kernel, Third Edition 3rd Edition <br> by Daniel P. Bovet, Marco Cesati
-
Linux Kernel Development 3rd Edition <br> by Robert Love
-
Linux Kernel Programming: A comprehensive guide to kernel internals, writing kernel modules, and kernel synchronization <br> by Kaiwan N Billimoria
12. Hardware knowledge
-
Video - The Evolution Of CPU Processing Power Part 1: The Mechanics Of A CPU <br> https://www.youtube.com/watch?v=sK-49uz3lGg
-
Video - The Evolution Of CPU Processing Power Part 2: Rise Of The x86 <br> https://www.youtube.com/watch?v=kvDBJC_akyg
-
Video - The Evolution Of CPU Processing Power Part 3: The Origin Of Modern Operating Systems <br> https://www.youtube.com/watch?v=NTLwMgak3Fk
-
Video - The Evolution Of CPU Processing Power Part 4: The 32 Bit Processor - Pipelines and Caches <br> https://www.youtube.com/watch?v=qRbDWkOE63I
-
Video - The AI Hardware Problem <br> https://www.youtube.com/watch?v=owe9cPEdm7k
-
Digital Design and Computer Architecture 2nd Edition <br> by David Harris, Sarah Harris
-
Computer Organization and Design RISC-V Edition: The Hardware Software Interface 2nd Edition <br> by David A. Patterson, John L. Hennessy
-
The RISC-V Reader: An Open Architecture Atlas <br> by David Patterson, Andrew Waterman <br> http://riscvbook.com/
-
Computer Architecture: A Quantitative Approach 6th Edition <br> by John L. Hennessy, David A. Patterson
-
Video - David Patterson - A New Golden Age for Computer Architecture: History, Challenges and Opportunities <br> Note: See at 22 minutes, 63.000x speed up from Python to optimized C <br> https://www.youtube.com/watch?v=kFT54hO1X8M
-
How to learn modern electronics <br> https://github.com/joaocarvalhoopen/How_to_learn_modern_electronics
-
Most common components in electronics <br> https://github.com/joaocarvalhoopen/Most_common_components_in_electronics
-
How to learn modern Embedded Systems <br> https://github.com/joaocarvalhoopen/How_to_learn_modern_Embedded_Systems
13. Artificial Intelligence and Machine Learning
-
How to learn modern Machine Learning <br> https://github.com/joaocarvalhoopen/How_to_learn_modern_Machine_Learning
-
The Hundred-Page Machine Learning Book <br> by Andriy Burkov
-
scikit-learn - Machine Learning in Python <br> https://scikit-learn.org/
-
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems 2nd Edition <br> by Aurélien Géron
-
PyTorch Tutorials <br> https://pytorch.org/tutorials/
-
Deep Learning with PyTorch: Build, train, and tune neural networks using Python tools <br> by Eli Stevens, Luca Antiga, Thomas Viehmann
-
CUDA - Programming Massively Parallel Processors: A Hands-on Approach 3rd Edition <br> by David B. Kirk, Wen-mei W. Hwu
14. Learn Raspberry Pi and embedded Linux
-
Raspberry Pi User Guide 4th Edition <br> by Eben Upton, Gareth Halfacree
-
Programming the Raspberry Pi, Second Edition: Getting Started with Python 2nd Edition <br> by Simon Monk
-
Raspberry Pi Cookbook: Software and Hardware Problems and Solutions 3rd Edition <br> by Simon Monk
-
Practical Python Programming for IoT <br> Build advanced IoT projects using a Raspberry Pi 4, MQTT, RESTful APIs, WebSockets, and Python 3 by Gary Smart
-
Operating Systems Foundations with Linux on the Raspberry Pi <br> by Wim Vanderbauwhede, Jeremy Singer
-
Learning Computer Architecture with Raspberry Pi <br> by Eben Upton, Jeffrey Duntemann, Ralph Roberts, Tim Mamtora, Ben Everard
-
Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux <br> by Derek Molloy
-
Programming with 64-Bit ARM Assembly Language: Single Board Computer Development for Raspberry Pi and Mobile Devices <br> by Stephen Smith
-
Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux 2nd Edition <br> by Derek Molloy
-
Linux Driver Development for Embedded Processors - Second Edition: Learn to develop Linux embedded drivers with kernel 4.9 LTS <br> by Alberto Liberal de los Ríos
-
Embedded Linux Systems with the Yocto Project <br> by Rudolf Streif
-
Mastering Embedded Linux Programming: Unleash the full potential of Embedded Linux with Linux 4.9 and Yocto Project 2.2 (Morty) Updates, 2nd Edition <br> by Chris Simmonds
15. FreeBSD knowledge
-
Absolute FreeBSD, 3rd Edition: The Complete Guide to FreeBSD <br> by Michael W. Lucas
-
The Design and Implementation of the FreeBSD Operating System <br> by Marshall McKusick, George Neville-Neil, et al
-
FreeBSD Device Drivers: A Guide for the Intrepid <br> by Joseph Kong
16. Do the NAND To Tetris challenge in Rust, C, C++, GO or Python
- Building a Modern Computer From First Principles
-
From Nand to Tetris <br> https://www.nand2tetris.org/
-
Video - Shimon Schocken: The self-organizing computer course <br> https://www.youtube.com/watch?v=iE7YRHxwoDs
-
Video - From Nand to Tetris Part I Course Promo <br> https://www.youtube.com/watch?v=wTl5wRDT0CU
-
Free Course - Build a Modern Computer from First Principles <br> From Nand to Tetris (Project-Centered Course) <br> https://www.coursera.org/learn/build-a-computer
-
Free Course - Build a Modern Computer from First Principles <br> Nand to Tetris Part II (project-centered course) <br> https://www.coursera.org/learn/nand2tetris2
17. Become an enlightened person in terms of Linux and use it to accomplish your goals in a better way
- You will never achieve the complete nirvana, because there will always be something new to learn, and that is something good, but you will become more close to it and to enlightenment.
All my other guides
- The links to all my guides are in: <br> Guides on Linux - Programming - Embedded - Electronics - Aeronautics <br> https://github.com/joaocarvalhoopen/Guides_Linux-Programming-Electronics-Aeronautics
Have fun
Best regards, <br> João Nuno Carvalho