Download --- pdf---Memory Management in Linux and Windows
Operating System
The following report contain:
1. Synopsis of Technical write-ups
2. Memory Management (Linux)
3. Memory Management (Windows)
4. PVM
5. Thread Management in WIN2K
6. RAID
7. UNIX Process Management
Synopsis of Technical Write-ups:
• Memory Management (Linux and Windows):
• PVM in Linux :
• Thread Management in WIN2K
• RAID:
• UNIX Process Management :
Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts
Wednesday, March 18, 2009
Monday, March 16, 2009
Custom Linux- A Porting Guide
Download ------ pdf----Custom Linux- A Porting Guide
Custom Linux: A Porting Guide
Porting LinuxPPC to a Custom SBC
Shie Erlich
Table of Contents
Chapter Introduction
Who needs to read this ?
What do I need to know (why so much) ?
The tools
The hardware
Copyright & License
Chapter Bootcamp: How To Begin ?
Creating a development environment
Compiling the first kernel
Booting the machine
Chapter Booting In The Dark
Debugging with print_str()
Modifying code using compiler flags
Getting the console to work
Forcing the kernel to boot our?way
Non?standard hardware ? just say no!
Let there be light: calculating baud rate
Chapter Linux Still Isn't Booting
Memory probing, RTC and decrementors
Big?little endian (we should have known)
Probing the CPC
Making CPC speak little?endian
Ethernet: our first PCI device
Some Miscellaneous Issues
Chapter Linux Is Booting What Now ?
The bit barrier
Booting from flash
Appendix A GNU Free Documentation License
A PREAMBLE
A APPLICABILITY AND DEFINITIONS
A VERBATIM COPYING
A COPYING IN QUANTITY
A MODIFICATIONS
A COMBINING DOCUMENTS
A COLLECTIONS OF DOCUMENTS
A AGGREGATION WITH INDEPENDENT WORKS
A TRANSLATION
A TERMINATION
A FUTURE REVISIONS OF THIS LICENSE
A How to use this License for your documents
Custom Linux: A Porting Guide
Porting LinuxPPC to a Custom SBC
Shie Erlich
Table of Contents
Chapter Introduction
Who needs to read this ?
What do I need to know (why so much) ?
The tools
The hardware
Copyright & License
Chapter Bootcamp: How To Begin ?
Creating a development environment
Compiling the first kernel
Booting the machine
Chapter Booting In The Dark
Debugging with print_str()
Modifying code using compiler flags
Getting the console to work
Forcing the kernel to boot our?way
Non?standard hardware ? just say no!
Let there be light: calculating baud rate
Chapter Linux Still Isn't Booting
Memory probing, RTC and decrementors
Big?little endian (we should have known)
Probing the CPC
Making CPC speak little?endian
Ethernet: our first PCI device
Some Miscellaneous Issues
Chapter Linux Is Booting What Now ?
The bit barrier
Booting from flash
Appendix A GNU Free Documentation License
A PREAMBLE
A APPLICABILITY AND DEFINITIONS
A VERBATIM COPYING
A COPYING IN QUANTITY
A MODIFICATIONS
A COMBINING DOCUMENTS
A COLLECTIONS OF DOCUMENTS
A AGGREGATION WITH INDEPENDENT WORKS
A TRANSLATION
A TERMINATION
A FUTURE REVISIONS OF THIS LICENSE
A How to use this License for your documents
Virtualization in Linux
Download ----pdf----Virtualization in Linux
Virtualization in Linux
Abstract
Three main virtualization approaches—emulation, paravirtualization,
and operating system-level virtualization—are covered, followed
by the implementation examples, comparison of the technologies and
their applications. OS-level virtualization is described in detail, with
examples from OpenVZ. The main kernel components (isolation and
virtualization, resource management, checkpointing and live migration)
and user-level tools are also explained. Typical usage scenarios
of virtualization solutions are presented.
Virtualization. Types of virtualization.
Concept of a VE
OpenVZ kernel
Virtualization and isolation
Resource management
Checkpointing and live migration
OpenVZ utilities
vzctl
Templates and vzpkg
Usage scenarios
Virtualization in Linux
Abstract
Three main virtualization approaches—emulation, paravirtualization,
and operating system-level virtualization—are covered, followed
by the implementation examples, comparison of the technologies and
their applications. OS-level virtualization is described in detail, with
examples from OpenVZ. The main kernel components (isolation and
virtualization, resource management, checkpointing and live migration)
and user-level tools are also explained. Typical usage scenarios
of virtualization solutions are presented.
Virtualization. Types of virtualization.
Concept of a VE
OpenVZ kernel
Virtualization and isolation
Resource management
Checkpointing and live migration
OpenVZ utilities
vzctl
Templates and vzpkg
Usage scenarios
IP aliasing multi-homing on Linux
Download --- pdf ----IP aliasing multi-homing on Linux
IP aliasing (.multi-homing.) on Linux
Practical TCP/IP:
Designing, Using, and Troubleshooting TCP/IP Networks on
Linux and Windows
IP-aliasing (.multi-homing.) on Linux
Multi-homing on RedHat Linux 8.0
IP aliasing (.multi-homing.) on Linux
Practical TCP/IP:
Designing, Using, and Troubleshooting TCP/IP Networks on
Linux and Windows
IP-aliasing (.multi-homing.) on Linux
Multi-homing on RedHat Linux 8.0
Linux 2.4 to 2.6 Transition Guide
Download ----- pdf---Linux 2.4 to 2.6 Transition Guide
Linux 2.4 to 2.6 Transition Guide
Chapter
Linux and IBM
Why moe to SLES or RHEL?
Why is there a new kernel?
Middleware
Can I install Linux without exploiting the new features?
New features of the Linux kernel
New common kernel code features
support for the Linux kernel
New functionality in Linux on -specific deice driers and tools
functions aailable in distributions
Benefits of features for and S/ systems Scalability enhancements
NPTL
Swapping subsystem Chapter
Transition options and tasks Transition options
Upgrade using distribution tools
Install Linux without using distribution tools
Install Linux on a separate system and migrate your files
Prepare for transition
Transition your SUSE LINUX system
Transition your Red Hat Linux system
Chapter Your system after transition
Deice naming and interface access
File system changes
Bus IDs
ude tool
General differences
NPTL
Using ssh
ziplconf
SUSE LINUX
Red Hat and SUSE LINUX
Using the ?swappiness? setting
Chapter Linux and M
Adding a new deice dynamically in a M enironment
Enhancements that can benefit running Linux on M
Chapter Linux on deice drier changes for Linux
Console deice drier
New features for
Console interface changes
Performing basic tasks with the Linux Kernel
Console deice selection
Enabling login on a TTY
QETH deice drier
New features for
QETH interface changes
Performing basic tasks with the Linux kernel Adding a proxy ARP entry
Remoing a proxy ARP entry Deactiating a qeth deice
Remoing a qeth deice
Inter-User Communication ehicle (IUC) deice drier
New features for
IUC interface changes
Performing basic tasks with the Linux kernel
DASD deice drier
New features for
DASD interface changes
Performing basic tasks with the Linux
kernel Channel attached tape drier
New features for
Tape interface changes
Performing basic tasks with the Linux kernel
zfcp deice drier
New features for
zfcp interface changes
Performing basic tasks with the Linux kernel
z/M Discontiguous Saed Segments (DCSS) deice drier
New features for
DCSS interface changes
Performing basic tasks with the Linux kernel
Notices
i Linux:
Linux 2.4 to 2.6 Transition Guide
Chapter
Linux and IBM
Why moe to SLES or RHEL?
Why is there a new kernel?
Middleware
Can I install Linux without exploiting the new features?
New features of the Linux kernel
New common kernel code features
support for the Linux kernel
New functionality in Linux on -specific deice driers and tools
functions aailable in distributions
Benefits of features for and S/ systems Scalability enhancements
NPTL
Swapping subsystem Chapter
Transition options and tasks Transition options
Upgrade using distribution tools
Install Linux without using distribution tools
Install Linux on a separate system and migrate your files
Prepare for transition
Transition your SUSE LINUX system
Transition your Red Hat Linux system
Chapter Your system after transition
Deice naming and interface access
File system changes
Bus IDs
ude tool
General differences
NPTL
Using ssh
ziplconf
SUSE LINUX
Red Hat and SUSE LINUX
Using the ?swappiness? setting
Chapter Linux and M
Adding a new deice dynamically in a M enironment
Enhancements that can benefit running Linux on M
Chapter Linux on deice drier changes for Linux
Console deice drier
New features for
Console interface changes
Performing basic tasks with the Linux Kernel
Console deice selection
Enabling login on a TTY
QETH deice drier
New features for
QETH interface changes
Performing basic tasks with the Linux kernel Adding a proxy ARP entry
Remoing a proxy ARP entry Deactiating a qeth deice
Remoing a qeth deice
Inter-User Communication ehicle (IUC) deice drier
New features for
IUC interface changes
Performing basic tasks with the Linux kernel
DASD deice drier
New features for
DASD interface changes
Performing basic tasks with the Linux
kernel Channel attached tape drier
New features for
Tape interface changes
Performing basic tasks with the Linux kernel
zfcp deice drier
New features for
zfcp interface changes
Performing basic tasks with the Linux kernel
z/M Discontiguous Saed Segments (DCSS) deice drier
New features for
DCSS interface changes
Performing basic tasks with the Linux kernel
Notices
i Linux:
Initialization sequence in GNULinux
Download---- pdf---Initialization sequence in GNULinux
Initialization sequence in GNU/Linux
The process of booting your PC, from power to prompt
The boot up
Alternate locations for init
Once the kernel has started
Table for one
The switch
SysVInit
The missing link
The end of innocence
Initialization sequence in GNU/Linux
The process of booting your PC, from power to prompt
The boot up
Alternate locations for init
Once the kernel has started
Table for one
The switch
SysVInit
The missing link
The end of innocence
Example Makefiles
Download ---- pdf ---Example Makefiles
Example Makefiles
The Book Makefile
Managing Examples
XML Preprocessing
Generating Output
Validating the Source
The Linux Kernel Makefile
Command-Line Options
Configuration Versus Building
Managing Command Echo
User-Defined Functions
Example Makefiles
The Book Makefile
Managing Examples
XML Preprocessing
Generating Output
Validating the Source
The Linux Kernel Makefile
Command-Line Options
Configuration Versus Building
Managing Command Echo
User-Defined Functions
Directory Organization and Makefile Style
Download---pdf---Directory Organization and Makefile Style
Directory Organization and
Makefile Style
Organizing Your Directories
Whenever possible, put all the files for one program or library in one directory.
The make Program
Heading Comments
Customization Information
Standard targets
Macro Definitions
Common macro definitions
Configurable variables
Major Targets
Other Targets
Special Rules
Dependencies
Common Expressions
Complexity
Portability Considerations
Generic Makefiles
Directory Organization and
Makefile Style
Organizing Your Directories
Whenever possible, put all the files for one program or library in one directory.
The make Program
Heading Comments
Customization Information
Standard targets
Macro Definitions
Common macro definitions
Configurable variables
Major Targets
Other Targets
Special Rules
Dependencies
Common Expressions
Complexity
Portability Considerations
Generic Makefiles
Debugging Makefiles
Download----pdf----Debugging Makefiles
Debugging Makefiles
Debugging Features of make
The --debug Option
Writing Code for Debugging
Good Coding Practices
Defensive Coding
Debugging Techniques
Common Error Messages
Syntax Errors
Errors in Command Scripts
No Rule to Make Target
Overriding Commands for Target
Debugging Makefiles
Debugging Features of make
The --debug Option
Writing Code for Debugging
Good Coding Practices
Defensive Coding
Debugging Techniques
Common Error Messages
Syntax Errors
Errors in Command Scripts
No Rule to Make Target
Overriding Commands for Target
Debugging IPC with Shell Commands
Download ----pdf---Debugging IPC with Shell Commands
Introduction
Tools for Working with Open Files
Debugging IPC with
Shell Commands
lsof
fuser
ls
file
stat
Dumping Data from a File
The strings Command
The xxd Command
The hexdump Command
The od Command
Shell Tools for System V IPC
System V Shared Memory
System V Message Queues
System V Semaphores
Tools for Working with POSIX IPC
POSIX Shared Memory
POSIX Message Queues
POSIX Semaphores
Tools for Working with Signals
Tools for Working with Pipes and Sockets
Pipes and FIFOs
Sockets
Using Inodes to Identify Files and IPC Objects
Summary
Introduction
Tools for Working with Open Files
Debugging IPC with
Shell Commands
lsof
fuser
ls
file
stat
Dumping Data from a File
The strings Command
The xxd Command
The hexdump Command
The od Command
Shell Tools for System V IPC
System V Shared Memory
System V Message Queues
System V Semaphores
Tools for Working with POSIX IPC
POSIX Shared Memory
POSIX Message Queues
POSIX Semaphores
Tools for Working with Signals
Tools for Working with Pipes and Sockets
Pipes and FIFOs
Sockets
Using Inodes to Identify Files and IPC Objects
Summary
Makefie Tutorial
Download pdf---Makefie Tutorial
Makefile Tutorial
This is an introduction and short tutorial on the use of make. It is intended to provide the student with
enough understanding of make to write their own description files (makefiles) well enough to satisfy the
needs of this course, and to facilitate the automation of the grading process for course projects.
Table of Contents
1. Introduction to make
2. Dependencies and the structure of makefiles
3. Dummy targets
4. Commands in a makefile rule
5. The use of variables in makefiles
6. Multi-level makefiles
7. Things you should know how to do
Makefile Tutorial
This is an introduction and short tutorial on the use of make. It is intended to provide the student with
enough understanding of make to write their own description files (makefiles) well enough to satisfy the
needs of this course, and to facilitate the automation of the grading process for course projects.
Table of Contents
1. Introduction to make
2. Dependencies and the structure of makefiles
3. Dummy targets
4. Commands in a makefile rule
5. The use of variables in makefiles
6. Multi-level makefiles
7. Things you should know how to do
Linux Filesystem Hierarchy
Download here ----pdf---Linux Filesystem Hierarchy
Linux Filesystem Hierarchy
Chapter Linux Filesystem Hierarchy
Foreward
The Root Directory
/bin
/boot
/dev
/etc
/home
/initrd
/lib
/lost+found
/media
/mnt
Mounting and unmounting
/opt
/proc
/root
/sbin
/usr
/var
/srv
/tmp
Glossary
Appendix A UNIX System V Signals
Appendix B Sources
Appendix C About the Author
Appendix D Contributors
Appendix E Disclaimer
Appendix F Donations
Appendix G Feedback
Appendix H GNU Free Documentation License
H PREAMBLE
H APPLICABILITY AND DEFINITIONS
H VERBATIM COPYING
H COPYING IN QUANTITY
H MODIFICATIONS
H COMBINING DOCUMENTSAppendix H GNU Free Documentation License
H COLLECTIONS OF DOCUMENTS
H AGGREGATION WITH INDEPENDENT WORKS
H TRANSLATION
H TERMINATION
H FUTURE REVISIONS OF THIS LICENSE
H ADDENDUM: How to use this License for your documents
Notes
Linux Filesystem Hierarchy
Chapter Linux Filesystem Hierarchy
Foreward
The Root Directory
/bin
/boot
/dev
/etc
/home
/initrd
/lib
/lost+found
/media
/mnt
Mounting and unmounting
/opt
/proc
/root
/sbin
/usr
/var
/srv
/tmp
Glossary
Appendix A UNIX System V Signals
Appendix B Sources
Appendix C About the Author
Appendix D Contributors
Appendix E Disclaimer
Appendix F Donations
Appendix G Feedback
Appendix H GNU Free Documentation License
H PREAMBLE
H APPLICABILITY AND DEFINITIONS
H VERBATIM COPYING
H COPYING IN QUANTITY
H MODIFICATIONS
H COMBINING DOCUMENTSAppendix H GNU Free Documentation License
H COLLECTIONS OF DOCUMENTS
H AGGREGATION WITH INDEPENDENT WORKS
H TRANSLATION
H TERMINATION
H FUTURE REVISIONS OF THIS LICENSE
H ADDENDUM: How to use this License for your documents
Notes
Comparison of Memory Management Systems of BSD Windows and Linux
Download Here----------Comparison of Memory Management Systems of BSDWindows and Linux
Comparison of Memory Management Systems of BSD,
Windows, and Linux
Abstract
This paper is a study of memory management systems
of an operating system. We begin with a brief introduction
to memory management systems and then we
compare the memory management systems of reallife
operating systems - BSD4.4, Windows 2000 and
Linux 2.4
Introduction
Memory Management Systems
Virtual Memory
Paging
Comparison
Data Structures to describe a process
space
BSD4.4
Windows
Linux
Distribution of Process Address
Space
Page Replacement
FreeBSD, NetBSD, OpenBSD
and UVM
Comparison of Memory Management Systems of BSD,
Windows, and Linux
Abstract
This paper is a study of memory management systems
of an operating system. We begin with a brief introduction
to memory management systems and then we
compare the memory management systems of reallife
operating systems - BSD4.4, Windows 2000 and
Linux 2.4
Introduction
Memory Management Systems
Virtual Memory
Paging
Comparison
Data Structures to describe a process
space
BSD4.4
Windows
Linux
Distribution of Process Address
Space
Page Replacement
FreeBSD, NetBSD, OpenBSD
and UVM
Friday, February 27, 2009
Post Mortem Crash Analysis In Linux
Download ---- pdf----Post Mortem Crash Analysis In Linux
Post Mortem Crash Analysis
Abstract
To improve the quality and reliability of embedded systems it is important to
gather information about errors in units already sold and deployed To achieve
this, a system for transmitting error information from the customer back to the
developers is needed, and the developers must also have a set of tools to analyze
the error reports The purpose of this master thesis was to develop a fully functioning
demonstration system for collection, transmission and interpretation of error reports
from Axis network cameras using the Linux operating system The system has been shown
to handle both kernel and application errors and conducts automatic analysis of received
data It also uses standard HTTP protocol for all network transfers making it easy to use
even on firewalled networks
Contents
Introduction
Problem description
Problem analysis
Background
Kernel crashes
User space crashes
Core dump generation under Linux
Existing products
netdump
Other systems
Windows XP
MacOS X
Solaris
System
Target platform
Desired information
User space errors
Core dump compression
Run length encoding
LZMA
The netcore file system
Kernel errors
Extending the kernel Oops
Core dump analysis
Linux core files
Call trace and the CRIS architecture
The coreinfo tool
Fingerprinting
Core dump fingerprinting
Recursion errors
Oops fingerprinting
Customer server
Axis server
Validation
Validation of crash reports
User space crashes
Kernel crashes
Compression
Conclusion
Discussion
Signal handlers
Patents
Further improvements
Post Mortem Crash Analysis
Abstract
To improve the quality and reliability of embedded systems it is important to
gather information about errors in units already sold and deployed To achieve
this, a system for transmitting error information from the customer back to the
developers is needed, and the developers must also have a set of tools to analyze
the error reports The purpose of this master thesis was to develop a fully functioning
demonstration system for collection, transmission and interpretation of error reports
from Axis network cameras using the Linux operating system The system has been shown
to handle both kernel and application errors and conducts automatic analysis of received
data It also uses standard HTTP protocol for all network transfers making it easy to use
even on firewalled networks
Contents
Introduction
Problem description
Problem analysis
Background
Kernel crashes
User space crashes
Core dump generation under Linux
Existing products
netdump
Other systems
Windows XP
MacOS X
Solaris
System
Target platform
Desired information
User space errors
Core dump compression
Run length encoding
LZMA
The netcore file system
Kernel errors
Extending the kernel Oops
Core dump analysis
Linux core files
Call trace and the CRIS architecture
The coreinfo tool
Fingerprinting
Core dump fingerprinting
Recursion errors
Oops fingerprinting
Customer server
Axis server
Validation
Validation of crash reports
User space crashes
Kernel crashes
Compression
Conclusion
Discussion
Signal handlers
Patents
Further improvements
Unreliable Guide To Hacking The Linux Kernel
Download-----pdf----Unreliable Guide To Hacking The Linux Kernel
Unreliable Guide To Hacking The Linux Kernel
by Paul Rusty Russell
Table of Contents
Introduction
The Players
User Context
Hardware Interrupts (Hard IRQs)
Software Interrupt Context: Bottom Halves, Tasklets, softirqs
Some Basic Rules
ioctls: Not writing a new system call
Recipes for Deadlock
Common Routines
printk() include/linux/kernelh
copy_[to/from]_user() / get_user() / put_user() include/asm/uaccessh
kmalloc()/kfree() include/linux/slabh
current include/asm/currenth
local_irq_save()/local_irq_restore() include/asm/systemh
local_bh_disable()/local_bh_enable() include/asm/softirqh
smp_processor_id()/cpu_[number/logical]_map() include/asm/smph
__init/__exit/__initdata include/linux/inith
__initcall()/module_init() include/linux/inith
module_exit() include/linux/inith
MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT include/linux/moduleh
Wait Queues include/linux/waith
Declaring
Queuing
Waking Up Queued Tasks
Atomic Operations
Symbols
EXPORT_SYMBOL() include/linux/moduleh
EXPORT_SYMTAB
Routines and Conventions
Double-linked lists include/linux/listh
Return Conventions
Breaking Compilation
Initializing structure members
GNU Extensions
C++
#if
Putting Your Stuff in the Kernel
Kernel Cantrips
Thanks
Unreliable Guide To Hacking The Linux Kernel
by Paul Rusty Russell
Table of Contents
Introduction
The Players
User Context
Hardware Interrupts (Hard IRQs)
Software Interrupt Context: Bottom Halves, Tasklets, softirqs
Some Basic Rules
ioctls: Not writing a new system call
Recipes for Deadlock
Common Routines
printk() include/linux/kernelh
copy_[to/from]_user() / get_user() / put_user() include/asm/uaccessh
kmalloc()/kfree() include/linux/slabh
current include/asm/currenth
local_irq_save()/local_irq_restore() include/asm/systemh
local_bh_disable()/local_bh_enable() include/asm/softirqh
smp_processor_id()/cpu_[number/logical]_map() include/asm/smph
__init/__exit/__initdata include/linux/inith
__initcall()/module_init() include/linux/inith
module_exit() include/linux/inith
MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT include/linux/moduleh
Wait Queues include/linux/waith
Declaring
Queuing
Waking Up Queued Tasks
Atomic Operations
Symbols
EXPORT_SYMBOL() include/linux/moduleh
EXPORT_SYMTAB
Routines and Conventions
Double-linked lists include/linux/listh
Return Conventions
Breaking Compilation
Initializing structure members
GNU Extensions
C++
#if
Putting Your Stuff in the Kernel
Kernel Cantrips
Thanks
The Linux Kernel API
Download ---- pdf---The Linux Kernel API
The Linux Kernel API
Table of Contents
The Linux VFS
The Directory Cache
d_invalidate
d_find_alias
prune_dcache
shrink_dcache_sb
have_submounts
shrink_dcache_parent
d_alloc
d_instantiate
d_alloc_root
d_lookup
d_validate
d_delete
d_rehash
d_move
__d_path
is_subdir
find_inode_number
d_drop
d_add
dget
d_unhashed
Inode Handling
__mark_inode_dirty
write_inode_now
clear_inode
invalidate_inodes
get_empty_inode
iunique
insert_inode_hash
remove_inode_hash
iput
bmap
update_atime
make_bad_inode
is_bad_inode
Registration and Superblocks
register_filesystem
unregister_filesystem
__wait_on_super
get_super
get_empty_super
Linux Networking
Socket Buffer Functions
skb_queue_empty
skb_get
kfree_skb
skb_cloned
skb_shared
skb_unshare
skb_peek
skb_peek_tail
skb_queue_len
__skb_queue_head
skb_queue_head
__skb_queue_tail
skb_queue_tail
__skb_dequeue
skb_dequeue
skb_insert
skb_append
skb_unlink
__skb_dequeue_tail
skb_dequeue_tail
skb_put
skb_push
skb_pull
skb_headroom
skb_tailroom
skb_reserve
skb_trim
skb_orphan
skb_queue_purge
__skb_queue_purge
dev_alloc_skb
skb_cow
skb_over_panic
skb_under_panic
alloc_skb
__kfree_skb
skb_clone
skb_copy
skb_copy_expand
Socket Filter
sk_run_filter
Network device support
Driver Support
init_etherdev
dev_add_pack
dev_remove_pack
__dev_get_by_name
dev_get_by_name
dev_get
__dev_get_by_index
dev_get_by_index
dev_alloc_name
dev_alloc
netdev_state_change
dev_load
dev_open
dev_close
register_netdevice_notifier
unregister_netdevice_notifier
dev_queue_xmit
netif_rx
net_call_rx_atomic
register_gifconf
netdev_set_master
dev_set_promiscuity
dev_set_allmulti
dev_ioctl
dev_new_index
register_netdevice
netdev_finish_unregister
unregister_netdevice
Based Network Cards
ei_open
ei_close
ei_interrupt
ethdev_init
NS_init
Synchronous PPP
sppp_input
sppp_close
sppp_open
sppp_reopen
sppp_change_mtu
sppp_do_ioctl
sppp_attach
sppp_detach
Module Loading
request_module
Hardware Interfaces
Interrupt Handling
disable_irq_nosync
disable_irq
enable_irq
probe_irq_mask
MTRR Handling
mtrr_add
mtrr_del
PCI Support Library
pci_find_slot
pci_find_device
pci_find_class
pci_find_parent_resource
pci_set_power_state
pci_enable_device
MCA Architecture
MCA Device Functions
mca_find_adapter
mca_find_unused_adapter
mca_read_stored_pos
mca_read_pos
mca_write_pos
mca_set_adapter_name
mca_set_adapter_procfn
mca_is_adapter_used
mca_mark_as_used
mca_mark_as_unused
mca_get_adapter_name
mca_isadapter
mca_isenabled
MCA Bus DMA
mca_enable_dma
mca_disable_dma
mca_set_dma_addr
mca_get_dma_addr
mca_set_dma_count
mca_get_dma_residue
mca_set_dma_io
mca_set_dma_mode
The Device File System
devfs_register
devfs_unregister
devfs_mk_symlink
devfs_mk_dir
devfs_find_handle
devfs_get_flags
devfs_get_maj_min
devfs_get_handle_from_inode
devfs_generate_path
devfs_get_ops
devfs_set_file_size
devfs_get_info
devfs_set_info
devfs_get_parent
devfs_get_first_child
devfs_get_next_sibling
devfs_auto_unregister
devfs_get_unregister_slave
devfs_register_chrdev
devfs_register_blkdev
devfs_unregister_chrdev
devfs_unregister_blkdev
Power Management
pm_register
pm_unregister
pm_unregister_all
pm_send
pm_send_all
pm_find
Miscellaneous Devices
misc_register
misc_deregister
VideoLinux
video_register_device
video_unregister_device
Sound Devices
register_sound_special
register_sound_mixer
register_sound_midi
register_sound_dsp
register_sound_synth
unregister_sound_special
unregister_sound_mixer
unregister_sound_midi
unregister_sound_dsp
unregister_sound_synth
x UART Driver
register_serial
unregister_serial
Z Support Library
z_interrupt
z_sync_open
z_sync_close
z_sync_dma_open
z_sync_dma_close
z_sync_txdma_open
z_sync_txdma_close
z_describe
z_init
z_shutdown
z_channel_load
z_null_rx
z_queue_xmit
z_get_stats
The Linux Kernel API
Table of Contents
The Linux VFS
The Directory Cache
d_invalidate
d_find_alias
prune_dcache
shrink_dcache_sb
have_submounts
shrink_dcache_parent
d_alloc
d_instantiate
d_alloc_root
d_lookup
d_validate
d_delete
d_rehash
d_move
__d_path
is_subdir
find_inode_number
d_drop
d_add
dget
d_unhashed
Inode Handling
__mark_inode_dirty
write_inode_now
clear_inode
invalidate_inodes
get_empty_inode
iunique
insert_inode_hash
remove_inode_hash
iput
bmap
update_atime
make_bad_inode
is_bad_inode
Registration and Superblocks
register_filesystem
unregister_filesystem
__wait_on_super
get_super
get_empty_super
Linux Networking
Socket Buffer Functions
skb_queue_empty
skb_get
kfree_skb
skb_cloned
skb_shared
skb_unshare
skb_peek
skb_peek_tail
skb_queue_len
__skb_queue_head
skb_queue_head
__skb_queue_tail
skb_queue_tail
__skb_dequeue
skb_dequeue
skb_insert
skb_append
skb_unlink
__skb_dequeue_tail
skb_dequeue_tail
skb_put
skb_push
skb_pull
skb_headroom
skb_tailroom
skb_reserve
skb_trim
skb_orphan
skb_queue_purge
__skb_queue_purge
dev_alloc_skb
skb_cow
skb_over_panic
skb_under_panic
alloc_skb
__kfree_skb
skb_clone
skb_copy
skb_copy_expand
Socket Filter
sk_run_filter
Network device support
Driver Support
init_etherdev
dev_add_pack
dev_remove_pack
__dev_get_by_name
dev_get_by_name
dev_get
__dev_get_by_index
dev_get_by_index
dev_alloc_name
dev_alloc
netdev_state_change
dev_load
dev_open
dev_close
register_netdevice_notifier
unregister_netdevice_notifier
dev_queue_xmit
netif_rx
net_call_rx_atomic
register_gifconf
netdev_set_master
dev_set_promiscuity
dev_set_allmulti
dev_ioctl
dev_new_index
register_netdevice
netdev_finish_unregister
unregister_netdevice
Based Network Cards
ei_open
ei_close
ei_interrupt
ethdev_init
NS_init
Synchronous PPP
sppp_input
sppp_close
sppp_open
sppp_reopen
sppp_change_mtu
sppp_do_ioctl
sppp_attach
sppp_detach
Module Loading
request_module
Hardware Interfaces
Interrupt Handling
disable_irq_nosync
disable_irq
enable_irq
probe_irq_mask
MTRR Handling
mtrr_add
mtrr_del
PCI Support Library
pci_find_slot
pci_find_device
pci_find_class
pci_find_parent_resource
pci_set_power_state
pci_enable_device
MCA Architecture
MCA Device Functions
mca_find_adapter
mca_find_unused_adapter
mca_read_stored_pos
mca_read_pos
mca_write_pos
mca_set_adapter_name
mca_set_adapter_procfn
mca_is_adapter_used
mca_mark_as_used
mca_mark_as_unused
mca_get_adapter_name
mca_isadapter
mca_isenabled
MCA Bus DMA
mca_enable_dma
mca_disable_dma
mca_set_dma_addr
mca_get_dma_addr
mca_set_dma_count
mca_get_dma_residue
mca_set_dma_io
mca_set_dma_mode
The Device File System
devfs_register
devfs_unregister
devfs_mk_symlink
devfs_mk_dir
devfs_find_handle
devfs_get_flags
devfs_get_maj_min
devfs_get_handle_from_inode
devfs_generate_path
devfs_get_ops
devfs_set_file_size
devfs_get_info
devfs_set_info
devfs_get_parent
devfs_get_first_child
devfs_get_next_sibling
devfs_auto_unregister
devfs_get_unregister_slave
devfs_register_chrdev
devfs_register_blkdev
devfs_unregister_chrdev
devfs_unregister_blkdev
Power Management
pm_register
pm_unregister
pm_unregister_all
pm_send
pm_send_all
pm_find
Miscellaneous Devices
misc_register
misc_deregister
VideoLinux
video_register_device
video_unregister_device
Sound Devices
register_sound_special
register_sound_mixer
register_sound_midi
register_sound_dsp
register_sound_synth
unregister_sound_special
unregister_sound_mixer
unregister_sound_midi
unregister_sound_dsp
unregister_sound_synth
x UART Driver
register_serial
unregister_serial
Z Support Library
z_interrupt
z_sync_open
z_sync_close
z_sync_dma_open
z_sync_dma_close
z_sync_txdma_open
z_sync_txdma_close
z_describe
z_init
z_shutdown
z_channel_load
z_null_rx
z_queue_xmit
z_get_stats
Standalone Device Drivers in Linux
Download ---- pdf----Standalone Device Drivers in Linux
Standalone Device Drivers in Linux
Introduction
Existing systems
Techniques for writing stand-alone drivers in Linux
Using Kernel Modules
Building modules outside of the kernel tree
Synchronizing kernel versions
Exporting symbols from a module
Installing modularized device drivers
Kernel version compatibility
Standards for installing rc.d scripts
Binary Compatibility
Cross OS compatibility
A Sample Makefile
A sample installation script
Standalone Device Drivers in Linux
Introduction
Existing systems
Techniques for writing stand-alone drivers in Linux
Using Kernel Modules
Building modules outside of the kernel tree
Synchronizing kernel versions
Exporting symbols from a module
Installing modularized device drivers
Kernel version compatibility
Standards for installing rc.d scripts
Binary Compatibility
Cross OS compatibility
A Sample Makefile
A sample installation script
Linux Kernel Internals 2.4
Download ----pdf---Linux Kernel Internals 2.4
Linux Kernel Internals
Table of Contents
Booting
Process and Interrupt Management
Virtual Filesystem (VFS)
Linux Page Cache
IPC mechanisms
Booting
Building the Linux Kernel Image
Booting: Overview
Booting: BIOS POST
Booting: bootsector and setup
Using LILO as a bootloader
High level initialisation
SMP Bootup on x
Freeing initialisation data and code
Processing kernel command line
Process and Interrupt Management
Task Structure and Process Table
Creation and termination of tasks and kernel threads
Linux Scheduler
Linux linked list implementation
Wait Queues
Kernel Timers
Bottom Halves
Task Queues
Tasklets
Softirqs
How System Calls Are Implemented on i Architecture?
Atomic Operations
Spinlocks, Read?write Spinlocks and Big?Reader Spinlocks
Semaphores and read/write Semaphores
Kernel Support for Loading Modules
Virtual Filesystem (VFS)
Inode Caches and Interaction with Dcache
Filesystem Registration/Unregistration
File Descriptor Management
File Structure Management
Superblock and Mountpoint Management
Example Virtual Filesystem: pipefs
Example Disk Filesystem: BFS
Execution Domains and Binary Formats
Linux Page Cache
IPC mechanisms
Semaphores
Semaphore System Call Interfaces
sys_semget()
sys_semctl()
sys_semop()
Non?blocking Semaphore Operations
Failing Semaphore Operations
Blocking Semaphore Operations
Semaphore Specific Support Structures
struct sem_array
struct sem
struct seminfo
struct semid_ds
struct sem_queue
struct sembuf
struct sem_undo
Semaphore Support Functions
newary()
freeary()
semctl_down()
IPC_RMID
IPC_SET
semctl_nolock()
IPC_INFO and SEM_INFO
SEM_STAT
semctl_main()
GETALL
SETALL
IPC_STAT
GETVAL
GETPID
GETNCNT
GETZCNT
SETVAL
count_semncnt()
count_semzcnt()
update_queue()
try_atomic_semop()
sem_revalidate()
freeundos()
alloc_undo()
sem_exit()
Message queues
Message System Call Interfaces
sys_msgget()
sys_msgctl()
IPC_INFO ( or MSG_INFO)
IPC_STAT ( or MSG_STAT)
IPC_SET
IPC_RMID
sys_msgsnd()
sys_msgrcv()
Message Specific Structures
struct msg_queue
struct msg_msg
struct msg_msgseg
struct msg_sender
struct msg_receiver
struct msqid_ds
struct msqid_ds
msg_setbuf
Message Support Functions
newque()
freeque()
ss_wakeup()
ss_add()
ss_del()
expunge_all()
load_msg()
store_msg()
free_msg()
convert_mode()
testmsg()
pipelined_send()
copy_msqid_to_user()
copy_msqid_from_user()
Shared Memory
Shared Memory System Call Interfaces
sys_shmget()
sys_shmctl()
IPC_INFO
SHM_INFO
SHM_STAT, IPC_STAT
SHM_LOCK, SHM_UNLOCK
IPC_RMID
IPC_SET
sys_shmat()
sys_shmdt()
Shared Memory Support Structures
struct shminfo
struct shm_info
struct shmid_kernel
struct shmid_ds
struct shmem_inode_info
Shared Memory Support Functions
newseg()
shm_get_stat()
shmem_lock()
shm_destroy()
shm_inc()
shm_close()
shmem_file_setup()
Linux IPC Primitives
Generic Linux IPC Primitives used with Semaphores, Messages,and Shared Memory
ipc_alloc()
ipc_addid()
ipc_rmid()
ipc_buildid()
ipc_checkid()
grow_ary()
ipc_findkey()
ipcperms()
ipc_lock()
ipc_unlock()
ipc_lockall()
ipc_unlockall()
ipc_get()
ipc_parse_version()
Generic IPC Structures used with Semaphores,Messages, and Shared Memory
struct kern_ipc_perm
struct ipc_ids
struct ipc_id
Linux Kernel Internals
Table of Contents
Booting
Process and Interrupt Management
Virtual Filesystem (VFS)
Linux Page Cache
IPC mechanisms
Booting
Building the Linux Kernel Image
Booting: Overview
Booting: BIOS POST
Booting: bootsector and setup
Using LILO as a bootloader
High level initialisation
SMP Bootup on x
Freeing initialisation data and code
Processing kernel command line
Process and Interrupt Management
Task Structure and Process Table
Creation and termination of tasks and kernel threads
Linux Scheduler
Linux linked list implementation
Wait Queues
Kernel Timers
Bottom Halves
Task Queues
Tasklets
Softirqs
How System Calls Are Implemented on i Architecture?
Atomic Operations
Spinlocks, Read?write Spinlocks and Big?Reader Spinlocks
Semaphores and read/write Semaphores
Kernel Support for Loading Modules
Virtual Filesystem (VFS)
Inode Caches and Interaction with Dcache
Filesystem Registration/Unregistration
File Descriptor Management
File Structure Management
Superblock and Mountpoint Management
Example Virtual Filesystem: pipefs
Example Disk Filesystem: BFS
Execution Domains and Binary Formats
Linux Page Cache
IPC mechanisms
Semaphores
Semaphore System Call Interfaces
sys_semget()
sys_semctl()
sys_semop()
Non?blocking Semaphore Operations
Failing Semaphore Operations
Blocking Semaphore Operations
Semaphore Specific Support Structures
struct sem_array
struct sem
struct seminfo
struct semid_ds
struct sem_queue
struct sembuf
struct sem_undo
Semaphore Support Functions
newary()
freeary()
semctl_down()
IPC_RMID
IPC_SET
semctl_nolock()
IPC_INFO and SEM_INFO
SEM_STAT
semctl_main()
GETALL
SETALL
IPC_STAT
GETVAL
GETPID
GETNCNT
GETZCNT
SETVAL
count_semncnt()
count_semzcnt()
update_queue()
try_atomic_semop()
sem_revalidate()
freeundos()
alloc_undo()
sem_exit()
Message queues
Message System Call Interfaces
sys_msgget()
sys_msgctl()
IPC_INFO ( or MSG_INFO)
IPC_STAT ( or MSG_STAT)
IPC_SET
IPC_RMID
sys_msgsnd()
sys_msgrcv()
Message Specific Structures
struct msg_queue
struct msg_msg
struct msg_msgseg
struct msg_sender
struct msg_receiver
struct msqid_ds
struct msqid_ds
msg_setbuf
Message Support Functions
newque()
freeque()
ss_wakeup()
ss_add()
ss_del()
expunge_all()
load_msg()
store_msg()
free_msg()
convert_mode()
testmsg()
pipelined_send()
copy_msqid_to_user()
copy_msqid_from_user()
Shared Memory
Shared Memory System Call Interfaces
sys_shmget()
sys_shmctl()
IPC_INFO
SHM_INFO
SHM_STAT, IPC_STAT
SHM_LOCK, SHM_UNLOCK
IPC_RMID
IPC_SET
sys_shmat()
sys_shmdt()
Shared Memory Support Structures
struct shminfo
struct shm_info
struct shmid_kernel
struct shmid_ds
struct shmem_inode_info
Shared Memory Support Functions
newseg()
shm_get_stat()
shmem_lock()
shm_destroy()
shm_inc()
shm_close()
shmem_file_setup()
Linux IPC Primitives
Generic Linux IPC Primitives used with Semaphores, Messages,and Shared Memory
ipc_alloc()
ipc_addid()
ipc_rmid()
ipc_buildid()
ipc_checkid()
grow_ary()
ipc_findkey()
ipcperms()
ipc_lock()
ipc_unlock()
ipc_lockall()
ipc_unlockall()
ipc_get()
ipc_parse_version()
Generic IPC Structures used with Semaphores,Messages, and Shared Memory
struct kern_ipc_perm
struct ipc_ids
struct ipc_id
Subscribe to:
Posts (Atom)