Recommendation for a very cheap SBC for kernel development with GNU-compliance in mind?

https://lemmy.world/post/4411968

Recommendation for a very cheap SBC for kernel development with GNU-compliance in mind? - Lemmy.world

Sorry, my question is a little weird, and is related to the hardware side of things. I’ve been really interested in contributing to the Hurd server and the experimental micro/nano kernel. But the issue is that I don’t know anything about kernel or system development. I wanted to start by creating the “Hello world” equivalent of kernel. I’m thinking of learning C17, since I’ve heard that most of the issues with C11 was fixed in C17, and I want to wait for C2x to be a little mature, and also avoid it’s possible pitfalls for now, but I’m also open to trying either of Zig or Vale (not sure if the memory allocation would be a problem). I’ve some across some articles saying that GNU folks are very strict about their hardware as well, and keeping that in mind, I want to use that constraint starting from the time I self-teach myself. Is there any cheap hardware that is in compliance with GNU? How about RISC-V processors? They should be GNU compliant, I assume? Are there any other options? I’m really tight on budget as I’m jobless right now - so my option must be under ₹1k, but I also don’t want to use something like a breadboard because that would be additional money I’ll have to spend. I want a full-blown SBC with very low specifications (RAM in mBs or kBs, single/dual core with very low IPC and frequency) because I have no clue on how to access display from other board without display connectors. I’ve not researched on other architecture, but I’m also okay with openPOWER and other open standards. Here’s a few boards I’ve come across: - Seeed Studio XIAO ESP32C3 [https://in.element14.com/seeed-studio/113991054/development-board-risc-arduino/dp/4060379?st=risc-v] - Sipeed BL808 M1s [https://robu.in/product/sipeed-bl808-m1s-risc-v-module-with-wifi-bt/] - Sipeed Longan Nano [https://robu.in/product/sipeed-longan-nano-risc-v-gd32vf103cbt6-development-board/] - DFRobot Beetle ESP32 – C3 [https://robu.in/product/dfrobot-beetle-esp32-c3-risc-v-core-development-board/] (perhaps the most promising out of the three?) But none of them are in SBC format, and I’m also not sure if either of them have display capabilities for console-like interface. And what about using storage drive? Should I worry about boot interface like BIOS and UEFI?

Have you considered QEMU? Not only can it emulate many different architectures (including RISC-V) but you’ll find the debug experience a lot nicer than messing around getting a JTAG probe up and running.
Oh yes, I have played with QEMU a little before. Would it be alright to use emulation though? Because processor timings might vary in real life, right? Could that cause any potential issue?
Generally you should be ok. While there is a performance penalty for emulation which makes guests appear less efficient than they otherwise would be its still plenty fast enough for system emulation of a target running a full OS. If you are in particular looking to optimise some very time sensitive routine or want to measure real world latency then it would be best to do that on real hardware. Also while QEMU emulates a large array of devices we aim for compliance with the specification/datasheet rather than bug-for-bug compatibility with actual silicon. Running on an x86_64 host your image will also be a bit more tolerant of memory barrier issues (assuming a weak order guest architecture). However as you stated you are just getting started in kernel/systems development I think working with emulation is a good first step to get familiar with how things go together before you start investing in actual hardware.