All You Ever Needed To Know About UPDI, And Then Some!

This entry is part 7 of 7 in the series IMPLEMENTING UPDI FROM SCRATCH

Part VI — The Complete Reference Design, Operating Guide, Troubleshooting Manual, and Resources Updated for the finalized NANO UPDI PROGRAMMER Rev. 1.0.0 hardware We began this series with one deceptively simple question: What is UPDI? Six parts later, the answer is considerably richer than: “It is Microchip’s one-wire programming interface.” UPDI is indeed a one-wire

All You Ever Needed To Know About UPDI, And Then Some!

This entry is part 2 of 7 in the series IMPLEMENTING UPDI FROM SCRATCH

Part II — Building UPDI from Scratch with an Arduino Nano In Part I we took UPDI apart conceptually. We established that UPDI is not merely “serial programming on one wire.” It is a layered system consisting of: Now we are going to begin making it work. Rather than immediately downloading somebody else’s programmer firmware

Chapter 38 — Turning /programs into a Real Directory

Chapter 38 — Turning /programs into a Real Directory
This entry is part 35 of 38 in the series Writing A Linux Style Operating System From Scratch

Before reading the shell examples in this chapter, be explicit about the prompt transition: toyix> is the kernel monitor. ush> is the user shell. So when this chapter shows commands like: those commands must be typed inside the user shell after toyix> run shell. In Chapter 37, Toyix gained its first real directory support at

Chapter 10 — Timer-Driven Preemptive Multitasking

This entry is part 10 of 38 in the series Writing A Linux Style Operating System From Scratch

In Chapter 9, we built cooperative multitasking: That works, but it has a major weakness: A thread like that can monopolize the CPU forever. This chapter adds the next step: timer-driven preemption. With preemptive scheduling: OSDev describes preemptive multitasking as scheduling where an interrupt, usually timer-driven, allows the kernel to take control away from the

Chapter 41 — Dynamic /programs from the Program Registry

This entry is part 4 of 4 in the series AI for Software Development

Chapter 40 closed the loop on shell-visible background jobs by giving them local %N references. That matters here because it gave us a stable chapter boundary:the shell can now be scripted without hardcoding fragile PIDs, so the filesystem work that follows can focus on the namespace itself instead of fighting the test harness. The next

Chapter 7 — A Real Virtual Memory Mapping Layer

Chapter 7 — A Real Virtual Memory Mapping Layer
This entry is part 7 of 38 in the series Writing A Linux Style Operating System From Scratch

In Chapter 5 we enabled paging, but only with a fixed identity map: In Chapter 6 we built a heap, but it still had an important weakness: because only the first 16 MiB were identity-mapped. Now we fix the architectural problem. This chapter adds a small virtual memory manager, or VMM: This lets the kernel

Chapter 5 — Turning On Paging

Chapter 5 — Turning On Paging
This entry is part 5 of 38 in the series Writing A Linux Style Operating System From Scratch

In Chapter 4, we built the first memory-management layer: Now we add the next layer: paging. Paging lets the CPU translate a virtual address into a physical address through page tables. In 32-bit x86 paging without PAE, a virtual address is split into a page-directory index, page-table index, and page offset; page directories and page

Writing a Linux-style Operating System From Scratch

Writing a Linux-style Operating System From Scratch
This entry is part 1 of 38 in the series Writing A Linux Style Operating System From Scratch

Today, we are beginning a new article series: “Writing a Linux-Style Operating System From Scratch.” In this series, we will walk step by step through the process of creating our own operating system from the ground up. Many operating system tutorials stop shortly after the system boots and prints a simple message on the screen.

Building the i686-elf-gcc Cross-Compiler

Together, these tools allow us to assemble, compile, link, inspect, and transform kernel binaries without using the host operating system’s normal compiler target.

The Pirate Software Paradox: What Happens When Influence Outpaces Skill

The Pirate Software Paradox: What Happens When Influence Outpaces Skill
pirate

There’s a real disconnect between the code that’s visible and the veteran status that’s claimed. This discrepancy isn’t trivial