Somebody Still Uses Assembly Language?
Typically, even for device drivers, Linux developers do not use assembly language. Hence, it is particularly revealing to examine those very few parts of the kernel which are written in assembly language. These can be found within the Linux distributions with the command:
find -name *.S
entered from the root directory. Of particular interest are these:
bootsect.S (Intel style instructions)
setup.S (Intel style)
head.S (AT&T style)
These are heavily commented, but additional guidance can be found in the Intel documentation and in Alessandro Rubini's Tour of the Linux Kernel Source, found in the Kernel Hacker's Guide. These modules do the first portions of system initialization, a process which is completed by C routines. Once they have been executed, the assembly language routines are done. Another module of interest is entry.S (AT&T style) whose tasks are ongoing. In particular, it contains low level routines for handling system calls and faults.
This material should help interested readers start their own investigations of the Intel 80x86 (x >= 3) architecture and the Linux kernel. Much can then be learned about such topics as operating modes, memory management, and building the various descriptor tables.
Richard A. Sevenich is a Professor of Computer Science at Eastern Washington University in Cheney, Washington. His original enthusiasm for Linux was derived in part from the fact that its development had been driven by user needs rather than by marketing hype. He can be reached at email@example.com.
Webinar: 8 Signs You’re Beyond Cron
On Demand NOW
Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.View Now!
- When Official Debian Support Ends, Who Will Save You?
- Ubuntu Ditches Upstart
- Video On Demand: 8 Signs You're Beyond Cron
- May 2015 Issue of Linux Journal: Cool Projects
- Picking Out the Nouns
- "No Reboot" Kernel Patching - And Why You Should Care
- DevOps: Better Than the Sum of Its Parts
- Return of the Mac
- Drupageddon: SQL Injection, Database Abstraction and Hundreds of Thousands of Web Sites