This is a project to try to create as much of a fully public domain software system (PDSS) as possible. The assumption is that eventually, a fully public domain system will exist, from a public domain operating system to the applications running on it, comparable to popular operating systems like Linux, Windows, or Mac, etc.
Please see NOTES.md for more project-specific rules of thumb.
Please note this is also a brand new work in progress!
PDSS Github Link
If there are issues surrounding public domain licenses, that might be among the top issues to talk about, as creating a solid foundation to build upon. Some suggested licenses have been:
CC0: Creative Commons Zero. Some concerns were raised over if this license released patent copyrights; if not, couldn't the license be "patched" or slightly altered to cover that, if it were possible?
"Do What The Darned Heck You Want To" Public License, I think created in response to another license that used a curse word in its title, I think this is an equivalent license but am not sure.
Another question I've had is about how people might readily determine if their code can be released in to the public domain (or how they can tell if it has elements that might not make it suitable for releasing in to the public domain).
A last questions was, if you were to get inspiration from something that already exists, about how "different" your code should be to avoid it being subject to copyrights. It seems likely there should be some writing on this out there because "knock-off" or "inspired" software pieces were created under other licenses.
Because of the difficulty of writing drivers, it might be wise to focus on writing software for specific chosen hardware, and possibly some open hardware like the Novena Project might be a good choice.
Then, to write public domain software, it might be nice to have a programming language that's in the public domain to write in. At present, I only have found a few:
So-called "HolyC", which seems to lack documentation and perhaps the ability to be used outside of the TempleOS operating system.
Dry Language, created by one of the Unlicense co-creators or creator.
PDPCLIB (Public Domain Project C Library), which I think is just a library and not a full programming language?
One of these projects could be reworked, or a new programming language could be created from scratch.
The most promising project might be to rewrite one or both of the CMUCL/SBCL Common Lisp implementations, as CMUCL and SBCL are both mostly in the public domain except for some select files. If those non-PD files could be identified and rewritten, then forks like "PDCMUCL" and "PDSBCL" could be released.
Then, at some point, I expect a full public domain operating system will be created. At first it will have simple features, but may grow to something like Linux is today. I expect this could take a long time, but I also think there are a growing number of people interested in public domain software projects, so I'm not sure if we might have a lot of people willing to contribute to such a project. At present, the PD OS projects I could find online are:
TempleOS: This project in itself was eclectic and is considered finished, so it may not be the ideal basis for a PDSS, however a fork called ShrineOS exists to attempt to build on TempleOS in a more "modern" way. I have considered possibly another fork like "TemplelessOS" that might strip the "Temple" aspect of TempleOS and keep the functional operating system parts; I have wondered if in any event some parts might be salvaged from this to move PD OS development forward, but I suspect probably a new or alternative project altogether might be picked to move a PDSS forward. TempleOS has, however, been said to be technically impressive for one person to have created.
PDOS: Public Domain Operating System. This appears to be the most active current effort to create a public domain operating system. Note how I have refered to PD OSs with that kind of spacing, to contrast with "the" singular PDOS project.
AlotwareOS - I do not know how this compares to the others, it seems like a small project.
BefOS - Same as AlotwareOS, don't know how it compares and seems small, but either might have something the could be built upon or learned from, or the projects themselves might be functional to fork and build on.
In addition to these, I think there would be nothing wrong with starting up a new few projects from scratch, and I have an interest in trying that maybe at some point.
The most promising shell available seems to be the Public Domain Korn Shell (pdksh), which is mostly in the public domain except for a few files which I think are identified here. If those are the files or we could identify them and rewrite them, we could release a fpdksh (FULLY public domain korn shell...).
Kakoune seems like the clear winner here, as it is a new/modern project and is released in to the public domain. This is a great example of good current public domain software, the quality of which I hope the other mentioned categories can be brought up to. Some other projects I found that might be reworked or learned from:
WED, Windows Text Editor
This might be one of the more challenging ones, but maybe something of a CLI browser like links or lynx could be made without a lot of difficulty, to at least get the ball rolling.
I may not promote any of them, but a few are listed on the PDS Wiki page.
From the core above, it would seem like the rest of the software that people want could just be added and subtracted as people need.
Public Domain Software (Wikipedia)
1. Improve Current PD Projects
2. Suggest Current License-Free Software Become PD
3. Create A Fully PD Fork Of Currently-Existing Mostly PD Projects (pdksh or CMUCL/SBCL cores for instance)
4. Write New Software From Scratch
Are you interested in participating in or leading an effort to create a full basic PD software system? What can be done to move PD software forward? I think a lot of people are interested in this, so how could we effectively organize moving on the top priority projects? Perhaps, check out the "NOTES.md" link , and then open an issue if you have any feedback.