RUVIDEO
Поделитесь видео 🙏

Let's read the Linux socket source code

In this live stream, we look at the source code for Linux's implementation of the Berkeley socket API. We also look at "socks" (no "et"), which seem to contain the lower-level implementation details for "sockets".

In a now time-honored tradition, I confuse the right and left shift operators. And @Raxneff Nextnerf and others help me out with some of the thornier details in the code.

Along the way, we take a detour to learn a bit about how to optimize C structs for cache locality.

Useful links:
- Socket.h: https://github.com/torvalds/linux/blob/master/include/linux/socket.h
- Socket.c: https://github.com/torvalds/linux/blob/master/net/socket.c
- Sock.h: https://github.com/torvalds/linux/blob/master/include/net/sock.h
- Sock.c: https://github.com/torvalds/linux/blob/master/net/core/sock.c

Related videos:
- Linux kernel: https://www.youtube.com/watch?v=C43VxGZ_ugU
- TCP: https://www.youtube.com/watch?v=8PVufdYi2zs

Sorry about the harsh sound on this video, I accidentally plugged my microphone into the wrong channel ?♂️.

Thanks for watching :)

@raxneff put together the following timeline:

00:00:15 What this live show is about
00:03:28 socket.c
00:05:06 includes in socket.c
00:07:30 opening files
00:13:44 socket address families in socket.h
00:15:35 protocol families in socket.h
00:16:25 flags for send/recv in socket.h
00:17:13 setsockoptions level in socket.h
00:11:54 basic functions in socket.h
00:18:33 sockaddr in socket.h
00:19:32 sockaddr_storage in socket.h
00:20:02 msghdr in socket.h
00:24:06 Linux socket API
00:26:35 for_each_cmsghdr in socket.h (PLEASE, do not touch)
00:29:04 msg_data_left in socket.h
00:32:04 control message types in socket.h
00:32:49 recvmsg in socket.h
00:35:36 sendmsg lookup man page
00:38:49 What I think sock.h is about
00:39:23 includes in sock.h
00:40:34 SOCK_DEBUG in sock.h
00:41:04 socket_lock_t sock.h
00:42:59 sock_common struct in sock.h
00:49:22 SO_REUSEADDR lookup
00:43:10 for what the unions are used
00:53:03 tcp timewait lookup
00:55:51 sock.h (cont.)
00:56:07 sock structure in sock.h
00:58:45 we are in lower level land
01:02:11 sound issues
01:04:04 How ordering of elements in structs can help performance
01:09:18 back in sock.h
01:10:13 optimisation in sock.h and Google QUIC
01:15:04 CPU caches
01:22:09 further stuff in sock.h
01:23:11 sk_page_frag ... in sock.h
01:23:50 sk_pacing_shift_update and right-shift for ms
01:31:13 socket.c
01:32:30 file_operations ... in socket.c
01:34:22 spinlock in socket.c
01:34:40 support routines and audit_sockaddr in socket.c
01:35:17 sockfs_dname in socket.c
01:36:38 sock_alloc_file in socket.c
01:38:48 sock_sendmsg in socket.c
01:39:17 Linux Security Modules
01:39:53 socket.c (cont.)
01:40:35 __sock_recv_timestamp and more in socket.c
01:43:01 sock.c
01:43:03 includes in sock.c
01:45:20 sk_clear_memalloc in sock.c
01:46:26 timeout, netstamp, ... -stuff in sock.c
01:47:53 sk_setsockopt in sock.c
01:52:21 static_branch_unlikely lookup
01:56:45 outro and what comes next

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Let's read the Linux socket source code», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.