Hacker News new | past | comments | ask | show | jobs | submitlogin
PDOS: Public Domain Operating System (pdos.org)
54 points by userbinator on March 25, 2023 | hide | past | favorite | 42 comments



I remember talking to this chap on the hercules-os380 mailing list. It used to be on Yahoo Groups but now it's here:

https://groups.io/g/Hercules-OS380

The list was once for people extending the FOSS Hercules emulator and the early IBM OS/360 source code (available, but not technically FOSS) to make an emulator for an updated mainframe that never existed but could have more memory than the real things. Sounds crazy but it has some practical uses: IBM did do this later, but its OSes from that era are not FOSS or free: they are very expensive.

The author of PDOS seemed to feel that PCs ought to have descended from miniaturised mainframes, not from a scaled-up Intel 8080. He wanted to write a Unix-like OS but for mainframes, and port it to the PC.

It was very strange and confusing, and he did not explain it well at all. He seemed not to know (or care) about a lot of the history of computers, OS development or anything else: he seemed to feel he knew better and didn't need to know.

In the end, the group was almost all his posts, and I left it, unable to cope with the torrent.


I am the main author of PDOS. I am not claiming to "know better" (or even know what that means). And I don't recognize your description of "PCs ought" as an accurate description of my views. Or even understand what that means either. If you ask a specific question I'll try to give an answer, based on my current understanding, but note that all my beliefs are tentative.


My screen name here is my real name and the same name I used on the old Hercules list.

Your posts were the main reason I left that list, in fact.

I tried very hard to explain stuff to you, and offer what I hoped would be some useful guidance, information, history, code to read about, etc.

You dismissed it all, and everything that everyone else on the list offered or said.

I couldn't stand the constant negativity, and in the end, I left. If nothing else, as someone who's worked with Free Software and Open Source for this entire century so far and made it my career, your total misunderstanding of it and passionate unreasonable antipathy to it was extremely tiresome.

I am happy for you that you've got this far, and I wish you no ill. All possible luck with the project. I will not be getting involved with it again, though.


I dismissed "everything" that "everyone" said? What nonsense. Some people on the list made extremely valuable contributions. Some even provided extremely valuable code. Whatever this stuff was that I allegedly unreasonably dismissed, it apparently didn't stop getting PDOS working. Note that that was predominantly a mainframe list, and PDOS now works on real z/Arch hardware. And accesses 4 GiB of memory instead of being limited to 2 GiB. On real hardware. Despite being almost entirely S/370 code (generated by a slightly modified GCC 3.2.3).


> PDOS now works on real z/Arch hardware. And accesses 4 GiB of memory instead of being limited to 2 GiB. On real hardware

Where’d you get the real hardware to test it with?


A guy turned up to the PDOS discord and said he had a mainframe, then after some discussion he invited another guy with a mainframe to join. Neither had hard disks though, so I had to IPL from (emulated) tape. There are photos in the hercules-380 (not os380) group.


>I dismissed "everything" that "everyone" said? What nonsense.

You just proved their point.


Ah no, that doesn't constitute "proof" of the original statement. However, it does now introduce a burden on me to show one single example to prove that I have not (to date) dismissed everything that everyone said. Prior to this the burden was on the other person to demonstrate that I had dismissed everything everyone had said. And we can be generous and allow that there is an implied "during the period that I was a member of the group", as it is increasingly absurd that he "knows" what I did in a group that he isn't even a member of. Note that his statement is also an active rejection. So if someone said "Ok, I'm going to the beach" and I fail to reply at all, because I have no reason to dismiss that statement, that would also constitute a counter-example. It's quite normal to not make an effort to say "I agree/don't dispute" to every single sentence someone says. So if you give me a time period, I'll post a link to a message where there is no sign of me dismissing what they said.


> I dismissed "everything" that "everyone" said? What nonsense.

You just... dismissed everything they said again.


Dismissing one phrase/sentence from one person is a different concept to dismissing everything from everyone. And I have counter-examples of people providing value information. Only one counter-example is required to dismiss the original claim. Quite apart from the fact that it's his burden to prove.


I've interacted with kerravon86 in the past. I even contributed a little bit of the code in PDOS. After a while I lost interest in it though. One reason was that I'm used to developing software under macos/Linux using Make or whatever – even on Windows I tend to use Cygwin/MSYS2/etc – PDOS (at least when I was working on it) had a build system based on DOS/Windows batch files. kerravon might find that a pleasant developer experience, but the majority wouldn't.

