Rust Before Main - Ryan Levick - Rust Linz, July 2022

  Рет қаралды 44,967

Rust

Rust

Күн бұрын

Пікірлер: 37
@leonie9248
@leonie9248 2 жыл бұрын
Wow, this was amazingly informative! Thank you so much, Ryan! Especially awesome: You always help to orient after each section, and at the end of the talk. This helps tremendously to put the pieces together in one's head!
@cloudsquall88
@cloudsquall88 2 жыл бұрын
Really really amazing talk! One of the rare ones where you get taught things you didn't even know you wanted to learn. Ryan is a treasure, for real. Many thanks!
@XiaoZhang-x1a0
@XiaoZhang-x1a0 2 жыл бұрын
One of the best, if not the best, I’ve watched on KZbin so far. Thanks!
@cthutu
@cthutu 2 жыл бұрын
It would be nice if the resource links at the end of the talk were in the youtube description too. But great talk btw!
@RustVideos
@RustVideos 2 жыл бұрын
Yeah, makes sense! I updated the description
@muezsier
@muezsier 2 жыл бұрын
Thanks❤
@Ma1ne2
@Ma1ne2 2 жыл бұрын
Incredible talk, would love to learn more in this direction, keep it coming Ryan!
@rauno56
@rauno56 2 жыл бұрын
5:30 in, and already very valuable! Thanks, Ryan!
@Shan224
@Shan224 Жыл бұрын
This was extraordinarily illuminating. Thank you! I’m grateful
@bloody_albatross
@bloody_albatross 2 жыл бұрын
Small note: "All the shell does is to call exec*()." It calls fork() before it, because exec*() _replaces_ the currently running process with the new binary. And between fork() and exec*() the shell might set up stdio redirection and such. Linux does not have a system call that does both in one, which can be a problem for huge processes, because while the cloned memory is copy on write, the page-tables need to be copied, and if those alone are huge it is still a heavy operation. They say its a problem for PostgreSQL and why you should limit connections to your PostgreSQL server? There is the posix_spawn() function, but under Linux it just does fork()+exec*(). Some BSDs actually implement posix_spawn() as system call. I think Windows only has something like that and no way to exec*() without spawning a new process.
@GK-rl5du
@GK-rl5du 8 ай бұрын
This is really cool. Where can I learn about what a shell does before calling fork + exec* apart from stdio redirectioons. I heard some shells handle signals as well.
@5V500mA
@5V500mA 2 жыл бұрын
Wow, such a nice intro. After half a minute I am really interested in the content of the talk.
@barower
@barower 2 жыл бұрын
9:06 why does cargo/rustc have to statically embed entirety of standard library into final binary, and not only used elements, since it should know which of those are actually used?
@AhmedEssam_eramax
@AhmedEssam_eramax 2 жыл бұрын
great presentation, thanks
@GSteel-rh9iu
@GSteel-rh9iu 2 жыл бұрын
Fantastic very informative talk!
@simonfarre4907
@simonfarre4907 2 жыл бұрын
The vdso basically is a couple of system calls that are loaded into the process space so that the application can call those without having to actually make the system call "dance" as it were, no going into kernel space for it. For instance, I think gettimeofday or something like that, lives there. Why is this important? Its because system calls are a lot more costly than normal user space function calls. So, pulling these small syscalls into the process space, removes the need for context switching back and forth between user space and kernel space, making those calls almost equivalent to a normal function call.
@GK-rl5du
@GK-rl5du 8 ай бұрын
Interesting. So, these syscalls are executed without the need for ring0. May I ask what are these syscalls and how does kernel know before hand the arguments for these syscalls?
@joelmontesdeoca6572
@joelmontesdeoca6572 2 жыл бұрын
Fantastic talk
@CjqNslXUcM
@CjqNslXUcM 6 ай бұрын
I like that he basically gives therapy for people with impostor syndrome for the first few minutes.
@alter_igel
@alter_igel 2 жыл бұрын
This is a great resource, thanks a lot!
@JoeBurnett
@JoeBurnett 2 жыл бұрын
Excellent presentation and content!
@edgeeffect
@edgeeffect Жыл бұрын
As an assembly language geek and a fan of `#![no_std]` ... this was always a favourite topic of mine even before Rust came along. I love that "Not necessarily wrong... just a bit too simple".
@elgalas
@elgalas 2 жыл бұрын
"My life is very much consumed by Rust" :)
@lectromoe
@lectromoe 2 жыл бұрын
great talk
@firex5250
@firex5250 2 жыл бұрын
Wonderful talk!!!!
@布雷-z7h
@布雷-z7h 2 жыл бұрын
very clear
@SVVV97
@SVVV97 2 жыл бұрын
Great talk, thanks!
@emvdl
@emvdl 2 жыл бұрын
Thanks 👍
@StonkeyKong
@StonkeyKong 2 жыл бұрын
Great talk. 🤩
@bobby9568
@bobby9568 2 жыл бұрын
Can you do some more talks?
@docteurklein
@docteurklein Жыл бұрын
I think it spells exec-ve (arg Vector and Env), not exe-cve
@thingsiplay
@thingsiplay Жыл бұрын
__start -> __lib_start_main -> main But if we don't have a main in our Rust program anymore, how can this work?
@kamertonaudiophileplayer847
@kamertonaudiophileplayer847 2 жыл бұрын
I do not use Cargo too.
@ozanmuyes
@ozanmuyes 2 жыл бұрын
Great presentation, thank you. Also very informative content.
@musdevfrog
@musdevfrog 2 жыл бұрын
13:41 My whole life is a lie.
@rasheedstarlet
@rasheedstarlet 2 жыл бұрын
Who knows how to do this in MacOS M1?
@FaZekiller-qe3uf
@FaZekiller-qe3uf Жыл бұрын
You say “stood” for “std”?
Rust Linz, June 2021 - Tim McNamara - How to learn Rust
27:34
Quando eu quero Sushi (sem desperdiçar) 🍣
00:26
Los Wagners
Рет қаралды 15 МЛН
Rust & Zig Combined • Richard Feldman • GOTO 2023
45:34
GOTO Conferences
Рет қаралды 81 М.
Rust at speed - building a fast concurrent database
52:54
Jon Gjengset
Рет қаралды 214 М.
rust runs on EVERYTHING (no operating system, just Rust)
18:10
Low Level
Рет қаралды 365 М.
Implementing (parts of) git from scratch in Rust
4:29:28
Jon Gjengset
Рет қаралды 88 М.
Let's Create a Compiler (Pt.1)
1:11:03
Pixeled
Рет қаралды 588 М.
Keynote: Advent of Code, Behind the Scenes - Eric Wastl
46:01
Rust's Witchcraft
9:18
No Boilerplate
Рет қаралды 189 М.
Improve your Rust APIs with the type state pattern
14:45
Let's Get Rusty
Рет қаралды 91 М.