How Do Linux Kernel Drivers Work? - Learning Resource

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 609

  • @first-thoughtgiver-of-will2456
    @first-thoughtgiver-of-will2456 4 года назад +212

    I remember my dad, an old school linux military man told me that writing drivers was the "initial task" of many linux programmers. Thank you for sharing your experience.

    • @wanglin1943
      @wanglin1943 2 года назад +5

      Most programmers are still writing applications, and a few engineers who write drivers usually work in semiconductor chip manufacturers

    • @psykjavier
      @psykjavier 2 года назад +2

      ​@@wanglin1943 for example, an embedded linux engineer who works touching registers of the SOC. and making drivers for a user developer can use it without worry about the details of how to deal with that specific low level procedures.

    • @mithrandirthegrey7644
      @mithrandirthegrey7644 Год назад +6

      It most definitely isn't and shouldn't be. Writing drivers is dangerous if you don't know what you're doing. The idea that some fresh graduate is writing linux drivers for military hardware is down right terrifying. Airplanes would be falling from the sky.
      No. You should be very comfortable in userspace before you ever venture down to the kernel and start touching hardware.

    • @crimsomnia1415
      @crimsomnia1415 Год назад +3

      @@mithrandirthegrey7644 I'll have to disagree with you there, though I understand where you're coming from. Certainly you shouldn't be trying to make robust computing systems from scratch if you've no idea what you're doing, but the best way to learn is by understanding the core principles first and then build a grasp of understanding more complex systems from there. The deeper you go into the files, systems and hardware, the simpler things become, and at the core of all computing lies nothing else but understanding the concept of "on" and "off".
      Building system drivers used to be something people with no computing background had to figure out themselves just by the instruction manual (this is how the security firm I work at had to do it when they first started introducing electrical equipment at the company). It's far harder to try and figure out why a projector doesn't work when you have no idea to begin with how it's even *supposed* to work. When you understand the basic principles it's much easier to infer where things might have gone awry.

    • @mithrandirthegrey7644
      @mithrandirthegrey7644 Год назад +2

      @@crimsomnia1415 I don't disagree that writing hardware drivers is a great exercise for tinkerers and an excellent way to learn things like communication stacks and hardware flow. I vehemently disagree that a pimple faced engineer fresh out of college should be writing hardware drivers for military hardware. That sounds scary.

  • @mrgummage
    @mrgummage 5 лет назад +210

    Thumbs up for LiveOverflow ASMR where he reads Linux Device Drivers (Third Edition).

  • @michaelandersson6088
    @michaelandersson6088 5 лет назад +1338

    Fun fact: Linux kernel v2.6 has ~8 million lines of code, v5 has ~26 million lines of code :)

    • @Zooiest
      @Zooiest 5 лет назад +89

      That’s... A lot...
      I coded a JS project for ~2 months a few hours per day and it has only 35k lines iirc

    • @Qizot
      @Qizot 5 лет назад +261

      I still don't know how C code can be scaled to this amount

    • @ehmeth
      @ehmeth 5 лет назад +56

      Is this where I mention Casey Muratori's "The Thirty-Million Line Problem"?

    • @alexstone691
      @alexstone691 5 лет назад +75

      @@Qizot Imagine your worst nightmare but worse
      But for real C code becomes a mess, i understand why people use it but it feel like its a chore to start a project in c

    • @masonfuller9823
      @masonfuller9823 5 лет назад +5

      hol' up

  • @davidalm2148
    @davidalm2148 5 лет назад +215

    Hey @LiveOverflow
    Regarding 14:30; Python is internally calling the C the standard library's stdio buffered functions (fread/fwrite) which does the buffering which internally makes the syscall specifying the file descriptor, which triggers the char module's read/write function.

    • @krisavi
      @krisavi 4 года назад +21

      That is true, python is not very efficient code in that sense, but you get the ease of writing code.
      However for the example he could have done manual flush before closing. To show that you can force the write to disk without waiting for close or buffer to get full. Normally it gets buffer full until write happens to avoid excessive write operations on disk. It is all about optimizing operations and not to cause bunch of writes to take up CPU instructions while there is nothing to write. For such a small example it would have shown it maybe more how things work and even how close is doing the flush automatically doing it in a way more like open -> write -> flush -> write -> close. On windows on the other hand I have noticed that it does not respect flush always (more reliable on linux). There can be few cases where it does not even write to device, even if you call it to do it, I do not know all the specifics.
      Well nvm... Watched half a minute more and it was there already :D

  • @wanglin1943
    @wanglin1943 2 года назад

    I have a certain understanding of drivers, and I have worked in semiconductor manufacturers before. This video is a driver getting started video. The reason I like this video is that the English pronunciation of the video owner is clearer and I can understand it better, which helps me practice English well.

  • @_framedlife
    @_framedlife 5 лет назад +15

    I now want a 2hr version of this 😂 this was amazing

  • @homere3931
    @homere3931 5 лет назад +6

    how you went into the library to analyze the makefile, realized that you have that directory on your linux and then just executed it and it works was just amazing :D

  • @tollertup
    @tollertup 5 лет назад +2

    i Just followed the code example and was blown away. Great work. A lot of people say making a series out of that would be amazing and I can only agree!

  • @soapmcsoaperson
    @soapmcsoaperson 5 лет назад +14

    Hell of a nice coincidence, I had just started reading the first chapter of this book. Thanks for the vid, man

    • @geodome83
      @geodome83 5 лет назад

      creepy social media tracking

    • @alexscarbro796
      @alexscarbro796 5 лет назад

      This is a very good book and truly insightful. I used it to start writing a driver for a PCIe based FPGA development board.

  • @joonasfi
    @joonasfi 5 лет назад +6

    Great video! It is truly fascinating that one can compose these file and block drivers on top of each other so that a simple open+write to a certain file can go through a Samba client to send the write call to another server, have it written to an ext4 filesystem which uses a virtual block device which stacks in transparent encryption and mirroring to two different underlying disks, which are actually just block devices, or even might span multiple disks via again virtual block devices...

  • @adammontgomery7980
    @adammontgomery7980 5 лет назад +4

    Awesome video, I did the simple hello kernel module a few years ago and was in over my head. I wanted to create a simple way to send commands to an Arduino, ultimately controlling a stepper motor. I thought the best way to do that would be to create a driver and simple "client-side" code to take commands in the terminal, writing to the device "file" to provide a number of steps and direction to the stepper motor. You've re-ignited my interest and I may make another attempt.

  • @filipsworks
    @filipsworks 5 лет назад +1

    Knew about linux drivers and fs devs a long before this video but to see an actual example... Exceptional! Thank You!

  • @marekunas
    @marekunas 5 лет назад +136

    How Linux Works, 2nd Edition: What Every Superuser Should Know by Brian Ward, also a great book regarding an overview of Linux.

    • @nikhilt3755
      @nikhilt3755 5 лет назад +3

      yeah i am reading that from few weeks and about to comment that book in this section
      GREAT BOOK

    • @0xssff
      @0xssff 5 лет назад +2

      Got any more recommendations?

    • @nikhilt3755
      @nikhilt3755 5 лет назад +2

      @@0xssff Linux bible

    • @nikhilt3755
      @nikhilt3755 5 лет назад +1

      linux programming interface book

    • @nikhilt3755
      @nikhilt3755 5 лет назад +6

      ARCH WIKI
      this is a website where u can learn a lot

  • @solveit1304
    @solveit1304 5 лет назад +5

    This is mindblownig as you said! I never knew how that devices works and acting like a file - thanks for that daily videos, I'm learning so much stuff

  • @cern1999sb
    @cern1999sb 4 года назад

    My 3rd year computer science project for my university course will require me to write Linux device drivers. This looks like a really good place to start. Thanks so much!

  • @talhadeniz8465
    @talhadeniz8465 5 лет назад +2

    I love watching tutorial videos with more applicable examples like that. Better than useless entertainment videos.

  • @1889990
    @1889990 5 лет назад +3

    Video starts.
    Me: I'm not sure if he can keep up the high quality of his videos with daily uploads.
    Also Me 3 Minutes later: Oh damn thats so interesting and well put together.
    Keep up the good work! I never regret watching a video of yours!

  • @shire7949
    @shire7949 5 лет назад +478

    Hey. I enjoyed the video. I didn't really feel it was 17 minutes long. It went by fast.
    Just wanted to say this might be a very good, and so far unimplemented type of video format:
    You pick a free-to-the-public book, like this one, and read/work through it chapter by chapter. Except you might do it in like a live-stream format ? (maybe one livestream per chapter)
    I know the live part is kinda daunting, but I feel that doing this would either way help you:
    - You get obviously the benefits from reading/working through the book.
    - I feel this might attract viewers since in a way, you will pretty much look like you are "noob" while learning. It will show the viewer that learning is a sort of tough process ? And that they shouldn't expect to know it all in one sitting. And in a way, since this actually attracts people, you might feel the freedom of messing up, of not editing, of not having to look too damn professional. Just be yourself, learning.
    - Get the profit from the views.
    - I don't know if this one counts but: Sometimes (really uncommon times), knowledgeable viewers might get in the livestream, so if you don't know a certain something, or are working through something they know, they might raise helpful ideas or explanations, thus increasing the dialog, making it more engaging to viewers to stay in the stream.
    I really wish you could do it with ANY book. Of course copyright :/ (I wonder if it's legal that you could buy the book, and then show it here. Or work through it this way)
    Maybe you could even do patreon requests every time you want a new book; effectively making us pay for it. Since in the end, you would be providing us with useful info.
    In the end. You might get a nice catalog of playlists of books you've worked through. Viewers from any point in time [who bought / are interested in a book] can follow along with you in the future. You put a bunch of ads in every live-stream, and PROFIT.
    Maybe it is nice publicity for the book ? and also for you. So that you can tweet or somehow contact the writers about doing copyright books. Maybe some will allow it?
    I know for instance there's this open book about reverse engineering, that the guy updates constantly, and he releases totally free. So you might work through it ? learn, and PROFIT.
    All while making the book more known, increasing the dialogue, etc.

    • @paulstelian97
      @paulstelian97 5 лет назад +22

      That's actually a really good idea. Since this book is public, there probably wouldn't be any license issues, plus maybe the original authors could explicitly allow it if there was an issue.

    • @Xorume.
      @Xorume. 5 лет назад +9

      This is an awesome idea! I'd love to watch it.

    • @ara0n
      @ara0n 5 лет назад +1

      This is a great idea

    • @TheNewton
      @TheNewton 5 лет назад +1

      We'll probably start seeing a format in the coming years for quite a number of reasons on top of the ones Shire Grin wrote about.
      A current example to observe is web development tutorials that heavily rely on the W3C standards docs as a reference but barely mention small parts of it across multiple videos often on one feature of the web standards specifications and actually reading of the full spec is left as an exercise to the reader but most developers never do to their detriment.
      Some other future predictions:
      * Barrier to entry to make long format video gets lower and lower due to proliferation of online video platforms and modern hardware
      * Higher job dissatisfaction, or outright unemployment, lower hours due to increasing automation for knowledge workers to have more free time, that ironically creates a catch-22 of more educational materials to make more knowledge workers to increase automation.
      * Streaming as a service/culture maturing as an viable industry for self-employment and socializing
      * The need for more and more content hours to get captive views
      * Creating longform content is hard to come up with let alone make; enter wikibooks,published papers, etc.
      * Rejection fatigue from the oversaturation of online "course" services
      * Students/learners using streaming socialization as a way to hold themselves accountable to learn something on a schedule in a culture that pushes for constant connection(human and network). And or using the recording as an notesystem.
      * Publishers are always looking for ways to sell more books so on the copyright side of things getting a teachers edition and a deal for content creators to make a streaming "course" of the book with presales of the book as a requirement of "attendance" or as a way to supplement MooC's which have waned in lieu of "course" platforms.

    • @hiitsrudd8567
      @hiitsrudd8567 5 лет назад

      Shire Grin, you nailed how this vid zoomed by, most YT vids are boring & have nothing to say in the end.

  • @tonyfremont
    @tonyfremont 4 года назад +2

    I have the first edition of this book, and the "Understanding the Linux Kernel". Those books, starting with Linux in 1994 and reading literally hundreds of Howto documents, and doing a Linux from scratch build, taught me a ton. Too bad that pretty much all of what I learned back then has since been superceded by evolution. Getting X up and running in the 90s was also a major learning experience.

  • @jordanc.m.6735
    @jordanc.m.6735 5 лет назад +2

    Your enthusiasm is contagious

  • @robbingoossens
    @robbingoossens 5 лет назад +80

    Mate, are you reading my search history or something? I've been searching for a good explanation of Linux kernel drivers for a couple of days now xD

    • @0xssff
      @0xssff 5 лет назад +2

      Same lol, it all started with figuring out what the mknod command does...

    • @looploopertzg3511
      @looploopertzg3511 5 лет назад +12

      Google youtube algorithm kindof sold your data...to him...but it's okay

    • @roshe7199
      @roshe7199 5 лет назад

      haha same!!

    • @BeHappyTo
      @BeHappyTo 5 лет назад

      reality is not

    • @HritikV
      @HritikV 5 лет назад +1

      @@looploopertzg3511 We trust him !!

  • @delqyrus2619
    @delqyrus2619 5 лет назад

    I actually searched for something like this for quite a while and now i randomly stumble over it just by subscribing your channel! Thank you! That helps me so much with one of my projects!

  • @akasshjoshhi6926
    @akasshjoshhi6926 5 лет назад +1

    My University exams just ended for now.
    I was wondering what should I learn and bam notification for this video appeared.
    Thanks for dropping this awesome resource man!

  • @PhoenixClank
    @PhoenixClank 5 лет назад +4

    This is easy enough for me to understand, but still amazing enough to blow my mind.

  • @trickster1833
    @trickster1833 5 лет назад +258

    At the beginning, is that Ben Eater's 8-bit breadboard computer design?

    • @joris-rietveld
      @joris-rietveld 5 лет назад +19

      Haha I also recognized it, I am currently building my CPU logic but I burned some stuff so waiting for a delivery from china :-)

    • @ukaszMarianszki
      @ukaszMarianszki 4 года назад +23

      Yeah, he is building it on streams

    • @shubham.1172
      @shubham.1172 4 года назад +13

      I built a similar one on Logisim! Do check it out github.com/shubham1172/SRM

    • @shubham.1172
      @shubham.1172 4 года назад +1

      @@zack3g aye, thanks! It would be amazing if we design some high level language for it 🤣

    • @youdonotknowmyname9663
      @youdonotknowmyname9663 4 года назад +2

      @@shubham.1172 Logisim is awsome!
      And discrete computers are awsome!

  • @martipk
    @martipk 5 лет назад +11

    i just finished studying this material this semester, and this was spot on, great video!

    • @martipk
      @martipk 3 года назад

      @MichaelKingsfordGray what?

  • @tonysu8860
    @tonysu8860 4 года назад

    A bit different than what I expected based on the video''s title...
    This really doesn't describe or expand on kernel drivers,
    But as described in the opening minutes the driver interface provides a way to access, manipulate and even write code that can operate against kernel functions.
    In other words, the kernel driver isn't the real topic of this video but is a sideshow means to the real topic...accessing the kernel.
    So, although I felt I was misled,
    This video is still very interesting, educational, clear and well made.
    Kudos, I think many people can benefit from this.

  • @daumtto
    @daumtto 2 года назад +6

    Wow, really impressed by the explanation you've provided! I'm taking an embedded software course, and I really needed this!

  • @pdigit010
    @pdigit010 3 года назад

    When I saw the cover of the book I thought it looked familiar.. and guess what I actually still have the printed version and had used it over 15 year ago!
    Happily surprised to see how younger generations and youtubers are enjoying hacking into the kernel avoiding to just use latest frameworks!
    Thanks for the video (and to the g recommendation system that made me bump into it!) :)

  • @ara0n
    @ara0n 5 лет назад +561

    >python
    ERROR: Gets Permission denied
    >SUDO python

  • @msthalamus2172
    @msthalamus2172 4 года назад +1

    I just spent the last few weeks in WDM hell, but I'd never seen Linux driver code before. It's so amazing how much simpler Linux driver code is than the equivalent in Windows!

  • @DonEdward
    @DonEdward 4 года назад

    Thanks for making this video explaining this book. I didn't make it very far! Now i get it more! Please consider going through more of this fascinating series!

  • @RoiEXLab
    @RoiEXLab 5 лет назад +25

    Honestly this is probably one of the most interesting videos I watched from you so far.
    I mean the hacking videos are great too, but I never felt so enlightened 😱

    • @esaieledouxnjongssikouam9326
      @esaieledouxnjongssikouam9326 4 года назад

      Ohh... very Nice .... but i have a problem ....
      My lib/modules/.../build doesn't exist...🤤🤤🤤😭😭😭
      So i can't modify, create or unload some modules...
      Please can you help me...!??

    • @nikhilchouhan1802
      @nikhilchouhan1802 2 года назад +1

      @@esaieledouxnjongssikouam9326 You entered the correct kernel version right?

    • @esaieledouxnjongssikouam9326
      @esaieledouxnjongssikouam9326 2 года назад

      @@nikhilchouhan1802 yeah

  • @SciCynicalInventing
    @SciCynicalInventing 5 лет назад +9

    This is exactly what I was looking for as Im learning how to make my own kernel modules. Maybe you could expand on building makefiles and cross compiling things as is frequently done when working with embedded linux systems. Great video!

  • @michalsebek2089
    @michalsebek2089 5 лет назад +4

    Wow, it's so interesting. I always love getting known about how all the things, which were always magic to me, work and how they're connected with each other. Then, everything (some of the magic) clears out to me. I really like that feeling. Thank you.

  • @DantalionNl
    @DantalionNl 5 лет назад

    That is so awesome, I have read tried to read this book in the past but never got far because the examples did not work anymore. Thank you for this video and providing this resource tons of fun writing my own drivers to be had now :)

  • @ThePituLegend
    @ThePituLegend 5 лет назад +8

    I just ended a course on Character Devices... I needed this video three months ago, not now!!!
    Jk, good video :)

    • @tactileslut
      @tactileslut 3 года назад

      Am I wrong to pronounce 'char' as "care", as in character?

  • @burntt999
    @burntt999 8 месяцев назад

    Holy crap… I tried to read this book years ago but was over my head…you just cleared some shit up for me! Bless you sir

  • @gabiold
    @gabiold 5 лет назад +51

    "tail -f -n 0 /var/log/syslog" if you don't want to see any previous logs.

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 5 лет назад +6

      Can be shortened to:
      tail -fn0 /var/log/syslog

    • @gabiold
      @gabiold 5 лет назад +5

      @@lawrencedoliveiro9104 Yeah, I use that way, just wanted to be more readable for beginners.

    • @teranokitty
      @teranokitty 4 года назад +3

      Use -F so that it follows log rotation.

    • @ShahFahad-zf3iz
      @ShahFahad-zf3iz 3 года назад

      @@teranokitty follows the name of file and not the fd here 👍👍

  • @ih8tusernam3s
    @ih8tusernam3s 5 лет назад

    Thanks for all your help, been interested in reversing for years and have rarely found a more concise and comprehensive resource.

  • @DipanjanPatra
    @DipanjanPatra 5 лет назад +1

    This is one of the most awesome videos to get started with kernel programming! Thanks for this one.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 5 лет назад +1

    11:14 This is why people say there is *no* “stable” Linux kernel API as such. Calls to internal kernel routines are subject to change at any time. This is why the kernel developers don’t encourage you to carry your own drivers/modules outside the mainline kernel; it is easier long term to get it accepted into the official source tree, where it can be maintained along with the rest of the source.

  • @neetpbg4
    @neetpbg4 5 лет назад

    Dude, your enthusiasm is contagious. Nice vid, keep it up!

  • @burntt999
    @burntt999 8 месяцев назад

    Omg I’m so pumped up to go back to this book.. you helped me significantly on this!!

  • @motohisamoriya2136
    @motohisamoriya2136 3 года назад +5

    I wrote the first Linux kernel device driver for the Linux version 2.4.5, SH -3 (Renesas 7709 and 7727) device drivers.
    I remember compiling and building many times.
    In Kernel space, there was no convenient crt0 that called the main function, so it was pretty hard.
    Before that, I had to fix the device drivers for FreeBSD 2.2, but they were completely different, so I had a hard time.
    The device driver is basically OK if read, write, ioctrl are implemented. As for interrupts, the handler is not too hard to figure out how the interrupt is occurring, but if you didn't follow kmalloc, kfree in that order, it immediately went out of control.

  • @blackmennewstyle
    @blackmennewstyle 4 года назад +3

    I really enjoy his extreme enthusiasm

  • @cBake0
    @cBake0 5 лет назад

    This was paradigm shifting for me :), been trying to grok device programming for a long time. Though admittedly never focused heavily on the subject, just pieces here and there. Thanks for the video

  • @shivkarj1456
    @shivkarj1456 2 месяца назад

    I'm trying to get into developing device drivers. So happy I stumbled across this.

  • @arnonymous7211
    @arnonymous7211 5 лет назад

    your current video output is insane while maintaining and improving quality. big up bro

  • @damonzh588
    @damonzh588 3 года назад

    it's an guide for one want to dive into the kernel. before this i didn't know device driver is a good start point. anyway thank you for introduce this book.

  • @Nik__._.
    @Nik__._. 2 года назад

    Well, i'm a bit late to the party but this video gave me exactly the missing link I needed to connect some stuff in may thoughts! :) Thank you! Might as well try writing something now.

  • @nashaut7635
    @nashaut7635 4 года назад

    If you like Python programming and file interfaces, you might love Python Fuse ( _pip install fuse-python_ ) : write a virtual file interface in Python, straighter to the goal without compiling kernel modules. Thanks a lot for this tutorial. Love it!

  • @marindraganov8765
    @marindraganov8765 3 года назад

    I do like your enthusiasm when you saw your code running in the kernel! LOL!

  • @GorczakWiktor
    @GorczakWiktor 5 лет назад

    I'm really glad to have found this channel. Extremely interesting, very straight-foward and substantive :)

  • @1314zerosktr
    @1314zerosktr 2 года назад

    Really appreciate the book link, been looking for something like this

  • @damnoish
    @damnoish 5 лет назад

    i wanted to hit the like at least 4 times while watching. would love more of this. thanks.

  • @psp.youtube
    @psp.youtube 5 лет назад

    this is soo cool, what an awesome kickstarter for writing LDD's

  • @ArthurStomp
    @ArthurStomp 4 года назад

    Nice introduction! I enjoy videos about what happens under the hood on linux, specially when they are done in such smooth way

  • @previousslayer
    @previousslayer 5 лет назад +2

    Sheeeesh, only been a few days since I've finished and submitted my first academic essay, and it did actually refer to "Linux Device Drivers" (Rubini & Corbet) 😂😂

  • @sandman0829
    @sandman0829 3 года назад

    Such a great and extraordinarily helpful video, for less than 20 mins. Thanks :)

  • @mavhunter8753
    @mavhunter8753 4 года назад

    I remember reading this book a few years back. It really is great.

  • @khodges3272
    @khodges3272 5 лет назад

    Hey, Kernel dev here. Just wanted to mention that the reason they aren't publishing another book is because O'Reilly didn't want to. GKH was intending to publish another, and had quite a bit written for it. They're including all of his writings in /doc in the kernel itself. They definitely do need new devs working on drivers, in part because industry driver devs often times write bad/unmaintained code. Working on cleaning these up is a great way for someone to break into the kernel dev community.

    • @theuser1240
      @theuser1240 4 года назад

      Is it still a good idea to be a kernel developer in 2020?

    • @khodges3272
      @khodges3272 4 года назад +1

      @@theuser1240 totally, if you enjoy low level stuff! Theres definitely a lot of opportunities out there for people who know the ins and outs of kernel stuff. The community is more welcoming than ever, jump on in!

  • @danihp9238
    @danihp9238 5 лет назад

    Your passion is a font of inspiration for me, hope you can do more content about kernel development

  • @friday6426
    @friday6426 3 года назад +1

    I learned Unix operating system in school, feel this short video is worth about 2 hour school in-class lecture. Thank you for sharing. This teaching style is more practical than school does

  • @TheBodgybrothers
    @TheBodgybrothers 5 лет назад

    Awesome! Best rundown on kmods ever.

  • @matiitpl
    @matiitpl 4 года назад

    why am I just seeing this now?! Amazing video and your enthusiasm :) love it

  • @Jzarecta
    @Jzarecta 4 года назад +6

    There needs to be a part two that goes deeper into the more advanced topics.

  • @VideosfromNH
    @VideosfromNH 3 года назад

    Nice. I've been meaning to learn about device drivers. This video and the free book is just what I need to get started.

  • @richtourist
    @richtourist 4 года назад

    Fantastic video, really enjoy your stuff.
    The joy in your eyes is great to see.

  • @88spaces
    @88spaces 18 дней назад

    Fantastic! I'm just starting the same exercise. So exciting!

  • @WitherBossEntity
    @WitherBossEntity 5 лет назад +6

    Also interesting: Fuse, which allows you to write filesystem drivers (the same way, with an struct of function pointers for the operations) in userspace, without need for a kernel module. Not as useful if you want to learn about the kernel, though.

  • @S1ckB0y
    @S1ckB0y 5 лет назад

    Thanks for making learning complex stuff enjoyable! Keep it up!

  • @MB-rc8ie
    @MB-rc8ie 5 лет назад +1

    Wow, I am just now doing a course about writing device drivers with a project at my university, that may be useful, thanks

  • @mohamedabdelkhalek4298
    @mohamedabdelkhalek4298 5 лет назад +13

    This cool content when u grap a book and look into it like that or more to do a series whene u read book and explain it

  • @peterfiser
    @peterfiser 4 года назад

    Wonderful video, thank you. Editing was done superbly too.
    I hope you will have a proper office chair one day. That one looks painful to sit on.

  • @jpierce2l33t
    @jpierce2l33t 2 года назад

    Very informative like all your videos, plus I got a good laugh when you flailed your arms around while saying 'and then, kernel magic happened' LOL

  • @NunoLopes99
    @NunoLopes99 5 лет назад

    Your passion is contagious!

  • @markm1514
    @markm1514 3 года назад

    I would totally share this if I knew anyone interested in Linux device drivers.

  • @amitwaghmare3863
    @amitwaghmare3863 8 месяцев назад

    It feels like Michael Cera is teaching Linux, how amazing!

  • @pushkar260
    @pushkar260 5 лет назад +1

    Daily liveoverflow videos... cool!

  • @rikilshah
    @rikilshah 5 лет назад

    Thanks for the very simple explanation of such a complex topic!

  • @shubhamchidrawar9477
    @shubhamchidrawar9477 4 года назад

    Really enjoyed the video...
    It would be great to have a series of videos for all three types of LDD.

  • @linhorse4405
    @linhorse4405 5 лет назад

    I really like your 'File' gesture!

  • @BadBoyofBinaries
    @BadBoyofBinaries 5 лет назад +8

    it's better if u upload a playlist like this one!!!

  • @trakeC
    @trakeC 3 года назад

    Dude i was just thinking i should learn more about this and this video popped up. Thnx m8

  • @memoriasIT
    @memoriasIT 5 лет назад +1

    Funny that I was just reading about this haha
    Great video, this book is definitely awesome

  • @gyroninjamodder
    @gyroninjamodder 5 лет назад

    I personally wouldn't load a random person's code off of github into my kernel. You are living dangerously.

  • @ericgorder1
    @ericgorder1 4 года назад

    Awesome, now Linux drivers looks fun! Thanks for posting!

  • @MikaelFangel
    @MikaelFangel 5 лет назад

    Thanks for sharing! I'm learning a lot when watching your videos.

  • @codingmarco
    @codingmarco 4 года назад

    Echt cooles Video! Studiere auch gerade Informationstechnik ander DHBW, allerdings mit Keysight. Ich wünschte es gäbe mehr Leute, die bei "Our code was executed" so begeistert sind... ;)

  • @linuxguy1199
    @linuxguy1199 4 года назад

    14:50 You can use setvbuf & setbuf in C/C++ (if you're using a FILE*), However in C/C++ it'd probably just be better to call the open, close, read, and write syscalls manually

  • @3v068
    @3v068 3 года назад

    I never thought id learn about Linux kernels from michael cera

  • @edouardmalot51
    @edouardmalot51 2 года назад

    Really makes me want to read this book

  • @zyx321123xyz
    @zyx321123xyz 10 месяцев назад +1

    Oh.. man, you better say: It works! .. instead of: it work!

  • @keshan-spec
    @keshan-spec 5 лет назад +2

    i love this, can you please consider making a tutorial on stuff related to these? Kernels, Buffer and all the behind the scenes of an OS. Thank you

  • @KupriyanovKirill
    @KupriyanovKirill 4 года назад +1

    Man, you give me so much inspiration!

  • @wingedrhinotv
    @wingedrhinotv 4 года назад +3

    This looks fun! So effectively I should be able to make my own custom devices for linux (like keyboards, mice, network interfaces, audio interfaces, MIDI devices, etc) by writing a custom driver? I wonder if you can "inherit" from other drivers and modify them so they work a little differently. Or if you can autoload drivers on certain events. A lot to grok here!

  • @osamazaid25
    @osamazaid25 5 лет назад

    What a video 👏🏻 Awesome Job brother

  • @etutorshop
    @etutorshop 5 лет назад +1

    The first time I ever learned about everything in linux is a file is in the movie Jurrasic Park when the little girl and her brother tries to lock the room with a computer :-)

  • @IzzyIkigai
    @IzzyIkigai 5 лет назад

    If you want to write unbuffered in Python you have to call open() with buffering=0, that way there's no need for the flush(). The manual for 3.x states that this needs binary mode tho, so you need 'wb' as mode.