Google
 

Tuesday, February 13, 2007

Linux kernel books

REF:http://safari.phptr.com/

Linux® Kernel Primer, The: A Top-Down Approach for x86 and PowerPC Architectures

Linux® Kernel Primer, The: A Top-Down Approach for x86 and PowerPC Architectures
by Claudia Salzberg Rodriguez, Gordon Fischer, Steven Smolski

Publisher: Prentice Hall
Pub Date: September 19, 2005
Print ISBN-10: 0-13-118163-7
Print ISBN-13: 978-0-13-118163-2
Pages: 648
Slots: 1.0

Overview

Learn Linux kernel programming, hands-on: a uniquely effective top-down approach

The Linux® Kernel Primer is the definitive guide to Linux kernel programming. The authors' unique top-down approach makes kernel programming easier to understand by systematically tracing functionality from user space into the kernel and carefully associating kernel internals with user-level programming fundamentals. Their approach helps you build on what you already know about Linux, gaining a deep understanding of how the kernel works and how its elements fit together.

One step at a time, the authors introduce all the tools and assembly language programming techniques required to understand kernel code and control its behavior. They compare x86 and PowerPC implementations side-by-side, illuminating cryptic functionality through carefully-annotated source code examples and realistic projects. The Linux® Kernel Primer is the first book to offer in-depth coverage of the rapidly growing PowerPC Linux development platform, and the only book to thoroughly discuss kernel configuration with the Linux build system. Coverage includes

  • Data structures

  • x86 and PPC assembly language

  • Viewing kernel internals

  • Linux process model

  • User and kernel space

  • Interrupts and exceptions

  • Memory allocation and tracking

  • Tracing subsystem behavior

  • I/O interactions

  • Filesystems and file operations

  • Scheduling and synchronization

  • Kernel boot process

  • Kernel build system

  • Configuration options

  • Device drivers

  • And more...

If you know C, this book teaches you all the skills and techniques you need to succeed with Linux kernel programming. Whether you're a systems programmer, software engineer, systems analyst, test professional, open source project contributor, or simply a Linux enthusiast, you'll find it indispensable.

© Copyright Pearson Education. All rights reserved.

**********************************************************************

Understanding the Linux Kernel, 3rd Edition


Understanding the Linux Kernel, 3rd Edition
by Daniel P. Bovet, Marco Cesati

Publisher: O'Reilly
Pub Date: November 2005
Print ISBN-10: 0-596-00565-2
Print ISBN-13: 978-0-59-600565-8
Pages: 942
Slots: 1.0
Overview

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.

**********************************************************************

Linux Device Drivers, 3rd Edition


Linux Device Drivers, 3rd Edition
by Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini

Publisher: O'Reilly
Pub Date: February 2005
ISBN: 0-596-00590-3
Pages: 636
Slots: 1.0
Overview

Over the years, this bestselling guide has helped countless programmers learn how to support computer peripherals under the Linux operating system, and how to develop new hardware under Linux. Now, with this third edition, it's even more helpful, covering all the significant changes to Version 2.6 of the Linux kernel. Includes full-featured examples that programmers can compile and run without special hardware.

**********************************************************************

Understanding Linux Network Internals


Understanding Linux Network Internals
by Christian Benvenuti

Publisher: O'Reilly
Pub Date: December 2005
Print ISBN-10: 0-596-00255-6
Print ISBN-13: 978-0-59-600255-8
Pages: 1062
Slots: 1.0
Overview

If you've ever wondered how Linux carries out the complicated tasks assigned to it by the IP protocols -- or if you just want to learn about modern networking through real-life examples -- Understanding Linux Network Internals is for you.


Like the popular O'Reilly book, Understanding the Linux Kernel, this book clearly explains the underlying concepts and teaches you how to follow the actual C code that implements it. Although some background in the TCP/IP protocols is helpful, you can learn a great deal from this text about the protocols themselves and their uses. And if you already have a base knowledge of C, you can use the book's code walkthroughs to figure out exactly what this sophisticated part of the Linux kernel is doing.


Part of the difficulty in understanding networks -- and implementing them -- is that the tasks are broken up and performed at many different times by different pieces of code. One of the strengths of this book is to integrate the pieces and reveal the relationships between far-flung functions and data structures. Understanding Linux Network Internals is both a big-picture discussion and a no-nonsense guide to the details of Linux networking. Topics include:

  • Key problems with networking

  • Network interface card (NIC) device drivers

  • System initialization

  • Layer 2 (link-layer) tasks and implementation

  • Layer 3 (IPv4) tasks and implementation

  • Neighbor infrastructure and protocols (ARP)

  • Bridging

  • Routing

  • ICMP


Author Christian Benvenuti, an operating system designer specializing in networking, explains much more than how Linux code works. He shows the purposes of major networking features and the trade-offs involved in choosing one solution over another. A large number of flowcharts and other diagrams enhance the book's understandability.

**********************************************************************

Linux Kernel Development Second Edition


Linux Kernel Development Second Edition
by Robert Love

Publisher: Novell Press
Pub Date: January 12, 2005
Print ISBN-10: 0-672-32720-1
Print ISBN-13: 978-0-672-32720-9
Pages: 432
Slots: 1.0
Overview

The Linux kernel is one of the most interesting yet least understood open-source projects. It is also a basis for developing new kernel code. That is why Sams is excited to bring you the latest Linux kernel development information from a Novell insider in the second edition of Linux Kernel Development. This authoritative, practical guide will help you better understand the Linux kernel through updated coverage of all the major subsystems, new features associated with Linux 2.6 kernel and insider information on not-yet-released developments. You'll be able to take an in-depth look at Linux kernel from both a theoretical and an applied perspective as you cover a wide range of topics, including algorithms, system call interface, paging strategies and kernel synchronization. Get the top information right from the source in Linux Kernel Development.

