Comment by JoeAltmaier
3 days ago
Used to be a staff member working on an x86 OS called CTOS. I realized if I implemented a couple of traps, we could run command-line DOS programs. So I did. And it worked. Dev tools, text processing, piped commands all worked.
It helped that the DOS executable format was the same as the CTOS format - because we had traded Bill Gates our linker (which produces executables) for his BASIC compiler.
Looks like this one? https://en.wikipedia.org/wiki/Convergent_Technologies_Operat...
Thanks for sharing, never heard about it before. What was kernel programming back then? Briefly checked the wikipedia and looks like CTOS was kinda big in the government space back in the 80s.
It was popular with govt because it came with an HDLC network build-in, server/client depended on the OS you booted. This saved you a network administrator.
The kernel was in Intel ASM86 but the rest of the OS was written in PLM86. When I joined it was 2MB of code on a 128K 8086 cpu. By the time I left it was 9MB of code running on an 80386.
If you wanted to get into development mode in CTOS, the keyword was 'developement' - an e between the p and the m. Worked on this system back in early 1990 as a developer.
hello! hello! I was mainly admin and COBOL dev with them (I wish I kept the collection of the manuals and PRGs, alas when no space..), bitsavers have a quite collection (incl a virtualbox HDD) if you are interested!
if I implemented a couple of traps
What does this mean? System calls?
Similar but traps are triggered automatically on attempts to execute a protected instruction.
https://www.geeksforgeeks.org/operating-systems/traps-and-sy...
Why/when are traps used rather than explicit system calls? Is it just historical coevolution? Or is the idea that the user mode program doesn’t need to know that it’s unprivileged? Or is it just repurposing the error handler path to perform privileged operations?
11 replies →
if you know a particular process or system callmakes errors,then you run code that checks for that error,or exception,or preempively hooks a problematic system call,to redirect to "your"code that handles the state of exception,and returns.
https://en.wikipedia.org/wiki/Interrupt#Terminology
Before SYSCALL there was INT
I remember SVC. and also things like BR14 and IEFBR14
It's a trap
Need to pee? Take the a-trap to Shell.
[dead]
This is such a neat historical parallel
That's a great twist! Very few people traded Bill Gates a linker for a compiler!
Yes, I agree. Amazing twist of fate.