Screwing Up Linux Kernel Keyboard Driver

Поділитися
Вставка

КОМЕНТАРІ • 66

  • @bernhardbaumgartner4702
    @bernhardbaumgartner4702 Місяць тому +232

    I’m absolutely stunned by how easy you make things appear that actually are pretty complicated and cumbersome, e.g. booting a customized Linux kernel with a custom init process. And that holds true for all your other videos as well. There’s so much more to get and learn from your videos than their titles and quite short durations would allow you to expect. Truly, truly amazing, Chapeau!

  • @vlc-cosplayer
    @vlc-cosplayer Місяць тому +65

    I can already see the alternative layout nerds modding their kernel so that Dvorak, Colemak, etc. are baked in, and they don't need to wrestle with Xorg...

    • @ivanjermakov
      @ivanjermakov Місяць тому +8

      Not much reasons to go that deep, since you'll have to provide implementations for PS/2, USB and other possible input protocols.

  • @rolandlemmers6462
    @rolandlemmers6462 Місяць тому +14

    It would be truly cursed if the code variable was given a random value after a keystroke.

  • @catsawkotowaty9111
    @catsawkotowaty9111 Місяць тому +74

    I should mod the kernel on lab computers with this :)

  • @krzysztofadamski7804
    @krzysztofadamski7804 Місяць тому +31

    A small tip related to 1:51. If it's your first time compiling kernel it would make sense to start from a defconfig (by using "make x86_64_defconfig) and only *then* optionally do "make menuconfig" or go straight to "make". This makes things much easier.

    • @1cubealot
      @1cubealot Місяць тому +1

      Or `cp /boot/config-$(uname -r) ./.config` then make ...

    • @krzysztofadamski7804
      @krzysztofadamski7804 Місяць тому +1

      @@1cubealot Sure, this might be good idea if you want to run this kernel on your own machine.
      If it is going to be run on an emulator, this will probably be an overkill. Distribution kernels are huge. And the config is not always available in /boot/.

  • @Rametesaima
    @Rametesaima 24 дні тому +1

    I've been programming for 12 years and it's always fun learning new things. Really love your straight-forward video format where you just dive into the code and explain exactly what's happening without unnecessary fluff. Keep up the awesome work!

  • @johanngambolputty5351
    @johanngambolputty5351 Місяць тому +5

    This is an awesome walkthrough, I've compiled a kernel before (but not made modifications), and I boot into the one I'm running from efi (so vaguely aware of providing the image as an arg), but wondered about custom initrd and custom init programs.

  • @cristhopersanchez2449
    @cristhopersanchez2449 Місяць тому +1

    I really appreciate the way you give brief descriptions of what things are doing, its helped me understand the kernel/os so well. Thanks!

  • @mzakyr42
    @mzakyr42 Місяць тому +11

    Underated youtube channel

  • @Scorpieonna_Sting
    @Scorpieonna_Sting Місяць тому +1

    1:30 Instead of making it do +1 to everything, you should make it appear random but be completely deterministic. My idea is that it changes the imputed letter based on the previous imputed letter. Something like: Since "C" is the third letter, the next letter will be +3, to the imputed letter. Example: First imput is C (the 3rd alphabet letter), second imput is B (the 2nd alphabet letter), the result is E (5th alphabet letter), because 3+2= 5. (Note: Just don't accidentally make the result/"E" the previous imput for the next letter, or it will be super unpredictable.)
    Typing "Hello" would equal: HMQXA
    Following this process:
    H/8 is unaffected.
    H/8 + E/5 = M/13
    E/5 + L/12 = Q/17
    L/12 + L/12 = X/24
    L/12 + O/15 = 27->A/1 (Looped to the start.)

  • @shadesoftime
    @shadesoftime Місяць тому +1

    This guy is the kind of computer nerd that they show hacking a bank in hollywood movies

  • @thesushifiend
    @thesushifiend Місяць тому +19

    After years of using vi (probably VIM actually) I've just learned that you can open files from within it with :e ! You make me feel like such a dumbass...

  • @bacphan7582
    @bacphan7582 Місяць тому +3

    Did this guy just modify, compile, write and compile an init program and run it all in less than 7 minutes, while explaining it ?

  • @mythacker4365
    @mythacker4365 Місяць тому

    I never knew that customizing the Linux kernel will be this easy. Thank you ❤

  • @megakev321
    @megakev321 Місяць тому +7

    I love this channel!

  • @yaroslavluck7234
    @yaroslavluck7234 Місяць тому

    Thank you for creating such interesting, educational and amazing videos

  • @0xgordo350
    @0xgordo350 Місяць тому

    Keep making these videos! I loved this channel

  • @sintaklaas6427
    @sintaklaas6427 Місяць тому +4

    Great stuff, i m new to this, so it helps understanding what is possible

  • @roz1
    @roz1 Місяць тому

    Wow such an innovative video .... Teaches u about modifying the kernel and booting it up with new initcode

  • @0xgordo350
    @0xgordo350 Місяць тому

    bro I love these videos

  • @CYXXYC
    @CYXXYC Місяць тому +3

    im having a key stroke

  • @CocolinoFan
    @CocolinoFan Місяць тому

    This is hilarious and very informative 👍

  • @Psychopatz
    @Psychopatz Місяць тому

    So it just appends the ascii chars, I hope you also tried the shiftkeys and the special ones

  • @GameBacardi
    @GameBacardi Місяць тому

    You have good videos!

  • @markinius8866
    @markinius8866 Місяць тому +1

    would it even more cursed if you do modulo on the data var?

  • @iLuvHalav
    @iLuvHalav Місяць тому

    Awesome video, thanks aloy will be sure to subscribe 😊

  • @gareth4348
    @gareth4348 Місяць тому

    Should have set the value to random to make it even more cursed.

  • @Amythiz
    @Amythiz Місяць тому +2

    Would be funnier to make it add 1 only sometimes

    • @shadesoftime
      @shadesoftime Місяць тому +1

      Make it rare enough so the user thinks they made a typo

  • @RahulNarsing-lx9pi
    @RahulNarsing-lx9pi Місяць тому +5

    Yoooooo, epikkk

  • @mohsenzare2511
    @mohsenzare2511 Місяць тому

    amazing!!

  • @Wraient
    @Wraient Місяць тому

    "Subscribe for more programming videos"

  • @lt3lt3lt3
    @lt3lt3lt3 Місяць тому

    I loved this lol

  • @luissalazar5000
    @luissalazar5000 Місяць тому

    Subscribed 👏👏👏

  • @braz1080
    @braz1080 Місяць тому +7

    still waiting on html tutorial

    • @nirlichtman
      @nirlichtman  Місяць тому +7

      on my list :)

    • @nathaaaaaa
      @nathaaaaaa Місяць тому +1

      ​@@nirlichtmando the most cursed html tutorial you can:)

    • @GameBacardi
      @GameBacardi Місяць тому

      adBlocker :D

  • @ignorethenameplis
    @ignorethenameplis Місяць тому +7

    can you make a tutorial on malloc in C

    • @nirlichtman
      @nirlichtman  Місяць тому +3

      on usage of malloc or how it is implemented?

    • @robertkiestov3734
      @robertkiestov3734 Місяць тому +8

      @@nirlichtman An implementation video would be great

    • @ignorethenameplis
      @ignorethenameplis Місяць тому +1

      ^

    • @petriksacha
      @petriksacha Місяць тому

      @@robertkiestov3734 Agreed, I'd love to see how such a vital function does stuff under the hood!

  • @augnix888
    @augnix888 Місяць тому

    :O thats crazy

  • @justinnamilee
    @justinnamilee Місяць тому

    Neat!

  • @bdnugget
    @bdnugget Місяць тому

    Can you go out of bounds by pressing the most right key?

    • @shadesoftime
      @shadesoftime Місяць тому

      It will paste the source code for half-life 3

  • @user-hd3pz2ow1b
    @user-hd3pz2ow1b Місяць тому

    co0l!

  • @adamhafchadi4924
    @adamhafchadi4924 Місяць тому +4

    Hey, Thanks a lot
    I am not surte that i fully why you needed you create cpio archive

    • @nirlichtman
      @nirlichtman  Місяць тому +13

      I used cpio to make the initramfs (containing only the init executable with the read.c code), so that the kernel would load this code as the first user mode process (init), after it finishes initializing.

  • @majtej2403
    @majtej2403 Місяць тому +2

    Cool material. The question is why are you using windows to program the linux driver?

  • @ChandrashekarCN
    @ChandrashekarCN Місяць тому

    💖💖💖💖

  • @TuxikCE
    @TuxikCE Місяць тому +4

    why though 😂?

    • @Paolog_
      @Paolog_ Місяць тому +6

      fun

    • @fqdn
      @fqdn Місяць тому +11

      Learning by breaking stuff is one of the best ways to go about it when getting into developing for an existing codebase, stuff like this is a great way to get your feet wet. It's also a good sanity check if you are even modifying the right thing.

  • @BenjaminWheeler0510
    @BenjaminWheeler0510 25 днів тому

    It’s pronounced qemu.

  • @gdplayer1035
    @gdplayer1035 Місяць тому +1

    qiqcwetxiik

  • @nathaaaaaa
    @nathaaaaaa Місяць тому +1

    I've done it much easier when they fucked up the Logitech's Lightspeed driver. In fact I didn't enjoy it

  • @eVITORIOe
    @eVITORIOe Місяць тому +1

    I'm with @bernhardbaumgartner4702
    You make these things look pretty easy !