Author: Robert Love
Publisher: Pearson Education
Release Date: 2010-06-22
Linux Kernel Development details the design and implementation of the Linux kernel, presenting the content in a manner that is beneficial to those writing and developing kernel code, as well as to programmers seeking to better understand the operating system and become more efficient and productive in their coding. The book details the major subsystems and features of the Linux kernel, including its design, implementation, and interfaces. It covers the Linux kernel with both a practical and theoretical eye, which should appeal to readers with a variety of interests and needs. The author, a core kernel developer, shares valuable knowledge and experience on the 2.6 Linux kernel. Specific topics covered include process management, scheduling, time management and timers, the system call interface, memory addressing, memory management, the page cache, the VFS, kernel synchronization, portability concerns, and debugging techniques. This book covers the most interesting features of the Linux 2.6 kernel, including the CFS scheduler, preemptive kernel, block I/O layer, and I/O schedulers. The third edition of Linux Kernel Development includes new and updated material throughout the book: An all-new chapter on kernel data structures Details on interrupt handlers and bottom halves Extended coverage of virtual memory and memory allocation Tips on debugging the Linux kernel In-depth coverage of kernel synchronization and locking Useful insight into submitting kernel patches and working with the Linux kernel community
Author: Robert Love
Publisher: Pearson Education
Release Date: 2010
The authoritative guide to the latest Linux kernel: fully updated, with an all-new chapter on kernel data structures. * *Authored by a well-known member of the Linux kernel development team with a reputation for clarity, readability, and insight. *Covers all major subsystems and features of the latest version of the Linux 2.6.xx kernel. *Provides examples based on real kernel code: samples that developers can use to modify and improve the Linux kernel on their own. Linux Kernel Development, 3/e, is a start-to-finish guide to the design and implementation of the latest Linux 2.6.xx kernel, written specifically for programmers who want to understand the existing kernel, write new kernel code, and write software that relies on the kernel's behavior. Author Robert Love is respected worldwide for his contributions to the Linux kernel: contributions that have improved everything from Linux preemption and process scheduling to virtual memory. In this book, he illuminates every major subsystem and feature of the current Linux kernel: their purpose, goals, design, implementation, and programming interfaces. He covers the kernel both from a theoretical and applied standpoint, helping programmers gain deep insights into operating system design as they master the skills of writing Linux kernel code.Love covers all important algorithms, relevant subsystems, process management, scheduling, time management and timers, system call interface, memory addressing, memory management, paging strategies, caching layers, VFS, kernel synchronization, signals, and more. This edition has been updated throughout to reflect changes since the original Linux kernel 2.6 was released. It also contains an entirely new chapter on kernel data structures.
Author: Daniel P. Bovet
Publisher: "O'Reilly Media, Inc."
Release Date: 2005-11-17
In order to thoroughly understand what makes Linux tick and why it works so well on a wide variety of systems, you need to delve deep into the heart of the kernel. The kernel handles all interactions between the CPU and the external world, and determines which programs will share processor time, in what order. It manages limited memory so well that hundreds of processes can share the system efficiently, and expertly organizes data transfers so that the CPU isn't kept waiting any longer than necessary for the relatively slow disks. The third edition of Understanding the Linux Kernel takes you on a guided tour of the most significant data structures, algorithms, and programming tricks used in the kernel. Probing beyond superficial features, the authors offer valuable insights to people who want to know how things really work inside their machine. Important Intel-specific features are discussed. Relevant segments of code are dissected line by line. But the book covers more than just the functioning of the code; it explains the theoretical underpinnings of why Linux does things the way it does. This edition of the book covers Version 2.6, which has seen significant changes to nearly every kernel subsystem, particularly in the areas of memory management and block devices. The book focuses on the following topics: Memory management, including file buffering, process swapping, and Direct memory Access (DMA) The Virtual Filesystem layer and the Second and Third Extended Filesystems Process creation and scheduling Signals, interrupts, and the essential interfaces to device drivers Timing Synchronization within the kernel Interprocess Communication (IPC) Program execution Understanding the Linux Kernel will acquaint you with all the inner workings of Linux, but it's more than just an academic exercise. You'll learn what conditions bring out Linux's best performance, and you'll see how it meets the challenge of providing good system response during process scheduling, file access, and memory management in a wide variety of environments. This book will help you make the most of your Linux system.
Nwely updated to include new calls and techniques introduced in Versions 2.2 and 2.4 of the Linux kernel, a definitive resource for those who want to support computer peripherals under the Linux operating system explains how to write a driver for a broad spectrum of devices, including character devices, network interfaces, and block devices. Original. (Intermediate)
Benvenuti describes the relationship between the Internet's TCP/IP implementation and the Linux Kernel so that programmers and advanced administrators can modify and fine-tune their network environment.
Linux Kernel Networking takes you on a guided in-depth tour of the current Linux networking implementation and the theory behind it. Linux kernel networking is a complex topic, so the book won't burden you with topics not directly related to networking. This book will also not overload you with cumbersome line-by-line code walkthroughs not directly related to what you're searching for; you'll find just what you need, with in-depth explanations in each chapter and a quick reference at the end of each chapter. Linux Kernel Networking is the only up-to-date reference guide to understanding how networking is implemented, and it will be indispensable in years to come since so many devices now use Linux or operating systems based on Linux, like Android, and since Linux is so prevalent in the data center arena, including Linux-based virtualization technologies like Xen and KVM.
Author: Neil Matthew
Publisher: John Wiley & Sons
Release Date: 2011-04-22
Beginning Linux Programming, Fourth Edition continues its unique approach to teaching UNIX programming in a simple and structured way on the Linux platform. Through the use of detailed and realistic examples, students learn by doing, and are able to move from being a Linux beginner to creating custom applications in Linux. The book introduces fundamental concepts beginning with the basics of writing Unix programs in C, and including material on basic system calls, file I/O, interprocess communication (for getting programs to work together), and shell programming. Parallel to this, the book introduces the toolkits and libraries for working with user interfaces, from simpler terminal mode applications to X and GTK+ for graphical user interfaces. Advanced topics are covered in detail such as processes, pipes, semaphores, socket programming, using MySQL, writing applications for the GNOME or the KDE desktop, writing device drivers, POSIX Threads, and kernel programming for the latest Linux Kernel.
Uses the Running Operation as the Main Thread Difficulty in understanding an operating system (OS) lies not in the technical aspects, but in the complex relationships inside the operating systems. The Art of Linux Kernel Design: Illustrating the Operating System Design Principle and Implementation addresses this complexity. Written from the perspective of the designer of an operating system, this book tackles important issues and practical problems on how to understand an operating system completely and systematically. It removes the mystery, revealing operating system design guidelines, explaining the BIOS code directly related to the operating system, and simplifying the relationships and guiding ideology behind it all. Based on the Source Code of a Real Multi-Process Operating System Using the 0.11 edition source code as a representation of the Linux basic design, the book illustrates the real states of an operating system in actual operations. It provides a complete, systematic analysis of the operating system source code, as well as a direct and complete understanding of the real operating system run-time structure. The author includes run-time memory structure diagrams, and an accompanying essay to help readers grasp the dynamics behind Linux and similar software systems. Identifies through diagrams the location of the key operating system data structures that lie in the memory Indicates through diagrams the current operating status information which helps users understand the interrupt state, and left time slice of processes Examines the relationship between process and memory, memory and file, file and process, and the kernel Explores the essential association, preparation, and transition, which is the vital part of operating system Develop a System of Your Own This text offers an in-depth study on mastering the operating system, and provides an important prerequisite for designing a whole new operating system.
Author: Robert Love
Publisher: "O'Reilly Media, Inc."
Release Date: 2013-05-14
Write software that draws directly on services offered by the Linux kernel and core system libraries. With this comprehensive book, Linux kernel contributor Robert Love provides you with a tutorial on Linux system programming, a reference manual on Linux system calls, and an insider’s guide to writing smarter, faster code. Love clearly distinguishes between POSIX standard functions and special services offered only by Linux. With a new chapter on multithreading, this updated and expanded edition provides an in-depth look at Linux from both a theoretical and applied perspective over a wide range of programming topics, including: A Linux kernel, C library, and C compiler overview Basic I/O operations, such as reading from and writing to files Advanced I/O interfaces, memory mappings, and optimization techniques The family of system calls for basic process management Advanced process management, including real-time processes Thread concepts, multithreaded programming, and Pthreads File and directory management Interfaces for allocating memory and optimizing memory access Basic and advanced signal interfaces, and their role on the system Clock management, including POSIX clocks and high-resolution timers
PostgreSQL is the world's most advanced open-source database. PostgreSQL is the most comprehensive, in-depth, and easy-to-read guide to this award-winning database. This book starts with a thorough overview of SQL, a description of all PostgreSQL data types, and a complete explanation of PostgreSQL commands. If you are a developer or an administrator, you'll love the chapter that explores PostgreSQL performance. The authors explain how PostgreSQL stores data on disk (and in memory) and how to measure and influence the effectiveness of PostgreSQL's caching mechanisms. You'll also learn how PostgreSQL generates and evaluates execution plans. The authors explain all of the query operators that can appear in the results of an EXPLAIN command, describing the performance implications of each operator as well as the conditions which will cause PostgreSQL to use that operator. PostgreSQL is also a complete guide for the developer. Whether you're developing with C, C++, ODBC, Embedded SQL, Java, Tcl/Tk, Perl, Python or PHP, you'll find a comprehensive description of the PostgreSQL API for your language of choice. Easy to follow exercises will walk you through the development of working applications that fully demonstrate the features offered by each API. You will also find a chapter that describes the PL/pgSQL server-side procedural language, learning how to build triggers, functions, and stored-procedures. The authors have even included a chapter that walks you through the process of extending the PostgreSQL server with custom-written C functions and new data types. The accompanying web site, www.conjectrix.com, contains downloadable versions of all of the sample code and a wealth of PostgreSQL-related resources. The last section of PostgreSQL was written for the PostgreSQL administrator. You will learn how to install PostgreSQL on Windows, Linux, and Unix systems, from source code or from pre-compiled installers. The authors have described all of the PostgreSQL configuration options (compile-time, startup, and on-the-fly). The chapter on PostgreSQL security describes all of the authentication protocols that you can choose from and describes how to secure your database, both internally and externally. If you have to support a multi-national environment, you will find the chapter on internationalization and localization to be invaluable. You won't find a more complete guide to PostgreSQL anywhere. The authors have made PostgreSQL approachable by leading the reader from basic concepts to advanced features. Whether you're a database beginner or an advanced user, you will find this book a valuable addition to your library.
Author: Wolfgang Mauerer
Publisher: John Wiley & Sons
Release Date: 2010-03-11
Find an introduction to the architecture, concepts and algorithms of the Linux kernel in Professional Linux Kernel Architecture, a guide to the kernel sources and large number of connections among subsystems. Find an introduction to the relevant structures and functions exported by the kernel to userland, understand the theoretical and conceptual aspects of the Linux kernel and Unix derivatives, and gain a deeper understanding of the kernel. Learn how to reduce the vast amount of information contained in the kernel sources and obtain the skills necessary to understand the kernel sources.
MySQL, Fifth Edition by Paul DuBois The definitive guide to using, programming and administering MySQL 5.5 and MySQL 5.6 MySQL provides a comprehensive guide to effectively using and administering the MySQL database management system (DBMS). Author Paul DuBois describes everything from the basics of getting information into a database and formulating queries, to using MySQL with PHP or Perl to generate dynamic web pages, to writing your own programs that access MySQL databases, to administering MySQL servers. The book also includes a comprehensive reference section providing detailed information on MySQL’s structure, language, syntax, and APIs. The fifth edition of this bestselling book has been meticulously revised and updated to thoroughly cover the latest features and capabilities of MySQL 5.5, as well as to add new coverage of features introduced with MySQL 5.6. MySQL is an open source relational database management system (DBMS) that has experienced a phenomenal growth in popularity and use. Known for its speed and ease of use, MySQL has proven itself to be particularly well-suited for developing database-backed websites and applications. MySQL runs on anything from modest hardware all the way up to enterprise servers, and its performance rivals any database system put up against it. Paul DuBois' MySQL, Fifth Edition, is the definitive guide to fully exploiting all the power and versatility of MySQL 5.5 and MySQL 5.6 Contents at a Glance Part I: General MySQL Use Chapter 1 Getting Started with MySQL Chapter 2 Using SQL to Manage Data Chapter 3 Data Types Chapter 4 Views and Stored Programs Chapter 5 Query Optimization Part II: Using MySQL Programming Interfaces Chapter 6 Introduction to MySQL Programming Chapter 7 Writing MySQL Programs Using C Chapter 8 Writing MySQL Programs Using Perl DBI Chapter 9 Writing MySQL Programs Using PHP Part III: MySQL Administration Chapter 10 Introduction to MySQL Administration Chapter 11 The MySQL Data Directory Chapter 12 General MySQL Administration Chapter 13 Security and Access Control Chapter 14 Database Maintenance, Backups, and Replication Part IV: Appendixes Appendix A Software Required to Use This Book Appendix B Data Type Reference Appendix C Operator and Function Reference Appendix D System, Status, and User Variable Reference Appendix E SQL Syntax Reference Appendix F MySQL Program Reference Online Appendixes: Appendix G C API Reference Appendix H Perl DBI API Reference Appendix I PHP API Reference
Author: William Rowley
Release Date: 2017-03-24
This book is an exploration of the Linux Kernel. The first part of the book is a guide for you on how to work with the Initial RAM Disk (initrd). This simply provides us with an easy way to load the RAM disk using the boot loader. The necessary steps which can help you achieve this, and the necessary tools for you have been discussed. The tools which can be used for kernel development are discussed in this book. The first tool discussed in this book is the kcov. The book guides you on how to get started with this tool for the purpose of kernel development to the final stages. The coccinelle, which is a tool for kernel development is also examined in this book. This is a good tool which can help you in pattern matching and in the transformation of text. You are guided on how to install this tool and then how to use it for the purpose of kernel development. Lastly, the book guides you on how to write or create the Linux kernel modules. This means that you will learn how to create modules for the Linux kernel on your own. The following topics are discussed in this book:- Initial RAM Disk (initrd)- Kernel Development Tools- Writing Linux Kernel Modules