• 0 Posts
  • 24 Comments
Joined 4 months ago
cake
Cake day: July 8th, 2024

help-circle











  • Secureboot and DMA are two different and AFAIK unrelated things. Secureboot primarily exists to ensure that only trusted OS kernels are run on a particular device. Otherwise someone could just boot their own OS installation from wherever and then have it access your storage and other devices and thus compromise your machine. I am not entirely sure how it works but I think it uses cryptographic signatures for kernels and drivers that aren’t built into a kernel. I know that on Linux with Secureboot on if you want to use certain dynamically loaded drivers then they have to be signed. I prefer not to deal with all that so I just disable it in the firmware because no cyber criminal has physical access to my PC anyway.

    DMA is just a way to get data from peripherals without CPU intervention. Without DMA every time a peripheral wanted to send your machine data it would have to trigger an interrupt (or be polled continuously) which the OS would catch and then read the data from the device. This isn’t really super practical with modern hardware hence DMA allows peripheral devices to write directly to the system’s main memory without the CPU (or the OS that runs on it) being involved at all. Then the kernel can read that data from memory whenever it sees fit to do so.


  • By contrast, Windows is a microkernel. It only creates an API layer for the hardware vendor to write a driver that interfaces with Windows.

    NT is a hybrid kernel that is nearly monolithic.

    Also you don’t seem to understand what the difference between a microkernel and a monolithic kernel is. The defining difference is what mode and address space drivers and non-core kernel subsystems run in. If they run in the higher half in a privileged CPU mode like the base kernel then you have a monolithic kernel. If they run in userspace as one or more programs then you have a microkernel. If some run in kernel space and others run in userspace you have a hybrid kernel. And if your kernel exposes hardware interfaces directly to application programs providing only protection and multiplexing of them between programs and shared libraries are used to interact with those interfaces then you have an exokernel. If the kernel mimics the underlying hardware to each program running on top of it and let’s them think they’re running on the hardware directly then you don’t have a kernel at all you have a type II hypervisor.



  • If all you want to run is their essentially proprietary spins of Linux then go overpay for a Raspberry Pi.

    If you actually want freedom of choice for software and universally good driver support then ditch ARM and go for good old x86 based SBCs like the Radxa X4 which is in the same price range and has better performance while also being a completely standard Intel N series (formerly Celeron) based PC.

    Shit like this is why I don’t have high hopes for ARM based PCs no matter how hard Microsoft, Qualcomm, Nvidia, and MediaTek push for them. x86 and its ecosystem have basically perfected the formula for machines with standardized software interfaces and peripherals with the sole exception being GPUs which will always be a PITA on any platform.

    Even if you want to only talk about Linux while the kernel itself may support a fuck ton of architectures all the rest of the software you might want to use is only guaranteed to work on x86. On everything else it may or may not work well and for proprietary stuff it may not even be ported to other architectures at all.



  • They’re objectively better than the Raspberry Pi in every way and are much more standard ARM devices than the weird boot process of the Raspberry Pi, so generally speaking, more OSes just work.

    My Orange Pi 5 actually supports an open source EDK2 port so it can run any Aarch64 operating system that supports UEFI and ACPI or Device Tree which means almost every Linux distro, all the BSDs, Windows, and even more exotic and up and coming options.

    I actually bought it to test my own OS development project specifically because it’s one of the few ARM boards that supports the common boot and firmware standards.

    On the Raspberry Pi 5 which I also have if you want to use anything other than their own officially supported Linux distributions (so far only Pi OS and Ubuntu) then you have to modify your kernel or bootloader to work with its wacky boot ROM, lack of UEFI or U-Boot, and somewhat non-standard Device Tree along with tons of undocumented peripherals.

    Oh, and the Orange Pi has twice the number of cores. The RPi 5 has four Cortex A76 cores while the Orange has four Cortex A76 cores and four Cortex A55 cores in a big.LITTLE configuration.

    Honestly, any of the Rockchip RK3588 or RK3588S boards are way better than a Raspberry Pi. At this point, the only thing Raspberry Pi has going for it over its major competitors is the fact that the brand itself isn’t Chinese (although many of the boards are made in China).