Image 1 — I turned an ESP32 and a Pi Pico 2 into a C64 emulator
Image 2 — I turned an ESP32 and a Pi Pico 2 into a C64 emulator
Image 3 — I turned an ESP32 and a Pi Pico 2 into a C64 emulator
▲ 8 r/SBCs

I turned an ESP32 and a Pi Pico 2 into a C64 emulator

The title says it all really and the pictures tell the full story.

For those curious, YES! It is the actual OS kernel for C64 and Basic running on these devices.

I still need to implement SID, VIC-II for all the fancy graphics it can run and all of the quirks that come with it, 1541 and datasette drives, Illegal opcodes, Interupt dispatching and CIA write-collision detail.

https://www.zimmers.net/anonftp/pub/cbm/firmware/computers/c64/
Made this surprisingly easy to do since it provided the bin files I needed.

u/JescoInc — 19 hours ago
▲ 6 r/osdev

Caching Model Video Demo

https://youtu.be/fca1CWhH9E8

This demo showcases https://github.com/magiblot/tvision being used with this OS (which I have dubbed PersonaOS). The main selling points of this kernel architecture type is that you can have multiple "personalities" running in tandem. That means you can have a BSD personality and Linux personality that can run applications written for those operating systems natively.
You have 1 tiny core kernel that runs with elevated permissions, everything else is usermode. This includes the personalities, drivers and applications.

This has been implemented following this paper: https://www.usenix.org/conference/osdi-94/caching-model-operating-system-kernel-functionality

Yes, obvious bugs are obvious. But getting an unmodified TUI application to run has genuinely made me seriously happy.

youtu.be
u/JescoInc — 6 days ago
▲ 0 r/osdev

Working on a mini project based on the Caching Model Paper by David R. Cheriton and Kenneth J. Duda

My question for you fine folks, is simple. Do you have SBC readily available? If so, what do you have?
The idea is that I want to make a demo to share that works on hardware that the majority of you guys own.
Yes, I know I could do QEMU, but I don't want to go that route and there are valid reasons why I don't want to release it as QEMU for discussion.

reddit.com
u/JescoInc — 9 days ago
▲ 61 r/SBCs

The newest addition to my Collection

My latest toy: Forlinx OK3572-C

Rockchip RK3572

ARM:2×Cortex-A73 + 2×Cortex-A53+ 4×Cortex-A53
NPU:4TOPS INT8,supporting INT4/INT8/INT16/FP4/FP8/FP16/BF16
GPU:ARM Mali-G310V2 Mc1, supporting OpenGL ES 1.1/2.0/3.2, OpenCL3.0, Vulkan 1.4
VPU:
Hardware Encoding:H.264, H265, 4K@60fps
Hardware Decoding:H.264, H.265, VP9, AV1, AVS2, 8K@30fps or 4K@120fps

4GB LPDDR5 RAM
64GB eMMC

It cost me $270 with shipping and an addition $120 due to customs.

Repost because I was an idiot and posted the images in the dumbest possible order.

u/JescoInc — 13 days ago
▲ 3 r/SBCs

Forlinx OK3572-C carrier

My latest toy.

Rockchip RK3572

ARM:2×Cortex-A73 + 2×Cortex-A53+ 4×Cortex-A53
NPU:4TOPS INT8,supporting INT4/INT8/INT16/FP4/FP8/FP16/BF16
GPU:ARM Mali-G310V2 Mc1, supporting OpenGL ES 1.1/2.0/3.2, OpenCL3.0, Vulkan 1.4
VPU:
Hardware Encoding:H.264, H265, 4K@60fps
Hardware Decoding:H.264, H.265, VP9, AV1, AVS2, 8K@30fps or 4K@120fps

4GB LPDDR5 RAM
64GB eMMC

u/JescoInc — 13 days ago
▲ 329 r/SBCs

The SBC Drawer has been organized!

I decided that I should probably share the update from yesterday's post where people saw the unorganized "SBC Drawer". And I wanted to also showcase that they don't sit in the drawer collecting dust. So, I shared that the Orange Pi RV 2 and Pi 5 are connected and in active use. I swap depending on what I am doing with my Main PC and Elgato capture card / USB to UART connector and the CrowView Note.
The SBC Drawer is to my immediate right for easy access.

Inside of the Mimic Case is my Pi Pico 2 W with the test breakout board and my cheap FPGA (this is for later development adventures)

u/JescoInc — 16 days ago
▲ 5 r/osdev

Cache Kernel