I remember when I wanted to add a tiny bit of C99 compatibility to PDOS or PDPCLIB (I think it was just stdint.h and stdbool.h headers, or something like that) and (from memory) got the reply "no, C90 only". I mean it is his project, he can run it how he likes, but a strict insistence on C90-only doesn't really appeal to me (or I imagine most contemporary C programmers). I think part of his reason was wanting to support old pre-C99 compilers; but, while that might be a reason to avoid some of the more advanced C99 features (e.g. _Generic), there's nothing about stdint or stdbool which can't be done under C90. So that's another reason why I lost interest. kerravon, I feel like you've got some unusual views which you don't want to budge on. (To be fair, I do too, but less so on technical topics.) Which is fine, but maybe have a think about how other people will experience that?

I also subscribed to some of the Hercules lists, I think hercules-os380 too. I have read some of kerravon's posts. I remember some tendency to go off-topic, and start talking about religion (the Muʿtazilah branch of Islamic theology) and politics (NATO)–which some people can experience as off-putting. But, I'll be honest, a lot of the technical discussions there went over my head. I'd be interested in any examples of what you are talking about.


stdint is a fundamentally wrong thing to do. If people were doing int_least32_t or whatever, ok, maybe that fits in with the spirit of C. But not int32_t.

"long long" itself is a fundamental violation of the original language too. If you want some large value - 512 bits, 1024 bits, 1113 bits, whatever - that's what "long" is for.

I am writing in C, not Turtle Graphics. I'm happy for the entire PDOS suite to be rewritten in Pascal or any other language. But first I haven't even completed C90. And it is extremely difficult trying to get a C90-compliant compiler too. I still haven't determined whether I need to dumb down PDOS to the C90 subset that SubC provides.

There are now makefiles for the 2 executables that I previously only provided bat files for. The bat files themselves were trivial anyway and I would have converted them to shell script for you had you asked. In actual fact, those .bat files are already shell scripts as far as I know. You can rename .bat to .sh if you want.

And you don't need to use Windows/Linux anymore, PDOS is self-hosting, including the building of the tools.


It was very strange and confusing, and he did not explain it well at all. He seemed not to know (or care) about a lot of the history of computers, OS development or anything else: he seemed to feel he knew better and didn't need to know.

IMHO that's a good thing. We need more people who haven't been indoctrinated (for lack of a better word) in the same old ways and are willing to think independently and discover what works and what doesn't for themselves.


Exactly. Conventional wisdom said that the 16 MiB barrier was impossible to break. After that was broken, the next thing that was impossible to break was the 2 GiB barrier. That was broken too. I'm talking about 32-bit S/370 code. Obviously IBM independently broke the 2 GiB barrier by switching to 64-bit programming.

But in hindsight, a "properly-written" program from the 1970s would have been restricted to 16 MiB at that time, but magically turned into 2 GiB in the 1980s, and then magically turned into 4 GiB in I think the 2010s (but this is murkier about when you want to start counting - real hardware was only demonstrated in 2022 or 2023 - can't remember).


> He wanted to write a Unix-like OS but for mainframes

Historically that was a very common thing, numerous examples from the 70s and 80s. Princeton's 1970s port (which Eric Schmidt worked on) that evolved into Amdahl UTS; AT&T's early 1980s port which run on top of TSS/370; Nixdorf ported Coherent from the PC to run on top of DOS/VS (IBM mainframe DOS/360, unrelated to MS-DOS/PC-DOS) and sold that as PWS/VSE-AF. There was also VM/IX, IX/370, AIX/370, AIX/ESA, MVS OpenEdition (now z/OS Unix System Services) and its VM/CMS equivalent (originally also called OpenEdition, now z/VM OpenExtensions). And nowadays z/Linux is big, and there was also Sine Nomine Associates' OpenSolaris port (which sadly went nowhere).

Writing a Unix subsystem which runs on top of MVS 3.8J (or DOS/VS, or VM/370, or MTS, or MUSIC, etc) would be interesting. Utterly pointless and practically irrelevant, but still interesting. But, since stuff like OS/380 and PDOS is just a hobby, who cares if it has a point or practical relevance? It has a point so long as somebody enjoys it.


> The list was once for people extending the FOSS Hercules

> emulator and the early IBM OS/360 source code (available,

> but not technically FOSS) to make an emulator for an

> updated mainframe that never existed but could have

> more memory than the real things.

BTW, I put a link to that project here:

https://news.ycombinator.com/item?id=35307444


Thank-you for the link. Messages continue here: https://groups.io/g/hercules-380/messages


It would seem this individual is a bit unbalanced...


Could well be, yes.

Our exchanges on the Hercules list were very unproductive and in fact frustrating to very unpleasant for me. Just remembering where I'd seen this before was slightly upsetting.


> For the benefit of blind and deafblind users, the above pictures, which are in fact just text, as everything in PDOS is, can be found in text format here.

I like this and thought it was admirable. Good reason to be building something - to make the world a better place for someone.


I wonder in what language this was written in. ;)


