{
  "id": 1004802,
  "title": "Kernel that only runs an NES emulator",
  "url": "https://urgent.news/2026/08/15/kernel-that-only-runs-an-nes-emulator",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-15T04:45:19.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://github.com/vmartinv/nek"
  },
  "original_language": "en",
  "account": "The Nintendo Entertainment Kernel is a simple kernel designed to run an NES emulator, requiring no additional operating system. This bare-bones kernel lacks paging, userspace, and any form of protection. It is programmed to run only a single program, embedded directly into the kernel's code. The kernel can be built using the make command with the cross-compiler path set, generating a kernel.elf file in the bin folder. Besides the emulador program, three other functional programs can also be compiled using the kernel.\n\nTo utilize the kernel, copy the resulting kernel.elf file to the /boot folder and add an entry to the /etc/grub.d/40_custom file, specifying the kernel and initrd.img files. The makefile is configured to run QEMU using the provided disk image disk.img, with a loop device set up in the mount folder. The kernel's base system initialization is handled by kernel_entry() in kernel/arch/x86/init/boot.s, followed by kmain() in kernel/kmain.c, which starts various services. Finally, the main program is executed within the main() function in program/main.(c|cpp). This Nintendo Entertainment Kernel serves the sole purpose of running NES emulators.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}