PROGRAMMING INTERFACE THE LINUX MICHAEL KERRISK. A Linux and UNIX" System Programming Handbook. TECHNISCHE IN FORMATION 3BI ft LIQTHEK}

Size: px
Start display at page:

Download "PROGRAMMING INTERFACE THE LINUX MICHAEL KERRISK. A Linux and UNIX" System Programming Handbook. TECHNISCHE IN FORMATION 3BI ft LIQTHEK}"

Transcription

1 THE LINUX PROGRAMMING INTERFACE A Linux and UNIX" System Programming Handbook MICHAEL KERRISK TECHNISCHE IN FORMATION 3BI ft LIQTHEK} UNIVERSITATSBIBLIOTHF.K HANNOVER $ no starch press San Francisco

2 CONTENTS IN DETAIL PREFACE xxxi 1 HISTORY AND STANDARDS A Brief History of UNIX and C A Brief History of Linux The GNU Project The Linux Kernel Standardization The C Programming Language The First POSIX Standards X/Open Company and The Open Group SUSv3 and POSIX SUSv4 and POSIX UNIX Standards Timeline Implementation Standards Linux, Standards, and the Linux Standard Base Summary 19 2 FUNDAMENTAL CONCEPTS The Core Operating System: The Kernel The Shell Users and Groups Single Directory Hierarchy, Directories, Links, and Files File I/O Model Programs Processes, Memory Mappings Static and Shared Libraries Interprocess Communication and Synchronization Signals Threads Process Groups and Shell Job Control Sessions, Controlling Terminals, and Controlling Processes Pseudoterminals Date and Time Client-Server Architecture Realtime The /proc File System Summary 42 3 SYSTEM PROGRAMMING CONCEPTS System Calls Library Functions The Standard C Library; The GNU C Library [glibc] Handling Errors from System Calls and Library Functions Notes on the Example Programs in This Book Command-Line Options and Arguments Common Functions and Header Files 51

3 3.6 Portability Issues Feature Test Macros System Data Types Miscellaneous Portability Issues Summary Exercise 68 : 74 4 FILE I/O: THE UNIVERSAL I/O MODEL Overview Universality of I/O Opening a File: open() The open() Jlags Argument Errors from open() The creat() System Call Reading from a File: readq Writing to a File: write() Closing a File: closeq Changing the File Offset: lseek() Operations Outside the Universal I/O Model: ioctlq Summary Exercises 87 5 FILE I/O: FURTHER DETAILS Atomicity and Race Conditions File Control Operations: fcnllq Open File Status Flags Relationship Between File Descriptors and Open Files Duplicating File Descriptors File I/O at a Specified Offset: preadq and pwriteq Scatter-Gather I/O: readvq and writevq Truncating a File: truncate() andfiruncateq Nonblocking I/O I/O on Large Files The/dev/fd Directory Creating Temporary Files Summary Exercises PROCESSES Processes and Programs Process ID and Parent Process ID Memory Layout of a Process Virtual Memory Management The Stack and Stack Frames Command-Line Arguments [argc, argv) Environment List Performing a Nonlocal Goto: setjmp() and longjmp() Summary Exercises 138 XII Contents in Detail

4 7 MEMORY ALLOCATION Allocating Memory on the Heap Adjusting the Program Break: brk() and sbrkq Allocating Memory on the Heap: mallocq and free() Implementation of mallocq and free() Other Methods of Allocating Memory on the Heap Allocating Memory on the Stack: allocaq Summary Exercises USERS AND GROUPS The Password File:/etc/passwd The Shadow Password File: /etc/shadow The Group File:/etc/group Retrieving User and Group Information Password Encryption and User Authentication Summary Exercises PROCESS CREDENTIALS Real User ID and Real Group ID Effective User ID and Effective Group ID Set-User-ID and Set-Group-ID Programs Saved Set-User-ID and Saved Set-Group-ID File-System User ID and File-System Group ID Supplementary Group IDs Retrieving and Modifying Process Credentials Retrieving and Modifying Real, Effective, and Saved Set IDs Retrieving and Modifying File-System IDs Retrieving and Modifying Supplementary Group IDs Summary of Calls for Modifying Process Credentials Example: Displaying Process Credentials Summary Exercises TIME Calendar Time Time-Conversion Functions Converting Ume_t to Printable Form Converting Between time_t and Broken-Down Time Converting Between Broken-Down Time and Printable Form Timezones Locales Updating the System Clock The Software Clock (Jiffies) Process Time Summary Exercise 210 Contents in Detail xiii

5 11 SYSTEM LIMITS AND OPTIONS System Limits Retrieving System Limits (and Options) at Run Time Retrieving File-Related Limits (and Options] at Run Time Indeterminate Limits System Options Summary Exercises SYSTEM AND PROCESS INFORMATION The /proc File System Obtaining Information About a Process: /procap/d System Information Under /proc Accessing /proc Files System Identification: unamef) Summary Exercises FILE I/O BUFFERING Kernel Buffering of File I/O: The Buffer Cache Buffering in the stdio Library Controlling Kernel Buffering of File I/O Summary of I/O Buffering Advising the Kernel About I/O Patterns Bypassing the Buffer Cache: Direct I/O Mixing Library Functions and System Calls for File I/O Summary Exercises FILE SYSTEMS Device Special Files (Devices) Disks and Partitions File Systems l-nodes The Virtual File System (VFS) Journaling File Systems Single Directory Hierarchy and Mount Points Mounting and Unmounting File Systems Mounting a File System: mountq Unmounting a File System: umountq and umounl2() Advanced Mount Features Mounting a File System at Multiple Mount Points Stacking Multiple Mounts on the Same Mount Point Mount Flags That Are Per-Mount Options Bind Mounts Recursive Bind Mounts A Virtual Memory File System: tmpfs Obtaining Information About a File System: stalvfs() Summary Exercise 278 xiv Conlenls in Detail

6 15 FILE ATTRIBUTES Retrieving File Information: stat() File Timestamps Changing File Timestamps with utimeq and ulimes() Changing File Timestamps with utimensat() and JutimensQ File Ownership Ownership of New Files Changing File Ownership: chown(),fchown(), and lchown() File Permissions Permissions on Regular Files Permissions on Directories Permission-Checking Algorithm Checking File Accessibility: accessq Set-User-ID, Set-Group-ID, and Sticky Bits The Process File Mode Creation Mask: umaskq Changing File Permissions: chmodq and fchmod() l-node Flags [ext2 Extended File Attributes) Summary Exercises EXTENDED ATTRIBUTES Overview Extended Attribute Implementation Details System Calls for Manipulating Extended Attributes Summary Exercise ACCESS CONTROL LISTS Overview ACL Permission-Checking Algorithm Long and Short Text Forms for ACLs The ACL_MASK Entry and the ACL Group Class The gelfad and setfacl Commands Default ACLs and File Creation ACL Implementation Limits The ACL API Summary Exercise DIRECTORIES AND LINKS Directories and (Hard) Links Symbolic (Soft) Links Creating and Removing (Hard) Links: link() and unlink() Changing the Name of a File: rename() Working with Symbolic Links: symlinkq and readlinkq Creating and Removing Directories: mkdir() and rnidirq Removing a File or Directory: removeq Reading Directories: opendir() and readdir() File Tree Walking: nfiwq The Current Working Directory of a Process Operating Relative to a Directory File Descriptor Changing the Root Directory of a Process: chroot() Resolving a Pathname: realpathq 369 Contents in Detail XV

