Documentation overview
Where to find stuff
Are you looking for a softcopy of a booklet I mailed you? Download the preprint.
- A preprint describing the Dauug|36 architecture (early 2024, 76 pages)
- Marc’s dissertation (late 2022, 460 pages)
- The Dauug House (this website)
Note: Metadata was recently added to the preprint for better cataloging. Nothing else changed.
Who should read it?
Current documentation for Dauug|36 is oriented toward technical persons who can spend considerable time perusing the material. It is intended to provide a starting point for someone who seeks to do one or more of:
- write and use Dauug|36 assembler programs
- learn about or try the Osmin operating system for Dauug|36
- extend any of the Dauug|36 assemblers
- extend the Dauug|36 firmware
- extend or modify the circuitry
- understand opcodes that are only found in Dauug|36 machines
- rule out, or search for, exploitable defects in the architecture
- construct a prototype
- fork the project
- assess the project for underwriting
Persons without some general understanding of how central processing units work, or who have never worked with an assembly language before, are unlikely to get much mileage out of this documentation. A technical understanding of the causes and exploitation of computer security defects is also beneficial.
Porting existing software to Dauug|36
If you are new to Dauug|36 and reading this documentation with the thought of porting your favorite language, operating system, tools, or application to Dauug|36, you should anticipate challenges at the outset.
- The architecture is very different from those you have used before.
- System memory is very constrained due to not allowing any DRAM.
- There is all but zero existing infrastructure to start from.
- Languages like C are built around assumptions that don’t hold for Dauug|36.
- POSIX operating systems are built around assumptions that don’t hold for Dauug|36.
- Understanding this architecture will require some effort.
If you’re still interested in the Dauug|36 even if none of the software you have in mind might ever run on this architecture, I think you will enjoy this documentation. Bear in mind that right now, the only feasible language for writing applications is Dauug|36 assembly language—and it’s not a bad language, in light of what the instruction set offers.
After assembly language, I predict that the first programming language for Dauug|36 may be a small interpreted language with static typing, with the intepreter written in assembly language. By using a self-hosted assembler with a human-verified executable to build the interpreter, it will be possible to exclude toxic “easter eggs” from the interpreter.
The next programming languages to come to Dauug|36 will probably be very lightweight, not particularly mainstream, and have toolchains that are easy to audit for security, languages such as Scheme or Lua. Don’t expect the GCC, LLVM (Clang, Rust, etc.), or Python language families to come around anytime soon, or necessarily ever.
Getting help
Questions and suggestions should be directed to the Dauug|36 architect, Marc Abel, in the Department of Computer Science and Engineering at Wright State University, telephone +1 937 775 3016.
Part of my work is to get the word out concerning Dauug|36, so whether or not you believe you can do anything to help, I would love to hear from you. Email is welcome, but telephone is preferred.
Documentation license
Copyright © 2020–2024 Marc W. Abel.
This work is licensed under a Creative Commons Attribution 4.0 International License. For more information, see https://creativecommons.org/licenses/by/4.0/