Sela

Unix/Linux System Programming

Description
The course introduces the participant to programming in the C programming language in a Unix/Linux environment. The course focuses on Unix/Linux system calls and library functions, how to use them, and their underlying mechanisms. The course deals with many facets of the Unix/Linux operating system, including: Unix kernel structure, I/O, Signals, Timers, Processes, Threads, IPC mechanisms: Pipes, Shared memory, Message Queues, Semaphores, and Sockets using TCP and UDP. The course includes many programming examples that can serve as a reference or basis for the participants' work in the future. Time is given to writing and testing several programs to help the participants comprehend the complexity of Unix/Linux system programming, along with the satisfaction of knowing how to do it well.
Intended audience
The course is for programmers, software designers, and project managers

Topics

Short History.
Why is UNIX So Successful?
UNIX Flavors – BSD, SysV, Linux.
Standards.
System Architecture.
The Kernel.
The Shell.
Utilities - Tools and Applications.
Privileged Execution Mode.
Kernel Mode Vs. User Mode.
System Calls.
Using System Calls.
What Happen When a System Call Fails?
Printing Error Messages – perror.
Printing Error Messages - strerror.
Using Files
Links
Working With Directories.
Obtaining File Information.
File Permissions.
Special Permissions.
The Way the Kernel Handles Signals.
Types of Signals.
Results of a Process Receiving a Signal.
Handling Signals.
Signals List.
Sending Signals.
Handling Signal.
Response to Signals.
Activation of pause, signal.
System Call for Signal Handling.
Blocking of Critical Segments
Error Handler
Using the UNIX Clock
Working with Clocks
Working with Resolution in Seconds
High Resolution Clocks
Working with Internal Clocks
Timer Signals.
Programs and Processes
The Process IDs
The Process Table
The Process State
ps - Report Process Status
Context Switch
The Process Environment
Process Group
Jobs and Processes
Process Termination
Creating a New Process
The wait Function Family
Executing a Program
The system C Library Function
Redirection of Input and Output
The vfork System Call
What is A Thread?
Ordinary Functions vs. Threads
POSIX Threads
Common Thread Functions
Create a New Thread
Terminate a Thread
Wait for Termination of a Thread
Joinable Threads
User Threads vs. Kernel Threads
ybrid Thread Models
Thread Attributes
Thread Synchronization
Resource Management.
Measuring Resource Utilization.
Upper Levels of Resource Management.
Context Switch.
Algorithms for Process Management.
Process Management in UNIX.
Priorities.
Pipes
Named Pipes
Shared Memory
Message Queue
csh Level Commands
File locking
Semaphore
What Is A Socket?
A Brief History Of Sockets.
Communication Protocols.
Communication Capabilities.
Endpoint Addresses.
The Internet Protocol (IP).
Internet Addresses.
Address Classes.
Connection Oriented Communications And TCP
Connectionless Communications And UDP.
Stream Sockets - The Basic Model
Sending Data – send.
Receiving Data - recv.
Shutting Down A Socket.
Utility Functions.
Internet Address Manipulation.
The /etc/hosts File.
Protocols.
The /etc/services file.
Socket Options And Capabilities.
Setting and Getting Socket Options.
Input / Output Multiplexing
Broadcast and Datagram Sockets
Hardware Timer & timer ticks
System Clock Facilities
Watch dog and Monitoring

רוצה לדבר עם יועץ?

האם אתה בטוח שאתה רוצה לסגור את הטופס ולאבד את כל השינויים?