No really, how does Linux run executables?

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ก.ย. 2024

ความคิดเห็น • 341

  • @abstractobject5337
    @abstractobject5337 11 หลายเดือนก่อน +219

    Seriously, this type of explanation and presentation is the type of education we all need for Linux. There is so much to learn (If you want to program C against the kernel or system).

    • @MeinAliasIstCool
      @MeinAliasIstCool 11 หลายเดือนก่อน

      I've had some super insightful moments regarding linux kernel development while reading "Hands-On System Programming with C++" by Rian Quinn. Might be worth a look

    • @godnyx117
      @godnyx117 11 หลายเดือนก่อน +3

      There is PLENTY of information out there. Also, the lower level you got, the less info you're going to get naturally as fewer people know and care about these stuff, hence less will teach and be able to help with them.

    • @yaroslavpanych2067
      @yaroslavpanych2067 10 หลายเดือนก่อน

      No, you don't need this kind of explanation and presentation. Well, unless you are realistically mentally challenged. This was really not much information.

    • @rileyfletch
      @rileyfletch 10 หลายเดือนก่อน

      Pot kettle black @@yaroslavpanych2067

  • @mitchelvalentino1569
    @mitchelvalentino1569 11 หลายเดือนก่อน +364

    Excellent video. Subbed. I’ve been hacking on Linux since the ‘90s, and this is the clearest low-level explanation of Linux executables I’ve ever seen. A follow-up video would be amazing! Keep up the great content. It’s _very_ much appreciated!

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน +31

      Thank you! Appreciate the feedback from a long term linux hacker!

    • @rayforever
      @rayforever 11 หลายเดือนก่อน +3

      Hacking you said?

    • @rian0xFFF
      @rian0xFFF 11 หลายเดือนก่อน +1

      Liar

    • @mitchelvalentino1569
      @mitchelvalentino1569 11 หลายเดือนก่อน +11

      @@rian0xFFF you got me. I should have said GNU/Linux _and_ the *BSD’s.

    • @mitchelvalentino1569
      @mitchelvalentino1569 11 หลายเดือนก่อน +1

      @@rayforever yes

  • @iAmTheWagon
    @iAmTheWagon 11 หลายเดือนก่อน +12

    There’s no way ELF doesn’t mean there are tiny little elves in the computer making these things work with magic.

  • @mmzett
    @mmzett 11 หลายเดือนก่อน +54

    Hey, this video naturally got my interest, im currently rewriting my elf loader that is used in one of my projects, and this video is overall pretty correct, the only thing that i think it would've been interesting to include is the resulting memory layout, that would be the mappings of the shared libraries and the main executable, with some real examples, like the command "cat /proc/self/maps", that shows the mappings of the program "cat" being executed, it shows the actual main executable mappings, the heap, libc.so.6, the linker ld-linux-x86-64.so.2, the stack, etc...

  • @D0Samp
    @D0Samp 11 หลายเดือนก่อน +125

    0:30 While there is a family of POSIX C functions, only execve is (also) a syscall. The rest are convenience functions that can look up a full path name for a program name using the PATH variable (those with a "p" in their name), accept program parameters as function arguments rather than an array of strings (those with an "l" rather than "v" as in vector), or inherit the environment variables of the calling process (those lacking the "e" at the end).

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 11 หลายเดือนก่อน +3

      I think execve(2) is just a special case of execveat(2).

    • @D0Samp
      @D0Samp 11 หลายเดือนก่อน +2

      @@lawrencedoliveiro9104 It is in the kernel, but execveat is a much later addition to the kernel (3.19+) than the other -at functions, and is usually only used in special cases where you want to execute relative to a fixed directory or from a special O_PATH file descriptor. The latter is also not used by fexecve(3), which is documented to use the special /proc path representing that file descriptor on Linux, but *is* a syscall on other systems.

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 11 หลายเดือนก่อน +1

      @@D0Samp Here’s a note from the fexecve man page:
      On Linux with glibc versions 2.26 and earlier, fexecve() is implemented using the proc(5) filesys‐ tem, so /proc needs to be mounted and available at the time of the call. Since glibc 2.27, if the underlying kernel supports the execveat(2) system call, then fexecve() is implemented using that system call, with the benefit that /proc does not need to be mounted.

    • @D0Samp
      @D0Samp 11 หลายเดือนก่อน +1

      @@lawrencedoliveiro9104 You're right. It makes sense to use more efficient syscalls after all. Also doesn't change functionality, for example the inability to execute shell scripts from a close-on-exec file descriptor, because it will be closed before the shell can read it (then again, this seems entirely impossible e.g. with fexecve(2) on FreeBSD).

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 11 หลายเดือนก่อน

      @@gregorymorse8423 If you want to know how this stuff works at the assembly level, you are free to go look at the actual source code, download it, play with it, even make your own video about it.

  • @aarondiaz_14
    @aarondiaz_14 11 หลายเดือนก่อน +22

    As an aspiring Linux Kernel Developer, I really appreciated this video :)

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน +2

      Glad you liked it!

  • @6Senor
    @6Senor 11 หลายเดือนก่อน +63

    This editing is satisfying to watch

    • @obhwg
      @obhwg 11 หลายเดือนก่อน +7

      It looks like Powerpoint with the morph transitions. Incredibly powerful stuff

    • @en7998
      @en7998 11 หลายเดือนก่อน

      Anyone know how they are done? Is it like the guy that writes his videos in rust?

    • @aneesh1701
      @aneesh1701 11 หลายเดือนก่อน +1

      ​@@en7998the rust guy uses obsidian paired with a slides extension

    • @fgjsgffdjsdjgfsd3112
      @fgjsgffdjsdjgfsd3112 11 หลายเดือนก่อน

      Who's the rust guy?

    • @Multihuntr0
      @Multihuntr0 11 หลายเดือนก่อน

      @@en7998 It looks like Manim to me - the python library that 3Blue1Brown made for their videos. But I could be wrong.

  • @coolcax99
    @coolcax99 11 หลายเดือนก่อน +4

    Great video. There’s actually one more step the Linux kernel takes before loading the elf file. It opens the file and checks if it contains the shebang character (#!) at the start. if so, it interprets the file rather than executing it using the program specified in the shebang (e.g. #! /bin/bash)

    • @ZeroPlayerGame
      @ZeroPlayerGame 10 หลายเดือนก่อน

      Linux also supports other interpreters for specific file types now, which is how e.g. WINE and userspace QEMU work!

  • @SuperKhezar
    @SuperKhezar 11 หลายเดือนก่อน +31

    This is such a good explanation of what goes down at different levels of complexity. Loved the animations and presentation. You get sub sir :)

  • @robonator2945
    @robonator2945 11 หลายเดือนก่อน +4

    I swear it feels like over the past few months there havee just been so many insanely good videos from small channels. Have this videos always been here and youtube is just now recommending them, or is there just a surge of new high quality content for some reason?

    • @paultapping9510
      @paultapping9510 11 หลายเดือนก่อน +1

      I got inundated with small channels (like three figure subs small) relatively recently, so I do think yt rolled out an algorithm tweak that gives newer creators a bit of a boost.

    • @atlantic_love
      @atlantic_love 11 หลายเดือนก่อน +1

      Lol another bot 😅

  • @Gamester-vy1qp
    @Gamester-vy1qp 11 หลายเดือนก่อน +7

    I never usually comment but I think this right is where it is an obligation. Please please please do more in depths like this. With the clarity and succinctness that you have explained and shown us how this system works is insanely good. I will watch every single video you pump out that explains about how Linux really works.

    • @atlantic_love
      @atlantic_love 11 หลายเดือนก่อน +1

      So you sometimes comment?

  • @Whocares512
    @Whocares512 11 หลายเดือนก่อน +10

    Interesting, I have been super interested in how computers work for a while and this taught me a little about Linux executables.

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน +1

      Glad to hear it, if you want more detail on the ELF format I left the spec in the description 👍🏻

  • @whamer100
    @whamer100 11 หลายเดือนก่อน +23

    I really like your presentation and animation, if you do make more videos related to this topic id love to watch them.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 11 หลายเดือนก่อน +4

    5:53 Those segments _are_ the content of the executable. ELF has the concepts of “sections” versus “segments”; the “sections” are the divisions of the file content, while the “segments” define the in-memory layout.

  • @ZenonLite
    @ZenonLite 11 หลายเดือนก่อน +1

    I’d love another video about the topic! It’s very interesting

  • @exosupesu
    @exosupesu 11 หลายเดือนก่อน +2

    635th subscriber, subscribed afterjust 30 seconds, great channel, it will blow up

  • @Dekharen
    @Dekharen 11 หลายเดือนก่อน +10

    The TH-cam algorithm is doing it's thing, and it's great :)
    While the complexity of the explanation is kept low, I think the visuals and the fact that you picked the subject well and stripped it out of the more complex ideas makes it more digest. Properly mentioning what you're NOT talking about and making it easy for the viewer to differentiate between what's the subject and what isn't is a big part of actually explaining something and not just circle jerking an idea :P
    It's easier to expand on ideas (E.G, looking at another video or docs with the knowledge acquired) than it is to suddenly digest a dump of code and ideas.
    Also, the format could be a little bit longer but not too much, because being short enough to remember the beginning of the video by the end is very useful for such concepts. Otherwise, it just feels like consuming content and taking nothing out of it :)
    Liked the video a lot !

    • @atlantic_love
      @atlantic_love 11 หลายเดือนก่อน +1

      I don't think you know what the algorithm actually is.

    • @Dekharen
      @Dekharen 11 หลายเดือนก่อน +1

      @@atlantic_love it recommended me a random video from an unknown channel about Linux low level exec calls. I have never watched a video on Linux systems nor have I cared about that kind of content before. So yeah, it did it's thing by recommending a good, fast growing video that is only loosely related to the content I usually watch. Go be negative somewhere else.

    • @atlantic_love
      @atlantic_love 11 หลายเดือนก่อน +1

      @@Dekharen It's completely random recommendations, and if you like something out of those random things, than it will recommend more of those things. What this video is about has nothing to do with the conversation. It's pretty simple, actually. No real "algorithm" in the sense of it catoring to you specifically. Someone telling you that you don't know what you're talking about isn't them "being negative". Go victimize somewhere else.

  • @patrykx4577
    @patrykx4577 11 หลายเดือนก่อน +1

    as a devops with about 9 YOE it was very good video. I was always curious how its work. Subbed

  • @JamesStocks
    @JamesStocks 11 หลายเดือนก่อน

    Videos like this are the sort of content that (in hindsight) I am stunned my university never explained.

  • @ryansamarakoon8268
    @ryansamarakoon8268 11 หลายเดือนก่อน +2

    This is so good! I'm looking forward to a video talking about dynamic linking since that's always been a mystery (basically magic) to me

  • @holymoly54775
    @holymoly54775 11 หลายเดือนก่อน +1

    Thank you for such a thorough explanation. I would love to see more videos about systems programming in Linux done in your concise and accessible style!

  • @antoniocs8873
    @antoniocs8873 11 หลายเดือนก่อน +3

    Very interesting video and also great work with all the animations. All of them were quite smooth and pleasant.

  • @sameerpadalia8289
    @sameerpadalia8289 11 หลายเดือนก่อน +1

    This is actually really cool. I'd love to see the very complex version of the same : ) It takes a lot of understanding and patience to actually come up with such beautiful explanation. Thanks !

  • @glitchy_weasel
    @glitchy_weasel 11 หลายเดือนก่อน +2

    Very interesting video! For those interested in learning a bit more, there's a series of articles by LWN titled "How programs get run" that go over the exec family of syscalls, and its follow-up "How programs get run: ELF binaries".

  • @willofirony
    @willofirony 11 หลายเดือนก่อน +1

    Oh for the days when an executable file only needed to have a header with an entry point followed by a series of blocks of data, each with a header of the address in memory the data is to be placed and a byte for the length of the block. Of course, that was before shared libraries and link on load loaders. Thank you for the clarity of your presentation. Do consider a follow up video. I am sure the animation was a lot of work but, trust me, it was worth it.

  • @antenna8836
    @antenna8836 11 หลายเดือนก่อน

    I wish I was learning this in class right now, I'd love to see the more complex explanation too! The moderate explanation makes enough sense and provides enough detail for it to poke the computer science bug in my brain and get it to say "I want more"

  • @drunksaytr3630
    @drunksaytr3630 11 หลายเดือนก่อน +1

    Really loved this explanation! I understood how to get an executable and how code execution works at an assembly level, but never thought to wonder the in-between steps. I'm looking forward to more videos like this! Keep up the great work :)

  • @taneliharkonen2463
    @taneliharkonen2463 11 หลายเดือนก่อน +1

    Oh this was interesting! I am studying CS and we went through the basic workings of a computer and it was interesting, but since it was just general ideas found on computers in general, the idea was left floating in abstract space. Would love to see explained in video form how these things go about in real concrete linux system! More of this please! :D

  • @citizenphnix
    @citizenphnix 11 หลายเดือนก่อน +1

    Very cool. I kind of had a sense of how this worked before, but seeing this really connected a lot of dots. Super clear and informative video.

  • @askiiart
    @askiiart 11 หลายเดือนก่อน

    I've got a little anecdote about this:
    I was trying to make a from-scratch, super minimal Docker image for a Python program, using pyinstaller if I remember correctly, but I kept getting a "file not found" error. But the file obviously existed. I copied it into the image, and when I exported a container running that images to a .tar file, it still existed.
    It turned out that my from-scratch image was missing the interpreter (p_type/PT_INTERP). That took me hours to figure out, even with the help of 2 other people.
    P.S. great video! I'd love to see a sequel that goes more in-depth.

  • @hlcyn7
    @hlcyn7 11 หลายเดือนก่อน +1

    Dropped a sub! Clean content. You were in my recommended so hopefully the algorithm likes ya :D

  • @Cyber_Chriis
    @Cyber_Chriis 10 หลายเดือนก่อน

    Please give us more of that quality Linux content!

  • @sterisharms1468
    @sterisharms1468 11 หลายเดือนก่อน +1

    this was really clear, it made more sense than the other tutorials id read

  • @hoohasharkbait7893
    @hoohasharkbait7893 11 หลายเดือนก่อน

    Great video! My only suggestion would be to make the code / technical parts in a mono space font. Nitpicky because everything else was great. Keep it up!

  • @Daniel-gj9qh
    @Daniel-gj9qh 11 หลายเดือนก่อน

    I have been Studying Computer science. There are two 6LP Modules about what you talk about in this one vid (sure Modules are a bit more about general cases and what a Programm or a thread is) - you explained to me what I couldn't understand after failing one of the courses twice now. Incredible way to represent infomration.
    You might want to add as anotations what is a program header entry is

  • @binomis3468
    @binomis3468 11 หลายเดือนก่อน

    Thanks for giving me a refresher on this subject! One of my uni courses had a very fun segment on this topic!

  • @ThomaNeo
    @ThomaNeo 11 หลายเดือนก่อน

    Really happy to see this explanation video of yours gain much more attentions, like your quote in early video, it demonstrate non-zero day motto and the quote "success story comes after a long way". Some system call explaination and system-C library usage and their interfaces to more user-friendly language like python and lua would be interesting

  • @brickviking667
    @brickviking667 11 หลายเดือนก่อน

    This is a fantastic introduction to the concept of simply loading some Linux code into memory. I'd love to see what the interpreter does within this context. I'd also be interested in the kernel side of this for how that side of it is managed in a sane manner, so that the kernel can run the code without the machine falling over.
    Thanks for this video. I'm now subbed too.

  • @zyugyzarc
    @zyugyzarc 11 หลายเดือนก่อน

    with this level of quality i thought you at least had 1M subs - keep up the good work!

  • @jhonatanwen
    @jhonatanwen 11 หลายเดือนก่อน

    THIS is quality content, keep it up! Hugs from Brazil here. 🇧🇷 :D

  • @Toph_r
    @Toph_r 11 หลายเดือนก่อน

    Fantastic explanation, I'll be forwarding that to some buddies. I have recently started using NixOS again, and figured this was surprisingly relevant, got to the end excited for you to talk about the interpreter and dynamically linking, and then got cliff hung. I'm subscribing, eagerly awaiting a follow up.

  • @hermand
    @hermand 11 หลายเดือนก่อน

    I'm a Windows guy, with a bit of reverse engineering knowledge, trying to get into Linux and this is exactly the kind of content and I want - thank you

  • @Amldihir
    @Amldihir 11 หลายเดือนก่อน

    Great video: editing, visualization and so on. Once in lifetime youtube recommended something really good

  • @DocSineBell
    @DocSineBell 11 หลายเดือนก่อน +5

    Fantastic video, but please try to smooth the volcal fry a bit in the future. It's going to be easier for some people to grasp words.

  • @primalotter4790
    @primalotter4790 11 หลายเดือนก่อน

    Good job algorithm. Banger video, well done Mr Pradels.

  • @i93sme
    @i93sme 11 หลายเดือนก่อน

    Subs are amazing. CIS calls made my day 😂

  • @bearlin6136
    @bearlin6136 11 หลายเดือนก่อน

    Another kind of executables is "shell script", and there're two ways to run it at least. The simplest way, the shell calls into kernel, then kernel call the "shebang" of the script to interpret the script, usually seen in small system like busybox. The second way is a little complicated, the shell do the interpreting job by its own way first, then it might call system call later, this depends on which shell is running to run the executable.

  • @markojojic6223
    @markojojic6223 11 หลายเดือนก่อน

    I've thinking about that exact thing and for me the thumbnail is just a very, very simple and fully self-explanatory overview, in theory.

    • @markojojic6223
      @markojojic6223 11 หลายเดือนก่อน

      Just to mention, some late 20th century mathematics as well, but at best very partially.

  • @mournful_m
    @mournful_m 11 หลายเดือนก่อน +2

    I like the video: the content, the structure and the way you tell it very satisfying.
    Also, I can see you just on the beginning of your TH-cam fame journey, so I need to say some critic:
    Your baritone voice needs a better microphone or its tuning. :)
    Maybe it will be fine just to add some simple music at the background.
    Thanks!

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน +1

      Hey really appreciate the feedback! I'm looking into solutions to fix it, do you have any microphone suggestions that you like?

    • @robertsimplerino
      @robertsimplerino 11 หลายเดือนก่อน +1

      it's not baritone voice, it's vocal fry

    • @mellowgeekstudio
      @mellowgeekstudio 11 หลายเดือนก่อน +1

      @@robertsimplerino Exacty! That kills the video for me. I barely managed to get through it with 2x speed. Unfortunately it's a cultural thing so I don't think there is much that can be done to fix it for old farts who can't stand it, like myself.

  • @Nikoline_The_Great
    @Nikoline_The_Great 11 หลายเดือนก่อน +1

    This is great! Please explain the linker. Your presebtation style ie nice and approachable and I would love more!

  • @designernasser
    @designernasser 11 หลายเดือนก่อน +2

    Great video! I'm hoping for more to come 👍. Just a little feedback, and I hope you don't get me wrong, if you can lessen that vocal fry, I think that would be better.

  • @sirtoki
    @sirtoki 11 หลายเดือนก่อน

    I just got this recommended to me, and it's really well done. Thanks for making it

  • @Johnny-tw5pr
    @Johnny-tw5pr 11 หลายเดือนก่อน

    As an electrical and computer engineering student, this video was extremely useful

  • @monad_tcp
    @monad_tcp 11 หลายเดือนก่อน +1

    I remember once I had fun writing an elf loader to load a linux .so binary into windows as DLL and use it.
    It was some sort of blob that didn't do any actual syscall, it was merely for cryptography, it only used CPU instructions, so I was able to load it and run the code on Windows.
    I did have to provide basics of the interpreter to patch up code as it was not PIC. But well, that was the fun part.

  • @blacklistnr1
    @blacklistnr1 11 หลายเดือนก่อน

    Yes, this guy thought it was interesting and subscribed for loading the interpreter. I'd also like to see other common use cases of ELF explained

  • @AK-vx4dy
    @AK-vx4dy 11 หลายเดือนก่อน +1

    Excellent job! You clearly have educational talent!
    Nice clear and wisely parted. 🤯

  • @user-be7ne8cs3q
    @user-be7ne8cs3q 11 หลายเดือนก่อน

    I like your animation style a lot. I'm looking forward to seeing more videos from ya.

  • @Meowfy
    @Meowfy 11 หลายเดือนก่อน

    This video is super well made, subbing for more Linux content like this :) I can't believe you only have 3k subs with this kind of quality

  • @spxnr
    @spxnr 8 หลายเดือนก่อน

    Awesome video and I just subscribed!
    (Some feedback is that the transitions where letters scattered or rearranged was annoying. It works when expanding an acronym but otherwise it looks like dyslexia)

  • @theuniverse2268
    @theuniverse2268 11 หลายเดือนก่อน

    Sir please, start producing these videos non stop for the next 5 years thank you!

  • @speedymemes8127
    @speedymemes8127 11 หลายเดือนก่อน

    This is fantastic!! People complaining about your voice need to relax.

  • @Deramida
    @Deramida 11 หลายเดือนก่อน

    Good video
    I'd consider adding more about what is exec and what's happening there (fork syscall and its consequences)

  • @freax13
    @freax13 11 หลายเดือนก่อน +1

    Tiny correction to an otherwise awesome video: For a dynamic library the elf type would be ET_DYN not ET_EXEC.

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน

      Good catch, thanks!

  • @atljBoss
    @atljBoss 11 หลายเดือนก่อน

    Awesome video, can't wait for the interpereter.

  • @rmdn
    @rmdn 11 หลายเดือนก่อน

    I'm a simple man. Once I find any channel using manim, I subscribe ❤

  • @sellicott
    @sellicott 11 หลายเดือนก่อน +6

    Very interesting and well presented. If I may ask, what software are you using to generate the animations?

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน +7

      Powerpoint, shh don't tell anyone its a secret 😉

    • @sellicott
      @sellicott 11 หลายเดือนก่อน

      ​@@jacobpradels Impressive. How are you doing the code formatting? I've always had a hard time with that in Word and Powerpoint.

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน +3

      @@sellicott Some parts I do manually and that just takes some time, but occasionally I've found I can just copy straight from VSCode and the highlighting is preserved.

  • @park2348190
    @park2348190 10 หลายเดือนก่อน

    it's a lot harder than i thought. great video!

  • @SloppyPuppy
    @SloppyPuppy 11 หลายเดือนก่อน

    Great video, I'd love to see more!

  • @alexandershein4657
    @alexandershein4657 11 หลายเดือนก่อน

    Thanks for for the great material presentation. Very concise and understandable explanation of quite complex stuff.

  • @judgegroovyman
    @judgegroovyman 11 หลายเดือนก่อน

    Thank you for this clear explanation.
    P.S. Your voice is amazing.

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน

      Thank you for your kind words :)

  • @mairswartz
    @mairswartz 11 หลายเดือนก่อน

    Very clean and clear. Love it

  • @blueboy4625
    @blueboy4625 11 หลายเดือนก่อน +4

    Keep this videos up and you will become something. Doesn't matter about your upload schedule or anything else, you will become something.

  • @higajooj
    @higajooj 11 หลายเดือนก่อน

    Bro, great video and great channel!! Just randomly found you, but your content is amazing!

  • @deusexmaximum8930
    @deusexmaximum8930 11 หลายเดือนก่อน +1

    God I want to switch back to Linux so bad, but I bought an ROG Flow Z13 and I didn't realize certain systems don't run well with Linux. I tried installing Fedora but it was super laggy. I probably just need to edit some settings...

  • @LarryGarfieldCrell
    @LarryGarfieldCrell 11 หลายเดือนก่อน +1

    I'm down for a part 2.

  • @themannyzaur
    @themannyzaur 11 หลายเดือนก่อน

    I thought I'd be bored but I want you to explain forever

  • @TheGrimravager
    @TheGrimravager 11 หลายเดือนก่อน

    This is amazing, thank you so much for this explanation

  • @syriangamer89
    @syriangamer89 11 หลายเดือนก่อน

    I subscribed. Hope to see more of this type of content

  • @ahmedrehan6220
    @ahmedrehan6220 11 หลายเดือนก่อน

    Excellent Video. This Channel deserves more subscirbers

  • @its_the_yogi
    @its_the_yogi 7 หลายเดือนก่อน

    Bro you're the best 🫶 This is the best video by far that I could find to understand about executables.

  • @felipedejesuscorrealondono9426
    @felipedejesuscorrealondono9426 11 หลายเดือนก่อน

    Un principiante por aqui agradeciendo mucho este video. Muy escrarecedor

  • @swarnadeepsaha7686
    @swarnadeepsaha7686 11 หลายเดือนก่อน

    Beautifully Explained

  • @ducksies
    @ducksies 11 หลายเดือนก่อน

    Excellent video. It would be great if you could make a video series with things like this, I'd love to share them with my students.

    • @ducksies
      @ducksies 11 หลายเดือนก่อน

      @ncurses.h what's wrong with having an anime pfp?

  • @nullify.
    @nullify. 11 หลายเดือนก่อน

    Fun Fact: You can disable running of scripts (Specifically starting with #! on line 1) in "make menuconfig" menu of Linux when your trying to compile the kernel.

  • @puddlejumper3259
    @puddlejumper3259 11 หลายเดือนก่อน

    I love the text transistions

  • @godnyx117
    @godnyx117 11 หลายเดือนก่อน

    There is no "exec" system call family. The system calls are called "execve" and "exceveat". All the other ones are libc functions and not system calls. Great video!

  • @chyldstudios
    @chyldstudios 11 หลายเดือนก่อน +1

    Very cool. I would watch one where you went into more detail.

  • @peasant12345
    @peasant12345 10 หลายเดือนก่อน

    thanks. Cannot wait to see you next time! interpreter interpreter interpreter

  • @peruibeloko
    @peruibeloko 11 หลายเดือนก่อน +3

    Amazing content! But if I were to give some constructive criticism to make it even better, I'd suggest to try and reduce your vocal fry during recording. I watched it till the end and loved the content, but the vocal fry kinda put me off 😅

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน

      Noted! Working to improve that

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน

      And glad to hear you enjoyed aside from that!

  • @TheD3adlysin
    @TheD3adlysin 11 หลายเดือนก่อน

    This video is good. Make more of these.

  • @kcmichaelm
    @kcmichaelm 11 หลายเดือนก่อน

    Very nice video, keep up the great work!

  • @AlleBalle54
    @AlleBalle54 11 หลายเดือนก่อน

    very well explained, thank you and great work

  • @OtesOtesOtes
    @OtesOtesOtes 11 หลายเดือนก่อน

    Feel better soon

  • @no-one6790
    @no-one6790 11 หลายเดือนก่อน

    This is 3b1b tier editing an explanation. Awesome stuff 💯💯💯

  • @N4w4k
    @N4w4k 11 หลายเดือนก่อน

    Nice introductory video, but I wouldn't have chosen 'exec' functions as examples, because if you indeed later want to explain what happens in the kernel, it'll be more complex. I would have chosen 'posix_spawn' which is simpler in the kernel.
    That's because 'exec' functions replace the current executable with the new one. (If you put a printf after the exec, it won't be displayed), meaning that before loading the new executable, you have to destroy the previous one, unmap its memory, close its FD_CLOEXEC file-descriptors etc. Besides, since exec replaces the current program, it's usually used with a fork system call beforehand so that you can still have your code run after the exec, and optionnally wait for the forked/exec'ed process to end, and use its status. And now you have to explain how fork works, how it duplicates the memory map, the file_descriptors etc.

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 11 หลายเดือนก่อน

      posix_spawn() is listed in chapter 3 of the man pages, not chapter 2. That means it’s just a C-library wrapper around lower-level functionality.
      execve()/execveat() would indeed be the lowest layers of functionality that the kernel exposes to userland.

  • @meercat1880
    @meercat1880 11 หลายเดือนก่อน

    “ive been thinking about executables a lot recently” is so strangely relatable

  • @eliminmax
    @eliminmax 11 หลายเดือนก่อน

    Wish this video was out when I was trying to make my own implementations of the clear command for different architecturea in a hex editor, would have saved me a lot of time early on in understanding what I was doing.

  • @jirafey_
    @jirafey_ 11 หลายเดือนก่อน

    you've earned a sub in 37 seconds! I am in 2nd year of Computer Science I was having a lot of fun with Arch over summer break.
    -Also sorry to point this out but your voice is quite cracky, like you have a very dry throat, I never watched any videos if there are, so I have to stress this so you will have this in mind (if it is something you can fix).-
    Also i can hear that mic audio is starting low then to higher volume, seems like a mic issue or you dont speak to the mic at the semi-constant distance 1:20-1:38

    • @jacobpradels
      @jacobpradels  11 หลายเดือนก่อน

      Thank you! Working on the mic issues

  • @pratikmodak5215
    @pratikmodak5215 11 หลายเดือนก่อน +1

    You Sir, have made me a fan 😊

  • @codedsprit
    @codedsprit 10 หลายเดือนก่อน

    Nicely explained. Appreciated ❤