7 18.14 Parsing Pathname Strings: dimame() and basename() Summary Exercises MONITORING FILE EVENTS Overview The moiz/y API inotijy Events Reading inotijy Events Queue Limits and /proc Files An Older System for Monitoring File Events: dnotify Summary Exercise SIGNALS: FUNDAMENTAL CONCEPTS Concepts and Overview Signal Types and Default Actions Changing Signal Dispositions: signalq Introduction to Signal Handlers Sending Signals: kill() Checking for the Existence of a Process Other Ways of Sending Signals: raiseq and hillpgq Displaying Signal Descriptions Signal Sets The Signal Mask (Blocking Signal Delivery) Pending Signals Signals Are Not Queued Changing Signal Dispositions: sigactionq Wafting for a Signal: pauseq Summary Exercises SIGNALS: SIGNAL HANDLERS Designing Signal Handlers Signals Are Not Queued (Revisited) Reentrant and Async-Signal-Safe Functions Global Variables and the sig_atomic_t Data Type Other Methods of Terminating a Signal Handler Performing a Nonlocal Goto from a Signal Handler Terminating a Process Abnormally: abort() Handling a Signal on an Alternate Stack: sigaltstackq The SA_SIGINF0 Flag Interruption and Restarting of System Calls Summary Exercise SIGNALS: ADVANCED FEATURES Core Dump Files Special Cases for Delivery, Disposition, and Handling Interruptible and Uninterruptible Process Sleep States Hardware-Generated Signals Synchronous and Asynchronous Signal Generation 452 XVI Contents in Detail

8 22.6 Timing and Order of Signal Delivery Implementation and Portability ohignalf) Realtime Signals Sending Realtime Signals Handling Realtime Signals Waiting for a Signal Using a Mask: sigsuspendq Synchronously Waiting for a Signal Fetching Signals via a File Descriptor Interprocess Communication with Signals Earlier Signal APIs (System V and BSD] Summary Exercises TIMERS AND SLEEPING Interval Timers Scheduling and Accuracy of Timers Setting Timeouts on Blocking Operations Suspending Execution for a Fixed Interval (Sleeping) Low-Resolution Sleeping: sleepq High-Resolution Sleeping: nanosleep() POSIX Clocks Retrieving the Value of a Clock: dock_gettime() Setting the Value of a Clock: clock_settime() Obtaining the Clock ID of a Specific Process or Thread Improved High-Resolution Sleeping: cloch_nanosleep() POSIX Interval Timers Creating a Timer: timer_create() Arming and Disarming a Timer: timer_settime() Retrieving the Current Value of a Timer: timer_gettime() Deleting a Timer: time.r_dekte() Notification via a Signal Timer Overruns Notification via a Thread Timers That Notify via File Descriptors: The limerjd API Summary Exercises PROCESS CREATION Overview of fork(), exit(), waitq, and execve() Creating a New Process: fork() File Sharing Between Parent and Child Memory Semantics offork() The vforkq System Call Race Conditions After fork() Avoiding Race Conditions by Synchronizing with Signals Summary Exercises PROCESS TERMINATION Terminating a Process: _exit() and exit() Details of Process Termination Exit Handlers Interactions Between forty), stdio Buffers, and _exit() 537 Contents in Detail XVfi

9 25.5 Summary Exercise MONITORING CHILD PROCESSES Waiting on a Child Process The wait() System Call The xuaitpidq System Call The Wait Status Value Process Termination from a Signal Handler The waitidq System Call The wait3() and wait4() System Calls Orphans and Zombies The SICCHLD Signal Establishing a Handler For SIGCHLD Delivery of SICCHLD for Stopped Children Ignoring Dead Child Processes Summary Exercises PROGRAM EXECUTION Executing a New Program: execve() The execq Library Functions The PATH Environment Variable Specifying Program Arguments as a List Passing the Caller's Environment to the New Program Executing a File Referred to by a Descriptor: fexecve() Interpreter Scripts File Descriptors and execf) Signals and exec() Executing a Shell Command: systemq Implementing system() Summary Exercises PROCESS CREATION AND PROGRAM EXECUTION IN MORE DETAIL Process Accounting The cloneq System Call The clone() flags Argument Extensions to waitpid() for Cloned Children Speed of Process Creation Effect of execq and on JorkQ Process Attributes Summary Exercise THREADS: INTRODUCTION Overview Background Details of the Pthreads API Thread Creation Thread Termination Thread IDs Joining with a Terminated Thread Detaching a Thread 627 XVifi Contents in Detail

10 29.8 Thread Attributes Threads Versus Processes Summary Exercises THREADS: THREAD SYNCHRONIZATION Protecting Accesses to Shared Variables: Mutexes Statically Allocated Mutexes Locking and Unlocking a Mutex Performance of Mutexes Mutex Deadlocks Dynamically Initializing a Mutex Mutex Attributes Mutex Types Signaling Changes of State: Condition Variables Statically Allocated Condition Variables Signaling and Waiting on Condition Variables Testing a Condition Variable's Predicate Example Program: Joining Any Terminated Thread Dynamically Allocated Condition Variables Summary Exercises THREADS: THREAD SAFETY AND PER-THREAD STORAGE Thread Safety (and Reentrancy Revisited) One-Time Initialization Thread-Specific Data Thread-Specific Data from the Library Function's Perspective Overview of the Thread-Specific Data API Details of the Thread-Specific Data API Employing the Thread-Specific Data API Thread-Specific Data Implementation Limits Thread-Local Storage Summary Exercises THREADS: THREAD CANCELLATION Canceling a Thread Cancellation State and Type Cancellation Points Testing for Thread Cancellation Cleanup Handlers Asynchronous Cancelability Summary THREADS: FURTHER DETAILS Thread Stacks Threads and Signals How the UNIX Signal Model Maps to Threads Manipulating the Thread Signal Mask Sending a Signal to a Thread Dealing with Asynchronous Signals Sanely 685 Contenls in Detail XIX

