Writing device drivers in Linux: A brief tutorial “Do you pine for the nice days of Minix-1.1, when men were men and wrote their own device drivers?” Linus Torvalds In order to develop Linux device drivers, it is necessary to have an understanding of the following: C programming. Some in-depth knowledge of C programming is needed, like pointer usage, bit manipulating functions, etc.Microprocessor programming. Lions' Commentary on UNIX 6th Edition, with Source Code For many years, the Lions Book was the only Unix kernel documentation available outside Bell Labs. Although the license of 6th Edition allowed classroom use of the source code, the license of 7th Edition specifically excluded such use, so the book spread through illegal copy machine reproductions (a kind of samizdat). It was commonly held to be the most copied book in computer science.
An A-Z Index of the Bash command line for Linux Commands marked • are bash built-ins Many commands particularly the Core Utils are also available under alternate shells (C shell, Korn shell etc). More bash commands: Linux Command Directory from O'Reilly, GNU CoreUtils.SS64 bash discussion forumLinks to other Sites, books etc 20 Linux System Monitoring Tools Every SysAdmin Should Know Need to monitor Linux server performance? Try these built-in commands and a few add-on tools. Most Linux distributions are equipped with tons of monitoring. These tools provide metrics which can be used to get information about system activities. You can use these tools to find the possible causes of a performance problem. The commands discussed below are some of the most basic commands when it comes to system analysis and debugging server issues such as:
Linux System Calls This article aims to give the reader, either a kernel novice or a seasoned programmer, a better understanding of the dynamics of system calls in Linux. Wherever code sections are mentioned, I refer to the 2.3.52 (soon to be 2.4) series of kernels unless otherwise noted. The Linux Kernel in Brief The most widespread CPU architecture is the IA32, a.k.a. x86, which is the architecture of the 386, 486, the Pentiums I, Pro, II and III, AMD's competing K6 and Athlon lines, plus CPUs from others such as VIA/Cyrix and Integrated Device Technologies. Because it is the most widespread, it will be taken as the illustrative example here. First, I will cover the mechanisms provided by the IA32 type of CPU for handling system calls, and then show how Linux uses those mechanisms.
LXR / The Linux Cross Reference What's new 2010-05-07 A badly timed hardware malfunction brought lxr.linux.no offline for several days. Thanks to the folks at Redpill Linpro for bringing the server back online -- apologies to everyone else for the interruption of service. 2010-02-06 A couple of rather embarrasing cross-site scripting holes have been plugged. Thanks to Dan Rosenberg and Moritz Naumann for bringing them to my attention. Entry Level Credential: Linux Essentials Linux adoption continues to rise world-wide as individual users, government entities and industries ranging from automotive to space exploration embrace open source technologies. This expansion of open source in enterprise is redefining traditional Information and Communication Technology (ICT) job roles to require more Linux skills. Whether you’re starting your career in Open Source, or looking for advancement, independently verifying your skill set can help you stand out to hiring managers or your management team. The Linux Essentials Professional Development Certificate (PDC) is a great way to show employers that you have the foundational skills required for your next job or promotion. It also serves as an ideal stepping-stone to the more advanced LPIC Professional Certification track for Linux Systems Administrators. The Linux Essentials Professional Development Certificate validates a demonstrated understanding of:
Debugging Memory on Linux All programs use memory, even ones that do nothing. Memory misuse results in a good portion of fatal program errors, such as program termination and unexpected behavior. Memory is a device for handling information. Overview JX is a Java operating system that focuses on a flexible and robust operating system architecture. The JX system architecture consists of a set of Java components executing on the JX core that is responsible for system initialization, CPU context switching and low-level domain management. The Java code is organized in components which are loaded into domains, verified, and translated to native code. Main-stream operating systems and traditional microkernels base their protection mechanisms on MMU-provided address space separation. Protection in JX is solely based on the type safety of the intermediate code, the Java bytecode. The system runs either on off-the-shelf PC hardware (i486, Pentium, and embedded PCs, such as the DIMM-PC) or as a guest system on Linux.
grep () NOTE: click here if you get an empty page. grep, egrep, fgrep - print lines matching a pattern grep [options] PATTERN [FILE...] grep [options] [-e PATTERN | -f FILE] [FILE...] Grep searches the named input FILEs (or standard input if no files are named, or the file name - is given) for lines containing a match to the given PATTERN. Understanding the Linux Kernel, 3rd Edition The kernel maintains a set of page tables for its own use, rooted at a so-called . After system initialization, this set of page tables is never directly used by any process or kernel thread; rather, the highest entries of the master kernel Page Global Directory are the reference model for the corresponding entries of the Page Global Directories of every regular process in the system. We explain how the kernel ensures that changes to the master kernel Page Global Directory are propagated to the Page Global Directories that are actually used by processes in the section " Linear Addresses of Noncontiguous Memory Areas " in Chapter 8 . We now describe how the kernel initializes its own page tables.
Documentation This is a collection of various documents written for Fink. Some of the documents may also be useful to people who use Mac OS X or Darwin without Fink and want to learn about porting Unix software. The current user documentation for Fink: Fink User's Guide - this covers installing Fink itself, installing packages, and upgrading to a new Fink release. It contains instructions for both the source and the binary release. Fink Advanced Topics Guide - covers more advanced concepts than those covered in the User's Guide.