The Linux Programming Interface (TLPI) is the definitive guide to the Linux and UNIX programming interface-the interface employed by nearly every application that runs on a Linux or UNIX system. In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order to master the craft of system programming, and accompanies his explanations with clear, complete example programs. You´ll find descriptions of over 500 system calls and library functions, and more than 200 example programs, 88 tables, and 115 diagrams. You´ll learn how to: -Read and write files efficiently -Use signals, clocks, and timers -Create processes and execute programs -Write secure programs -Write multithreaded programs using POSIX threads -Build and use shared libraries -Perform interprocess communication using pipes, message queues, shared memory, and semaphores -Write network applications with the sockets API While The Linux Programming Interface covers a wealth of Linux-specific features, including epoll, inotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms. The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that´s destined to become a new classic.
Device drivers literally drive everything you´re interested indisks, monitors, keyboards, modemseverything outside the computer chip and memory. And writing device drivers is one of the few areas of programming for the Linux operating system that calls for unique, Linux-specific knowledge. For years now, programmers have relied on the classic Linux Device Drivers from O´Reilly to master this critical subject. Now in its third edition, this bestselling guide provides all the information you´ll need to write drivers for a wide range of devices. Over the years the book has helped countless programmers learn: - how to support computer peripherals under the Linux operating system - how to develop and write software for new hardware under Linux - the basics of Linux operation even if they are not expecting to write a driver The new edition of Linux Device Drivers is better than ever. The book covers all the significant changes to Version 2.6 of the Linux kernel, which simplifies many activities, and contains subtle new features that can make a driver both more efficient and more flexible. Readers will find new chapters on important types of drivers not covered previously, such as consoles, USB drivers, and more. Best of all, you don´t have to be a kernel hacker to understand and enjoy this book. All you need is an understanding of the C programming language and some background in Unix system calls. And for maximum ease-of-use, the book uses full-featured examples that you can compile and run without special hardware.Today Linux holds fast as the most rapidly growing segment of the computer market and continues to win over enthusiastic adherents in many application areas. With this increasing support, Linux is now absolutely mainstream, and viewed as a solid platform for embedded systems. If you´re writing device drivers, you´ll want this book. In fact, you´ll wonder how drivers are ever written without it. Device drivers literally drive everything you´re interested in--disks, monitors, keyboards, modems--everything outside the computer chip and memory. And writing device drivers is one of the few areas of programming for the Linux operating system that calls for unique, Linux-specific knowledge. For years now, programmers have relied on the classic Linux Device Drivers from O´Reilly to master this critical subject. Now in its third edition, this bestselling guide provides all the information you´ll need to write drivers for a wide range of devices.Over the years the book has helped countless programmers learn: how to support computer peripherals under the Linux operating system how to develop and write software for new hardware under Linux the basics of Linux operation even if they are not expecting to write a driver The new edition of Linux Device Drivers is better than ever. The book covers all the significant changes to Version 2.6 of the Linux kernel, which simplifies many activities, and contains subtle new features that can make a driver both more efficient and more flexible. Readers will find new chapters on important types of drivers not covered previously, such as consoles, USB drivers, and more.Best of all, you don´t have to be a kernel hacker to understand and enjoy this book. All you need is an understanding of the C programming language and some background in Unix system calls. And for maximum ease-of-use, the book uses full-featured examples that you can compile and run without special hardware.Today Linux holds fast as the most rapidly growing segment of the computer market and continues to win over enthusiastic adherents in many application areas. With this increasing support, Linux is now absolutely mainstream, and viewed as a solid platform for embedded systems. If you´re writing device drivers, you´ll want this book. In fact, you´ll wonder how drivers are ever written without it.
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 executionUnderstanding 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.
The Insider´s Best-Practice Guide to Rapid PyQt 4 GUI Development Whether you´re building GUI prototypes or full-fledged cross-platform GUI applications with native look-and-feel, PyQt 4 is your fastest, easiest, most powerful solution. Qt expert Mark Summerfield has written the definitive best-practice guide to PyQt 4 development. With Rapid GUI Programming with Python and Qt you´ll learn how to build efficient GUI applications that run on all major operating systems, including Windows, Mac OS X, Linux, and many versions of Unix, using the same source code for all of them. Summerfield systematically introduces every core GUI development technique: from dialogs and windows to data handling; from events to printing; and more. Through the book´s realistic examples you´ll discover a completely new PyQt 4-based programming approach, as well as coverage of many new topics, from PyQt 4´s rich text engine to advanced model/view and graphics/view programming. Every key concept is illuminated with realistic, downloadable examples-all tested on Windows, Mac OS X, and Linux with Python 2.5, Qt 4.2, and PyQt 4.2, and on Windows and Linux with Qt 4.3 and PyQt 4.3. Coverge includes Python basics for every PyQt developer: data types, data structures, control structures, classes, modules, and more Core PyQt GUI programming techniques: dialogs, main windows, and custom file formats Using Qt Designer to design user interfaces, and to implement and test dialogs, events, the Clipboard, and drag-and-drop Building custom widgets: Widget Style Sheets, composite widgets, subclassing, and more Making the most of Qt 4.2´s new graphics/view architecture Connecting to databases, executing SQL queries, and using form and table views Advanced model/view programming: custom views, generic delegates, and more Implementing online help, internationalizing applications, and using PyQt´s networking and multithreading facilities
Learn how to use microcontrollers without all the frills and math. This book uses a practical approach to show you how to develop embedded systems with 8 bit PIC microcontrollers using the XC8 compiler. It´s your complete guide to understanding modern PIC microcontrollers. Are you tired of copying and pasting code into your embedded projects? Do you want to write your own code from scratch for microcontrollers and understand what your code is doing? Do you want to move beyond the Arduino? Then Programming PIC Microcontrollers with XC8 is for you! Written for those who want more than an Arduino, but less than the more complex microcontrollers on the market, PIC microcontrollers are the next logical step in your journey. You´ll also see the advantage that MPLAB X offers by running on Windows, MAC and Linux environments. You don´t need to be a command line expert to work with PIC microcontrollers, so you can focus less on setting up your environment and more on your application. What You´ll Learn Set up the MPLAB X and XC8 compilers for microcontroller development Use GPIO and PPS Review EUSART and Software UART communications Use the eXtreme Low Power (XLP) options of PIC microcontrollers Explore wireless communications with WiFi and Bluetooth Who This Book Is For Those with some basic electronic device and some electronic equipment and knowledge. This book assumes knowledge of the C programming language and basic knowledge of digital electronics though a basic overview is given for both. A complete newcomer can follow along, but this book is heavy on code, schematics and images and focuses less on the theoretical aspects of using microcontrollers. This book is also targeted to students wanting a practical overview of microcontrollers outside of the classroom.
Linux® is being adopted by an increasing number of embedded systems developers, who have been won over by its sophisticated scheduling and networking, its cost-free license, its open development model, and the support offered by rich and powerful programming tools. While there is a great deal of hype surrounding the use of Linux in embedded systems, there is not a lot of practical information. Building Embedded Linux Systems is the first in-depth, hard-core guide to putting together an embedded system based on the Linux kernel. This indispensable book features arcane and previously undocumented procedures for:* Building your own GNU development toolchain* Using an efficient embedded development framework* Selecting, configuring, building, and installing a target-specific kernel* Creating a complete target root filesystem* Setting up, manipulating, and using solid-state storage devices* Installing and configuring a bootloader for the target* Cross-compiling a slew of utilities and packages* Debugging your embedded system using a plethora of tools and techniquesDetails are provided for various target architectures and hardware configurations, including a thorough review of Linux´s support for embedded hardware. All explanations rely on the use of open source and free software packages. By presenting how to build the operating system components from pristine sources and how to find more documentation or help, this book greatly simplifies the task of keeping complete control over one´s embedded operating system, whether it be for technical or sound financial reasons.Author Karim Yaghmour, a well-known designer and speaker who is responsible for the Linux Trace Toolkit, starts by discussing the strengths and weaknesses of Linux as an embedded operating system. Licensing issues are included, followed by a discussion of the basics of building embedded Linux systems. The configuration, setup, and use of over forty different open source and free software packages commonly used in embedded Linux systems are also covered. uClibc, BusyBox, U-Boot, OpenSSH, thttpd, tftp, strace, and gdb are among the packages discussed.
In just 24 sessions of one hour or less, Sams Teach Yourself Python Programming for Raspberry Pi in 24 Hours teaches you Python programming on Raspberry Pi, so you can start creating awesome projects for home automation, home theater, gaming, and more. Using this book´s straightforward, step-by-step approach, you´ll move from the absolute basics all the way through network and web connections, multimedia, and even connecting with electronic circuits for sensing and robotics. Every lesson and case study application builds on what you´ve already learned, giving you a rock-solid foundation for real-world success! Step-by-step instructions carefully walk you through the most common Raspberry Pi Python programming tasks. Quizzes at the end of each chapter help you test your knowledge. By the Way notes present interesting information related to the discussion. Did You Know? tips offer advice or show you easier ways to perform tasks. Watch Out! cautions alert you to possible problems and give you advice on how to avoid them. * Get your Raspberry Pi and choose the right low-cost peripherals * Set up Raspian Linux and the Python programming environment * Learn Python basics, including arithmetic and structured commands * Master Python 3 lists, tuples, dictionaries, sets, strings, files, and modules * Reuse the same Python code in multiple locations with functions * Manipulate string data efficiently with regular expressions * Practice simple object-oriented programming techniques * Use exception handling to make your code more reliable * Program modern graphical user interfaces with Raspberry Pi and OpenGL * Create Raspberry Pi games with the PyGame library * Learn network, web, and database techniques you can also use in business software * Write Python scripts that send email * Interact with other devices through Raspberry Pi´s GPIO interface * Walk through example Raspberry Pi projects that inspire you to do even more