Beginner friendly deep dive into the latest kernel! Thank you for watching!
Пікірлер: 163
@James-uw4itАй бұрын
51:30 `mlock`sounds interesting, but from my understanding, it only prevents pages from being swapped out. That's what I gathered from a quick look at the manpages. Could you explain what you meant or provide a source for further clarification?
@Maple-CircuitАй бұрын
@@James-uw4it Pinning this because you are right, mlock() is only to keep the memory from being swapped out of main memory and not to protect your addresses... My mistake! Thank you for calling it out!
@AGentooUserАй бұрын
Finally youtube is recommending me good channels. this is a hidden gem
@Maple-CircuitАй бұрын
@@AGentooUser thanks(;
@sozforexАй бұрын
Oh, another Gentoo user in the wild
@meem2Greene-ju3csАй бұрын
A gentoo user!
@werthorneАй бұрын
gemtoo albeit
@FilthyPitDogАй бұрын
I too use Gentoo btw
@jothiprasathАй бұрын
in video tittle add "linux" keyword. example "Linux Kernel 6.10 | Locked & Optimized" for better seo
@falkster4045Ай бұрын
I hate that the internwt works this way. You get only shown stuff by people who know how seo works, and not by people who know what they are talking about
@vappyreon1176Ай бұрын
Honestly not even seo itd just be a bit more clear
@falkster4045Ай бұрын
@@vappyreon1176 i agree on that, i was really tired and just wanted to rant lol
@Margen6720 күн бұрын
Locked In
@thegornАй бұрын
RIP RiserFS, and RIP Han’s dead wife
@Maple-CircuitАй бұрын
Lol the your user image fits XD
@atemocАй бұрын
KZbin recommendations, finally being good for once! Awesome content.
@Chat_De_RatatoingАй бұрын
You explain things very easely, your videos are really nice
@mueshen9861Ай бұрын
cannot believe i am finally leveling up as geek and am watching linux kernel update video xD
@Maple-CircuitАй бұрын
LVL UP++
@chri-k26 күн бұрын
i don't even use linux and i still watched it
@bloepjeАй бұрын
Zero Copy means the cpu doesn't cp the data from memory to memory trashing the data cache of the cpu. Not trashing the cache has a performance benefit. It's very hard to do because usually you do a read() write() construction from user space. This is even a double trash, because it goes from memory to kernel cpu cache to user cpu cache then back to kernel cache, and then to the other device.
@stends113Ай бұрын
Not only that, but copying data from one part to another (from one buffer to another), even if we had some cache skipping feature (they do exist but not everywhere), copying is actually pretty slow by it self, and depending on copy size, the CPU will often have to resort to doing it by itself (as accelerators usually have startup overhead, and if not in the CPU, uncoupled speed, needing synchronization), and we don't need that added latency in the kernel, for small things like packets usually are.
@Maple-CircuitАй бұрын
Thanks to both of you, now I know(;
@turtlefrog-tn3ekАй бұрын
its insecure though.
@surtersАй бұрын
@@Maple-Circuit Think the original code, back in the days copied that data 3+ times.
@PixelHamsterАй бұрын
wow, it's clear that you put a lot of effort into this, tyvm for the information rich video :d
@FentFantaАй бұрын
Another gem channel. Congrats on getting onto the algorithm. Subbed.
@smvsilvaАй бұрын
Probably the best video explaining low level kernel stuff on KZbin, thar even non-coders like me could understand everything clearly! Amazing man! Congrats, subscribed! 👏🤝
@csabamihaly8732Ай бұрын
2 minutes in, this is the most useful channel I have ever found
@ImperiumLibertasАй бұрын
Incredible production quality. Subbed!
@FPVogel17 күн бұрын
After waking up I usually start the first video KZbin recommends to me to have some background noise, but this really is a gem, will watch again, thank you!
@danielkemmet2594Ай бұрын
I subbed based on this video. This is really great and I hope you continue to make this kinda stuff
@BigWillieFreestyleАй бұрын
Intel MIPI fix... Finally! This has been the bane of my existence at work recently 😭
@AJ213Probably17 күн бұрын
as a developer I am glad for the mutex lock change. Something like that really is awesome for compatibility
@fronbasalАй бұрын
Insane effort, thanks for the great long-format video
@polskiglizda56392 күн бұрын
Finaly youtube algorithm showing some interesting video. Great work
@Maple-Circuit2 күн бұрын
Thx!
@raenkie19 күн бұрын
god sent this man directly from the algoheavens to inform us about this beautiful place called the kernel. what a gem!
@isaac_sheltonАй бұрын
just an fyi risc-v is pronounced "risk five", and clang is pronounced "klang"
@Maple-CircuitАй бұрын
Yes, my brain died when I said clang.. but thanks for risc-v, I didn't know
@joshxwhoАй бұрын
Genuinely, thanks - I've always said riskv 😂
@nezu_ccАй бұрын
you're right, but imo it sounds way cooler as "risk-vi" and will probably remain like that in my head while reading things.
@kirill906417 күн бұрын
@@Maple-Circuit Do we call С programming language K?
@lewddrip538317 күн бұрын
this content is great, please make more of this!
@williambrasky3891Ай бұрын
This is amazing! So glad I ran across your channel!
@mohammedgoderАй бұрын
The shadow stack is just a way to split your stack into a data stack and a call stack.
@vinylSummerАй бұрын
Wow, a highly technical video that is actually interesting to watch! You're a genius, instantly subscribed
@bertblankenstein373822 күн бұрын
Mutex for mutually exclusive. Meaning that only one process can run or modify something. If two processes try to increment a memory location at the same time, synchronization needs to occur to ensure proper results.
@coyote4440Ай бұрын
34:25 - I really like the developers’ approach - “Let’s do the important thing now, and leave everything else for the future” - that’s why they decided to implement IPv4 first, not IPv6))
@Maple-CircuitАй бұрын
100% accurate, pragmatism is the best policy
@GlozzomАй бұрын
Some more detail on TLB, it is cache that is set aside for holding a virtual page id, and the "translation" to its actual hardware counterpart. I'm sure there are sentient values like if the data is actually in swap or possibly a register, but in general it is a good old fashion look up table. The piece I wanted to add is that it is simply a cache for the virtual memory to hardware translations, and the fact that programs actually deal in virtual memory, and ask the OS for the real stuff, which necessitates things like the TLB for everything not to be terribly slow.
@stephanweinberger28 күн бұрын
Also, TLBs are usually implemented to do the lookup _in_ _hardware_ - not microcode, but a truly parallel implemented in silicon; i.e. you put in a virtual address and the physical address pops out _immediately_ . Hence why the TLB has a very limited size, since it isn't just another (dumb) cache but requires quite a lot of circuitry; e.g. in Zen2 the TLB has 2k entries (i.e. it can hold addresses for just 8MB of memory with the standard page size). Now, if we use the example from the video with 250k pages, it should be clear that this would make the TLB completely useless, as basically any access to that memory region would be a TLB miss, which causes an interrupt, that then needs to be handled by the kernel to put the missing entry from the process's page table into the TLB - so we just turned an immediate lookup into: context switch, execute handler code, lookup some more memory, context switch... which is obviously several orders of magnitude slower.
@uis246Ай бұрын
Commited Linux from prison, lol
@UltimatePerfection19 күн бұрын
I am still waiting for the Kernel 6.66 so I can rip and tear in style.
@k1ngjulien_Ай бұрын
awesome video! would love some timestamps in the comments/description so i can skip around to what i find most interesting pls :)
@olealgoritme677413 күн бұрын
Nice video. Thanks. Would love benchmark comparisons tho. 😇😁
@otocotaraАй бұрын
i dunno how did i subscribe, but im not going to complain
@lithiumwyvern_15 күн бұрын
Good video, though you're off by one at 9:56. The AES-XTS speed boost uses the VAES and VPCLMULQDQ extensions, first used by AMD in Zen 3, not Zen 2. (Intel introduced them in Ice Lake, during which time it was wrongly thought to specifically be a new part of AVX-512.)
@po1nt1776Ай бұрын
Awesome rundown. Subscribed
@radvilardian740Ай бұрын
I can not imagine how informative this video for all if tou kernel developers, that even me as a casual user enjoy watching it to the end. I love linux, I use it for gaming all the time, and i'm so exciting for what's coming next. About that NTSync, idk exactly what it is, but it sounds good for later gaming experience. Great video..
@GeorgeNoiseless8 күн бұрын
Feels kind of crazy that we're getting hacks to improve Wine's performance in games, but it all makes sense -- it's a bigger use case than ever, thanks in no small part to Valve's efforts. And the pipeline from games to regular desktop usage is very real. Heck, Linux VMs running Windows games for streaming services don't feel like a particularly crazy idea any more.
@tonyonceАй бұрын
okay how is this channel so good an why am I seeing it just now?
@middyjohnАй бұрын
I was wondering why the CC said linux konel when I hover my mouse over the thumbnail, so I clicked. Well played sir
@Maple-CircuitАй бұрын
Lol, my accent sells me well even when I'm not trying XD
@kleinesfilmroellchenАй бұрын
7:44 an architecture from 2013 is new, but it may possibly be dying out already. even 64-bit x86 is 20 years old and the various 32-bit architectures are usually over 30 years old
@Maple-CircuitАй бұрын
Well said!
@samconnelly7630Ай бұрын
X32 is not necessarily a 64-bit system faking a 32-bit system. AFAIK it is x86_64, but with 32-bit pointers and long integers (in C). Because the pointers are 32-bit, an x32 program cannot access more then 4 GiB of memory (or was it 3 GiB?). If a program should never use that much memory anyway, then x32 wouldn't hurt.
@Maple-CircuitАй бұрын
True! Thank you for the correction!
@redram4574Ай бұрын
Thank you. Everyone seems to get x32 wrong. Which is sad because I think it is pretty cool for cache performance
@durikke2Ай бұрын
Wine is now an emulator.
@OfficialViperАй бұрын
Great video!
@VEKTOR_87Ай бұрын
amazing presentation , really interesting
@kcalbxofАй бұрын
Please, add timestamps to your videos. Video is an hour long, description is nonexistent... Im not gonna waste my time on 100500 explanations and 1% real info
@WololoWololo2Ай бұрын
Why are you watching Linux videos then?
@luk18716 күн бұрын
Read the changelog then genius. If that's too verbose for you, try the commit messages rofl.
@user-ro1cc8tz6d15 күн бұрын
@@WololoWololo2 yeah its a massive waste of time. Unless you're a bisector or maintainer how is stuff automatically enabling itself is any usefull being acknowledged. Ah right you gotto enable them by hand because loonix is maintained by bunch of hippies who thought of genius ideas like enforcing vsync due to their "philosophy". Although I have to give credit where its due because defaults were garbage way back
@user-ro1cc8tz6d15 күн бұрын
I'm reminded that watching loonix videos are a massive waste of time
@toastyboyeАй бұрын
Uuoh amazing video! Such enthusiasm! Amazing :3
@James-uw4itАй бұрын
Awesome video, thanks
@bloepjeАй бұрын
TLB, translation look aside buffer. Just content addressable memory (cache). Flushing it is fast. It is reloading it that is painful, as you actually have to get the data from memory.
@thomhughes4617Ай бұрын
TLB shootdown is slow (at least on x86), I'm unaware for how it works for ARM but would imagine it to be similar.
@yeshey544325 күн бұрын
You should make this into a searies ahha, nice work
@Maple-Circuit25 күн бұрын
Will do!
@kirill906417 күн бұрын
9:00 I have been reading RISC-V as RISC-FIVE all this time.
@Maple-Circuit16 күн бұрын
I had a few comments telling me that I'm wrong on that, Risc-5 makes a lot of sense too (;
@greyshopleskin2315Ай бұрын
Nice video. Im gonna check more of your videos. It would be nice if you add timestamps to easily skip stuff we dont care about
@asphalt2554Ай бұрын
lol brutal.. but I agree.
@NiffirgkcaJАй бұрын
Oh, thank you for explaining everything!
@Pizzanicv17 күн бұрын
great job. I approve.
@snooks5607Ай бұрын
ntsync isn't going to be functional in 6.10, it's missing patches that'll be in 6.11. 20:30 performance boost is good but guess I'm one of those people who otherwise don't know what you're talking about, existence of ntsync driver isn't going to make porting something to linux any easier. as a dev you can either use wine/proton like before or make a proper port that is still system specific, existence of ntsync driver doesn't change that (in windows the syscall is NtCreateSemaphore() no such thing will be provided by linux kernel, instead there's a char device that wine makes an ioctl call to when NtCreateSemaphore() is called in wine)
@bloepjeАй бұрын
I really hate Hans Reiser for "stepping out of the community" the way he did. In the 2.4 series, reiserfs 3.6 was the best and fastest filesystem that we could get. Due to his "personal project" that made him land in prison, reiserfs 4 didn't get the care it needed and turned out to be unstable crap, like jfs and xfs turned out to be. It took a lot of time before ext4 had the same possibilities as reiser had. And as a side note: though you did not understand everything correctly, it was a nice change for me, to just put up a nice voice that tried to explain what the kernel changes are while I am working. So don't stop with that. It's brought nicely, and you will learn more details in time.
@Maple-CircuitАй бұрын
Thank you for the feedback, I won't stop!
@joshxwhoАй бұрын
Fantastic video, Google really knows my niche eh
@tsiiphsycoiiАй бұрын
MurderFS still the best
@gwydion_maranioАй бұрын
damn, this channel is a good find. Nice vdo
@yayakameАй бұрын
informational, thank you, keep up with it
@rch5395Ай бұрын
Why do people say line-us when it's linus by that logic linux would be line-ux.
@skatingbozoАй бұрын
That's exactly how people in my country pronounce Linux. Drives me crazy. Line ux 😂
@amalirfanАй бұрын
Linus made it, so he gets to call it whatever he wants 😁
@Zmej420BlazeItАй бұрын
that's the common name pronunciation for most other people afaik. I vaguely remember him commenting on adopting the "lin us" pronunciation years and years ago but idk. anything is better than calling Linux "loonucks" haha
@techofebdАй бұрын
Originally it is LeeNux and I would like to interject a moment, it is called Gahnew/ LeeNox or now Gahnooh Plluss LeeNox
@JonDisnardАй бұрын
Using a phonegram, It's probably closer to Lee-Lus, his kennel is Lee-nux.... The ftp server admins that (re)named the kennel way back in the 1999s used the name Linux arbitrarily as a contraction of whatever Linus had named it... I forget the original name.
@elizabethtwo1931Ай бұрын
Duplicating the performances of arm so great
@matthieu8457Ай бұрын
Very well explained!
@user-ro1cc8tz6d15 күн бұрын
can you add timestamps?
@jamesrivettcarnacАй бұрын
Nfsdctl looks cool
@luizhenriqueamaralcosta629Ай бұрын
Amazing info
@WololoWololo2Ай бұрын
Hi i like Linux i hope Linux grow
@nikhils758317 күн бұрын
Subbed, great stuuf.
@p0n-pompfАй бұрын
THE GOATTT
@thenameislukАй бұрын
and this is great content
@nyxierealАй бұрын
Yay, more free stuff!
@nightfall2863Ай бұрын
I wonder if shadow stacking could be used to help anti cheats
@theforeskinsnatcher373Ай бұрын
Great video but can you make it a little more techincally and less dumbed down next time? For example when you talked about the TLB I think it would have been much better to just say that it caches virtual addresses instead of being so vague. I think understanding the absolute basics like virtual memory should be a prerequisite for this kind of video
@rssszz7208Ай бұрын
Time stamp would be great
@fishsayhelo9872Ай бұрын
very gud 👍
@techofebdАй бұрын
Gentoo MasterRace BTW!
@MisakaMikotoDesu26 күн бұрын
I installed this and went from 12 threads to 8 threads. I'm not sure what config caused it
@couldntfindafreename10 күн бұрын
09:00 When will the kernel have Zig support? I personally think Zig would have been a better fit for the kernel than Rust.
@kolz4ever198010 күн бұрын
Soon as you add it. the community can add stuff so go on.. 😆
@xymaryai8283Ай бұрын
i'm asking before i watch the video so i remember, is drm kernel panic implemented?
@Maple-CircuitАй бұрын
Lol
@chaemelionАй бұрын
I'm admittedly unfamiliar with the kernel under the hood, but zero-copy operations and io_uring sound mutually exclusive. Aren't ring buffers handled by the kernel and by extension the CPU? How can using them constitute a zero-copy CPU-less operation? Am I missing something?
@Maple-CircuitАй бұрын
Ring buffers contain the pointer to the data (the buffer), not the data itself (;
@konradcomrade4845Ай бұрын
anybody knows about John L. Gustafson's numbers format: Posits, or Unums, better than Reals!! Could Linux do it, or does it need advanced Hardware? Can do better than 64bit Floats with only 32bit_width Unums/Posits. Symetrical mapping from 0 to infinite. Needs only one: Not_a_Num_exception!
@Maple-CircuitАй бұрын
I agree that Posits and Unoms give more precision for less bit, but they are exponentially harder to compute thus useless in the linux kernel. Thoses implementations have their place in specialized software (;
@NOOBgamer-dn9zl22 күн бұрын
Timestamp would be helpful
@minma02262Ай бұрын
Noice!
@devanarayanababu19965 күн бұрын
algo comment
@OfficialViperАй бұрын
Variables in Rust are immutable by default. Would it be possible for the rust compiler to use mseal on Linux to seal those variables? The kernel could prevent anyone modify the immutable (and thus sealed) variables.
@Maple-CircuitАй бұрын
i don't think they apply immutability at the same level... how your compiler is supposed to use data and how you os will manage its memory are probably 2 worlds away from each other. i have no idea how both work under the hood soooo who i'm i to speak on it (;
@ChandrashekarCNАй бұрын
💖💖💖💖
@CamaradaArdiАй бұрын
You're the first person I hear pronouncing clang as c-lang
@Maple-CircuitАй бұрын
@CamaradaArdi lol french canadian brain strikes again (; I normally say clang but ... why not XD
@destiny_02Ай бұрын
c-lang makes more sense than clang
@LavadawgАй бұрын
When i say clang, i say klang klang like im tapping a pipe
@ron5948Ай бұрын
Prison, ReiserFS all over again hahahahkek3krke😢😮😅😅😊😊😊😂 0:46
@rogo7330Ай бұрын
How NTSYNC faster than userspace? If mutex stays in userspace, you don't need to switch context to kernelspace all the time. As I've heard, switching to kernel context is slow.
@SkigBigglerАй бұрын
I don’t know the details, but it’s likely that WINE has to call into kernel space already to emulate NT mutexes. It still needs to synchronise threads, but without NT style synchronisation primitives it would have had to wrap linuxes own ones in user space code to correctly implement NTs behaviour, likely resulting in multiple context switches for an action that should only take one
@ron5948Ай бұрын
How does cfi deal with ebpf tracing well probes? Arent these functions not in thr jump table maybe?!? 6:56
@Maple-CircuitАй бұрын
Good question, but I couldn't answer. CFI is like magic to me (;
@ItsCOMMANDer_24 күн бұрын
how would you go about porting a linux 5.11 code for a pecific device (open source and arm 32) to kernel 6.10? i've tried it but after dealing with compiler errors (by disabling affected modules, the problems were mostly spinlock -> raw_spinlock and spi_master -> spi_controller stuff) it compiles but doesnt boot. The device is a 3ds btw
@Maple-Circuit23 күн бұрын
I have the feeling the 3ds probably need some non-standard module... but I would try compiling and replacing the 5.11 by another 5.11 that you compiled. Once you know the right option to make it work, you can work your way up the versions.
@ItsCOMMANDer_23 күн бұрын
@@Maple-Circuit i dont tbink you understand this/i sucked at explaining. Somone made a functional 3ds port of 5.11,and its open source with all driver and stuff, but i cant upgrade it because after resolbing some compiler errors it just blackscreens and also dont have a way if debugging it (yet)
@Maple-Circuit23 күн бұрын
@@ItsCOMMANDer_ maybe i still don't understand but the reason for compiling with the original version is to see if the commands and config you are using are good. You are dealing with a 3ds which is both really cool and insane at the same time (; being that i have never even compile the kernel for an arm64 device, i'm probably less knowledgeable than you on this (;
@elijahjflowersАй бұрын
timestamps?
@cheako91155Ай бұрын
29:46 I've worked on a few rust projects and I can think of one example, but it's a general issue that rust development is full of cases where missing features in the rust compiler lead to project""s"" needing 10,000 lines of code. For example async corutines... Rust has corutines, functions that return more than once, and having a stream of data generated by an async block happens all the time and the number of lines the planet has to deal with because this feature missing is massive. I object to the Linux Kernel team getting priority!!! It may seem like they are more important, but that's fallacious. How popular a project is has no effect on how crucial it is for support from the rust compiler team.
@Problematist17 күн бұрын
Rust is only really used on a case by case basis. Mostly it's used to fix memory safety issues with C bindings or for abandoned projects.