Writing a Really Tiny RISC-V Emulator

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2022
  • Github Project: github.com/cnlohr/riscv_emufun
    The Assembly talk: • Hackaday Supercon 2022...
    TCC Installer: github.com/cnlohr/tinycc-win6... / github.com/cntools/Install-TCC
    .exe file was compressed with UPX (Alternate EXE Packer) for thumbnail.
    Discord link: / discord
    Terminal Font: AudioLink Console Heavy audiolink.dev/
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 201

  • @DanielSMatthews
    @DanielSMatthews ปีที่แล้ว +61

    It makes sense that you would be a RISC giver rather than a risk taker. 🙂Thanks for sharing.

    • @CNLohr
      @CNLohr  ปีที่แล้ว +9

      Oh I like that joke.

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* 🐁

  • @lpcamargo
    @lpcamargo ปีที่แล้ว +12

    So cool, the whole thing fits the L1 cache of a modern processor with lines and lines to spare 😎

    • @CNLohr
      @CNLohr  ปีที่แล้ว +2

      Absolutely!

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* 🦊

  • @Greeegification
    @Greeegification ปีที่แล้ว +42

    Nice work! A fun step with emulators is adding in a gdb server/hooks so you can debug your emulated processor with breakpoints and watched variables just like on real hardware.

    • @CNLohr
      @CNLohr  ปีที่แล้ว +7

      I haven't gotten to it, but, that can totally be done using this emulator. The .h file can have overrides to facilitate this.

    • @ioinfinity
      @ioinfinity ปีที่แล้ว +1

      *\(^___^)/* 🐒

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* 🦒

  • @wi8shad0w
    @wi8shad0w ปีที่แล้ว +4

    Thumbs up for putting it together .. 👍🏼👍🏼

  • @developandplay
    @developandplay ปีที่แล้ว +2

    So happy you are back and working on stuff that I'm also interested in!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      It may only be for a bit but I'm gonna try to make it longer!

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* 🐒

  • @maxime22000b
    @maxime22000b ปีที่แล้ว +1

    I learnt a lot with this video, thanks for sharing. Hope you'll continue this project and make other cool stuff with it !

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      I'm gonna be making at least one more, so be sure you're subbed!

    • @maxime22000b
      @maxime22000b ปีที่แล้ว

      @@CNLohr I am, for quite a long time already ;)

  • @iuri.castro
    @iuri.castro ปีที่แล้ว +2

    Great project! love your videos, I hope you have more time to do them next year!

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      We will see. I may or may not.

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* 🐒

  • @GiveAcademy
    @GiveAcademy ปีที่แล้ว +22

    I understand the whole being excited about a project… reach a monumental milestone and then hit the unsure if you will continue or quit while ahead haha. This is great work and you are very inspiring!!! I hope your curiosity continues to fuel your excitement for this project. Where this goes will be a great adventure. Keep up the awesome content! I have a feeling your channel is on the cusp of massive growth! Again great job!

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      I did push it a litttle bit further, so I'm going to make at least one more video!

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* 🐻

  • @nethoncho
    @nethoncho ปีที่แล้ว +4

    This has helped me in planning my discrete TTL risc-v cpu. Thanks for posting

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      Excellent! If I find any bugs I'll do my best to keep updating the template. Someone else already used my emulator as a template to write a RISC-V emulator in squirrel.

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* 🐑

  • @qbqbqdbq
    @qbqbqdbq ปีที่แล้ว +2

    solid work

  • @user-ir2fu4cx6p
    @user-ir2fu4cx6p ปีที่แล้ว

    Nice to see come back with such beautiful way.

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      Thanks. I "want" to keep making videos. It's just really hard to keep up the momentum.

  • @pedrorocha6203
    @pedrorocha6203 ปีที่แล้ว +4

    Nice one! Thanks for sharing, there's a lot of cool stuff to learn from this... cheers!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      This RISC-V emulator is like the gift that keeps giving. I just made two more videos on it, you should check my channel.

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* :😺

  • @jamesdoesthings1096
    @jamesdoesthings1096 ปีที่แล้ว +4

    Yay new upload!

  • @vreascul
    @vreascul ปีที่แล้ว +47

    maybe you don't want to put a red line at the bottom of the thumbnail as some people may think that they already watched the video

    • @RagbagMcShag
      @RagbagMcShag ปีที่แล้ว +3

      100%

    • @vreascul
      @vreascul ปีที่แล้ว +2

      also, great work!

    • @CNLohr
      @CNLohr  ปีที่แล้ว +9

      Osnap.

  • @junkokonno
    @junkokonno ปีที่แล้ว +2

    actually insane

  • @guatagel2454
    @guatagel2454 ปีที่แล้ว +1

    Hi! Good to see you!

  • @killiangrieg
    @killiangrieg 8 หลายเดือนก่อน

    This is most impressive.

  • @JohnLauerGplus
    @JohnLauerGplus ปีที่แล้ว

    Dude, nice work on this!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Thanks!

  • @blablamannetje
    @blablamannetje ปีที่แล้ว +1

    Amazing! Thank you.

  • @dakshinatharindu7422
    @dakshinatharindu7422 4 หลายเดือนก่อน

    Great work! Thanks for sharing

    • @CNLohr
      @CNLohr  หลายเดือนก่อน

      Thanks for watching

  • @Anon.G
    @Anon.G ปีที่แล้ว +4

    Great video

  • @atypicalambience3487
    @atypicalambience3487 ปีที่แล้ว +1

    It's funny how many times I have rediscovered your channel learning about unrelated interesting things.

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      I like finding out lots of unrelated interesting things!

  • @0xD1CE
    @0xD1CE ปีที่แล้ว +4

    Haha this is brilliant!

  • @Maxjoker98
    @Maxjoker98 ปีที่แล้ว +33

    Great video, as always. And I know that the ESP32 isn't the only place this could be useful, but you can absolutely boot noMMU Linux natively on an ESP32 with external PSRAM! I've got a kernel+buildroot setup that boots successfully in QEMU!

    • @jesset2550
      @jesset2550 ปีที่แล้ว

      Esp32 cannot use the psram as rwx it can only rw or rx from the ram it's a limitation of the hardware.

    • @Maxjoker98
      @Maxjoker98 ปีที่แล้ว +1

      @@jesset2550 While that's technically true, a) that does not mean it can't run Linux b) ESP32-S3, the newest ESP32, actually can just map 32MB of external RAM on *both* data and instruction bus. It works in QEMU already, I'm almost confident that I can get this to work on real hardware when I finally get a real ESP32 with PSRAM in my hands.

    • @browaruspierogus2182
      @browaruspierogus2182 ปีที่แล้ว

      ​@@Maxjoker98 ESP32-S3 is not RiscV and has closed ISA protected by Xtensa. Esp is slowly replaced by chips like K210 or latest M1s that are superior and cheaper and much better. Espressif should make 64bit dual core riscv to make it easier for people but they care about money more

    • @Maxjoker98
      @Maxjoker98 ปีที่แล้ว +1

      ​@@browaruspierogus2182 I never claimed the ESP32 S3 is RISC-V. Also the Xtensa ISA is well documented(You probably mean they should freely license it and their designs based on it).
      But I think what they should do is make the tiniest noMMU Linux capable SoC they can make, with Wifi and Bluetooth.
      I think there would be a market for that.
      And they already make the S3, which is capable of running Linux - I would love an ESP with RISC-V and PSRAM support, but that doesn't exist yet(It wouldn't have to be such a large and complex SoC as the K210, which is way more expensive).

    • @browaruspierogus2182
      @browaruspierogus2182 ปีที่แล้ว +1

      @@Maxjoker98 you probably didn't read posts on esp32 forum how many problems S3 has with managing f.ex LCD and Wifi/BT at same time. And how clunky and bas is psram. The design is really bad and they need to come up with better design

  • @iamvfx
    @iamvfx ปีที่แล้ว +1

    Nicely done!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Thanks!

  • @Weaseldog2001
    @Weaseldog2001 4 หลายเดือนก่อน

    This is cool.
    I'm working on a very similar project for a RISC-V emulator, intended to be run as a sandbox inside of other applications.
    It'll be my second go at writing an emulated CPU. My first one used a made up machine instruction set, and I programmed in machine code by hand.
    When I paid attention to the RISC-V, I saw that my project was similar in may ways.
    In this second attempt, I am focused minimizing resources and and maximizing speed.
    After looking into other emulator projects, including yours, I see that the footprint is likely to be smaller than I anticipated.

    • @CNLohr
      @CNLohr  หลายเดือนก่อน +1

      You might want to join my Discord, there's other RISC-Vers there. You can ping me at `cnlohr` on Discord.

  • @MarquisDeSang
    @MarquisDeSang ปีที่แล้ว +15

    Now try to implement prediction branching (it would probably slow down everything). Impressive stuff. Making a Risc-V emulator is something, maiking it actually run an OS is a different thing. I have the Neza Sipeed Risc-V SBC with Debian, Risc-V is the only possible future for everything. It is so well designed and their ABI makes everything faster because we know what registers to use.

    • @CNLohr
      @CNLohr  ปีที่แล้ว +7

      It almost certainly would slow things down, because there's already going to be branch prediction on the emulating hardware. Making that more sophisticated will just add abstraction overhead.

    • @MarquisDeSang
      @MarquisDeSang ปีที่แล้ว +1

      @@CNLohr It would probably still run faster than WASM

    • @tablettablete186
      @tablettablete186 ปีที่แล้ว

      ​@@MarquisDeSang lol

    • @ioinfinity
      @ioinfinity ปีที่แล้ว +1

      *\(^___^)/* 🐕

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* 🦒

  • @filipszkandera8267
    @filipszkandera8267 ปีที่แล้ว +2

    That is so awesome! This really encourages me to try to implement Linux on my RV32 system as well! (I'm not sure Its doable, but we'll see :))

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      yess

  • @JohnMitchellCalif
    @JohnMitchellCalif ปีที่แล้ว +1

    wow, super interesting!

  • @proxy1035
    @proxy1035 8 หลายเดือนก่อน

    i'm sorry if you mentioned it in the video but i didn't notice if you said that your Emulator follows the Unprivileged or Privileged Spec for RISC-V.
    having Linux run without an MMU is already pretty dope, but it would be even more amazing if it could also run on a CPU without seperate privilege levels (like Unprivileged RISC-V) and just enough CSR's to implement a few interrupts.

  • @joedoe3688
    @joedoe3688 ปีที่แล้ว +1

    that was impressive!

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      Thanks.

  • @raguaviva
    @raguaviva ปีที่แล้ว +1

    we missed you!

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      I know it's just so hard to make time to make these videos.

  • @BryanChance
    @BryanChance ปีที่แล้ว

    Thanks for this video. I’m trying to learn to do something like this

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      I think you'll like my channel then! This kinda stuff is my jam.

  • @justanormalperson
    @justanormalperson ปีที่แล้ว +2

    that's cool

  • @luis87773
    @luis87773 ปีที่แล้ว +1

    Very cool stuff you do bro, pretty interesting and never boring, always able to lay the things down in a very inspiring way. I'm wondering if you could share some tips for someone who wants to learn programming in c/c++. (development environment, resources, books, etc.)
    Pd. I have a little experience programming in python.
    Thanks in advance bro, keep inspiring people!

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      1) Find communities. I have a discord.
      2) Make the leap. Code simpler things, but code them more in C.
      "For where your treasure is, there your heart will be also."
      DIVE IN!

    • @luis87773
      @luis87773 ปีที่แล้ว +1

      @@CNLohr Than you very much. I indeed wil follow those tips. I wish you all the good bro.

    • @ioinfinity
      @ioinfinity ปีที่แล้ว +1

      *\(^___^)/* 🦔

    • @ioinfinity
      @ioinfinity ปีที่แล้ว

      *\(^___^)/* 🐰

  • @lior_haddad
    @lior_haddad ปีที่แล้ว

    That's really cool!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Thanks

  • @LogicEu
    @LogicEu ปีที่แล้ว +1

    Wow!

  • @illegalcoding
    @illegalcoding ปีที่แล้ว +1

    Hey! Great video! I'm just wondering what font you use for your terminal and text editor? It looks great!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      audiolink.dev/

  • @SlyEcho
    @SlyEcho ปีที่แล้ว +1

    I tried to do a similar project, what helped me to get the decoding right was to print out the assembly and then it was pretty apparent if some number was wrong in comparison.
    5:25 can you replace the ninja requirement with samurai? That one is pure C and Make.
    14:04 xxd -e can show in little endian

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      14:04 - I didn't know that.
      And - I can't update the way buildroot builds. At this point, I've just removed qemu from the build tree.

  • @der.Schtefan
    @der.Schtefan 6 หลายเดือนก่อน

    Have you considered using ATDD (acceptance test driven design), especially with Cucumber, to test the specs of your CPU, before you implement it or run Linux on it? Or was the goal to make the source as small as possible, including "no unit test"? I think I would start getting nightmares designing a CPU emulation software without the ATDD for each operation.

  • @awuuwa
    @awuuwa ปีที่แล้ว +1

    impressive

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Thank you!

  • @scottfranco1962
    @scottfranco1962 ปีที่แล้ว

    Nice.

  • @bennguyen1313
    @bennguyen1313 ปีที่แล้ว +2

    In case anyone is interested, there's a good video where George Hotz opens the spec, and starts writing a little RISC-V core in Python and in Verilog!
    BTW, with so many different flavors of Risc-V chip, each selecting the ISA options it wants.. won't the performance between chips be different, depending on the silicon technology, and how it implements those instructions?

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      It absolutely will depend vastly. You could have 20MHz cores or 2GHz cores.

    • @BrightBlueJim
      @BrightBlueJim ปีที่แล้ว

      @@CNLohr Just as you can with ARM.

  • @SuperIva-DIY-RUS
    @SuperIva-DIY-RUS ปีที่แล้ว +1

    Wow! I wonder is it possible to run beowoolf cluster on blades based on risc-v (allwiner d1 for example)? And teach it to work with 10BASE-T for example? That is the case I would invest..

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      probably!

  • @belesiu
    @belesiu ปีที่แล้ว

    Charles! Nice Good to see you. Nice video. Still at the place we worked together at a few years ago?

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Still hanging on. Though I feel a little like "hang In there" from S08E11 of the Simpsons.

    • @belesiu
      @belesiu ปีที่แล้ว

      @@CNLohr Mob war or free pretzels?

  • @fluffycritter
    @fluffycritter ปีที่แล้ว +2

    MMUless Linux isn't anything new; 15 years ago a lot of embedded systems ran µClinux (aka uClinux), which was a fork of Linux specifically to not require an MMU. Really cool to see the idea alive and well, even if under a different project.
    And of course, really neat to see just how little code is actually necessary for RISC-V emulation (which isn't terribly surprising given the whole point to RISC-V).

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      This is mainline. Not a fork. That's what makes it so cool.

    • @fluffycritter
      @fluffycritter ปีที่แล้ว +2

      @@CNLohr Yeah, apparently uClinux got merged in quite some time ago! So it's neat that it's still working.

  • @paulk314
    @paulk314 ปีที่แล้ว

    This is awesome! I've been working on some similar hobby projects but nothing nearly as ambitious as trying to run Linux. I would not have imagined it could be run without an MMU (aside from in the "universal Turing machine" sense).
    I'm working on a simulator, assembler, and RTL implementation for FPGA. I want to get a basic RISC-V computer working on FPGA and then write a simple kernel for it. Now that I've seen this video, I'm more optimistic that I could at some point get Linux running on there, which would be amazing!

    • @be-tech1741
      @be-tech1741 ปีที่แล้ว

      Very interesting..

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Do ett. You could also try to make things _even more stripped down_ and use an emulator as a test bed for the features you intend to implement.

  • @prozacgodretro
    @prozacgodretro ปีที่แล้ว +1

    So... a question... can a No-MMU version of linux work on a 386 in something like an unreal mode? I've been thinking about this for the past couple days as I also became aware of the no-mmu kernel stuff.

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      As it stands, there's a little extra code that needs to be written per-architecture and there are still some unusual restrictions. But, the underlying answer is now "yes."

  • @x7mdNet
    @x7mdNet ปีที่แล้ว

    We need to compile it to WebAssembly 😱

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      It is painful that I'm not adding goto's to this code for this very reason.

    • @x7mdNet
      @x7mdNet ปีที่แล้ว

      @@CNLohr :(

    • @LekKit_
      @LekKit_ ปีที่แล้ว +1

      RVVM actually works with this, but perf is abyssmal ;D, and there is a way to do RISC-V->WASM JIT
      Sadly YT removes links to test page

  • @BrianG61UK
    @BrianG61UK ปีที่แล้ว +1

    Is the slowdown after initial stages of boot because I/O changes from polled to interrupt driven?

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      I believe so. Or more specifically, that the Kernel appears to force a context switch because it assumes there "should" be no more room left in the output buffer even though there is.

  • @PaulTaylor1
    @PaulTaylor1 ปีที่แล้ว

    I love that font on your terminal emulator, what's it called please?

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      It's in the description. audiolink.dev

  • @l3p3
    @l3p3 ปีที่แล้ว +1

    I feel like we have the same weird special interests just again. Running linux on $1 mcu is what I dream of for a long time. Someone seen my nc10 netbook from 2009 that I upgraded with usb 3.0? xD

    • @CNLohr
      @CNLohr  ปีที่แล้ว +2

      I think there's a chance!

    • @BrightBlueJim
      @BrightBlueJim ปีที่แล้ว

      The magic is that the $1 MCUs are so CAPABLE. I remember not too long ago, when people doing stunts like booting Linux on an 8-bit machine ... in about an hour.

  • @Kuratius
    @Kuratius ปีที่แล้ว

    Would this be adaptable for a pi pico or does it require a lot of ram? I mean the linux kernel, less the emulator.

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      There already is someone who's adapted it for the pico. It's called pico-rv32ima

  • @oglothenerd
    @oglothenerd 6 หลายเดือนก่อน +1

    Time for me to rewrite it in Rust!

  • @alexv1841
    @alexv1841 ปีที่แล้ว +1

    thans for sharing!
    terminal font name please

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      Mentioned in my other video description "AudioLink Mono" -- It's available on the VRChat AudioLink Discord

  • @erikwg3814
    @erikwg3814 ปีที่แล้ว

    "It's like an embeddable scripting language, except you can compile to it with gcc"
    That is indeed one way describe an entire RISC-V emulator xD

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      I'm glad it was technically accurate.

    • @BrightBlueJim
      @BrightBlueJim ปีที่แล้ว +1

      Scripting languages are all virtual machines. However, the point of most scripting languages is to avoid some of the difficulties encountered with compiled languages. So what has been achieved? You can now write in C what you could have written in Python? Umm...

  • @thechadbuddha
    @thechadbuddha ปีที่แล้ว +2

    funfact: opencomputers2 a minecraftmod has risc V emulation

  • @browaruspierogus2182
    @browaruspierogus2182 ปีที่แล้ว

    Kendryte K210 is great but newer 3-core riscV mcu is out too - M1s

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Sadly RV64, so less interesting for my purposes.

    • @browaruspierogus2182
      @browaruspierogus2182 ปีที่แล้ว

      @@CNLohr guess you don't read specs at all...

  • @omercelebi2012
    @omercelebi2012 ปีที่แล้ว

    I did not understand any point of this but watched. I know just Python and want to be familiar with C or Assembly. I would like to get tips where can I start RISC-V and do some simple projects.

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      I am not sure if I have the best answer. You usually learn C before doing embedded.

  • @sorin.n
    @sorin.n ปีที่แล้ว +2

    Yeah, but can it run Doom? 😅 Amazing work! 👍

    • @sellicott
      @sellicott ปีที่แล้ว +2

      He just posted a screenshot of it running Doom in the Discord last night.

    • @sorin.n
      @sorin.n ปีที่แล้ว +1

      @@sellicott I was just jocking but that's so cool!

    • @CNLohr
      @CNLohr  ปีที่แล้ว +2

      Check out my video I just posted! "But can it run doom?"

  • @BrightBlueJim
    @BrightBlueJim ปีที่แล้ว

    At first I thought, why would you want to emulate a microcontroller, on a microcontroller? But then I slowly started to realize, that it's all a matter of priorities. If you need more memory than your microcontroller has, then one option is to do swapping to an external device, to allow you to use more memory than you have, at the cost of a big reduction in performance. And sometimes it's worth the cost to be able to do things you otherwise couldn't. I say "external device", because I can just see people thinking to accelerate things by swapping to the on-chip Flash memory, and thereby wearing out their microcontrollers. I think Tesla had a problem like this. But if you have socketed Flash memory, in the form of SD cards or whatever the latest socketed format is, then what gets worn out is something that's replaceable. I worry about this a little on my laptop, since it runs a devil-may-care OS that swaps to a solid state drive that is a bit of a pain to replace. But then, by the time it wears that out, I'll be able (probably) to replace it with a bigger, faster SSD.

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Absolutely! There's a lot of weird reasons why it makes sense to virtualize your functionality. It's really nice to do with RISC-V because there's such good tooling and compilers to minimize the perf hit and frustration.

  • @craftnightz
    @craftnightz ปีที่แล้ว +1

    could you port this to webassembly then run Linux in the browser

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      Someone already made a better RV32 emulator that runs in-browser. bellard.org/tinyemu/

  • @kotcraftchannelukraine6118
    @kotcraftchannelukraine6118 3 หลายเดือนก่อน +1

    But what problem with adding MMU features to the emulator?

    • @CNLohr
      @CNLohr  หลายเดือนก่อน +1

      Nope. It adds code. I need the smallest emulator that can boot Linux

  • @vincei4252
    @vincei4252 ปีที่แล้ว

    Dude, you need a microphone pop-filter. Otherwise awesome stuff!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      I have one - it's just a few parts I re-recorded I didn't have it.

    • @vincei4252
      @vincei4252 ปีที่แล้ว

      @@CNLohr Ok, no worries. I noticed the audio got much better. I'm quite impressed with this project and I'm soaking up as much of it as possible. Build failed in subsystem for windows so I'll spin up a Linux VM to have a play. Thanks!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      @@vincei4252 let me know how it goes. I miiight try building it in WSL myself.

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      @@vincei4252 Also see my note about needing to fix your paths for WSL.

    • @vincei4252
      @vincei4252 ปีที่แล้ว

      @@CNLohr ugh. TH-cam. Sorry, I just saw your response. I wasn't notified. I was able to get everything working in a VM all the way to the command prompt. Superb stuff. Got sidelined on other things but EEVBlogs video about 10 cent RISC-V microcontrollers reminded me to come back here.

  • @replikvltyoutube3727
    @replikvltyoutube3727 หลายเดือนก่อน

    this could be useful to make DSLinux 2.0

    • @CNLohr
      @CNLohr  หลายเดือนก่อน

      There are a ton of applications, and it's small and easy to use so give it a go!

  • @fifthperson9777
    @fifthperson9777 ปีที่แล้ว

    Does this mean i can run yolov5 on maixduino??

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      y not

  • @bart.grantham
    @bart.grantham ปีที่แล้ว

    Where can one find "AudioLink Mono"?

    • @CNLohr
      @CNLohr  ปีที่แล้ว +2

      audiolink.dev/

  • @lafemmedevastation
    @lafemmedevastation ปีที่แล้ว

    Probably another annoying question by me, but could you emulate a MiSTer FPGA on top of your RISC-V Emulator (instead of the ARM it currently uses)?

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      I don't understand what you are asking. I am not familiar with a MiSTer. But there are people who have RV32 emulators for FPGAs now.

    • @lafemmedevastation
      @lafemmedevastation ปีที่แล้ว

      @@CNLohr I'll try to clarify with a couple questions: Because RISC-V chips are so inexpensive, could they be _woven_ into a singular, unified "hardware" surface which serves all the modern needs of a full-featured computer (i.e. CPU, GPU, Buses and other SoC functions, aside from obvious separate need for storage), where the CPU, GPU, and Bus 'bundles' are modular enough to be _expandable_ in such a way that you can just throw more RISC-V processors at any 'expandable' category and it all still works?
      If so, could this same "RISC-V SoC" be emulated, where the MISTer FPGA _layer_ (not sure if this is only hardware or hardware + OS) would then be emulated on top of it? Finally, could the sum total of all that be used as a normal MISTer (instead of the ARM-based De10 Nano presently in use)?
      The reason for the last question is for the purpose of *knowing* whether or not it's going to work on whatever system you're emulating the RISC-V SoC, _before_ having the actual SoC built to silicon.

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      @@lafemmedevastation The biggest limitation is many tasks are serial and not parallel. Modern apps want very fast single thread execution. And it's impractical to use mountains of slow single processors to deliver something that would make a good system.

    • @lafemmedevastation
      @lafemmedevastation ปีที่แล้ว

      @@CNLohr Fair, thanks for thinking about it with me😺

  • @gvl610
    @gvl610 ปีที่แล้ว

    Will port it to Arduino Uno

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      😬

    • @BrightBlueJim
      @BrightBlueJim ปีที่แล้ว +1

      Of course it will. It has SPI, so just rack up a whole bunch of PSRAM. Everything else is just software.

  • @teddyjuma2060
    @teddyjuma2060 ปีที่แล้ว +2

    Whats your terminal font?

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      AudioLink Mono. It's by Llelloo in the VRChat AudioLink Discord Server

    • @alexhajnal107
      @alexhajnal107 ปีที่แล้ว +1

      @@CNLohr Is that available for download anywhere?

    • @justgook
      @justgook ปีที่แล้ว

      +1 really interested

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      @@justgook audiolink.dev/

    • @justgook
      @justgook ปีที่แล้ว

      @@CNLohr thanks

  • @GeorgeTsiros
    @GeorgeTsiros ปีที่แล้ว +2

    python
    because there weren't enough scripting languages already

  • @BrutalStrike2
    @BrutalStrike2 ปีที่แล้ว +1

    Got 10 IQ by just watching this video

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      It'll fade, but I'll try to keep making videos to help keep the IQ up!

  • @RooMan93
    @RooMan93 ปีที่แล้ว +1

    Maybe the og PSP can run Linux now

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      Looks like it should have no issues.

  • @kamillatocha
    @kamillatocha ปีที่แล้ว

    so did you made it run in VRchat ?

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      Not... yet.

  • @kreuner11
    @kreuner11 ปีที่แล้ว

    Ninja doesn't need Cmake, Cmake wants wither ninja or regular make

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      It's how Python is configured to compile.

    • @kreuner11
      @kreuner11 ปีที่แล้ว

      @@CNLohr yeah but idk if you got it in the right order,

  • @sellicott
    @sellicott ปีที่แล้ว +2

    First!

  • @Jkauppa
    @Jkauppa ปีที่แล้ว

    emulate the mmu inside the operating system

    • @Jkauppa
      @Jkauppa ปีที่แล้ว

      its just a memory access interface adapter

    • @Jkauppa
      @Jkauppa ปีที่แล้ว

      any law rule based will drain your iq if you rely on it

    • @Jkauppa
      @Jkauppa ปีที่แล้ว

      your life is death

    • @Jkauppa
      @Jkauppa ปีที่แล้ว

      what you praise shows what you believe in

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      It would be toooo sloowwwww

  • @GeorgeTsiros
    @GeorgeTsiros ปีที่แล้ว

    line 227, system("") huh? that one of the common windows bullshitty undocumented stuff?

    • @CNLohr
      @CNLohr  ปีที่แล้ว +2

      Absolutely. I explained it in my doom deep dive video I just uploaded.

  • @SquidHominid
    @SquidHominid ปีที่แล้ว +3

    Please invest in a pop filter. This video is VERY hard to listen to because of all of the plosives.
    Otherwise, amazing work! This is really cool and I look forward to seeing what you do next. :)

    • @waldolemmer
      @waldolemmer ปีที่แล้ว +2

      Boo

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Thanks! And I do have one, I just didn't use it for a few of the parts I had to re-record.

  • @soyitiel
    @soyitiel ปีที่แล้ว

    Linux in a shader go 🧮

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Already been done. Just the question is can I do it better