**********************************************************************

Building Embedded Linux Systems


Building Embedded Linux Systems
by Karim Yaghmour

Publisher: O'Reilly
Pub Date: April 2003
ISBN: 0-596-00222-X
Pages: 416
Slots: 1.0
Overview

Building Embedded Linux Systems shows you how to design and build your own embedded systems using Linux as the kernel and freely available open source tools as the framework. Written by an active member of the open source community, the book is structured to gradually introduce readers to the intricacies of embedded Linux, with detailed information and examples in each chapter that culminate in describing how Linux is actually put on an embedded device.

**********************************************************************

**********************************************************************

**********************************************************************


--
Happy day, happy life!

Monday, February 12, 2007

How to subscribe to the mail list of Linux kernel Development

1. Read the FAQ of linux kernel carefully especially how to use the mail list legally and efficiently .

2. Send a mail to Majordomo@vger.kernel.org with the following message in your mail body:
"subscribe linux-kernel Replaced_By_Your_Valid_Email"

Attention:
a. Do not add any more characters to your message except replacing the string "Replaced_By_Your_Valid_Email" with your true mail.
b. Also be aware that the message should be sent without title.

3. Then you will receive two mails from Majordomo@vger.kernel.org respectively with the names: "Confirmation for subscribe linux-kernel" and "Majordomo results"

4. Read the two messages carefully.

5. After reading them, send a message again to Majordomo@vger.kernel.org to confirm your subscription with
"auth Your_Key subscribe linux-kernel Replaced_By_Your_Valid_Email" as message body.

Attention:
You can find the message body which you have to send in the "Confirmation for subscribe linux-kernel".
And again send the message without title.

6. A minute later, you will catch a welcome message from Majordomo@vger.kernel.org.
If there is no response, please wait for more time.

7. Now You have subscribed to the Linux kernel Development mail list.

Happy day, happy life!

Linux kernel Resource

“RTFSC – Read The Fucking Source Code ☺!”

–Linus Benedict Torvalds

1. Linux Documentation Project

The canonical set of Linux online and printed documentation.

2. Linux Online

Linux information

3. linux.org.uk

Linux information from Great Britain (very good!)

4. Linux International

An organization for promoting the use of Linux.

5. The linux-kernel mailing list FAQ

Answers to frequently-asked questions about the Linux kernel (including how to submit patches)

6. "A small trail through the Linux kernel"

A walk-through of what the kernel does when it runs a small demonstration program.

7. Linux kernel source finder

A list of where to get architecture-specific kernel sources and patches.

8. http://kerneltrap.org/

9. http://hotlinuxjobs.com/

10. http://lwn.net/

LWN.net has been covering the Linux and free software communities since 1998. Our aim is to provide complete information from the development community in a concise, well-written, and objective manner. LWN is a subscriber-supported publication. Most of our content is freely available, but some, including the current Weekly Edition, is restricted to subscribers for a period of one week or more. If you like what you see, please consider subscribing to support independent Linux coverage on the net.

11. http://lists.us.dell.com/

12. http://groups.google.com/group/fa.linux.kernel/topics?hl=en

13. http://www.kernel.org/

14. http://www.kernel.org/pub/linux/docs/lkml/#s3

The linux-kernel mailing list FAQ

15. http://vger.kernel.org/

The mission of vger.kernel.org is to provide email list services for the linux kernel developers.

16. http://www.isc.org/index.pl

Internet Systems Consortium, Inc. (ISC) is a nonprofit 501(c)(3) public benefit corporation dedicated to supporting the infrastructure of the universal connected self-organizing Internet—and the autonomy of its participants—by developing and maintaining core production quality software, protocols, and operations.

17.The Linux Kernel

It is to document the threads that bind all of these together and to help bootstrap engineers who are new to Linux kernel programming.



ay! Happy life!

How to write effective user case?

REF:Dr. Alistair Cockburn http://alistair.cockburn.us/
User case=text of scenarios of user succeeding or failing to achieve a goal using the system.

How to write a use  case:
1. Capture the system boundary.
 What computers, subsystems and people ("Actors") will interact directly with our system?

2. Identify the actors and their goals.
An "actor" is anything with behavior. Use the actors captured in step1.
What does each actor want/need our systems to do?
Goals make a good structure on which to hang requirements & project details.

3. Write the sample case: goal delivers.
The main success scenario.
Capture each actor's intent and responsibility, from trigger to goal delivery.
   a. Say what information passes between them.
   b. Number each line.

4. Capture conditions needing other handling
Usually, each step can fail.
Write the failure condition after the main success scenario.
The extension scenario show detecting unusual conditions.

5. Follow the extension till it ends or rejoins.
Recoverable extensions rejoin main course.
Not-recoverable extensions fail directly.

Attentions:
1. A scenario refers to lower-level goals (sub-use cases or common functions).
2. The outer use case only cares if the inner one succeeds, avoiding proliferation.

The hard parts about use cases is not typing, but thinking and agreeing.
1. Each step is correct. (Style: Each step written as "Actors kicks target")
2. There are no missing system responsibilities between steps.
3. All outside systems this system should use are mentioned explicitly.
4. All stakeholders with valid interests have their interests met by the end.
5. Every extension condition needing attention is mentioned.

Good use cases do many good things for the project.
1. Show stakeholders' interests in the system's behavior (the contract).
2. Show requirements in a context of use.
3. Show record of requirements decisions made.
4. Communicate in a language that crosses specialties.
5. Allow to check for completeness.
6. Give advance notice of items needing research.

E.g.
Coming soon...
--
Happy day, happy life!