The OSDevWiki mentions a Cache Kernel type. The exact verbiage is:

"The Stanford cache kernel caches kernel objects, like address spaces and threads, and allows usermode “application kernels” to manage them, loading and unloading them as needed. Application kernels manage their threads' page faults, exceptions, etc., and the cache kernel allows several of these application kernels to coexist in a single system."

Unfortunately, that link was dead for me, which sent me on a little rabbit hole of research.
To which I came across: https://www.usenix.org/conference/osdi-94/caching-model-operating-system-kernel-functionality

I'm currently in the research and understanding phase of this type of kernel because there don't seem to be any examples of it being implemented in the wild anywhere that I could find. I looked on GitHub and other online / public repository spaces to no avail.

I'm thinking that I should be able to take some of the code from tutorial-os and adapt it once I have wrapped my head fully around the concept while being able to reuse one of my SBC for this (I'm thinking the KYX1 as it is the board that is most fresh in my memory).

So far, my reading of this document has surfaced these key points about it.

The Cache Kernel caches four descriptor types and nothing else. Those being:

  1. Kernel objects
  2. AddressSpace objects
  3. Thread objects
  4. MemMapEntry

It essentially treats kernel objects as cached copies of state the application kernel owns.

Further investigations provide a rather interesting consequence of this design:

You can have different ABI / SBI kernels, meaning, you could make kernel personalities that run different processes side by side and mutually isolated. Like say, a kernel personality for Unix (BSD) and a separate one for Linux, compile user applications for those and it would just run.

The reason for this is because Cache Kernel Architecture is essentially a kernel that loads another kernel that loads user applications.

reddit.com
u/JescoInc — 1 month ago
▲ 32 r/SBCs

This is the level of ridiculousness I get up to

CrowView Note connected to the LattePanda MU MXM carrier board.
In other words, a laptop with external components.

Is it stupid? Yes.
Is it awesome? Also Yes.

This is why I love SBC and the maker market.

u/JescoInc — 1 month ago
▲ 45 r/SBCs

LattePanda MU RTX 3060

This thing is an absolute massive beast!
I haven't even powered it on yet.

The AC adapter specs:
AC Input: 100-240V 2.4A 50-60Hz for input
DC Output: 20.0V... 9,0A 180.0W

The board itself has 3 Display port and 3 HDMI ports.
4 USB ports with 2 of them being 2.0 and the other 2 being 3.0.

M.2 ports:
M.2 Key E type 2230
M.2 Key M type 2230

It has an 8 pin ATX/EPS plug.

There are Debug UART pin holes on the board, but no stems on it.

What kind of test should I run on it? I'm obviously gonna try out some of the latest games on it and run Geekbench 6. I wanna know what the community wants to see with it though.

For reference, the MU inside of it is the N305 with 16GB of ram and 64GB eMMC on it.

https://www.dfrobot.com/product-3119.html

Edit:

Geekbench results are in!
https://browser.geekbench.com/v6/cpu/18738702
https://browser.geekbench.com/v6/compute/6733374
https://browser.geekbench.com/v6/compute/6733367

u/JescoInc — 1 month ago
▲ 5 r/osdev

What are some techniques for bringing up and ending systems?

Essentially, I am trying to come up with a way to where most systems and drivers can be "spun down" or brought up through commands or some other mechanism but not leave the OS in a state where it would crash and needs to be safe to do via user mode with syscalls.
I know there are various techniques for this and I am trying to gauge which technique I want to use. Googling doesn't surface all techniques that could be used and I thought it would make for a great conversation.

reddit.com
u/JescoInc — 1 month ago
▲ 22 r/SBCs

Milk-V Jupiter NX (Not Jupiter 2)

I've had the Jupiter NX for awhile now and it took me quite awhile to figure out how to boot the damn thing.
Using BalenaEtcher with an image didn't work and the reason seems to be because it basically came from the factory bare.
I had to use titanFlasher, which is the what Sipeed recommends with their LicheePi3A.

As for the carrier board I used for the Jupiter NX, it is the Jetson-IO-Base-A (Works with the Jetson Orin not the Nano Super). After flashing the eMMC, I plugged it into my CrowView Note to use it like a laptop. Currently updating Bianbu OS.

After updating, I will be running Geekbench on it and sharing the results as I am sure there are quite a few people that would be interested in those numbers.

u/JescoInc — 1 month ago
▲ 20 r/SBCs

Sipeed K3 ITX

