Screwing Up Linux Kernel Keyboard Driver

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

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

  • @bernhardbaumgartner4702
    @bernhardbaumgartner4702 2 месяца назад +233

    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 2 месяца назад +66

    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 2 месяца назад +9

      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 2 месяца назад +15

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

  • @catsawkotowaty9111
    @catsawkotowaty9111 2 месяца назад +75

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

  • @krzysztofadamski7804
    @krzysztofadamski7804 2 месяца назад +32

    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 2 месяца назад +1

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

    • @krzysztofadamski7804
      @krzysztofadamski7804 2 месяца назад +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 Месяц назад +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!

  • @mzakyr342
    @mzakyr342 2 месяца назад +12

    Underated youtube channel

  • @johanngambolputty5351
    @johanngambolputty5351 2 месяца назад +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 2 месяца назад +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!

  • @bacphan7582
    @bacphan7582 2 месяца назад +4

    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 2 месяца назад

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

  • @megakev321
    @megakev321 2 месяца назад +7

    I love this channel!

  • @shadesoftime
    @shadesoftime 2 месяца назад +1

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

  • @Scorpieonna_Sting
    @Scorpieonna_Sting 2 месяца назад +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.)

  • @thesushifiend
    @thesushifiend 2 месяца назад +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...

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

    Keep making these videos! I loved this channel

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

    Thank you for creating such interesting, educational and amazing videos

  • @sintaklaas6427
    @sintaklaas6427 2 месяца назад +4

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

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

    bro I love these videos

  • @CYXXYC
    @CYXXYC 2 месяца назад +3

    im having a key stroke

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

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

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

    This is hilarious and very informative 👍

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

    You have good videos!

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

    amazing!!

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

    Awesome video, thanks aloy will be sure to subscribe 😊

  • @RahulNarsing-lx9pi
    @RahulNarsing-lx9pi 2 месяца назад +5

    Yoooooo, epikkk

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

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

  • @markinius8866
    @markinius8866 2 месяца назад +1

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

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

    I loved this lol

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

    Would be funnier to make it add 1 only sometimes

    • @shadesoftime
      @shadesoftime 2 месяца назад +1

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

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

    Neat!

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

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

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

    "Subscribe for more programming videos"

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

    :O thats crazy

  • @user-hd3pz2ow1b
    @user-hd3pz2ow1b 2 месяца назад

    co0l!

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

    Subscribed 👏👏👏

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

    💖💖💖💖

  • @braz1080
    @braz1080 2 месяца назад +6

    still waiting on html tutorial

    • @nirlichtman
      @nirlichtman  2 месяца назад +7

      on my list :)

    • @nathaaaaaa
      @nathaaaaaa 2 месяца назад +1

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

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

      adBlocker :D

  • @Jonathan-ru9zl
    @Jonathan-ru9zl 18 дней назад

    Hi. Is it possible to make linux driver that can detect fingerprint (to make the need to type the password endlessly obsolete)?

  • @ignorethenameplis
    @ignorethenameplis 2 месяца назад +7

    can you make a tutorial on malloc in C

    • @nirlichtman
      @nirlichtman  2 месяца назад +3

      on usage of malloc or how it is implemented?

    • @robertkiestov3734
      @robertkiestov3734 2 месяца назад +8

      @@nirlichtman An implementation video would be great

    • @ignorethenameplis
      @ignorethenameplis 2 месяца назад +1

      ^

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

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

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

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

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

      It will paste the source code for half-life 3

  • @adamhafchadi4924
    @adamhafchadi4924 2 месяца назад +4

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

    • @nirlichtman
      @nirlichtman  2 месяца назад +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 месяца назад +2

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

  • @TuxikCE
    @TuxikCE 2 месяца назад +4

    why though 😂?

    • @Paolog_
      @Paolog_ 2 месяца назад +6

      fun

    • @fqdn
      @fqdn 2 месяца назад +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 Месяц назад

    It’s pronounced qemu.

  • @gdplayer1035
    @gdplayer1035 2 месяца назад +1

    qiqcwetxiik

  • @nathaaaaaa
    @nathaaaaaa 2 месяца назад +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 2 месяца назад +1

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