How Do Linux Kernel Drivers Work? - Learning Resource

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 609

  • @first-thoughtgiver-of-will2456
    @first-thoughtgiver-of-will2456 4 роки тому +211

    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 років тому +209

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

  • @michaelandersson6088
    @michaelandersson6088 5 років тому +1336

    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

  • @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

  • @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.

  • @tonyfremont
    @tonyfremont 3 роки тому +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.

  • @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...

  • @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!

  • @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.

  • @_framedlife
    @_framedlife 4 роки тому +15

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

  • @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.

  • @marekunas
    @marekunas 5 років тому +135

    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

  • @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 4 роки тому

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

  • @trickster1833
    @trickster1833 5 років тому +258

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

    • @joris-rietveld
      @joris-rietveld 4 роки тому +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!

  • @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!

  • @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!

  • @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!

  • @talhadeniz8465
    @talhadeniz8465 5 років тому +2

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

  • @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 !!

  • @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

  • @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!

  • @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!

  • @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!

  • @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.

  • @jordanc.m.6735
    @jordanc.m.6735 5 років тому +2

    Your enthusiasm is contagious

  • @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!

  • @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!) :)

  • @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

  • @martipk
    @martipk 5 років тому +11

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

    • @martipk
      @martipk 3 роки тому

      @MichaelKingsfordGray what?

  • @PhoenixClank
    @PhoenixClank 5 років тому +4

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

  • @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!

  • @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!

  • @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.

  • @marindraganov8765
    @marindraganov8765 3 роки тому

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

  • @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

  • @shivkarj1456
    @shivkarj1456 2 місяці тому

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

  • @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.

  • @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.

  • @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

  • @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 👍👍

  • @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.

  • @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 :)

  • @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) 😂😂

  • @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.

  • @Jzarecta
    @Jzarecta 4 роки тому +6

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

  • @burntt999
    @burntt999 8 місяців тому

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

  • @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?

  • @blackmennewstyle
    @blackmennewstyle 4 роки тому +3

    I really enjoy his extreme enthusiasm

  • @amitwaghmare3863
    @amitwaghmare3863 8 місяців тому

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

  • @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!

  • @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

  • @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

  • @arnonymous7211
    @arnonymous7211 5 років тому

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

  • @ih8tusernam3s
    @ih8tusernam3s 5 років тому

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

  • @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!

  • @ara0n
    @ara0n 5 років тому +561

    >python
    ERROR: Gets Permission denied
    >SUDO python

  • @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... ;)

  • @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.

  • @DipanjanPatra
    @DipanjanPatra 5 років тому +1

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

  • @gyroninjamodder
    @gyroninjamodder 5 років тому

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

  • @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.

  • @1314zerosktr
    @1314zerosktr 2 роки тому

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

  • @BadBoyofBinaries
    @BadBoyofBinaries 5 років тому +8

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

  • @neetpbg4
    @neetpbg4 5 років тому

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

  • @markm1514
    @markm1514 3 роки тому

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

  • @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

  • @shubhamchidrawar9477
    @shubhamchidrawar9477 4 роки тому

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

  • @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

  • @imyasharya
    @imyasharya 4 роки тому

    You can do a live stream where you can go step by step. Videos like this is really helpful for beginners like me. You made me interested in Linux. I'll see what's exciting I'll find in it.

  • @88spaces
    @88spaces 12 днів тому

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

  • @mavhunter8753
    @mavhunter8753 4 роки тому

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

  • @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

  • @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

  • @GorczakWiktor
    @GorczakWiktor 4 роки тому

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

  • @hurayraiit
    @hurayraiit 5 років тому

    I could not understand most of the video. But I enjoyed watching it. Maybe I need to learn a lot and come back here later.
    PS: Wait, the video was 17 minutes long??!

  • @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!

  • @psp.youtube
    @psp.youtube 5 років тому

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

  • @3v068
    @3v068 3 роки тому

    I never thought id learn about Linux kernels from michael cera

  • @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.

  • @danihp9238
    @danihp9238 5 років тому

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

  • @zyx321123xyz
    @zyx321123xyz 10 місяців тому +1

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

  • @edouardmalot51
    @edouardmalot51 2 роки тому

    Really makes me want to read this book

  • @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

  • @linhorse4405
    @linhorse4405 5 років тому

    I really like your 'File' gesture!

  • @matiitpl
    @matiitpl 4 роки тому

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

  • @0okaze
    @0okaze 5 років тому +1

    I learned nothing but it was good reminiscing things I learned 20+ years ago.

  • @rikilshah
    @rikilshah 4 роки тому

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

  • @dipi71
    @dipi71 5 років тому

    This is excellent, and it really makes me want to write a driver - like way back after I purchased the 2nd edition of that »Linux Kernel Drivers« tome (for €39.60, ouch).
    Grüße aus Nürnberg (where IBM also has a building, near the Saturnweg)!

  • @MusikSony
    @MusikSony 4 роки тому

    Nice video !
    I´d love to see doing you a whole driver..

  • @trakeC
    @trakeC 3 роки тому

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

  • @S1ckB0y
    @S1ckB0y 5 років тому

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

  • @damnoish
    @damnoish 5 років тому

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

  • @ericgorder1
    @ericgorder1 4 роки тому

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

  • @lasq88
    @lasq88 4 роки тому

    Really interesting video, just run into it today. Another interesting book that introduces unix kernel modules in a friendly way is "Designing BSD Rootkits" from nostarch. It is not free but worth the price (you can also get it from humblebundle from time to time). It focuses more on rootkits and security but has a very good explanation of kernel modules with examples you can run yourself

  • @richtourist
    @richtourist 4 роки тому

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

  • @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 :-)

  • @memoriasIT
    @memoriasIT 5 років тому +1

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

  • @sandman0829
    @sandman0829 3 роки тому

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

  • @Gennys
    @Gennys 3 роки тому +1

    I'm almost positive that python's file handling is the one buffering. Writes are meant to be flushed by the developer as little as possible. You don't want a program ACTUALLY writing to a file every time the function is called (unless you do). And closing the file will obviously flush the contents of the write buffer. It's like this is many programming languages.