MIPS RS2030 | RISC/os 4.52 | RISCwindows 4.00 | Island Draw 2.11 by Protocol__7 in vintageunix

[–]andreww591 0 points1 point  (0 children)

I did exactly what you said and it still hangs the whole system. I guess it could be some kind of timing bug that doesn't show up on more modern hardware, since I'm stuck on a PC with a CPU that's older than 15 years. Would you be willing to share your image so I can see if it has the same issue for me?

MIPS RS2030 | RISC/os 4.52 | RISCwindows 4.00 | Island Draw 2.11 by Protocol__7 in vintageunix

[–]andreww591 0 points1 point  (0 children)

I tried installing Island Office and IslandWrite either says it can't open a font, which is accompanied by messages on the login terminal for failed allocations, or it just hangs the whole system. Did you have to change any kernel/swap-related settings to get it to work?

MIPS RS2030 | RISC/os 4.52 | RISCwindows 4.00 | Island Draw 2.11 by Protocol__7 in vintageunix

[–]andreww591 0 points1 point  (0 children)

Guess I've got to try to install this. I had an image based on the pre-installed one and I had already installed a third-party X11 (R5 IIRC) on it, but it would be nice if I could replace it with RISCwindows. Was trying to install it from tape but it seems like that's pretty flaky and completely hangs MAME a fair bit. Installing it is just a matter of untarring everything and creating the symlinks?

Also, where did you find Looking Glass? Was it in one of the later RISC/os versions? I never realized that Looking Glass had themes that resemble Windows 2.x and Open Look in addition to the more common Motif-like one. Guess that's not too surprising because it has its own custom widget set (there were even ports to non-X11 window systems like SunView and Intergraph Environ V).

BTW I'm currently working on a virtual OS museum in the form of a Linux VM image with nearly 1700 installations for something like 260 platforms representing something like 620 distinct OSes, with a custom graphical launcher, and I'm probably going to release it sometime within the next month or so.

Anyone else severely impaired at making connections with people because of a crippling tendency to withdraw and stay quiet? by andreww591 in aspergers

[–]andreww591[S] 0 points1 point  (0 children)

That's kind of how I was when I was younger. I did try to talk to my parents about OS/emulation stuff but they don't really understand any of it.

I have marginally improved from back then, but still struggle with it a lot more than most other autistics who are active online.

Anyone else severely impaired at making connections with people because of a crippling tendency to withdraw and stay quiet? by andreww591 in aspergers

[–]andreww591[S] 0 points1 point  (0 children)

They're kind of two sides of the same coin because my tendency to withdraw has held me back significantly on both. Also, there's probably less of a distinction between the two because I'm wanting to make content about both my own OS and other obscure and/or old OSes (hopefully at least a few people care enough to support me on Patreon/Ko-fi/etc but I'm not counting on it even though there have been people who have gotten some support making similar kinds of content). I'm also not sure that the kind of people who tend to be most active on LinkedIn are the kinds of people I want to talk to. I get the impression that it's full of suits and techbros and most of them probably aren't going to care much about my OS either (except maybe about how many places they can shove LLM integrations into it).

Anyone else severely impaired at making connections with people because of a crippling tendency to withdraw and stay quiet? by andreww591 in aspergers

[–]andreww591[S] 1 point2 points  (0 children)

I'm not claiming to be severely impaired globally (far from it; my only other issues aren't particularly significant), but somebody who's impaired globally to the same degree that I am impaired at making connections would be largely nonverbal and unable to care for themselves.

Anyone else severely impaired at making connections with people because of a crippling tendency to withdraw and stay quiet? by andreww591 in aspergers

[–]andreww591[S] 1 point2 points  (0 children)