It's stated in the FAQ:

Was PDOS written in C90? As a matter of fact, yes. PDOS was in fact written in C90.


Yes, it's the only topic of the FAQ, hence the smiley.


Curious question. How hard would it be to write an OS in Turtle Graphics?


English.


Unrelated (it's written C90, God's own programming language as far as the author believes), but this comment reminds me of "The Osmosian Order of Plain English Programmers", a project which may be on the same level of usefulness as PDOS.

http://osmosian.com

To say something positive, it's refreshingly different.

I tried it out once, it seems to compile itself, but when I attempted to make literally any change it didn't work anymore. Whether trying to improve code generation, or just inserting a "Hello world" message somewhere.


My flippant response aside, this is an awesome thing to learn about on a Sunday morning .. thanks for that! I might have to give it a whirl.

Although ChatGPT seems to be making it easier and easier to program in English and get code in any language to run anywhere needed ..


I can't help but think this is a somewhat terrible name choice.


FWIW, the original name of FreeDOS was "PD-DOS".

https://www.freedos.org/about/

A lot of non-techies, or techies with not much exposure to the Linux/xBSD world, consider "PD" -- public domain -- to be more or less the same as FOSS.

PD, BTW, is a USA concept and doesn't really exist in the rest of the Anglosphere.


What does the UK and Australia consider Shakespeare's "Macbeth" to be?

That's the concept, regardless of whether they (we) chose to name it differently.


> A lot of non-techies, or techies with not much exposure to the Linux/xBSD world, consider "PD" -- public domain -- to be more or less the same as FOSS.

I find a lot of old "public domain software" – especially from the 1970s and (early) 1980s, it seems unclear what exactly the authors mean by "public domain". A few even assert it is both "public domain" and "copyright" simultaneously, suggesting they actually think "public domain" means "freely redistributable" or something like that. But, nowadays understanding of the difference seems much more common. Most FOSS licenses come with conditions – MIT/BSD are often presented as "liberal", but even they have attribution requirements. PD has no conditions, including no legal requirement for attribution. If you can't legally pass it off as your own work, it isn't PD. A zero-condition copyright license, like so-called "0BSD", is practically equivalent to PD though, even if the work technically remains copyrighted.

I agree that it is unethical to pass someone else's work off on your own. But legal attribution requirements cause a lot of bureaucratic pain if you worry about technical compliance with them. I don't like that pain and feel bad about imposing it on others, which is why for personal projects I prefer PD or PD-equivalent like 0BSD. I think attribution is best left as a matter of legally-unenforceable ethics.

> PD, BTW, is a USA concept and doesn't really exist in the rest of the Anglosphere.

Public Domain absolutely does exist in English law, and the rest of the Anglosphere. Copyright exists for a limited time (usually 70 years after death of author, but details vary); when it expires, the work enters the public domain.

I think what you are alluding to though, is there is a legal dispute about whether you can voluntarily put a work into the public domain by relinquishing the copyright before it expires. It is pretty clear under US law you can; it is very debated under non-US law. In some countries, the consensus answer seems to be "No" (for example, Germany). From what I understand, in the UK/Australia/etc, the question is totally unsettled, different lawyers have different opinions and no court has ever ruled on it.

However, in practice, it doesn't make a huge difference. Most people nowadays who try to put things in the public domain use something like Unlicense or CC0 – which basically contain a super-liberal fallback copyright license. So, if any court rules that the attempt to explicitly put the work in the public domain is void, the fallback copyright license means "it is still technically copyrighted but you can treat it as if you were public domain"


> suggesting they actually think "public domain" means "freely redistributable" or something like that

I definitely recall some people understanding "public domain" in that sense in the 1980s. Other people, frustrated with that understanding, did try to encourage adoption of "freeware" for "freely redistributable" software that was still subject to copyright. I don't recall seeing a great deal of distinction between the two prior to the publication of "The Cathedral and the Bazaar".


