Advanced Red Hat Linux Systems Programming


				Course Description

	This course introduces the participants to system level programming in the C 
	language in a RHEL5 environment. The course focuses on RHEL5 system calls and 
	library functions, how to use them, and their underlying mechanisms. The course 
	deals with many facets of the RHEL5 operating system, including: introduction to 
	RHEL5 kernel structure, I/O, Signals, Signal handlers, Timers, Processes, Multi-Tasking, 
	Inter-Process Communication (IPC) Pipes, Shared memory, Message Queues, Semaphores, 
	Networking, Sockets, using TCP/IP and UDP/IP.Throughout the course the information 
	presented is related to the participant through:  the execution of common RHEL5 
	user/administrator commands, and writing, compiling, and executing example C language 
	programs which demonstrate the use of system routines and accessing system data structures 
	on a live RHEL5 system. 


				Course Objectives

	Upon completion of this course the participant will be able to:
	•	Explain the programmable mechanisms in a RHEL5 environment 
	•	Write applications using standard RHEL5 system calls and library functions 


				Course Topics

		System Programming Environment of the RHEL5
			Environment of a C language program
			System level programming requirements:
				C compiler issues
				Header files and libraries
				Special data types used
				Useful functions
				Error handling (basic)
			Documentation
			Security Issues
 

		File Systems
			Types of file I/O
			File I/O structures
			File I/O access types
			Dealing with STDIN, STDOUT, STDERR
			Creating and using temporary files
			Directory file access and manipulation
			Permissions

		Process Creation and Control
			Attributes (username, UID, PID, Groups)
			Creation methods
			Multi-tasking
			Shells
			Synchronization
			An introduction to threads

		Synchronization and System Information
			Time issues:
				how time is maintained
				timers
			General synchronization
				semaphores
				mutexes
				signals (generation and handling)
			System information:
				uname
				hostname
				load averages
		 
		Interprocess Data Communication Facilities
			Overview of RHEL5 IPC Facilities
			Memory Mapped files 
			Pipes and Named Pipes
			Messages Queues 
			Creating and Using Shared Memory structures 

		Sharing Code Between Processes
			Building shared object (libraries)
			Static Linking
			Dynamic Linking

		Networking
			Concepts and basic requirements
			Socket creation and usage
			TCP/IP level connections
			UDP/IP level connections
 


			Course Duration

	This course normally requires five (5) days, 60% lecture, 40% hands 
	on lab exercises.


			Course Prerequisites

	It is assumed that the participant has a solid background in basic RHEL5
	utilities and editors (such as vi), and a working knowledge of the C (or C++) 
	programming language(s). 
 






Linux Curricula Page Laine Schedule Page Laine Home Page


Copyright 2010 Laine Educational Enterprises, Ltd