Linux Learning Roadmap: From Installation to Kernel Development with Essential Books
This article presents a comprehensive staged learning path for Linux, progressing from installation and basic commands through system administration and kernel development prerequisites, accompanied by an extensive curated list of essential books covering software engineering fundamentals.
Getting Started
The first step is creating a Linux environment by installing a distribution on your hardware. The author emphasizes learning to install Linux independently, noting modern installers are as simple as Windows XP.
Distribution Choice
Regional preferences vary: Red Hat in North America, SuSE in Europe, Mandrake for desktop, while Debian is considered technically most advanced and widely used by kernel developers. Red Hat holds the largest global market share across application domains. The guiding principle: do not waste time on installation; focus energy on learning the most useful skills.
Note: Red Hat (AS/ES) suits servers; Personal Desktop users may prefer Mandrake, Debian, or SuSE.
If the goal is only adapting to a localized environment (e.g., Chinese government office migration), Chinese distributions like Red Flag or CS2C are adequate.
Intermediate Skills
The author lists concrete milestones:
Master 50+ common commands
Understand shell pipes ( |), file redirection ( >) and append ( >>)
Become familiar with GNOME/KDE X Window desktop environments
Master .tgz, .rpm, .biz package installation methods
Learn to add peripherals and install device drivers (e.g., modem)
Familiarize with GRUB/LILO bootloaders and basic repair
Know system directory structure and use mount to access other filesystems
Understand vi, gcc, gdb and basic Linux networking
Suggestion: Buy one moderately sized Linux textbook; it generally covers these requirements.
Advanced Applications
Concept Clarification
Ordinary Linux operation differs fundamentally from true system administration, which demands far broader knowledge.
Key Languages for Linux
English (U.S. English) — Essential for reading technical documentation, searching English resources, and direct communication; removes a major barrier to learning speed.
Shell (sed/awk) — The command interpreter and kernel-user interface channel. Shell scripts resemble Windows .bat but are far more powerful; shell is a full programming language that can replace hundreds of lines of C by leveraging existing system utilities, embodying a core CS principle. Enables automation; sed and awk handle text processing.
Perl/PHP — Preferred for CGI scripting, superior to ASP, with wide application.
C/C++ — Core languages of Linux/Unix; the kernel and system code are written in C.
ASM — Required for low-level kernel, hardware, device drivers, and embedded development; critical for the core kernel path.
Java, Python, Tcl, XML — Additional important languages.
System Administration
Beyond Linux familiarity, master at least one commercial Unix: Solaris (first choice) then FreeBSD. Carrier-grade systems typically run Solaris with Oracle/DB2.
Required expertise includes architecture and deployment of application servers: Apache, SSH, Sendmail/Qmail, ProFTP/vsftp, Samba, Squid, MySQL/PostgreSQL/Oracle, Bind. Master TCP/IP protocol suite. Implement solutions like Apache+PHP+ProFTP+MySQL+quota, large LANs, distributed clusters, and enterprise-grade applications. Skills: multi-user management, database administration, filesystem and logical storage management, log analysis, backup and disaster recovery, system patching, kernel upgrades, and firewall architecture for security. Adding router/switch knowledge completes a strong sysadmin profile.
Reference technical encyclopedias and internals books; use Google or major Linux site search engines for latest docs to avoid errors and vulnerabilities.
Deep Linux Learning (Kernel Level)
Prerequisites before reading kernel source:
C — Beyond basic textbooks; study The C Programming Language 2nd Ed. (K&R), C Traps and Pitfalls , Expert C Programming , C/C++ Deep Exploration . (Buffer overflow exploitation requires deeper C mastery.)
ASM (AT&T syntax, protected mode) — Protected mode complexity is covered in kernel books; Intel syntax basics suffice; Intel white papers for deeper interest.
Data Structures (Discrete Mathematics) — Core CS curriculum; fundamental importance.
Operating System Principles — Understand this before reading Linux kernel.
Microcomputer Principles / Computer Organization (Digital Circuits) — Direct hardware interaction requires this.
Linux/Unix Familiarity — At minimum, operational competence and Unix API knowledge.
Software Engineering / Compiler Theory — Classic texts searchable via china-pub.com. APUE (Advanced Programming in the UNIX Environment) by W. Richard Stevens (6 classic books, "bible" status) is not for beginners; start with UPE (Unix Programming Environment) for a gentler, deep introduction.
Additional recommended texts: GNU/Linux Programming Guide , Red Hat/Red Flag books, Operating Systems: Design and Implementation (Minix, Shanghai Jiao Tong University reference), The Design and Implementation of the 4.4BSD Operating System , Levine's UNIX Source Code Analysis , Understanding the Linux Kernel 2nd Ed., Linux Device Drivers 2nd Ed., Linux Kernel Source Code Scenario Analysis , Protected Mode 80386 Programming .
Engineering Linux Development
The author provides a categorized bibliography of 59 books across ten domains:
1. Scientific Philosophy & Management Philosophy (9 books)
The Psychology of Computer Programming
An Introduction to Systems Thinking
General Principles of Systems Design
Quality Software Management: Systems Thinking
Becoming a Technical Leader
Are Your Lights On?
The Pragmatic Programmer
Waltzing With Bears: Managing Risk on Software Projects
The Fifth Discipline
2. Computer Science Fundamentals (10 books)
The Art of Computer Programming
Computer Systems: A Programmer's Perspective
Introduction to Algorithms 2nd Ed.
Data Structures & Algorithm Analysis in C 2nd Ed.
Introduction to Automata Theory, Languages, and Computation 2nd Ed.
Discrete Mathematics and Its Applications 4th Ed.
Compilers: Principles, Techniques and Tools
Modern Operating Systems
Computer Networks 4th Ed.
An Introduction to Database Systems 7th Ed.
3. Software Engineering Thought (8 books)
Peopleware 2nd Ed.
The Peopleware Papers
The Mythical Man-Month
Software Engineering: A Practitioner's Approach 5th Ed.
Agile Software Development: Principles, Patterns, and Practices
Planning Extreme Programming
The Rational Unified Process: An Introduction 3rd Ed.
The Unified Software Development Process
4. Software Requirements (2 books)
Exploring Requirements: Quality Before Design
Writing Effective Use Cases
5. Software Design & Modeling (10 books)
Principles and Practice of Object-Oriented Methods
Object-Oriented Software Construction 2nd Ed.
Object-Oriented Analysis and Design with Applications 2nd Ed.
Fundamentals of Object-Oriented Design in UML
UML Distilled 2nd Ed.
Applying UML and Patterns 2nd Ed.
Design Patterns Explained
Design Patterns: Elements of Reusable Object-Oriented Software
Pattern-Oriented Software Architecture, Volume 1
Bringing Design to Software
6. Programming (10 books, specialization-dependent)
Programming Pearls 2nd Ed.
The C Programming Language
The C++ Programming Language Special Ed.
C++ Primer 3rd Ed.
The Design and Evolution of C++
Thinking in C++ 2nd Ed.
Effective C++ & More Effective C++
The Art of C++
Thinking in Java 3rd Ed.
Effective Java
7. Software Testing (3 books)
Test-Driven Development: By Example
Testing Object-Oriented Systems
Pragmatic Unit Testing in Java with JUnit / in C# with NUnit
8. Software Maintenance & Refactoring (1 book)
Refactoring: Improving the Design of Existing Code
9. Configuration Management & Version Control (1 book)
Pragmatic Version Control Using CVS
10. Domain Topics: Network, Platform, Database (5 books)
TCP/IP Illustrated
UNIX Network Programming
Advanced Programming in the UNIX Environment (APUE)
The Art of UNIX Programming
Data Access Patterns: Database Interactions in Object-Oriented Applications
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