11 33.3 Threads and Process Control Thread Implementation Models Linux Implementations of POSIX Threads LinuxThreads NPTL Which Threading Implementation? Advanced Features of the Pthreads API Summary Exercises PROCESS GROUPS, SESSIONS, AND JOB CONTROL Overview Process Groups Sessions Controlling Terminals and Controlling Processes Foreground and Background Process Groups The SIGHUP Signal Handling of SIGHUP by the Shell SIGHUP and Termination of the Controlling Process Job Control Using Job Control Within the Shell Implementing Job Control Handling Job-Control Signals Orphaned Process Groups (and SIGHUP Revisited) Summary Exercises PROCESS PRIORITIES AND SCHEDULING Process Priorities (Nice Values) Overview of Realtime Process Scheduling The SCHED_RR Policy The SCH D_FIF0 Policy The SCHED_BATCH and SCHED_IDLE Policies Realtime Process Scheduling API Realtime Priority Ranges Modifying and Retrieving Policies and Priorities Relinquishing the CPU The SCHE0_RR Time Slice CPU Affinity Summary Exercises PROCESS RESOURCES Process Resource Usage Process Resource Limits Details of Specific Resource Limits Summary Exercises DAEMONS Overview Creating a Daemon 768 XX Cortlenb in Detail

12 37.3 Guidelines for Writing Daemons Using SICHUP to Reinitialize a Daemon Logging Messages and Errors Using syslog Overview Ihesyslog AP\ The /etc/syslog.conf File Summary Exercise WRITING SECURE PRIVILEGED PROGRAMS Is a Set-User-ID or Set-Group-ID Program Required? Operate with Least Privilege Be Careful When Executing a Program Avoid Exposing Sensitive Information Confine the Process Beware of Signals and Race Conditions Pitfalls When Performing File Operations and File I/O Don't Trust Inputs or the Environment Beware of Buffer Overruns Beware of Denial-of-Service Attacks Check Return Statuses and Fail Safely Summary Exercises CAPABILITIES Rationale for Capabilities The Linux Capabilities Process and File Capabilities Process Capabilities File Capabilities Purpose of the Process Permitted and Effective Capability Sets Purpose of the File Permitted and Effective Capability Sets Purpose of the Process and File Inheritable Sets Assigning and Viewing File Capabilities from the Shell The Modern Capabilities Implementation Transformation of Process Capabilities During exec() Capability Bounding Set Preserving root Semantics Effect on Process Capabilities of Changing User IDs Changing Process Capabilities Programmatically Creating Capabilities-Only Environments Discovering the Capabilities Required by a Program Older Kernels and Systems Without File Capabilities Summary Exercise LOGIN ACCOUNTING Overview of the utmp and wtmp Files Thewim^xAPI The utmpx Structu re Retrieving Information from the utmp and wtmp Files Retrieving the Login Name: getlogin() Updating the utmp and wtmp Files for a Login Session 825 Conlenis in Detail XXl

