background preloader

The Linux Documentation Project: Guides

The Linux Documentation Project: Guides
The Linux Documentation Project (LDP) is working on developing good, reliable documentation for the Linux operating system. The overall goal of the LDP is to collaborate in taking care of all of the issues of Linux documentation, ranging from online documentation (man pages, HTML, and so on) to printed manuals covering topics such as installing, using, and running Linux. Here is the Linux Documentation Project Manifesto and Copyright License for LDP works. Translations of LDP works (languages other than English) can be found on the "Non-English Linux Info" links page. Advanced Bash-Scripting Guide This document is both a tutorial and a reference on shell scripting with Bash. Below is a table of translated guides that are available from pub/Linux/docs/ldp-archived/. "An important part of any operating system is documentation, the technical manuals that describe the operation and use of programs. Related:  programing

Device Driver Basics The HyperNews Linux KHG Discussion Pages Device Driver Basics We will assume that you decide that you do not wish to write a user-space device, and would rather implement your device in the kernel. You will probably be writing writing two files, a .c file and a .h file, and possibly modifying other files as well, as will be described below. We will refer to your files as foo.c and foo.h, and your driver will be the foo driver. Namespace One of the first things you will need to do, before writing any code, is to name your device. Allocating memory Memory allocation in the kernel is a little different from memory allocation in normal user-level programs. Memory is provided in pieces whose size is a power of 2, except that pieces larger than 128 bytes are allocated in blocks whose size is a power of 2 minus some small amount for overhead. To free memory allocated with kmalloc(), use one of two functions: kfree() or kfree_s(). Be gentle when you use kmalloc. Character vs. block devices The VFS

Free Programming Books Here is an uncategorized list of online programming books available for free download. The books cover all major programming languages: Ada, Assembly, Basic, C, C#, C++, CGI, JavaScript, Perl, Delphi, Pascal, Haskell, Java, Lisp, PHP, Prolog, Python, Ruby, as well as some other languages, game programming, and software engineering. The books are in various formats for online reading or downloading. This list will be updated daily. Scroll downn, or use the shortcuts below.

How the Kernel Manages Your Memory After examining the virtual address layout of a process, we turn to the kernel and its mechanisms for managing user memory. Here is gonzo again: Linux processes are implemented in the kernel as instances of task_struct, the process descriptor. Each virtual memory area (VMA) is a contiguous range of virtual addresses; these areas never overlap. A program’s VMAs are stored in its memory descriptor both as a linked list in the mmap field, ordered by starting virtual address, and as a red-black tree rooted at the mm_rb field. In Windows, the EPROCESS block is roughly a mix of task_struct and mm_struct. The 4GB virtual address space is divided into pages. x86 processors in 32-bit mode support page sizes of 4KB, 2MB, and 4MB. The processor consults page tables to translate a virtual address into a physical memory address. Linux has functions to read and set each flag in a PTE. A virtual page is the unit of memory protection because all of its bytes share the U/S and R/W flags. 124 Comments

Welcome to Free Book Zone - Engineering, Technical, Medical, Maths, Physics eBooks What is a Device Driver? The HyperNews Linux KHG Discussion Pages What is a Device Driver? Making hardware work is tedious. To write to a hard disk, for example, requires that you write magic numbers in magic places, wait for the hard drive to say that it is ready to receive data, and then feed it the data it wants, very carefully. To write to a floppy disk is even harder, and requires that the program supervise the floppy disk drive almost constantly while it is running. Instead of putting code in each application you write to control each device, you share the code between applications. All versions of Unix have an abstract way of reading and writing devices. All devices controlled by the same device driver are given the same major number, and of those with the same major number, different devices are distinguished by different minor numbers. This chapter explains how to write any type of Linux device driver that you might need to, including character, block, SCSI, and network drivers.

WebLiterature - Online Digital Literature Library System Call Implementation System Call Implementation The actual implementation of a system call in Linux does not need to concern itself with the behavior of the system call handler. Thus, adding a new system call to Linux is relatively easy. The hard work lies in designing and implementing the system call; registering it with the kernel is simple. The first step in implementing a system call is defining its purpose. What are the new system call's arguments, return value, and error codes? Designing the interface with an eye toward the future is important. When you write a system call, it is important to realize the need for portability and robustness, not just today but in the future. Verifying the Parameters System calls must carefully verify all their parameters to ensure that they are valid and legal. For example, file I/O syscalls must check whether the file descriptor is valid. One of the most important checks is the validity of any pointers that the user provides.

Online texts Professor Jim Herod and I have written Multivariable Calculus ,a book which we and a few others have used here at Georgia Tech for two years. We have also proposed that this be the first calculus course in the curriculum here, but that is another story.... Although it is still in print, Calculus,by Gilbert Strang is made available through MIT's OpenCourseWare electronic publishing initiative. Here is one that has also been used here at Georgia Tech. The Best Linux Software Advertisement Updated by Bertel King, Jr. on June 22nd 2017 You’ve made the switch from Windows or Mac OS X, and now you’re looking for applications to install. You’ve already picked a Linux distro and have settled on a desktop environment. Most of the software below is free and open source. A few require you to download an installer from a website. Browsers Firefox Firefox has lost market share over the years, but it remains the best fully open source browser around. Chrome/Chromium By some measures, Chrome is now the king of the hill. Opera Opera isn’t open source, but it is free. Web (Epiphany) Browser There aren’t many browsers developed explicitly for Linux. QupZilla None of the above browsers look quite at home on the KDE Plasma desktop. Email Thunderbird Thunderbird is the email client from Mozilla. Geary Geary isn’t the default GNOME email client, but it looks the part. Evolution Evolution is the official email client of the GNOME project. KMail Claws Mail Instant Messaging Pidgin Empathy Vocal