These are great things to do if you want to buld a community around a project (which does help keep it going). But it's also OK to just build what you want and publish that and then maybe accept contributions under whatever terms you feel like. Community management really is an entirely different skillset from software developement and I wouldn't want anyone to be discouraged from open sourcing their software if they are not a "people person" and don't want to deal with all that. Just sharing your work already makes the world better and you are NOT required to do anything more than that.
Back in the day, Open Source projects thrived on the enthusiasm of creators who didn't view software development as a means to make money. Instead, they saw it as an opportunity to build a community and create superior products through collaboration.
However, the landscape has shifted. When an Open Source project becomes successful today, creators often transition the original product into a proprietary version with added features and support, available only through paid access. This practice undermines the original Open Source project, and usually end off killing the original project.
> they saw it as an opportunity to build a community
Many small open source projects still operate this way and their community consists a small number of people who have fun hacking on a project together after work.
But as projects grow some of them acquiesce to end-user expectations and slowly turn into "organizations".
They have schedules and regular releases, commit to timely triaging of bug reports, provide forums for end-user support, publish status updates, respond to feature requests, write documentation, have a slick website with a nice logo, form committees and sub-committees to make decisions, adopt codes of conduct to try to deal with the jerks who invariably show up, file the paperwork necessary to deal with big donations, etc -- all the "necessary bureaucracy" that comes with being a large, reputable organization.
At that point you've basically added back all the unfun parts of working and turned it into a second job, so why not get paid?
Back in the day, most users were more technical (TFA is about a regular user using DOS, just as an example) so the ratio of contributors to users was higher
When a FOSS project gets big now, users show up in the issue trackers expecting the kind of support they are accustomed to from companies. They do not have the desire or ability to contribute.
Maintainers then get overwhelmed unless they have some way to support these users. Either they can raise money somehow in order to hire help -- like adding a proprietary version -- or get burned out and complain they didn't get enough donations.
This is just reality. We don't live in RMS's MIT computer lab where he set all the passwords to empty because computers should be free and everyone (every MIT student) is capable of writing software and thus should be able to.
Regular people just want to use the software and they will always outnumber contributors from now on.
Just building what you want and publishing it doesn't work anymore. Look at the countless projects wilting away because the "community" actively ignores them and the huge volume of content doesn't target those projects anymore. No tutorials, no guides, no evangelists, no Github stars and forks, no Twitter promoters, no fancy shmancy *.io domain and interactive Docs with oodles of integrations with everything under the sun means that your project will languish in ignored obscurity. Two big-ish projects getting that treatment that I've personally witnessed happening in slow-motion over many years: Tornado and Knockout.js.
I think there's a difference of opinion here about what it means for it to "work". The point I infer from the parent comment (which I happen to agree with) is that measuring success or failure in terms of the community is orthogonal to open source. If what you want is a successful community, then it makes sense to base your decision on whether to be open source or not on that, but failing to build a long-lasting community isn't a failure of open source itself but at using it as a tool to try to achieve a specific goal, and not everyone doing open source shares that goal.
As an aside, I think it's worth noting that most attempts to build long-lasting, vibrant communities for software fail, regardless of whether they're open source or not. Open source might not have a high success rate of community-building, but neither does proprietary software (or whatever middle ground you consider to be in the space between those terms, like "open core" or "source available"). If what you care about most is building a large community, the more effective choice probably depends on a lot of factors specific to what you're building and what else is going on at the time you're trying than something as simple as "always be open source" or "always be proprietary".
This is perhaps a good example of a project being more than the product. By which I mean, we don't really need it - it serves no practical purpose, and yet it continues.
Of course I generalise, but the original premise ("I liked the command line") is amply served by Linux, Mac or Windows. The other original motivations are similarly obsolete now.
All of which is irrelevant. It remains an active project "just because" and isn't that the purest form of Free Software? Sure it's "useless" but we make it because we can, and because we want to.
Perhaps that's the biggest Open Source Community lesson of all- build something that the community enjoys making, unburdened by a large userbase, unburdened by popularity, or usefulness. It's gathered like-minded people who enjoy the journey more than the destination.
So tip of the hat to you all. FreeDOS is an example of capturing the heart of programming - code that doesn't need a reason beyond "because we wanted to."
You can create a DOS-bootable USB flash drive by downloading and saving a FreeDOS operating system image. The bootable USB flash drive can then be used for testing and troubleshooting any component on your PC.
FreeDOS helps sell PC hardware without the expense of a Windows license, for customers who would like to install Linux, OpenBSD, or separately licensed Windows, e.g. http://h10032.www1.hp.com/ctg/Manual/c02628224.pdf
The "helping sell hardware without Windows" part is actually more like "helps PC vendors exploit a legal loophole and Microsoft keep its market share". They could just as easily install Ubuntu/whatever on computers that don't ship with Windows, but that might make some people stick with it and immediately install Windows on it. But if they put a useless OS like FreeDOS on there, they can check the "has OS" box, as well as the "no bundled license" box, without any risk to Microsoft's market dominance.
Hell, I think HP actually did put Linux on some of their laptops, but just as a compatibility layer to run FreeDOS, since they couldn't get it to work directly. This was clearly done for Microsoft's benefit and nobody else's - don't let anyone convince you otherwise.
What's the functional difference between FreeDOS and some executables "for testing and troubleshooting any component" versus UEFI binaries for the same?
UEFI is roughly a modernized subset of DOS in firmware, with saner calling conventions.
As I pointed out the "uselessness" is a generalization, although perhaps your suggestion of use cases rather proves my point.
Firstly "selling pcs without Windows". If you want to sell a machine without windows feel free to ship it with Linux or indeed nothing. Yes, FreeDOS is an option, but it's not unique.
Sure, some techs find it useful as a bare-metal hardware diagnostic tool. Presenting that micro niche as a use case kinda proves the point. (I'm not sure how FreeDOS fares with supporting new hardware but I'll assume it does. My experience with BSD doesn't make me over-optimistic though.)
But I think you missed my point. The main utility of FreeDOS is FreeDOS. It doesn't need to be more than that.
There are many thousands of DOS programs still in active use today -- and not just by hobbyists or for educational purposes, in active commercial use, if you require economically productive criteria to consider something practical: Many industrial control systems still used every day operate through DOS applications written in the 1980s.
Spending a lot of time and money on a complete rewrite upgrade to make these control systems to use some other OS 'just because' would serve no practical purpose. They work fine on DOS. It would be expensive and risky to change that.
At the same time, MS-DOS has been unmaintained for decades. FreeDOS is almost entirely compatible with MS-DOS applications, and is still actively maintained with bugfixes and so on.
FreeDOS sounds like a very practical option indeed.
If the control systems have hard real-time requirements, FreeDOS may be one of the few options. (At least I assume FreeDOS is, since MS-DOS was.) Presumably it's a lot cheaper than QNX, too.
FreeDOS has a benefit: in case you do not need or want a more complicated operating system than DOS. Another benefit is in case your intention is to run DOS programs on the computer.
FreeDOS is pretty useful if you happen to need it.
Back in the day my go-to method for making DOS boot disks was to find a win9x machine and type "format /s". That used to be easy to do, but there are no more abundant Win9x machines anymore. FreeDOS was an alternative to that.
The last time I used FreeDOS was a few years ago to flash a bios update that required DOS to do so.
> Twenty years ago this week, as Microsoft announced that it would end support for the MS-DOS operating system, James Hall announced to the world that he intended to create a public domain version of the OS in order to keep the universe of character-based DOS software alive. Hall’s “PD-DOS” project eventually became FreeDOS, which today supports an ecosystem of developers, retro gamers, and diehards who will give up their WordStar when you pry the floppies from their cold, dead fingers.. WordStar, George R.R. Martin's favorite word processor, also runs happily in FreeDOS.
I've installed Asahi on my Mac and so far have been happily computing with the following
Emacs
Firefox
foot (terminal)
swaywm (and the associated utilities)
KeepassXC (password management)
mpd (music)
calibre (ebooks)
mpv (for the few local videos I still watch on my computer)
evince (for pdfs)
various cli utilities
What I like about these is how consistent it is. No sneaky updates that shuffle things around (I don't mind learning new stuff, but I don't like to have my workflows break for no sensible reason). If WordStar was everything I needed, I wouldn't want Office 365 either.
My personal software setup is almost identical :D. The only differences are: I use EMMS in Emacs for music, pdf-tools in Emacs for PDFs, and I also use mpv for remote videos (with pipe-viewer for YouTube).
I have spent more than a decade now working to GPL-ize as much of my stack as possible, carefully evaluating and picking my tools, and what you touch on is huge: a consistent, reliable, small footprint stack that is easily auditable is a bigger deal than people realize.
Extremely anodyne — given that the author has maintained FreeDOS for longer than I've been alive, I was hoping for slightly more interesting ideas than "have a website and be nice to people." Not that I disagree with his advice!
“If you want to build a ship, don’t drum up the men to gather wood, divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea.” ― Antoine de Saint-Exupéry
Nostalgia. Many FOSS projects feed on collective or obsessive nostalgia. I should know having contributed to some and following many. DOS is also sister project to retro gaming, a deep well for those fuzzy feelings.
That said, Hall does offer good and sensible advice to keep the community together and civil.
I think it is better to summarize the article with: open and positive communication is at the core of collaborative open source software. While the message may seem trite, it is also a message that many open source developers need to hear.
Sure, but building a community is not easy and it’s good to reinforce that there are no shortcuts.
I think I would pretty a suspicious of a blog akin to “Linus Torvlads wants this website banned - build an enthusiastic and productive OSS community in just one week with this one neat trick.”
Off topic, but I notice FreeDOS still uses email mailing lists. What email mailing list software / platforms are people using these days? Can you get mail delivered if you install an OSS mailing list and stand up your own server (vps or whatever)?
I'm a bit surprised by this statement. Does this imply that there are now a bunch of FOSS projects that don't use mailing lists? Mailing lists are by far my preferred method of communicating with projects. Please don't tell me people are moving to github issues or some such?
One prominent example, Rust started off with mailing lists but shut them off a decade ago or so. Many other projects I participate in or follow have moved their communication to other means, Discord and Discourse are popular, sometimes the mailing lists remain but are silent, sometimes they are removed.
I've contributed to two, and neither used mailing lists. One lived in discord, the other handled comms via github issues and project contributor messaging.
Yes, CPython moved to Discourse and then censored the mailing lists, which are now defunct. Discourse offers superior tracking and censoring abilities, so only those who have the right opinions and work for the right corporations can be heard.
The fact that there is little real progress can be suppressed.
I can't speak to running a mailing list but guaranteeing delivery to everyone is already a hard task with just one user. Primary difficulty will be getting an IP in a "clean" subnet - the IP that comes with a cheapo VPS will have random neighbors that you can't control and who might get the whole /24 onto blacklists again and again. If you are ok with writing off e.g. Microsoft (hosted Outlook, Hotmail, etc.) or whoever gives you trouble then that makes things easier. This is fine for personal mail depending on what your friends use but with a public service you are going to run into users with problems receiving mail from a random VPS.
There's a whole bunch of ways to run a project. Some of them don't really involve "running a project" in the first place and are just the work of one person. Others have very different social dynamics than FreeDOS. If you want to be an asshole to everyone you perceive to be an idiot, then ... you can do that. You're allowed. I'm not saying it's the kind of project I'm very likely to contribute to, but not everything needs to suit my preferences.
Besides, many social conventions "exclude" people. I was once reprimanded for using the phrase "getting shit done" because any profanity, no matter the context, is forbidden, apparently. I felt that was childish and infantile enough that I didn't really feel like being part of that.
In the end all that's needed is publishing the code. You don't need to care about community or anything. You can, but don't need to.
>Besides, many social conventions "exclude" people.
All social conventions exclude people. There's no way to be inclusive of everyone. For an extreme example, if you allow Nazi ideology in a place, for instance, that excludes people who won't put up with that or who the Nazis chase away. But if you disallow Nazi ideology, then you're excluding Nazis. Of course, this will devolve into Popper's paradox of tolerance, but the point is, you can't please everyone. Someone's always going to be excluded by whatever social conventions you put in place. You just have to decide which groups of people you're willing to exclude.
A less controversial example than nazis (sigh) might be requiring basic hygiene.
If you don't exclude people who don't exhibit basic hygiene (e.g. smelling like literal shit), then a whole lot of casuals will be driven away. If you do exclude them, you exclude them.
Now, you might say, "what exactly is the difference between nazis and some people who smell like actual shit? you just swapped some words out", but, you see,
However, the landscape has shifted. When an Open Source project becomes successful today, creators often transition the original product into a proprietary version with added features and support, available only through paid access. This practice undermines the original Open Source project, and usually end off killing the original project.
Many small open source projects still operate this way and their community consists a small number of people who have fun hacking on a project together after work.
But as projects grow some of them acquiesce to end-user expectations and slowly turn into "organizations".
They have schedules and regular releases, commit to timely triaging of bug reports, provide forums for end-user support, publish status updates, respond to feature requests, write documentation, have a slick website with a nice logo, form committees and sub-committees to make decisions, adopt codes of conduct to try to deal with the jerks who invariably show up, file the paperwork necessary to deal with big donations, etc -- all the "necessary bureaucracy" that comes with being a large, reputable organization.
At that point you've basically added back all the unfun parts of working and turned it into a second job, so why not get paid?
When a FOSS project gets big now, users show up in the issue trackers expecting the kind of support they are accustomed to from companies. They do not have the desire or ability to contribute.
Maintainers then get overwhelmed unless they have some way to support these users. Either they can raise money somehow in order to hire help -- like adding a proprietary version -- or get burned out and complain they didn't get enough donations.
This is just reality. We don't live in RMS's MIT computer lab where he set all the passwords to empty because computers should be free and everyone (every MIT student) is capable of writing software and thus should be able to.
Regular people just want to use the software and they will always outnumber contributors from now on.
As an aside, I think it's worth noting that most attempts to build long-lasting, vibrant communities for software fail, regardless of whether they're open source or not. Open source might not have a high success rate of community-building, but neither does proprietary software (or whatever middle ground you consider to be in the space between those terms, like "open core" or "source available"). If what you care about most is building a large community, the more effective choice probably depends on a lot of factors specific to what you're building and what else is going on at the time you're trying than something as simple as "always be open source" or "always be proprietary".
This is perhaps a good example of a project being more than the product. By which I mean, we don't really need it - it serves no practical purpose, and yet it continues.
Of course I generalise, but the original premise ("I liked the command line") is amply served by Linux, Mac or Windows. The other original motivations are similarly obsolete now.
All of which is irrelevant. It remains an active project "just because" and isn't that the purest form of Free Software? Sure it's "useless" but we make it because we can, and because we want to.
Perhaps that's the biggest Open Source Community lesson of all- build something that the community enjoys making, unburdened by a large userbase, unburdened by popularity, or usefulness. It's gathered like-minded people who enjoy the journey more than the destination.
So tip of the hat to you all. FreeDOS is an example of capturing the heart of programming - code that doesn't need a reason beyond "because we wanted to."
FreeDOS is used by PC OEMs for tech support, e.g. https://support.hp.com/us-en/document/ish_9586495-9586656-16
FreeDOS helps sell PC hardware without the expense of a Windows license, for customers who would like to install Linux, OpenBSD, or separately licensed Windows, e.g. http://h10032.www1.hp.com/ctg/Manual/c02628224.pdfHell, I think HP actually did put Linux on some of their laptops, but just as a compatibility layer to run FreeDOS, since they couldn't get it to work directly. This was clearly done for Microsoft's benefit and nobody else's - don't let anyone convince you otherwise.
UEFI is roughly a modernized subset of DOS in firmware, with saner calling conventions.
Deleted Comment
Firstly "selling pcs without Windows". If you want to sell a machine without windows feel free to ship it with Linux or indeed nothing. Yes, FreeDOS is an option, but it's not unique.
Sure, some techs find it useful as a bare-metal hardware diagnostic tool. Presenting that micro niche as a use case kinda proves the point. (I'm not sure how FreeDOS fares with supporting new hardware but I'll assume it does. My experience with BSD doesn't make me over-optimistic though.)
But I think you missed my point. The main utility of FreeDOS is FreeDOS. It doesn't need to be more than that.
https://permacomputing.net/bedrock_platform/
That freedos will run on almost any x86 PC built in the last 43 years it a testament to software that truly transcends obsolescence.
Just because it isn't the latest and greatest doesn't mean it doesn't have use.
Spending a lot of time and money on a complete rewrite upgrade to make these control systems to use some other OS 'just because' would serve no practical purpose. They work fine on DOS. It would be expensive and risky to change that.
At the same time, MS-DOS has been unmaintained for decades. FreeDOS is almost entirely compatible with MS-DOS applications, and is still actively maintained with bugfixes and so on.
FreeDOS sounds like a very practical option indeed.
Does it? FreeDOS is very useful as a DOS to run in DOSBox or dosemu to run DOS programs, including old games.
Back in the day my go-to method for making DOS boot disks was to find a win9x machine and type "format /s". That used to be easy to do, but there are no more abundant Win9x machines anymore. FreeDOS was an alternative to that.
The last time I used FreeDOS was a few years ago to flash a bios update that required DOS to do so.
(2014) https://arstechnica.com/information-technology/2021/07/dos-b...
> Twenty years ago this week, as Microsoft announced that it would end support for the MS-DOS operating system, James Hall announced to the world that he intended to create a public domain version of the OS in order to keep the universe of character-based DOS software alive. Hall’s “PD-DOS” project eventually became FreeDOS, which today supports an ecosystem of developers, retro gamers, and diehards who will give up their WordStar when you pry the floppies from their cold, dead fingers.. WordStar, George R.R. Martin's favorite word processor, also runs happily in FreeDOS.
Because even if you do tons of very good work - if you don't publish it, then it's as if you're doing nothing.
This is where a lot of non-profits fail.
A lot of them are doing very, very good work - but because they suck at documentation & publication ; then people doesn't know about it at all.
That said, Hall does offer good and sensible advice to keep the community together and civil.
Sometimes there's a lot of value in reiterating core concepts.
Maybe doubly so if they're validated by his long experience in the OSS world.
I think I would pretty a suspicious of a blog akin to “Linus Torvlads wants this website banned - build an enthusiastic and productive OSS community in just one week with this one neat trick.”
I'm a bit surprised by this statement. Does this imply that there are now a bunch of FOSS projects that don't use mailing lists? Mailing lists are by far my preferred method of communicating with projects. Please don't tell me people are moving to github issues or some such?
The fact that there is little real progress can be suppressed.
https://list.org/
https://lists.sr.ht/
Besides, many social conventions "exclude" people. I was once reprimanded for using the phrase "getting shit done" because any profanity, no matter the context, is forbidden, apparently. I felt that was childish and infantile enough that I didn't really feel like being part of that.
In the end all that's needed is publishing the code. You don't need to care about community or anything. You can, but don't need to.
All social conventions exclude people. There's no way to be inclusive of everyone. For an extreme example, if you allow Nazi ideology in a place, for instance, that excludes people who won't put up with that or who the Nazis chase away. But if you disallow Nazi ideology, then you're excluding Nazis. Of course, this will devolve into Popper's paradox of tolerance, but the point is, you can't please everyone. Someone's always going to be excluded by whatever social conventions you put in place. You just have to decide which groups of people you're willing to exclude.
If you don't exclude people who don't exhibit basic hygiene (e.g. smelling like literal shit), then a whole lot of casuals will be driven away. If you do exclude them, you exclude them.
Now, you might say, "what exactly is the difference between nazis and some people who smell like actual shit? you just swapped some words out", but, you see,
Like as a platform for running basic diagnostics and whatever not.