13 40.7 The lastlog File Summary Exercises FUNDAMENTALS OF SHARED LIBRARIES Object Libraries Static Libraries Overview of Shared Libraries 41.4 Creating and Using Shared Libraries A First Pass Creating a Shared Library Position-Independent Code Using a Shared Library The Shared Library Soname Useful Tools for Working with Shared Libraries Shared Library Versions and Naming Conventions Installing Shared Libraries Compatible Versus Incompatible Libraries Upgrading Shared Libraries Specifying Library Search Directories in an Object File Finding Shared Libraries at Run Time Run-Time Symbol Resolution Using a Static Library Instead of a Shared Library Summary Exercise ADVANCED FEATURES OF SHARED LIBRARIES Dynamically Loaded Libraries Opening a Shared Library: dlopen() Diagnosing Errors: dlerrorf) Obtaining the Address of a Symbol: dlsymq Closing a Shared Library: dlclose(j Obtaining Information About Loaded Symbols: dladdr() Accessing Symbols in the Main Program Controlling Symbol Visibility Linker Version Scripts Controlling Symbol Visibility with Version Scripts Symbol Versioning Initialization and Finalization Functions Preloading Shared Libraries Monitoring the Dynamic Linker: LD_DEBUC Summary Exercises INTERPROCESS COMMUNICATION OVERVIEW A Taxonomy of IPC Facilities Communication Facilities Synchronization Facilities Comparing IPC Facilities Summary Exercises 887 XXli Conlenls in Delail

14 44 PIPES AND FIFOS Overview Creating and Using Pipes Pipes as a Method of Process Synchronization Using Pipes to Connect Filters Talking to a Shell Command via a Pipe: popen() Pipes and stdio Buffering FIFOs A Client-Server Application Using FIFOs Nonblocking I/O Semantics of read() and writeq on Pipes and FIFOs Summary Exercises INTRODUCTION TO SYSTEM V IPC API Overview IPC Keys Associated Data Structure and Object Permissions IPC Identifiers and Client-Server Applications Algorithm Employed by System V IPC get Calls The ipcs and ipcrm Commands Obtaining List of All a IPC Objects IPC Limits Summary Exercises SYSTEM V MESSAGE QUEUES Creating or Opening a Message Queue Exchanging Messages Sending Messages Receiving Messages Message Queue Control Operations Message Queue Associated Data Structure Message Queue Limits Displaying All Message Queues on the System Client-Server Programming with Message Queues A File-Server Application Using Message Queues Disadvantages of System V Message Queues Summary Exercises SYSTEM V SEMAPHORES Overview Creating or Opening a Semaphore Set Semaphore Control Operations Semaphore Associated Data Structure Semaphore Initialization Semaphore Operations Handling of Multiple Blocked Semaphore Operations Semaphore Undo Values Implementing a Binary Semaphores Protocol 988 Contents in Detail XXIU

15 47.10 Semaphore Limits Disadvantages of System V Semaphores Summary Exercises SYSTEM V SHARED MEMORY Overview " Creating or Opening a Shared Memory Segment Using Shared Memory Example: Transferring Data via Shared Memory Location of Shared Memory in Virtual Memory Storing Pointers in Shared Memory Shared Memory Control Operations Shared Memory Associated Data Structure Shared Memory Limits Summary Exercises MEMORY MAPPINGS Overview Creating a Mapping: mmap() Unmapping a Mapped Region: munmapq File Mappings Private File Mappings Shared File Mappings Boundary Cases Memory Protection and File Access Mode Interactions Synchronizing a Mapped Region: msync() Additional mmapq Flags Anonymous Mappings Remapping a Mapped Region: mremapq MAP_N0RE5ERVE and Swap Space Overcommitting The MAPJIXED Flag Nonlinear Mappings: remapjile_pages() Summary Exercises VIRTUAL MEMORY OPERATIONS Changing Memory Protection: mprotectq Memory Locking: mlock() and mlockallq Determining Memory Residence: mincore() Advising Future Memory Usage Patterns: madvisef) Summary Exercises INTRODUCTION TO POSIX IPC API Overview 51.2 Comparison of System V IPC and POSIX IPC Summary Xxiv Conienls in Detail

16 52 POSIX MESSAGE QUEUES Overview Opening, Closing, and Unlinking a Message Queue Relationship Between Descriptors and Message Queues Message Queue Attributes Exchanging Messages Sending Messages Receiving Messages Sending and Receiving Messages with a Timeout Message Notification Receiving Notification via a Signal Receiving Notification via a Thread Linux-Specific Features Message Queue Limits Comparison of POSIX and System V Message Queues Summary Exercises POSIX SEMAPHORES Overview Named Semaphores Opening a Named Semaphore Closing a Semaphore Removing a Named Semaphore Semaphore Operations Waiting on a Semaphore Posting a Semaphore Retrieving the Current Value of a Semaphore Unnamed Semaphores Initializing an Unnamed Semaphore Destroying an Unnamed Semaphore Comparisons with Other Synchronization Techniques Semaphore Limits Summary Exercises POSIX SHARED MEMORY Overview Creating Shared Memory Objects Using Shared Memory Objects Removing Shared Memory Objects Comparisons Between Shared Memory APIs Summary Exercise FILE LOCKING Overview 1 ' I File Locking with JlockQ Semantics of Lock Inheritance and Release Limitations of JlockQ 1123 Contents in Detail XXV

17 55.3 Record Locking with fcnll() Deadlock Example: An Interactive Locking Program Example: A Library of Locking Functions Lock Limits and Performance Semantics of Lock Inheritance and Release Lock Starvation and Priority of Queued Lock Requests Mandatory Locking The /proc/locks File Running Just One Instance of a Program Older Locking Techniques Summary Exercises SOCKETS: INTRODUCTION Overview Creating a Socket: socket() Binding a Socket to an Address: bind() Generic Socket Address Structures: struct sockaddr Stream Sockets Listening for Incoming Connections: lislen() Accepting a Connection: accept() Connecting to a Peer Socket: connectq I/O on Stream Sockets Connection Termination: close.() Datagram Sockets Exchanging Datagrams: reaifrom() and sendtoq Using conneclq with Datagram Sockets Summary SOCKETS: UNIX DOMAIN UNIX Domain Socket Addresses: struct sockaddr_un Stream Sockets in the UNIX Domain Datagram Sockets in the UNIX Domain UNIX Domain Socket Permissions Creating a Connected Socket Pair: socketpair() The Linux Abstract Socket Namespace Summary Exercises SOCKETS: FUNDAMENTALS OF TCP/IP NETWORKS Internets Networking Protocols and Layers The Data-Link Layer The Network Layer: IP IP Addresses The Transport Layer Port Numbers User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Requests for Comments (RFCs) Summary 1195 XXVi Contents in Detail

18 59 SOCKETS: INTERNET DOMAINS Internet Domain Sockets Network Byte Order Data Representation Internet Socket Addresses Overview of Host and Service Conversion Functions The inet_pton() and inet_ntop() Functions Client-Server Example (Datagram Sockets] Domain Name System (DNS) The /etc/services File Protocol-Independent Host and Service Conversion The getaddrinfo() Function Freeing addrinfo Lists: freeaddrinfoq Diagnosing Errors: gai_strerror() The getnameinfoq Function Client-Server Example (Stream Sockets) An Internet Domain Sockets Library Obsolete APIs for Host and Service Conversions The inet_aton() and inel_nioa() Functions The gethostbyname() and gethostbyaddrq Functions Ihe getservbyname() and gelserubyporlq Functions UNIX Versus Internet Domain Sockets Further Information Summary I Exercises I SOCKETS: SERVER DESIGN Iterative and Concurrent Servers An Iterative UDP echo Server A Concurrent TCP echo Server Other Concurrent Server Designs The inetd (Internet Superserver) Daemon Summary Exercises SOCKETS: ADVANCED TOPICS Partial Reads and Writes on Stream Sockets The shutdovmo System Call Socket-Specific I/O System Calls: recvq and send() The sendftleo System Call Retrieving Socket Addresses A Closer Look at TCP Format of a TCP Segment TCP Sequence Numbers and Acknowledgements TCP State Machine and State Transition Diagram TCP Connection Establishment TCP Connection Termination Calling shutdownq on a TCP Socket The TIME_WAIT State Monitoring Sockets: netstat Using tcpdump to Monitor TCP Traffic Socket Options The S0_REU5EADDR Socket Option Inheritance of Flags and Options Across acceptq 1281 Contents in Detail XXVil

19 61.12 TCP Versus UDP Advanced Features Out-of-Band Data The sendmsg() and recvmsgo System Calls Passing File Descriptors Receiving Sender Credentials Sequenced-Packet Sockets SCTP and DCCP Transport-Layer Protocols Summary Exercises TERMINALS Overview Retrieving and Modifying Terminal Attributes The stty Command Terminal Special Characters Terminal Flags Terminal I/O Modes Canonical Mode Noncanonical Mode Cooked, Cbreak, and Raw Modes Terminal Line Speed (Bit Rate) Terminal Line Control Terminal Window Size Terminal Identification Summary Exercises ALTERNATIVE I/O MODELS Overview Level-Triggered and Edge-Triggered Notification Employing Nonblocking I/O with Alternative I/O Models I/O Multiplexing The seleclf) System Call The poll() System Call When Is a File Descriptor Ready? Comparison ofselectq andpollq Problems with selectf) and poll() Signal-Driven I/O When Is "I/O Possible" Signaled? Refining the Use of Signal-Driven I/O The epoll API Creating an epoll Instance: epoll_create() Modifying the epoll Interest List: epoll_dl() Waiting for Events: epoll_xvait() A Closer Look at epoll Semantics Performance of epoll Versus I/O Multiplexing Edge-Triggered Notification Waiting on Signals and File Descriptors ThepselectQ System Call The Self-Pipe Trick Summary Exercises 1374 XXViii Contents in Delail

20 64 PSEUDOTERMINALS Overview UNIX 98 Pseudoterminals Opening an Unused Master: posix_openpl() Changing Slave Ownership and Permissions: grantptq Unlocking the Slave: unlockpt() Obtaining the Name of the Slave: ptsnameq Opening a Master: ptymasteropenf) Connecting Processes with a Pseudoterminal: ptyfork() Pseudoterminal I/O Implementing script(l) Terminal Attributes and Window Size BSD Pseudoterminals Summary Exercises 1398 A TRACING SYSTEM CALLS 1401 B PARSING COMMAND-LINE OPTIONS 1405 C CASTING THE NULL POINTER 1413 D KERNEL CONFIGURATION 1417 E FURTHER SOURCES OF INFORMATION 1419 F SOLUTIONS TO SELECTED EXERCISES 1425 BIBLIOGRAPHY 1437 INDEX 1447 Conlenls in Detail XXiX

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what

More information

Chapter 10 Case Study 1: LINUX

Chapter 10 Case Study 1: LINUX MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 10 Case Study 1: LINUX History of UNIX and Linux UNICS PDP-11 UNIX Portable UNIX Berkeley UNIX Standard UNIX MINIX Linux UNIX/Linux Goals

More information

Red Hat Linux Internals

Red Hat Linux Internals Red Hat Linux Internals Learn how the Linux kernel functions and start developing modules. Red Hat Linux internals teaches you all the fundamental requirements necessary to understand and start developing

More information

Chapter 6, The Operating System Machine Level

Chapter 6, The Operating System Machine Level Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General

More information

