Course Outline
- Sockets
- Creating datagram sockets
- Receiving and sending data
- Creating and accepting TCP connections
- Closing sockets
- Handling errors
- Handling more than one client in a simple way
- Prefork model, as found in Apache
- Forking a new process per client
- Cleaning up after finished processes
- Threads
- Inetd, systemd units
- Waiting for data
- Blocking sockets
- Non-blocking sockets and select
- Select as a way to wait for "any of these sockets"
- Organizing reads and writes
- Dealing with short reads and writes
- Reading up to a delimiter
- Pipelined requests
- Application-level buffers
- Event-driven architecture
- Using select for multiplexing all client connections in one thread
- State machines
- Callback hell
- Event libraries
- "Green" threads
- Problem of 10000 connections
- Problems with prefork model and select-based loop
- poll as an alternative to select
- Realtime signals and why you shouldn't use them
- Epoll (linux) and kqueue (BSD)
- Why and when epoll and kqueue are faster than poll/select
- Timeouts and timers
- SIGALARM
- Timeout as a select argument
- A simple case of all-equal timeouts
- Priority queue as an abstract data stracture
- Binary heap as a priority queue implementation
- Timer wheel
- timerfd
- Integration with the operating system
- Traditional daemons
- Systemd socket activation
- Logging
- Handling signals
- Performance and scalability optimizations
- Choosing the right architecture
- Setting socket options
Requirements
- C language
- Linux user skills
Testimonials
The coolest thing was that it was not the "dry" knowledge, there were only a lot of exercises and repetitions on a regular basis, and that all the questions asked during the training were answered by the instructor, which definitely facilitated the understanding of the issue.
Julia Minicka
The way of conducting classes
Szymon Wolny
interesting issues, nice facilitator, professional way of conducting classes
Małgorzata Konior
The most striking thing for me was the trainer's use of talking to the group in the way "Look", "Look", "Now use this command" - this is a fairly well-known and effective method of maintaining focus among listeners. In addition, extensive knowledge of the teacher. which he can convey in an accessible way.
Motorola Solutions Systems Polska Sp. z o.o
The trainer has a lot of substantive knowledge and communicates well with the audience.
Motorola Solutions Systems Polska Sp. z o.o
The flexibility of the trainer
Dawid Rowinski - IBM Global Services Delivery Centre Polska Sp. z o.o.
I mostly liked the explanation of fundamentals.
Desi Cozier - National Defence / Government of Canada
-
- Deloitte Digital Sp. z o.o.
The great place left to the exercises
- ONEM
the trainer was able to adapt his course in relation to our needs
Pascal Houyoux - ONEM
The number of exercises
Jos Couder - ONEM
interractivité
- ONEM
many exercises
Jean-Paul Labaisse - ONEM
Very good training, dynamic and interactive
Agostino Candela - ONEM
A good refresher of my historical knowledge
- ONEM
availability of the trainer. The explanations are clear.
mostafa el oueriaghli - ONEM
the exercises
rudi bernaer - ONEM
The extra informations not in the official docs
Sayf Eddine HAMMEMI - SCALITY SA
Go tooling
- SCALITY SA
The many practical exercises
Delphine Agnello - ONEM
Adapting the content of workshops to the needs of students, striving to address the issue, ability to communicate information
- Powiat Lubański
Covered Linux basics which was very helpful to understand the rest of the course Good pace and good communication
Richard Copley - Egress Software Technologies
Executing commands myself and learning what some of the Linux 'code' actually means.
Paul Tosseano - Egress Software Technologies
Engaging exercises, perfect pace
Hannah Clough - Egress Software Technologies
Many positives. I came to the training to get a better understanding of Unix and I certainly can go back to work with a lot more knowledge which was my main goal.
Ben Frijters - Argenta Spaarbank NV
Delivery and Lab
Egress Software Technologies
There were lots of exercises, which was really good.
James Eyre - Egress Software Technologies
There were alsways some information on the side, which is usually left (in other courses) out but nonetheless important and interesting.
Sopra Steria
The personal approach and the practical way of going trough the seen theory afterwards.