> I find a lot of old “public domain software” – especially from the 1970s and (early) 1980s, it seems unclear what exactly the authors mean by “public domain”. A few even assert it is both “public domain” and “copyright” simultaneously,

In the US, works that are subject to copyright are copyrighted by operation of law at the point of creation (there is basically no dispute about this.) There is (and this was more popularly adhered to, whether actually more popular or just more relevant, before F/OSS licensing became popular) a theory that the copyright owner can dedicate a work to the public domain (though, even among those who adhere to it, there has never been a single consensus on the mechanics of doing so, and some US copyright experts disagree that it is possible or claim that if it is, it is difficult [0]), so it is certainly plausible that someone would think it would be useful to assert that they were the copyright owner when also stating that the work had been dedicated to the public domain.

[0] Most, however, who think that public domain dedication as usually done doesn’t actually legally put a work in the public domain in US law do think it makes it harder for the copyright owner to later legally enforce the copyright, because of various other legal principles, like promissory estoppel.


>"PDOS/386 is good enough to run BBS software. But instead of using modems to exchange mail packets, data can be transferred using bluetooth, USB stick, or potentially the internet (email, Discord, Facebook)."

What an interesting idea! Using a social network to store and forward data packets for a BBS -- which is in effect, another miniature social network...


Does this run windows apps, I seen to get the idea it does from that text ?

If so, how ? - via Wine, HX DOS extender or it's ow. implemention?


Own implementation of MSVCRT.DLL (C library - just C90) and KERNEL32.DLL (subset) too, that do 32-bit MSDOS-like calls.


How "compatible" is it with MS-DOS? Can it run 16-bits DOS applications?


Source or binary?

In both cases - it depends.

PDOS/86 will certainly run some binaries. But if you say "what about xyz" the answer is likely "probably not".

I don't have a lot of interest in 16-bit, so it's there for demonstration purposes mainly.

My interest is 32-bit.

The biggest genuine task I do is getting GCC to compile itself with full optimization, which requires something like 23 MB of memory on the mainframe and something like 37 MB on a PC.

Far far below the 4 GiB barrier (or even 2 GiB barrier), but above even 16 MiB, nevermind 640k.

If it is source code you have, then it will require recompilation at a minimum. I made use of that fact to provide a C-defined API to wrap the INT calls, so at least nominally you need to use those C functions. But you may be able to get away with an existing int86x call (or even assembler instruction), as the interrupts do exist (ie even in 32-bit). If your MSDOS program is C90-compliant then that should work unchanged - but that is the case for any environment, not just MSDOS or PDOS/386.


Only the 16 bit version, and probably not very well, you're better off running literally any other DOS instead.

PDOS is all written in C with little or no assembly code (like FreeDOS, but unlike MS-/DR-/PTS-DOS), and worse than that the 16 bit version is compiled in the "huge" memory model which sort of simulates a flat address space. That means basically any pointer operation generates several extra instructions. Because the author feels that segmented memory should not exist and is something that can be ignored, even on 16 bit x86.

The author is - IMO - a kook¹, who among other things is obsessed with UNIX and C90 (no other version!). His only problem with Linux/BSD is that they use communist free software licenses instead of being public domain, which supports TRUE capitalist freedom. His OS will be the one to restart technological civilization after a nuclear war.

¹ I might be one too, and I haven't even seriously started on writing my own OS, which will use segmented memory in the 80286's protected mode, be written exclusively in assembly for the kernel and Pascal for userland, and do it's utmost to not accomodate UNIXisms and the horrible C programming language, while still being compatible with DOS.


The huge memory model supposedly has a 4% overhead in practice, cited by someone who did such programming under OS/2. Personally I wasn't able to detect any slowdown at all, which is not surprising, because you are normally expected to be bottlenecked on some application doing some calculation, not the OS.

I am not aware that I have any obsession with Unix. For PDOS/386, PDOS/86 and PDOS-generic I use an API inspired by MSDOS. For z/PDOS I use the MVS API. I specifically don't want anything to do with Posix which mandated fork() but didn't provide for simple memory allocation.


> The author is - IMO - a kook¹,

From many long threads on the Hercules/OS380 list, I would have to agree with you.

I suggested many profitable, interesting, relevant lines of research he should read about. Not use, even, just investigate, as they were highly relevant to his plans.

Nope. They were all dismissed as evil possible communist mind-poison.

:shrug:

In the end, I just left the list, which I almost never do.


Looks insane.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: