How does an OS boot? //Source Dive// 001

Sdílet
Vložit
  • čas přidán 8. 09. 2023
  • In this installment of //Source Dive//, we're learning about the xv6 Operating System; Specifically the low-level boot code that gets the CPU in the correct state to run the OS!
    =[ 🔗 Links 🔗 ]=
    🐋 RISC-V Docker Image: github.com/francisrstokes/rv-...
    🎥 Series Playlist:
    🗣 Discord: / discord
    ⭐️ Patreon: / lowleveljavascript
    💻 Github Repo: github.com/mit-pdos/xv6-riscv

Komentáře • 444

  • @vishnurajendran3574
    @vishnurajendran3574 Před 7 měsíci +109

    The CZcams algorithm just landed me into a gold mine, this is pure computer science heaven ❤

  • @MichaelYoussry
    @MichaelYoussry Před 8 měsíci +369

    It's very difficult to find such amazing detailed videos elsewhere. Please continue making them!

    • @Turjak_art
      @Turjak_art Před 8 měsíci +14

      and it's even more surprising that YT recommend it. pls continue

    • @vlad7838
      @vlad7838 Před 8 měsíci +3

      totally agree!

    • @CloudCoderChap
      @CloudCoderChap Před 8 měsíci +3

      @@Turjak_arthow so? It’s got 58k views in 12 days. Sure it’s not millions but how many of us do you think there are that are interested in watching someone review code. Not many I imagaine

    • @Turjak_art
      @Turjak_art Před 8 měsíci

      ​@@CloudCoderChapI learn more about code review than reading any other documentation.Lately I feel ike YT is trying to keep us dumb with their recommendations...

    • @CloudCoderChap
      @CloudCoderChap Před 8 měsíci

      @@Turjak_art I think it depends on what else you watch. Like if you watch one random video then it messes up your feed and you just see less educational stuff. I find if you click the three dots and not interested or don’t recommend then it helps. I always forget about the subscriptions list which if you curate then you will only see stuff you want.

  • @amanlohia6399
    @amanlohia6399 Před 8 měsíci +109

    man this is just absolute gold. To find videos that focus on the right details and with such clarity and simplicity is amazing.

  • @skilz8098
    @skilz8098 Před 8 měsíci +89

    The step by step walkthrough explanation of the source code of how an operating system's kernel is bootstrapped from asm to C systems level code through showing how the compiler, assembler, linker, etc. sets up the stack frame, system registers, interrupts, exceptions, privileges, modes is just as good as watching Ben Eater's series on how to build a CPU from discrete logic gates and integrated circuits. Job well done. I'd love to see how far this series will go and where it will end up.

    • @zoro.73
      @zoro.73 Před 8 měsíci +7

      Ben eater ❤

    • @davidbriggs8109
      @davidbriggs8109 Před 6 měsíci +1

      @@zoro.73what CZcams channel is that??

    • @zoro.73
      @zoro.73 Před 6 měsíci

      @@davidbriggs8109 search it up, he goes into basic gates up to 8 bit processor in breadboard

    • @doyoufeel...thatyoulackcri6760
      @doyoufeel...thatyoulackcri6760 Před 6 měsíci

      @@davidbriggs8109 it's just named Ben Eater

    • @andrewliu6592
      @andrewliu6592 Před 6 měsíci +1

      @@davidbriggs8109 he does a lot of electrical engineering stuff; he has a series where he makes an 8-bit cpu out of logic gates

  • @lifeofsanjai
    @lifeofsanjai Před 8 měsíci +58

    This video is really awesome. Keep making these videos please.

  • @cooltrashgamer
    @cooltrashgamer Před 8 měsíci +10

    God bless youtube for recommending this channel.

  • @Thomas10962
    @Thomas10962 Před 8 měsíci +50

    spectacular video, i’m so happy someone actually goes through every single step of the process and doesn’t just describe what’s going on generally

  • @jasonclark1149
    @jasonclark1149 Před 8 měsíci +61

    This is an absolutely fantastic video. I really enjoyed your prior series on building a bootloader, and this scratches that same itch. I've been a professional developer for almost 30 years, but I've never really worked at such a low level, and I find this stuff fascinating. I'm looking forward to the rest of this series, and would love to see the next series tackle adapting this to physical hardware.

  • @feelsunbreeze
    @feelsunbreeze Před 8 měsíci +20

    I just find low level programming extremely fascinating and this was very well-done!
    Thank you!

  • @khaledsmq8814
    @khaledsmq8814 Před 8 měsíci

    This is amazing please don't stop; it is very rare to find such in-depth details for low-level explanation . Thank you

  • @deepstateagent5150
    @deepstateagent5150 Před 8 měsíci +3

    One of the best videos I could've hoped for. I'm super excited for this series, please keep it up!

  • @Cranked1
    @Cranked1 Před 8 měsíci +1

    Wow, that's what i would call a great first video of a new series. I think your explanations are perfect for people who have basic soft- and hardware knowledge. Will definitely continue watching this series even tho i will never do systems/kernel programming. Thank you for doing this!

  • @hetias
    @hetias Před 8 měsíci +4

    This whole video helped me to refresh a lot about my S.O classes. Seeing and understanding how everything is wired up it's so interesting

  • @Rose-ec6he
    @Rose-ec6he Před 8 měsíci +6

    This is so fascinating to get a peak under the hood at what a basic operating system involves. Your explanations are very clear and consise, it makes this a great experience to watch

  • @Monotoba
    @Monotoba Před 7 měsíci +7

    Great video! I really appreciate the emphasis you're putting on understanding code. As someone who's been in the software development field for years, I can vouch for how crucial it is to comprehend different coding styles and logic.
    Your videos are not just informative but also incredibly valuable for developers at all levels. Even though I've retired, I can still see the need for these resources in the industry. Keep up the good work! Looking forward to more code reading and review videos from you! 👍😊

  • @cwbh10
    @cwbh10 Před 8 měsíci

    An absolutely fantastic video man. I hope you continue this series! As someone who studied ECE but does EE as a living now, this is so insightful

  • @walterdebruijn7046
    @walterdebruijn7046 Před 8 měsíci

    High quality content, great to see it here. Enjoyed watching and learning. Big thank you for the efforts that went into this!

  • @JohanHultin
    @JohanHultin Před 8 měsíci +2

    I have never written a line of code, barely seen it, of a operating system in my days, yet I find myself intrigued by your videos. That says alot about your storry telling and knowledge!

  • @dzentsetsu5607
    @dzentsetsu5607 Před 8 měsíci

    Wacthed from 0:00 to the last second. It is all interesting. Thank you! You make just the right amount of explaining. The need for this kinda content is really big

  • @rodrigodoh
    @rodrigodoh Před 8 měsíci +4

    This video is an absolute gem, my OS classes didn't go that deep and this really filled the void of how things really start.

  • @jasyddavidcaballeroquinter440
    @jasyddavidcaballeroquinter440 Před 8 měsíci +4

    Please keep doing this kind of content, you explain it in a very clever way!

  • @craigslist6988
    @craigslist6988 Před 8 měsíci

    great video, looking forward to the rest of this series because it's very time and energy consuming to actually do what you're walking through and explaining. Doing it yourself is a better way to learn but I'm not trying to be able to code an OS, I just find it very interesting to learn how it gets put together and perhaps be more aware. Thanks!

  • @pterodragon585
    @pterodragon585 Před 6 měsíci +1

    I absolutely love this clear and concise content for low level stuff which is almost non-existent out there on CZcams. Props for going through actual code as well. Gold for me as an embedded engineer. Subscribed.
    I changed field to Embedded engineering not long ago but unfortunately I normally write app level stuff and only have to deal with low level stuff once in a while. Thinking about preparing myself as an actual embedded engineer who can architect embedded software from scratch so this sort of video is extremely useful for my future career.

  • @jamesweatherley9215
    @jamesweatherley9215 Před 7 měsíci +4

    Great video! I'm a user mode developer, but have always been interested on what's going on the other side of the curtain. This was really well presented and clearly explained. Onwards to part two...

  • @JonBurgin
    @JonBurgin Před 8 měsíci

    Very nice. You step through the process as if you are investigating for the first time. Providing your thoughts and steps is very helpful. I don't know if I will ever use this, but it is interesting just the same.

  • @DavidDay-pe1vx
    @DavidDay-pe1vx Před 7 měsíci +1

    What a great video. I never expected to find a resource that covers such low-level systems code in such great detail.

  • @rodrigocabral4317
    @rodrigocabral4317 Před 8 měsíci

    Really good video! You explained everything that I didn't know and kept the pace of the video. Looking forward to the next one.

  • @phostings
    @phostings Před 2 měsíci

    Man, kudos to you. I've been on youtube for many years trying to find a youtube who knows how to tell a story during a tutorial. I love your approach to explaining how OSs works. You have my sub!

  • @mariyyonov6430
    @mariyyonov6430 Před 8 měsíci +3

    Thank you for the great explanation! I have a CS background and work as a software engineer for many years but never had the chance to work on such a low level. I recently read "Operating Systems: Three Easy Pieces" (which is fantastic and can be read freely on the site of the authors) and xv6 was mentioned many times. However, not having the right background I had a hard time understanding the code when I tried to explore it later. This video hits the perfect balance for me of concepts which I know with a new content. I am very interested in seeing the next videos.

  • @Illmare
    @Illmare Před 8 měsíci +30

    I never got the chance of going this deep into CS since I majored in electrical engineering and then transitioned into dev jobs so I've been filling the gaps over the years, I hope you can continue this series sincce there is not a lot of Operating Systems content specially as well explained as this.

    • @LowByteProductions
      @LowByteProductions  Před 8 měsíci +6

      I'm currently going the other way around - I've always been firmly planted in the software world, but these days am learning a lot about digital and analog electronics 😄

    • @electrolyteorb
      @electrolyteorb Před 7 měsíci

      nice pfp

  • @user-wq1wm9gr1h
    @user-wq1wm9gr1h Před 7 měsíci

    Great tutorial, I am going to watch a whole series, your explanations are very detailed, clear and understandable (and I am a self-learner with no real background in CS)

  • @diogenesmenezes5618
    @diogenesmenezes5618 Před 8 měsíci

    Outstanding video! I appreciate the depth you've gone into. Keep these coming!

  • @user-cd1vg8le7f
    @user-cd1vg8le7f Před 7 měsíci

    thank you. this kind of video is really helpful. this really gives an answer to our curious questions which we always had but never able to find any detailed answers maybe due to lack of access to resources. Your video has really helped me in understanding the concept at low level, and you have really explained in a detailed and orgainsed flow with clear explaination. thank you

  • @mark879
    @mark879 Před 6 měsíci

    This is absolutely amazing! Thank you! I missed out on building an operating system in college. You made it seem so easy here. And now I have a good reason to use Docker.

  • @aemmelpear5788
    @aemmelpear5788 Před 3 měsíci

    This is awesome!
    Beforehand I already watched Ben Eaters 6502 series and watched/read multiple other sources on how operating systems work. This fills that gap perfectly! Thank you :)

  • @mishadrug98
    @mishadrug98 Před 6 měsíci

    I agree with the crowd. Such videos (explanation of each line of code)is much more useful than most of related videos available. Thanks!

  • @LT123
    @LT123 Před 8 měsíci

    Fascinating, deeply deeply fascinating, interested for the continuation, keep up the amazing work 👍🏻

  • @pedrov8868
    @pedrov8868 Před 5 měsíci +1

    This was super helpful! Please continue doing these. Very inspirational

  • @mlv60
    @mlv60 Před 6 měsíci +1

    finally, long-form detailed content I can actually learn from.
    no snappy edits, no doom-y & clickbait titles, no music and fiesta, just learning together.
    great video! binging your channel rn.

  • @jacobh1240
    @jacobh1240 Před 8 měsíci +13

    I took two undergrad OS classes that used xv6 and oh boy does this bring back some memories. But they were some of my favorite classes and it’s super cool to see this kind of material on CZcams. This video was very well explained and I look forward to watching more videos in this series

    • @timef5059
      @timef5059 Před 8 měsíci

      Did you debugged on the same VM as the speaker? I suppose, it's a bit more painfull, than my Python+Sentry stack? TELL ME MOAR

  • @SleepyChoco
    @SleepyChoco Před 8 měsíci +2

    Fantastic! Would love to see more! Your teaching is also very clear

  • @StefanoTrevisani
    @StefanoTrevisani Před 8 měsíci +1

    Wow, I loved it! Incredibly clear and detailed without being boring ! Only one suggestion: for the next videos could you increase the resolution to like QHD or 4K? That would be amazing :)

  • @Jonas-sc4er
    @Jonas-sc4er Před 7 měsíci

    Im currently doing a course about operation systems at my studys and so much of the theoretical stuff i learned make so much more sense now. its great!

  • @jemakrol
    @jemakrol Před 6 měsíci +2

    Very good video! Brings back memories. Back in -96, second year in CS studies, we had a group assignment in the OS course. Write a multitasking operating system for a RISC processor. It was a bit overwhelming to say the least.
    Seeing it like this, with some experience gained along the way, was both educational and entertaining!
    [I get it that this is the boot part of the OS. Another piece of "magic" is, as far as I'm concerned, the thing that happens between power on and the entry point of the OS boot sequence. On actual hardware in particular but also in comparison with virtual hardware. The "oh, I have a docker image doing all that magic here" is to kind of skipping things. For a very good reason too. Still, for a curious mind, a logical next step (at some point) would be "ok now I have tested on a VM, how can I run this (or any smaller OS) on something real?"]
    Thanks for this very interesting session, which was even more giving by having the source code downloaded to watch in parallel!

  • @janigerud
    @janigerud Před 4 měsíci

    A really fantastic video, not only great technical theory but also great way of teaching it, thank you for creating it 👍

  • @DmitryNMedvedev
    @DmitryNMedvedev Před 8 měsíci

    answering your question regarding how useful such sort of videos are: they are useful. At least from a perspective of a guy who is curious about the subject but does not know where to start. Thank you for your work.

  • @DouwedeJong
    @DouwedeJong Před 6 měsíci +1

    For all the grief I give the youtube algorithm, every now and then it puts out a gem. Thanks for making this video.

  • @fayazmohammad2813
    @fayazmohammad2813 Před 7 měsíci

    This is the first video from this channel I'm watching. It hasn't been a minute, I just subscribed to the channel by hearing the topic.

  • @andreas6485
    @andreas6485 Před 8 měsíci +1

    Thank you very much for this video! Im a Software-Developer for corporate applications mainly in JS/TS/PHP/Python world and i am very keen about this topic for a long time now.
    Its very pleasent to have someone with a good knowledge in OS-Development explain how "it" really works. I personally found it hard to find out where to even start and what the order is to get into this topic of OS-Booting, OS-Runtime and interaction between an OS and the code i am writing on a daily basis.

  • @munir32
    @munir32 Před 7 měsíci

    This is superb. Keep making such videos and complete the series please.

  • @1257mp
    @1257mp Před 8 měsíci

    It's so cool to see how this works. It is making me think of projects I want to work on myself!

  • @steelmagnum22
    @steelmagnum22 Před 7 měsíci

    Very nice video. The format and pace is great

  • @ShlomoGottlieb
    @ShlomoGottlieb Před 6 měsíci

    Super interesting! thanks for this very detailed deep dive video series, this is very instructive, material like this is hard to find, keep them coming :).

  • @koxwobi6431
    @koxwobi6431 Před 7 měsíci

    One of the most valuable contents on CZcams! I am very happy to find this content! ❤🙏

  • @ty4294
    @ty4294 Před 3 měsíci

    Thanks so very much for creating this content. It's exactly what I have been looking for. Your presentation of the topic is informative and interesting. Love It!

  • @morezco
    @morezco Před 7 měsíci

    This is fantastic. I will spin this up and follow along, it's such a good intro! Thank you!!

  • @jaredbitz
    @jaredbitz Před 8 měsíci

    Loved the video, and am excited to watch future ones in the series!

  • @trevorcarlson
    @trevorcarlson Před 8 měsíci +3

    I’d love to see more of these!

  • @patlollasrujan8493
    @patlollasrujan8493 Před měsícem

    Loved these videos, these are rare content. Keep continuing the good work❤

  • @unknownunknown8573
    @unknownunknown8573 Před 6 měsíci

    Absolutely fantastic video! I look forward to watching more content from this channel. Thanks!

  • @casperes0912
    @casperes0912 Před 8 měsíci +15

    My bachelor project was implementing an OS. I made a 64-bit version of JOS originating at MIT. There were references to XV6 in there too. This is a spectacular video reminding me a lot of that work. - The structure of this OS is very similar to what I made

    • @kayakMike1000
      @kayakMike1000 Před 7 měsíci +2

      Interesting. What was the core of your OS? I keep thinking the bare minimum is managing all the different tasks and allowing communication among them.

    • @casperes0912
      @casperes0912 Před 7 měsíci +3

      @@kayakMike1000 I’m not sure what you mean by the core? It had preemptive multitasking, virtual memory isolation, file systems, copy on write memory and more

  • @AbhishekNigam
    @AbhishekNigam Před 8 měsíci

    A really informative video! Eager to watch the following parts. Thank you

  • @Willholland1231
    @Willholland1231 Před 7 měsíci

    Very good video! I just took a class on operating systems in the spring, and we went through the x86 version of this project. It was a fun class. I really enjoyed building on top of the existing project

  • @mohammedyusufshaikh5603
    @mohammedyusufshaikh5603 Před 8 měsíci

    Super cool and Super detailed video. Really makes me want to deep dive into operating systems. I have this dream to work on operating systems look like i have found a good starting place. Bootstrapping has been a tricky thing to understand thanks for the insight into it

  • @mehmetmertgunduz
    @mehmetmertgunduz Před 4 měsíci

    Thanks for creating these videos, I'll learn all of them. It is really hard to find practical knowledge about these concepts! 🙂❤

  • @mahmednabil2429
    @mahmednabil2429 Před 8 měsíci

    What an Awesome Video, Thanks for putting the time to create such great content.

  • @ACorsaFahrer
    @ACorsaFahrer Před 8 měsíci

    Fantastic video! You did an excellent job. 👏 The content was engaging and well-presented. Keep up the great work!

  • @emmanuelguerreiro3301
    @emmanuelguerreiro3301 Před 7 měsíci

    Man this is awesome, thank you so much for this level of detail in the explanation

  • @pdd9366
    @pdd9366 Před 4 měsíci

    This channel is a hidden gem. Keep up the good work!

  • @nopair5688
    @nopair5688 Před 8 měsíci

    All time, All time, All stuff , All videos inside this channel are amazing 😊.

  • @daniellucas4771
    @daniellucas4771 Před 5 měsíci

    This video gave me material for at least 6 months of study. Thank you very much.

  • @tzdtuc-pd9yv
    @tzdtuc-pd9yv Před 8 měsíci +1

    Very interesting contribution, well done 👍 Keep going 💪

  • @Dannysen
    @Dannysen Před 6 měsíci

    This video is exactly what I need to watch. As a beginner, I don’t know where to start, the others I have watched about kernel is either about showing me a whole bunch of assembly to run specially on that processor or about a simple os that does nothing but printing just a line, or about diving deeply into what Linux kernel is doing. I am not say they are wrong, but hey “In operating system project, arguably the first thing you want to do is to get out of assembly as soon as possible”. This is gold! Please continue of what you are doing and you are doing it right!

  • @gluxoff
    @gluxoff Před 5 měsíci

    What do I think... amazing and very intuitive explanation which is the most important aspect here, thank you.

  • @dominicelm1134
    @dominicelm1134 Před 8 měsíci

    This was a really really good video! Please keep making these.

  • @Cammymoop
    @Cammymoop Před 8 měsíci +2

    Ooooh, looking forward to the rest of this series 👀

  • @iuri.castro
    @iuri.castro Před 8 měsíci

    Nice video! I hope you keep the serie running

  • @caioheitor3181
    @caioheitor3181 Před 6 měsíci

    Amazing content. Is very clarifying. Keep doing it. 💪🏻💪🏻

  • @reversemyopia
    @reversemyopia Před 5 měsíci

    Very helpful video! Thank you for making this! ❤

  • @MrHaggyy
    @MrHaggyy Před 5 měsíci

    This video is awesome so many things explained in a simple and coherent way. Really hard to ask for everything you don't know and easy to miss one simple jet important piece if you explain it to someone.

  • @jackpisso1761
    @jackpisso1761 Před 8 měsíci

    Thank you so much! Incredible quality content! Really amazing and incredibly useful!

  • @aarondiaz_14
    @aarondiaz_14 Před 7 měsíci

    As an aspiring Linux Kernel Developer, I really loved this video and I'm really looking forward to the next one!

  • @mrKitke
    @mrKitke Před 6 měsíci +2

    This is briliant! I'm a self-taught Software Engineer working daily with high-level Java / Kotlin web applications, and I've always felt the need to understand what's going on in the lower levels. This series is both very well explained and detailed! Keep it going!

    • @mrKitke
      @mrKitke Před 6 měsíci

      Also I feel this is 'real' programming and what we do in the web dev is just 'riding on the shoulders of giants' ;-)

    • @LowByteProductions
      @LowByteProductions  Před 6 měsíci

      Thank you, and I'm really glad that you're enjoying it and are curious about the lower levels of the stack. Most of my career was also spent in the Web space, and I hate the attitude that this kind of stuff is out of reach for anyone who isn't a "systems programmer" by trade.

  • @johnburgess2084
    @johnburgess2084 Před 6 měsíci

    Excellent presentation! I wish there were enough hours in a day for me to watch to all channels I'm interested in.

  • @andreabisio
    @andreabisio Před 7 měsíci

    Extremely interesting and well done, Great Work!

  • @nero008
    @nero008 Před 8 měsíci

    absolutely fascinating stuff and brilliantly explained

  • @AA-du1pt
    @AA-du1pt Před 8 měsíci

    Thank you for such awesome content, definitely keep doing them

  • @uuu12343
    @uuu12343 Před 8 měsíci

    This is very very nice, especially from a wholesale operating system understanding

  • @Gigiotril
    @Gigiotril Před 8 měsíci

    Thanks man, this video was awesome. Really good explanation 👏🏽👏🏽

  • @user-ls5et2gz6h
    @user-ls5et2gz6h Před 8 měsíci

    This is really, really good. Please keep making these videos.

  • @loopylare
    @loopylare Před 8 měsíci

    I am a bit of a nerd that has always been fascinated with this type of low-level stuff ... despite that it difficult to convey detailed information like this, so I was expecting something a bit more dry and difficult to understand. However, I found myself really fascinated. I really liked how you opened up the topic step by step. "We are looking at xv6, xv6 is ..... this is how you get xv6 .... this is how you run xv6 ... this is what the project files look like ... this is how to find the start of the program ... " so by the time you got to the details of the topic, I felt very well grounded in where I was. So then it was a real pleasure following along, imagining myself the lowly CPU waking up to run my first instruction at 0x800000 (or whatever it was). So yes, very good video!

  • @TheMeaningofHaste
    @TheMeaningofHaste Před 8 měsíci

    This is awesome, I learned so much! Please keep it up :)

  • @CraftGodsOfficial
    @CraftGodsOfficial Před 7 měsíci

    Thankyou for helping me get a better understanding of the logic.🙌🏽

  • @krishnababu5190
    @krishnababu5190 Před 12 dny

    Too Interesting Please continue the series😊

  • @ReneWOlsen
    @ReneWOlsen Před 6 měsíci

    Love this type of videos ... thanks for doing it

  • @morph1ne99
    @morph1ne99 Před 8 měsíci

    Just when I wanted to learn low level stuff, this channel just showed up! :)

  • @mechanosys
    @mechanosys Před 6 měsíci

    I am a Mechanical Engineer with 30 years in (Manufacturing) Engineering Industry in Equipment Maintenance (Mechanical/Electrical/Electronics), not from computer engineering background but a computer and electronics enthusiast. I use to watch such videos and learn everyday about coding, programming etc. new latest happenings. I have used regularly the most of the OS from MSDOS 6.22, Unix, Linux, Windows, Android ... Still I curiously watched your video, and enlightened with many things I never thought about the internal functioning of OS ! Thank you for such amazing explanation videos !

  • @aakarshanraj1176
    @aakarshanraj1176 Před 7 měsíci

    real nice explanation, keep up this series!

  • @filipdodig1163
    @filipdodig1163 Před 6 měsíci

    Awesome educational material! Great teacher! Thank you Sir!

  • @happycrank7458
    @happycrank7458 Před 8 měsíci

    Absolutely amazing video! Thank you.