My preorder for this board finally arrived! Context from: https://www.reddit.com/r/SBCs/comments/1tacqbm/sipeed_k3_or_milkv_jupiter_2/

Edit:
You may notice the distinct lack of an HDMI port. That's because the first USB-C port is a full featured USB-C port that supports graphics and power.
I was able to get it to boot (it comes with Bianbu installed on it)

It feels buttery smooth to use and I'll run some benchmarks on it in a bit. I have the 16GB model.

Edit 2:
Here's the Geekbench scores for those that are interested.
https://browser.geekbench.com/v6/cpu/18694031

u/JescoInc — 1 month ago

How's the weather at this present time for you? (7/10/26 8:41pm)

I'm in the mid-west, Missouri. It is presently 69 degrees F (20.5 degrees C), cloudy with it about to dump another bucket of rain on us again in about 15 minutes.

reddit.com
u/JescoInc — 1 month ago
▲ 4 r/osdev

What is something you've learned from doing OSDev that other people should know about?

For me, the concept of journaling is fascinating. Crash-Consistency is one of those things that I think are deferred until something happens, even in application and web development. In OSDev, it can be the difference between a file(s) being lost and / or corrupted and a recovery with minimal loss and no corruption (based on technique used).

reddit.com
u/JescoInc — 1 month ago
▲ 0 r/osdev

Why isn't the multi-arch fat binary more common in osdev?

This is more of a discussion topic.

I don't mean a binary that asks "Which ISA am I?" as that is a circular question because this question itself is an ISA specific act. What I mean the binary that says, "I am x ISA, where is my entry point?" because the firmware will do the selection as it already knows and acts as which ISA it is.

Let's get into it. So, with Perdition-OS (Tutorial-OS), I had gone with the tried and true approach of building my ELF files and images specifically for each ISA. That means there is a separate ELF and img file for RISC-V, ARM64 and x86_64.
Which led me down a rabbit hole of, "Can I make a single file carry more than one ISA?"

The answer to this was, "Yes, but with caveats".

combined.efi is byte-for-byte one file that's both a valid PE32+ EFI app (UEFI parses the PE, maps sections, calls efi_main, x86 over ConOut and a carrier for a RISC-V flat kernel at offset 0x10000, relinked for 0x20010000 so U-Boot's go 0x20010000 lands on it over SBI.

Nothing's decoded twice: UEFI reads only the PE, U-Boot only jumps to the RISC-V bytes. Same file in both roles.

The reason it works where an instruction-level polyglot can't: the two firmwares don't share a loader. UEFI does a structured PE load, U-Boot does a raw jump which means that each just enters its own slice by its own convention. It's the Apple-fat-binary idea, except there's no shared header any loader parses; each firmware finds its slice independently.

There is one additional caveat for this idea. It leans on the UEFI loader tolerating the overlay past the PE's declared sections, a signed or stricter firmware could reject it.

So: is this just underused, or is there a good reason it stays niche? What am I missing?

reddit.com
u/JescoInc — 1 month ago
▲ 4 r/Operatingsystems+1 crossposts

Perdition-OS Development Update 7/3/2026 (Formerly Tutorial-OS)

Perdition-OS is a complete overhaul of Tutorial-OS where I took portions of the parity C and Rust code to generate a clean split in responsibilities and a well defined FFI layer. The Vertical HAL architecture has been massively expanded. Watchdog implementation, SMP with accessing all cores on the system, Work stealing scheduler, separation of kernel mode from user mode apps, PDF renderer, PNG and JPEG rendering, FBX rendering (partial implementation based on concepts seen in UFBX), user mode apps can only be written in Rust and a topology system for being able to view what hardware exists and how they function.

The UI is still early and subject to change, however, I personally really like the design as it gives detailed information that is rarely exposed.

The rationale for this is that there is a clean separation between systems and should be a project that will help guide someone towards building an OS of their own. I focused more on the "boring" apps because to me, it is something that would make the average person care about the OS for their SBC and give them a starting point for forking and making the OS handle the things they care about.

Just in case the embedded player isn't playing for you, here's the video link:
https://youtu.be/vP8qLRjq3Wg

youtu.be
u/JescoInc — 2 months ago

What is your least favorite Linux distro and why?

For me, it would probably be a tie between Fedora and Ubuntu. I used to really like both of them in the 2000s. The last time I looked at them (6 months ago), I didn’t like the direction the GUI had gone for the general release and they felt heavy/ clunky to use.

reddit.com
u/JescoInc — 2 months ago