Acronis Backup & Recovery: Events in Application Event Log of Windows http://kb.acronis.com/content/38327

Acronis Backup & Recovery: Events in Application Event Log of Windows http://kb.acronis.com/content/38327 Acronis Backup & Recovery: Events in Application Event Log of Windows http://kb.acronis.com/content/38327 Mod ule_i D Error _Cod e Error Description 1 1 PROCESSOR_NULLREF_ERROR 1 100 ERROR_PARSE_PAIR Failed

More information

Linux/UNIX System Programming. POSIX Shared Memory. Michael Kerrisk, man7.org c 2015. February 2015

Linux/UNIX System Programming. POSIX Shared Memory. Michael Kerrisk, man7.org c 2015. February 2015 Linux/UNIX System Programming POSIX Shared Memory Michael Kerrisk, man7.org c 2015 February 2015 Outline 22 POSIX Shared Memory 22-1 22.1 Overview 22-3 22.2 Creating and opening shared memory objects 22-10

More information

The Win32 Network Management APIs

The Win32 Network Management APIs The Win32 Network Management APIs What do we have in this session? Intro Run-Time Requirements What's New in Network Management? Windows 7 Windows Server 2003 Windows XP Network Management Function Groups

More information

A Comparative Study on Vega-HTTP & Popular Open-source Web-servers

A Comparative Study on Vega-HTTP & Popular Open-source Web-servers A Comparative Study on Vega-HTTP & Popular Open-source Web-servers Happiest People. Happiest Customers Contents Abstract... 3 Introduction... 3 Performance Comparison... 4 Architecture... 5 Diagram...

More information

Chapter 3 Operating-System Structures

Chapter 3 Operating-System Structures Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual

More information

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-12: Real Time Linux 1 1. Real Time Linux 2 Linux 2.6.x Linux is after Linus Torvalds, father of the Linux operating

More information

Operating Systems for Embedded Computers

Operating Systems for Embedded Computers University of Zagreb Faculty of Electrical Engineering and Computing Department of Electronics, Microelectronics, Computer and Intelligent Systems Operating Systems for Embedded Computers Summary of textbook:

More information

Linux Kernel Architecture

Linux Kernel Architecture Linux Kernel Architecture Amir Hossein Payberah payberah@yahoo.com Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management

More information

Socket Programming in C/C++

Socket Programming in C/C++ September 24, 2004 Contact Info Mani Radhakrishnan Office 4224 SEL email mradhakr @ cs. uic. edu Office Hours Tuesday 1-4 PM Introduction Sockets are a protocol independent method of creating a connection

More information

Matisse Server Administration Guide

Matisse Server Administration Guide Matisse Server Administration Guide May 2014 MATISSE Server Administration Guide Copyright 2013 Matisse Software Inc. All Rights Reserved. This manual and the software described in it are copyrighted.

More information

PRODUCTIVITY ESTIMATION OF UNIX OPERATING SYSTEM

PRODUCTIVITY ESTIMATION OF UNIX OPERATING SYSTEM Computer Modelling & New Technologies, 2002, Volume 6, No.1, 62-68 Transport and Telecommunication Institute, Lomonosov Str.1, Riga, LV-1019, Latvia STATISTICS AND RELIABILITY PRODUCTIVITY ESTIMATION OF

More information

Introduction to Socket Programming Part I : TCP Clients, Servers; Host information

Introduction to Socket Programming Part I : TCP Clients, Servers; Host information Introduction to Socket Programming Part I : TCP Clients, Servers; Host information Keywords: sockets, client-server, network programming-socket functions, OSI layering, byte-ordering Outline: 1.) Introduction

More information

Operating System Components and Services

Operating System Components and Services Operating System Components and Services Tom Kelliher, CS 311 Feb. 6, 2012 Announcements: From last time: 1. System architecture issues. 2. I/O programming. 3. Memory hierarchy. 4. Hardware protection.

More information

tmpfs: A Virtual Memory File System

tmpfs: A Virtual Memory File System tmpfs: A Virtual Memory File System Peter Snyder Sun Microsystems Inc. 2550 Garcia Avenue Mountain View, CA 94043 ABSTRACT This paper describes tmpfs, a memory-based file system that uses resources and

More information

Porting Lustre to Operating Systems other than Linux. Ken Hornstein US Naval Research Laboratory April 16, 2010

Porting Lustre to Operating Systems other than Linux. Ken Hornstein US Naval Research Laboratory April 16, 2010 Porting Lustre to Operating Systems other than Linux Ken Hornstein US Naval Research Laboratory April 16, 2010 Motivation We do a lot of data visualization on Lustre data, and would like to do that on

More information

IT304 Experiment 2 To understand the concept of IPC, Pipes, Signals, Multi-Threading and Multiprocessing in the context of networking.

IT304 Experiment 2 To understand the concept of IPC, Pipes, Signals, Multi-Threading and Multiprocessing in the context of networking. Aim: IT304 Experiment 2 To understand the concept of IPC, Pipes, Signals, Multi-Threading and Multiprocessing in the context of networking. Other Objective of this lab session is to learn how to do socket

More information

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2) RTOSes Part I Christopher Kenna September 24, 2010 POSIX Portable Operating System for UnIX Application portability at source-code level POSIX Family formally known as IEEE 1003 Originally 17 separate

More information

Shared Memory Introduction

Shared Memory Introduction 12 Shared Memory Introduction 12.1 Introduction Shared memory is the fastest form of IPC available. Once the memory is mapped into the address space of the processes that are sharing the memory region,

More information

System Security Fundamentals

System Security Fundamentals System Security Fundamentals Alessandro Barenghi Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano alessandro.barenghi - at - polimi.it April 28, 2015 Lesson contents Overview

More information

Configuring Security Features of Session Recording

Configuring Security Features of Session Recording Configuring Security Features of Session Recording Summary This article provides information about the security features of Citrix Session Recording and outlines the process of configuring Session Recording

More information

Basic System. Vyatta System. REFERENCE GUIDE Using the CLI Working with Configuration System Management User Management Logging VYATTA, INC.

Basic System. Vyatta System. REFERENCE GUIDE Using the CLI Working with Configuration System Management User Management Logging VYATTA, INC. VYATTA, INC. Vyatta System Basic System REFERENCE GUIDE Using the CLI Working with Configuration System Management User Management Logging Vyatta Suite 200 1301 Shoreway Road Belmont, CA 94002 vyatta.com

More information

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015 Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program

More information

Network Attached Storage. Jinfeng Yang Oct/19/2015