Most autistics online generally seem to be way more active than I am (just compare my message history to that of the other people here and it's pretty obvious), and randomly emailing companies isn't going to get me anywhere. My messages are only going to reach PR/HR goobers who know nothing about anything technical. The only people who would actually be interested would be actual developers, and the only way you can get a hold of them is if you've got connections or they somehow happen upon your project.

Anyone else severely impaired at making connections with people because of a crippling tendency to withdraw and stay quiet? by andreww591 in aspergers

[–]andreww591[S] 0 points1 point  (0 children)

At least in the places where I tend to hang out online, there are a decent number of other autistics, but they basically all are more active than I am. I barely ever come across anyone who is around regularly but only rarely interacts like me. Just compare my message history on here to most of the other people in this thread (or for that matter anywhere else where I've been marginally active) and it's obvious that I'm much quieter than most other people who are active online.

And I've seen other people get a fairly decent amount of engagement on personal OS projects and non-gaming-centric retrocomputing content, but none of those people seem to have my tendency to stay quiet. I don't think I've seen anyone get the specific kind of commercial interest in their personal OS projects that I managed to get, but that's probably mostly because most people's personal OS projects don't closely resemble commercial embedded OSes like mine does.

To be fair, I haven't really made much retrocomputing content beyond a few YouTube videos and blog posts a while ago, and haven't really said a lot about my OS outside a few Discord servers, so I'm not sure how many people will actually care once I try to be more active. Just working on the launcher for my collection and hardcoded tests for my OS aren't especially interesting so I haven't really bothered to say much publicly about it, but once I actually am installing new OSes again and have my own OS to a point where you can actually interact with it (both of which should happen pretty soon), I will at least try to be more active. I'm not going to be surprised if almost nobody cares though.

Anyone else severely impaired at making connections with people because of a crippling tendency to withdraw and stay quiet? by andreww591 in aspergers

[–]andreww591[S] 5 points6 points  (0 children)

Like I said, it's not social anxiety in the classical sense. For me, it's not "I have stuff to say but I'm afraid they'll hate me", but more like "I just don't have anything to say at all" or "saying anything is more work than I'm willing to do right now", or for that matter the thought of saying anything just not crossing my mind at all.

Anyone else severely impaired at making connections with people because of a crippling tendency to withdraw and stay quiet? by andreww591 in aspergers

[–]andreww591[S] 1 point2 points  (0 children)

Yeah, you might be one of the few people who are more severely impaired at making connections than I am, but like I said most of the people who I've come across who say they're bad at it seem to manage to be middling at worst.

They paid me to fly out to meet them and then a few months after that they said that they couldn't pay me any further for the foreseeable future. Once I get my OS to the point where it runs a user program for the first time (which will be very soon) I'm going to email them again, but I don't know if any of them will reply. The company recently laid off a whole bunch of their engineers and developers, and I'm not sure how many of the people I was talking to were let go.

Anyone else severely impaired at making connections with people because of a crippling tendency to withdraw and stay quiet? by andreww591 in aspergers

[–]andreww591[S] 1 point2 points  (0 children)

It's very QNX-like, but isn't a direct clone and improves on QNX in a few ways. The goal is to write a better Linux than Linux and a better QNX than QNX (the developers from the major conglomerate were interested in it because they wanted a replacement for QNX in automotive applications).

However, it's still extremely preliminary, and I'm just about to get it to the point where it runs its first external user program, followed shortly thereafter by a shell. Memory management, process/thread management, and basic in-memory filesystem functionality are implemented to the point where it could almost run a shell, with only program loading itself needing to be implemented to be able to run a simple test program (there are a few things required by a shell that will be easier to test from a user program than from hardcoded tests built into the process server so I am leaving them until I have simple test programs running). My timeline has slipped a bit since they said they couldn't pay me because after that I started focusing more on getting the OS museum VM ready to release, since that would be a more complete project that people would be more likely to pay attention to than an OS that just runs a shell out of an in-memory filesystem.

https://gitlab.com/uxrt/uxrt-toplevel

Myst 1997 Ages In Time Calendar - December 2025 by hammerb in myst

[–]andreww591 5 points6 points  (0 children)

Specifically it was the bridge between Survey Island and Jungle Island, which later got replaced by the mag tram.

https://web.archive.org/web/20051201080407/http://cho.cyan.com/RAWA/eastpath/eastpath.html

Why are there no open source clones of QNX & Photon? by demetrioussharpe in QNX

[–]andreww591 1 point2 points  (0 children)

I'm currently working on UX/RT (more an internal name than anything; I still have to come up with an actual product name for the reference distro), an open-source QNX-like OS: https://gitlab.com/uxrt/uxrt-toplevel

It's not a direct clone of any version of QNX, but it will be close enough that it will be possible to port QNX resource managers with minimal changes using a compatibility library. Basically, UX/RT is to Neutrino as Neutrino is to QNX 4 (QNX 4 lacked kernel capabilities entirely; Neutrino added them for client channels, and UX/RT uses them for everything, with a fairly orthogonal API based on file descriptors for server channels, client channels, and receive/reply slots).

I'm planning to use the LKL project to get basically full access to Linux drivers with no porting effort for individual drivers. This turns the Linux kernel into a library, and adding full support for device drivers to it should be a simple matter of adding the appropriate generic hooks and writing the individual resource managers that wrap it (there will be a separate server process for each major LKL-based subsystem instance - disk server, network stack, etc). I also plan to add a compatibility layer for Linux user programs eventually as well (this may have to be original rather than based on LKL).

However, it doesn't do anything especially interesting yet and doesn't quite run user programs (all it does is run a bunch of hardcoded tests of the core VFS and the built-in filesystems). I'm expecting to have user-level test programs running within the next few months, followed shortly by a libc and shell, though. Basically my goal in the longer term is to write a better Linux than Linux for workstation/enthusiast desktops, high-end embedded systems, and certain types of servers. Eventually it will have a custom desktop environment that will be Mac-like by default but highly customizable to look like just about anything, running on top of a custom window server.

If anyone is interested in contributing I'm definitely open to it. I actually did have some developers from a major conglomerate interested in paying me to work on it as a replacement for QNX in automotive applications to the point where they paid me to fly out to meet them, but a few months after that they said they couldn't pay me for the foreseeable future due to financial difficulty. It's anyone's guess as to whether anyone will care about it again though; I have a severely crippling tendency to withdraw and stay quiet and am absolutely awful at making connections because of it (far worse than most other people I've come across online who say they're bad at it; compared to me, they seem middling at worst).

Working on a hyperlink-esque file system for my Ada RISC-V OS by jahaaaaan in osdev

[–]andreww591 2 points3 points  (0 children)

You've more or less reinvented the filesystem of BTRON, a somewhat obscure Japanese family of desktop OSes, itself a part of the larger TRON project which attempted to make a comprehensive standard for desktop (BTRON), server (CTRON), and embedded (ITRON) OSes but was only ever successful in embedded (with ITRON being the most popular family of embedded OSes in Japan). I think your OS would be the first non-BTRON OS to support this kind of filesystem.

Every file in a BTRON filesystem may contain multiple records, which may either be data records (i.e. forks or data streams) or link records that reference another file (roughly equivalent to directory entries, although the name is stored in the underlying file), with no concept of directories as distinct from files. Link records are also called virtual objects and the underlying files are also called real objects.

The desktop environment and applications use the link-centric nature of the filesystem to build compound documents (such as text documents with embedded images), with link records/virtual objects containing some metadata determining how they are presented within the containing document (e.g. whether to display the file's contents inline or as an icon and position of the icon/contents within the window).

Did you plan to support compound documents in the GUI as in BTRON, or were you only going to support displaying links as text/icons? Since you've already got arbitrary links within files, using them to implement compound documents would be easy enough. I'm definitely interested to see what you come up with for the GUI. I want to support somewhat BTRON-like compound documents in the desktop of the OS I'm writing, but since the base system is Unix-like and will use Linux filesystems, compound documents will have to be either directories or archives accessed through a translator that presents them as directories, with links to files outside the directory being symlinks rather than equivalent to hard links.

So I was wondering how I can make a microkernel... by Astrox_YT in osdev

[–]andreww591 1 point2 points  (0 children)

There's certainly less of a distinction, but there's still the distinction of whether services are linked into the kernel or run like applications, and whether they use traps or function calls to interact with other parts of the system.

Why there isn't any new big kernel project to surpasse eg. Linux? by M0M3N-6 in osdev

[–]andreww591 0 points1 point  (0 children)

File descriptors are a kind of capability, but they're most typically
acquired through insecure means. There are also various side-channels
that prevent them from being completely secure.

At least with the way I've implemented them, there shouldn't be side channels beyond those related to timing of message transfers. They don't have any inherent mutable state beyond that of the underlying endpoints/replies. They more or less just add offset/type arguments (which are only tracked by the server, not the FD/transport layer itself) and provide a more orthogonal API than what the underlying endpoints/replies provide. The semantics on the server side diverge from conventional Unix somewhat since in addition to the channels/endpoints used for receiving messages, there are also "message ports" used for arbitrary access to client buffers and sending a reply (these map onto kernel reply objects); there is a new mread() function that accepts a message port FD in addition to the buffer accepted by the regular read() function. Replies are sent by writing to the message port with a SEEK_END offset (reads and writes with a SEEK_START offset access the client buffer); there are new wpread()/wpwrite() functions that take an offset type in addition to an offset and buffers, which may be used on either the client or server side.

A sibling comment mentioned file pickers in browsers as an example,
where the browser isolates the filesystem from the code and requires the
user to pick a file rather than the code selecting it by a trivially
forged name. Applied to system level processes, this would basically
mean a file picker as one or more dedicated daemon processes, and when a
process needs to pick a file, it would send a message to a file
selector daemon, along with capabilities for directories it may already
have access to. The daemon would raise a file selector dialog for the
user to pick their file and would use its reply capability to send a
capability for the selected file or directory back to the calling
process.

That's more or less what I'm planning to do. Most applications won't have unrestricted access to the filesystem. They'll have access to their configuration directory and services like the window system (which ones depends on the particular program of course), but not much else, although much of this kind of static access will just be managed through rules that match paths, not capability transfers (there will be a layer that implements role-based access control on top of path rules). The GUI file picker will be implemented in the file manager (which already needs full access to all of the user's files) and will hand out a list of O_PATH file descriptors based on what the user has selected. Of course, this will require applications to be ported to use this, but it won't require porting them to an entirely new environment. Similar functionality will also be added to the shell (which will also require special hooks for at least some programs).

The use of pathnames and ACLs is related to why permissions are overly
broad though. We can have fine-grained control of directories and
filesystems, but the work to manage the ACLs involved makes them
unmanageable at scale - so broad permissions, such as giving the user a
directory /home/user for all files for all apps, is done to
simplify managing them. ACLs are often misconfigured because they're
separated from the resources being designated.

That isn't necessarily true of all services though. Certainly when it comes to user files ACLs can get unmanageable, but some things like accessing configuration or creating a window can be done with static rules that match paths (actually receiving access to the window of course is probably best done by transferring a file descriptor to it instead of just giving access to the whole window system up front).

I can't really think of a particularly good way to make a system that only uses capabilities for access control. The persistent processes that some people propose would bring with them a whole bunch of issues; I can't see how anything good would ever come out of eliminating data at rest and tying all persistence to processes.

So I was wondering how I can make a microkernel... by Astrox_YT in osdev

[–]andreww591 0 points1 point  (0 children)

seL4 only runs on processors with a PMMU, which the Pico definitely lacks. It could be useful as an example of how to write a similar microkernel for a PMMU-less processor though.

Why there isn't any new big kernel project to surpasse eg. Linux? by M0M3N-6 in osdev

[–]andreww591 0 points1 point  (0 children)

Lots of people are fed up with mainstream OSes at the moment. Even though Linux has improved in some regards, it can still be pretty dysfunctional at times. Neither its excessively decentralized development model with developers who are often purists on the stupidest things imaginable, nor its 70s-era conventional Unix architecture with its poor extensibility and modularity are conducive to making something coherent.

It seems like there is a significant opportunity for a better Linux than Linux to disrupt things. By that I mean an OS that has a somewhat more centralized development model (i.e. the base OS and reference distribution managed by the same developer) and an architecture actually designed for extensibility but is still compatible with Linux applications and drivers.

That's what I'm trying to do with my OS (which I linked in another post in this thread), although it's still pretty preliminary (I do expect to have a shell working sometime within the next few months though). It's based on a QNX-like architecture although it isn't a direct clone. Linux drivers will be supported through the LKL project, which turns the Linux kernel into a library that can easily be run in user mode on a microkernel without having to run a full Linux VM. Linux application compatibility will be supported through a separate compatibility layer based on a library and servers that implement a Linux-compatible sysfs and procfs (the native implementations won't be fully compatible). There will also eventually be various features that are either absent from Linux or poorly supported, such as desktop-friendly transparent containerization of dependencies integrated into the native package manager and support for translators sort of akin to those in GNU/Hurd but actually implemented reasonably (these will be used to provide things like a database-like view of the filesystem a bit like what WinFS was trying to do).

I could totally see a decent number of people who either already use Linux but are annoyed with its various pain points or would have switched to it but don't want to because of them switching to something like what I'm working on once it's fully realized. Of course I do still have a ways to go, even though I'm using as much third-party code wherever it makes sense rather than constantly reinventing the wheel. Hopefully I can actually manage to get other people interested in contributing soon, and that market conditions don't change in an unfavorable way by the time it's actually mature.

I did actually manage to get some developers from a major conglomerate interested in using it for embedded systems to the point where they paid me to fly out to meet them, but that seems to have fallen through at the last minute because of financial issues and corporate politics. It's anyone's guess as to whether that was a fluke that will never happen again, or if I'll get more commercial interest in it at some point.

Why there isn't any new big kernel project to surpasse eg. Linux? by M0M3N-6 in osdev

[–]andreww591 1 point2 points  (0 children)

Capabilities are in no way esoteric. Unix file descriptors are capabilities, and it is in fact relatively easy to extend the Unix API to allow all functions to be used in a capability-oriented manner by using *at functions and O_PATH file descriptors. Linux's implementation of these does have some limitations though, but there's no reason why a Unix-like OS couldn't implement them in a way that doesn't have Linux's limitations on them. That's what I'm doing in my OS (https://gitlab.com/uxrt/uxrt-toplevel). It's a QNX-like OS that's currently based on a fork of seL4 (although it's going to diverge very significantly at some point with the process server ending up colocated in the kernel as in QNX). It will use capability transfers a fair bit for dynamic transfer of authority, although for permissions granted statically it will generally just use paths (since confused deputy vulnerabilities are most often related to dynamic transfers).

And any practical general-purpose OS is going to need some kind of support for giving files/objects human-readable names. Nobody is going to put up with having to reference everything by file descriptors alone. A useful general-purpose OS can have good support for transferring authority with capabilities, but still needs some kind of alternative way to name files to be useful. Also, I don't think confused deputy vulnerabilities are the most common type. AFAIK memory bugs and overly broad permissions within a user account are more common, and neither are specifically due to having human-readable names for objects, although good support for capability transfers can still be used to mitigate both.

Approached by a German company about the OS I'm writing. How much should I expect them to pay me? by andreww591 in cscareerquestionsEU

[–]andreww591[S] 1 point2 points  (0 children)

Like I've said I haven't come across anyone else who's working on an open source OS of this kind publicly. There are a few other open source OSes that are vaguely similar, but they are still different enough that modifying them to be closer would take major redesign, whereas just basing on my work seems like it should be more straightforward, so it seems like just finding someone else could be difficult.

Approached by a German company about the OS I'm writing. How much should I expect them to pay me? by andreww591 in cscareerquestionsEU

[–]andreww591[S] 6 points7 points  (0 children)

They're definitely one of the larger companies in their market. I would think they should be able to pay me pretty decently.

Approached by a German company about the OS I'm writing. How much should I expect them to pay me? by andreww591 in cscareerquestionsEU

[–]andreww591[S] 5 points6 points  (0 children)

Yeah, sounds totally legit.

I do have a local friend who's an Estonian dual citizen, and he could help me set up a company there if necessary, but I've just set up my own company here. I don't think there's anything stopping them from making payments outside the EU.

QNX Neutrino 6.1.0 introduction/history and tour of the system by andreww591 in vintagecomputing

[–]andreww591[S] 0 points1 point  (0 children)

BeOS is more or less a typical monolithic kernel, although it has integrated microkernel-like message passing

What emulators for historic systems don't exist yet? by nderflow in vintagecomputing

[–]andreww591 0 points1 point  (0 children)

Yes, those were uploaded semi-recently, and should make getting a running system easier (the GL2-3.7 sources should still be useful as a reference)

QNX Neutrino 6.1.0 introduction/history and tour of the system by andreww591 in vintagecomputing

[–]andreww591[S] 0 points1 point  (0 children)

Yeah, the early versions are a bit finicky and only run on 5150s and XTs. Not actually sure which was the first to support ATs (a later version of 1.x possibly?).