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 firstname.lastname@example.org.
Webinar: 8 Signs You’re Beyond Cron
11am CDT, April 29th
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.Join us!
- March 2015 Issue of Linux Journal: High-Performance Computing
- April 2015 Video Preview
- Users, Permissions and Multitenant Sites
- Not So Dynamic Updates
- Security in Three Ds: Detect, Decide and Deny
- DevOps: Everything You Need to Know
- Flexible Access Control with Squid Proxy
- Non-Linux FOSS: MenuMeters
- Tighten Up SSH
- Android Candy: Bluetooth Auto Connect