Network Attached Storage. Jinfeng Yang Oct/19/2015 Network Attached Storage Jinfeng Yang Oct/19/2015 Outline Part A 1. What is the Network Attached Storage (NAS)? 2. What are the applications of NAS? 3. The benefits of NAS. 4. NAS s performance (Reliability

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

EMC RepliStor for Microsoft Windows ERROR MESSAGE AND CODE GUIDE P/N 300-002-826 REV A02

EMC RepliStor for Microsoft Windows ERROR MESSAGE AND CODE GUIDE P/N 300-002-826 REV A02 EMC RepliStor for Microsoft Windows ERROR MESSAGE AND CODE GUIDE P/N 300-002-826 REV A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2003-2005

More information

Network Programming with Sockets. Process Management in UNIX

Network Programming with Sockets. Process Management in UNIX Network Programming with Sockets This section is a brief introduction to the basics of networking programming using the BSD Socket interface on the Unix Operating System. Processes in Unix Sockets Stream

More information

IV/I Semester B.Tech Program

IV/I Semester B.Tech Program IV/I Semester B.Tech Program Course brief IV/I Semester are a crucial phase of your academic career. For those who want to get a job this is the most crucial semester. We at teleuniv have resolved to make

More information

CS 416: Opera-ng Systems Design

CS 416: Opera-ng Systems Design Question 1 Explain the major difference between a file system that supports journaling (e.g., Linux ext4) versus a log-structured file system (e.g., YAFFS2). Operating Systems 2015 Exam 3 Review Paul Krzyzanowski

More information

PROFESSIONAL. Node.js BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE. Pedro Teixeira WILEY. John Wiley & Sons, Inc.

PROFESSIONAL. Node.js BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE. Pedro Teixeira WILEY. John Wiley & Sons, Inc. PROFESSIONAL Node.js BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE Pedro Teixeira WILEY John Wiley & Sons, Inc. INTRODUCTION xxvii CHAPTER 1: INSTALLING NODE 3 Installing Node on Windows 4 Installing on

More information

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln. Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object

More information

Chapter 2 System Structures

Chapter 2 System Structures Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices

More information

The Microsoft Windows Hypervisor High Level Architecture

The Microsoft Windows Hypervisor High Level Architecture The Microsoft Windows Hypervisor High Level Architecture September 21, 2007 Abstract The Microsoft Windows hypervisor brings new virtualization capabilities to the Windows Server operating system. Its

More information

Introduction. What is an Operating System?

Introduction. What is an Operating System? Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization

More information

Virtual Private Systems for FreeBSD

Virtual Private Systems for FreeBSD Virtual Private Systems for FreeBSD Klaus P. Ohrhallinger 06. June 2010 Abstract Virtual Private Systems for FreeBSD (VPS) is a novel virtualization implementation which is based on the operating system

More information

Appendix. Web Command Error Codes. Web Command Error Codes

Appendix. Web Command Error Codes. Web Command Error Codes Appendix Web Command s Error codes marked with * are received in responses from the FTP server, and then returned as the result of FTP command execution. -501 Incorrect parameter type -502 Error getting

More information

Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, 4802-4807. Socket Programming

Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, 4802-4807. Socket Programming Socket Programming Limi Kalita M.Tech Student, Department of Computer Science and Engineering, Assam Down Town University, Guwahati, India. Abstract: The aim of the paper is to introduce sockets, its deployment

More information

GlobalSCAPE DMZ Gateway, v1. User Guide

GlobalSCAPE DMZ Gateway, v1. User Guide GlobalSCAPE DMZ Gateway, v1 User Guide GlobalSCAPE, Inc. (GSB) Address: 4500 Lockhill-Selma Road, Suite 150 San Antonio, TX (USA) 78249 Sales: (210) 308-8267 Sales (Toll Free): (800) 290-5054 Technical

More information

Hands On Activities: TCP/IP Network Monitoring and Management

Hands On Activities: TCP/IP Network Monitoring and Management Hands On Activities: TCP/IP Network Monitoring and Management 1. TCP/IP Network Management Tasks TCP/IP network management tasks include Examine your physical and IP network address Traffic monitoring

More information

Network File System (NFS) Pradipta De pradipta.de@sunykorea.ac.kr

Network File System (NFS) Pradipta De pradipta.de@sunykorea.ac.kr Network File System (NFS) Pradipta De pradipta.de@sunykorea.ac.kr Today s Topic Network File System Type of Distributed file system NFS protocol NFS cache consistency issue CSE506: Ext Filesystem 2 NFS

More information

Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago

Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago Globus Striped GridFTP Framework and Server Raj Kettimuthu, ANL and U. Chicago Outline Introduction Features Motivation Architecture Globus XIO Experimental Results 3 August 2005 The Ohio State University

More information

TCP/IP - Socket Programming

TCP/IP - Socket Programming TCP/IP - Socket Programming jrb@socket.to.me Jim Binkley 1 sockets - overview sockets simple client - server model look at tcpclient/tcpserver.c look at udpclient/udpserver.c tcp/udp contrasts normal master/slave

More information

Lab 2 : Basic File Server. Introduction

Lab 2 : Basic File Server. Introduction Lab 2 : Basic File Server Introduction In this lab, you will start your file system implementation by getting the following FUSE operations to work: CREATE/MKNOD, LOOKUP, and READDIR SETATTR, WRITE and

More information

Automating System Administration with Perl

Automating System Administration with Perl O'REILLY Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo SECOND EDITION Automating System Administration with Perl David N. Blank-Edelman Table of Contents Preface xv 1. Introduction 1 Automation

More information

Real Time Programming: Concepts

Real Time Programming: Concepts Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize

More information

C# Cookbook. Stephen Teilhet andjay Hilyard. O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo '"J""'

C# Cookbook. Stephen Teilhet andjay Hilyard. O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo 'J' C# Cookbook '"J""' Stephen Teilhet andjay Hilyard O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo Tableof Contents Preface xv 1. Numbers 1 1.1 Determining Approximate Equality Between

More information

Audit Trail Administration

Audit Trail Administration Audit Trail Administration 0890431-030 August 2003 Copyright 2003 by Concurrent Computer Corporation. All rights reserved. This publication or any part thereof is intended for use with Concurrent Computer

More information

NCP Server for Linux Administration Guide

NCP Server for Linux Administration Guide www.novell.com/documentation NCP Server for Linux Administration Guide Open Enterprise Server 11 SP2 January 2014 Legal Notices Novell, Inc., makes no representations or warranties with respect to the

More information

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2 SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1

More information

We mean.network File System

We mean.network File System We mean.network File System Introduction: Remote File-systems When networking became widely available users wanting to share files had to log in across the net to a central machine This central machine

More information

Implementing and testing tftp

Implementing and testing tftp CSE123 Spring 2013 Term Project Implementing and testing tftp Project Description Checkpoint: May 10, 2013 Due: May 29, 2013 For this project you will program a client/server network application in C on

More information

Windows Security. CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger. www.cse.psu.edu/~tjaeger/cse497b-s07/

Windows Security. CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger. www.cse.psu.edu/~tjaeger/cse497b-s07/ Windows Security CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger www.cse.psu.edu/~tjaeger/cse497b-s07/ Windows Security 0 to full speed No protection system in early versions

More information

Chapter 11 I/O Management and Disk Scheduling

Chapter 11 I/O Management and Disk Scheduling Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization

More information

The POSIX Socket API

The POSIX Socket API The POSIX Giovanni Agosta Piattaforme Software per la Rete Modulo 2 G. Agosta The POSIX Outline Sockets & TCP Connections 1 Sockets & TCP Connections 2 3 4 G. Agosta The POSIX TCP Connections Preliminaries

More information

CIS 551 / TCOM 401 Computer and Network Security

CIS 551 / TCOM 401 Computer and Network Security CIS 551 / TCOM 401 Computer and Network Security Spring 2007 Lecture 3 1/18/07 CIS/TCOM 551 1 Announcements Email project groups to Jeff (vaughan2 AT seas.upenn.edu) by Jan. 25 Start your projects early!

More information

Network Programming TDC 561

Network Programming TDC 561 Network Programming TDC 561 Lecture # 1 Dr. Ehab S. Al-Shaer School of Computer Science & Telecommunication DePaul University Chicago, IL 1 Network Programming Goals of this Course: Studying, evaluating

More information

A Transport Protocol for Multimedia Wireless Sensor Networks

A Transport Protocol for Multimedia Wireless Sensor Networks A Transport Protocol for Multimedia Wireless Sensor Networks Duarte Meneses, António Grilo, Paulo Rogério Pereira 1 NGI'2011: A Transport Protocol for Multimedia Wireless Sensor Networks Introduction Wireless

More information

Distributed File Systems

Distributed File Systems Distributed File Systems Paul Krzyzanowski Rutgers University October 28, 2012 1 Introduction The classic network file systems we examined, NFS, CIFS, AFS, Coda, were designed as client-server applications.

More information

Resource Utilization of Middleware Components in Embedded Systems

Resource Utilization of Middleware Components in Embedded Systems Resource Utilization of Middleware Components in Embedded Systems 3 Introduction System memory, CPU, and network resources are critical to the operation and performance of any software system. These system

More information

ELEC 377. Operating Systems. Week 1 Class 3

ELEC 377. Operating Systems. Week 1 Class 3 Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation

More information

Cisco Networking Academy Program Curriculum Scope & Sequence. Fundamentals of UNIX version 2.0 (July, 2002)

Cisco Networking Academy Program Curriculum Scope & Sequence. Fundamentals of UNIX version 2.0 (July, 2002) Cisco Networking Academy Program Curriculum Scope & Sequence Fundamentals of UNIX version 2.0 (July, 2002) Course Description: Fundamentals of UNIX teaches you how to use the UNIX operating system and

More information

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: 10.1.1. Security Note

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: 10.1.1. Security Note BlackBerry Enterprise Service 10 Secure Work Space for ios and Android Version: 10.1.1 Security Note Published: 2013-06-21 SWD-20130621110651069 Contents 1 About this guide...4 2 What is BlackBerry Enterprise

More information

ICT SEcurity BASICS. Course: Software Defined Radio. Angelo Liguori. SP4TE lab. angelo.liguori@uniroma3.it

ICT SEcurity BASICS. Course: Software Defined Radio. Angelo Liguori. SP4TE lab. angelo.liguori@uniroma3.it Course: Software Defined Radio ICT SEcurity BASICS Angelo Liguori angelo.liguori@uniroma3.it SP4TE lab 1 Simple Timing Covert Channel Unintended information about data gets leaked through observing the

More information

Integrating VoltDB with Hadoop

Integrating VoltDB with Hadoop The NewSQL database you ll never outgrow Integrating with Hadoop Hadoop is an open source framework for managing and manipulating massive volumes of data. is an database for handling high velocity data.

More information

3.14. 3.14 Training on Linux System Administration, LPI Certification Level 1

3.14. 3.14 Training on Linux System Administration, LPI Certification Level 1 165 3.14 Training on Linux System Administration, LPI Certification Level 1 Name of the Tool: Source: Usage: Description: GIZ This training has been designed for IT experts and institutions desired to

More information

www.novell.com/documentation Jobs Guide Identity Manager 4.0.1 February 10, 2012

www.novell.com/documentation Jobs Guide Identity Manager 4.0.1 February 10, 2012 www.novell.com/documentation Jobs Guide Identity Manager 4.0.1 February 10, 2012 Legal Notices Novell, Inc. makes no representations or warranties with respect to the contents or use of this documentation,

More information

Operating Systems Design 16. Networking: Sockets

Operating Systems Design 16. Networking: Sockets Operating Systems Design 16. Networking: Sockets Paul Krzyzanowski pxk@cs.rutgers.edu 1 Sockets IP lets us send data between machines TCP & UDP are transport layer protocols Contain port number to identify

More information

enicq 5 System Administrator s Guide

enicq 5 System Administrator s Guide Vermont Oxford Network enicq 5 Documentation enicq 5 System Administrator s Guide Release 2.0 Published November 2014 2014 Vermont Oxford Network. All Rights Reserved. enicq 5 System Administrator s Guide

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

NetSpective Logon Agent Guide for NetAuditor

NetSpective Logon Agent Guide for NetAuditor NetSpective Logon Agent Guide for NetAuditor The NetSpective Logon Agent The NetSpective Logon Agent is a simple application that runs on client machines on your network to inform NetSpective (and/or NetAuditor)

More information

The System Monitor Handbook. Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig

The System Monitor Handbook. Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig 2 Contents 1 Introduction 6 2 Using System Monitor 7 2.1 Getting started........................................ 7 2.2 Process Table.........................................

More information

Informatica Corporation Proactive Monitoring for PowerCenter Operations Version 3.0 Release Notes May 2014

Informatica Corporation Proactive Monitoring for PowerCenter Operations Version 3.0 Release Notes May 2014 Contents Informatica Corporation Proactive Monitoring for PowerCenter Operations Version 3.0 Release Notes May 2014 Copyright (c) 2012-2014 Informatica Corporation. All rights reserved. Installation...

More information

About the Authors Fundamentals p. 1 Introduction to LDAP and Active Directory p. 3 A Brief History of Directory Services p. 3 Definition of LDAP p.

About the Authors Fundamentals p. 1 Introduction to LDAP and Active Directory p. 3 A Brief History of Directory Services p. 3 Definition of LDAP p. Listings p. xv Tables p. xix Foreword p. xxi Preface p. xxiii Acknowledgments p. xxix About the Authors p. xxxi Fundamentals p. 1 Introduction to LDAP and Active Directory p. 3 A Brief History of Directory

More information

TCP/IP Illustrated, Volume 2 The Implementation

TCP/IP Illustrated, Volume 2 The Implementation TCP/IP Illustrated, Volume 2 The Implementation W. Richard Stevens Gary R. Wright ADDISON-WESLEY PUBLISHING COMPANY Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario Wokingham,

More information

III. Process Scheduling

III. Process Scheduling Intended Schedule III. Process Scheduling Date Lecture Hand out Submission 0 20.04. Introduction to Operating Systems Course registration 1 27.04. Systems Programming using C (File Subsystem) 1. Assignment

More information

III. Process Scheduling

III. Process Scheduling III. Process Scheduling 1 Intended Schedule Date Lecture Hand out Submission 0 20.04. Introduction to Operating Systems Course registration 1 27.04. Systems Programming using C (File Subsystem) 1. Assignment

More information

Teldat Router. DNS Client

Teldat Router. DNS Client Teldat Router DNS Client Doc. DM723-I Rev. 10.00 March, 2003 INDEX Chapter 1 Domain Name System...1 1. Introduction...2 2. Resolution of domains...3 2.1. Domain names resolver functionality...4 2.2. Functionality

More information

File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi

File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi History of FTP The first proposed file transfer mechanisms were developed for implementation on hosts at M.I.T.

More information

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2 Job Reference Guide SLAMD Distributed Load Generation Engine Version 1.8.2 June 2004 Contents 1. Introduction...3 2. The Utility Jobs...4 3. The LDAP Search Jobs...11 4. The LDAP Authentication Jobs...22

More information

Objectives of Lecture. Network Architecture. Protocols. Contents

Objectives of Lecture. Network Architecture. Protocols. Contents Objectives of Lecture Network Architecture Show how network architecture can be understood using a layered approach. Introduce the OSI seven layer reference model. Introduce the concepts of internetworking

More information

Features. The Samhain HIDS. Overview of available features. Rainer Wichmann

Features. The Samhain HIDS. Overview of available features. Rainer Wichmann Overview of available features November 1, 2011 POSIX (e.g. Linux, *BSD, Solaris 2.x, AIX 5.x, HP-UX 11, and Mac OS X. Windows 2000 / WindowsXP with POSIX emulation (e.g. Cygwin). Please note that this

More information

Module 20: The Linux System

Module 20: The Linux System Module 20: The Linux System History Design Principles Kernel Modules Process Management Scheduling Memory Management File Systems Input and Output Interprocess Communication Network Structure Security

More information

Auditing a Web Application. Brad Ruppert. SANS Technology Institute GWAS Presentation 1

Auditing a Web Application. Brad Ruppert. SANS Technology Institute GWAS Presentation 1 Auditing a Web Application Brad Ruppert SANS Technology Institute GWAS Presentation 1 Objectives Define why application vulnerabilities exist Address Auditing Approach Discuss Information Interfaces Walk

More information

Porting applications & DNS issues. socket interface extensions for IPv6. Eva M. Castro. ecastro@dit.upm.es. dit. Porting applications & DNS issues UPM

Porting applications & DNS issues. socket interface extensions for IPv6. Eva M. Castro. ecastro@dit.upm.es. dit. Porting applications & DNS issues UPM socket interface extensions for IPv6 Eva M. Castro ecastro@.upm.es Contents * Introduction * Porting IPv4 applications to IPv6, using socket interface extensions to IPv6. Data structures Conversion functions

More information

Operating Systems Principles

Operating Systems Principles bicfm page i Operating Systems Principles Lubomir F. Bic University of California, Irvine Alan C. Shaw University of Washington, Seattle PEARSON EDUCATION INC. Upper Saddle River, New Jersey 07458 bicfm

More information

Linux Driver Devices. Why, When, Which, How?

Linux Driver Devices. Why, When, Which, How? Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may

More information

SYSTEM ecos Embedded Configurable Operating System

SYSTEM ecos Embedded Configurable Operating System BELONGS TO THE CYGNUS SOLUTIONS founded about 1989 initiative connected with an idea of free software ( commercial support for the free software ). Recently merged with RedHat. CYGNUS was also the original

More information

Structured Threats 21 External Threats 22 Internal Threats 22 Network Attacks 22 Reconnaissance Attacks 22 Access Attacks 23 Data Retrieval 23 System

Structured Threats 21 External Threats 22 Internal Threats 22 Network Attacks 22 Reconnaissance Attacks 22 Access Attacks 23 Data Retrieval 23 System xii Contents Structured Threats 21 External Threats 22 Internal Threats 22 Network Attacks 22 Reconnaissance Attacks 22 Access Attacks 23 Data Retrieval 23 System Access 24 Privilege Escalation 24 DoS

More information

NetFlow Aggregation. Feature Overview. Aggregation Cache Schemes

NetFlow Aggregation. Feature Overview. Aggregation Cache Schemes NetFlow Aggregation This document describes the Cisco IOS NetFlow Aggregation feature, which allows Cisco NetFlow users to summarize NetFlow export data on an IOS router before the data is exported to

More information

Session NM059. TCP/IP Programming on VMS. Geoff Bryant Process Software

Session NM059. TCP/IP Programming on VMS. Geoff Bryant Process Software Session NM059 TCP/IP Programming on VMS Geoff Bryant Process Software Course Roadmap Slide 160 NM055 (11:00-12:00) Important Terms and Concepts TCP/IP and Client/Server Model Sockets and TLI Client/Server

More information

Linux Kernel Networking. Raoul Rivas

Linux Kernel Networking. Raoul Rivas Linux Kernel Networking Raoul Rivas Kernel vs Application Programming No memory protection Memory Protection We share memory with devices, scheduler Sometimes no preemption Can hog the CPU Segmentation

More information

Introduction to Operating Systems

Introduction to Operating Systems Introduction to Operating Systems It is important that you familiarize yourself with Windows and Linux in preparation for this course. The exercises in this book assume a basic knowledge of both of these

More information

Shared Address Space Computing: Programming

Shared Address Space Computing: Programming Shared Address Space Computing: Programming Alistair Rendell See Chapter 6 or Lin and Synder, Chapter 7 of Grama, Gupta, Karypis and Kumar, and Chapter 8 of Wilkinson and Allen Fork/Join Programming Model

More information

Monitoring PostgreSQL database with Verax NMS

Monitoring PostgreSQL database with Verax NMS Monitoring PostgreSQL database with Verax NMS Table of contents Abstract... 3 1. Adding PostgreSQL database to device inventory... 4 2. Adding sensors for PostgreSQL database... 7 3. Adding performance

More information

Chapter 21: The Linux System. Operating System Concepts 8 th Edition

Chapter 21: The Linux System. Operating System Concepts 8 th Edition Chapter 21: The Linux System Silberschatz, Galvin and Gagne 2009 Chapter 21: The Linux System Linux History Design Principles Kernel Modules Process Management Scheduling Memory Management File Systems

More information

CAPP-Compliant Security Event Audit System for Mac OS X and FreeBSD

CAPP-Compliant Security Event Audit System for Mac OS X and FreeBSD CAPP-Compliant Security Event Audit System for Mac OS X and FreeBSD Robert N. M. Watson Security Research Computer Laboratory University of Cambridge March 23, 2006 Introduction Background Common Criteria,

More information

Common Lisp Sockets APIs An analysis and proposal

Common Lisp Sockets APIs An analysis and proposal Common Lisp Sockets APIs An analysis and proposal Dave Roberts dave-at-findinglisp-com www.findinglisp.com Version 0.2.5, 27-Dec-2005 1 Introduction In recent years, network programming has increased steadily

More information