
OsFree project: OS/2 Replacement - zdw
http://osfree.org
======
GnarfGnarf
I developed for OS/2 in the 90's. OS/2 was 5 years ahead of Microsoft Windows,
and offered full 32-bit processing long before Windows did. However, OS/2's
strength was also its weakness.

OS/2 was developed from scratch, and was not encumbered by a legacy of DOS
compatibility, 16-bit applications, and drivers like Windows was. This enabled
IBM to innovate radically and more quickly. The application I wrote for my
client was a multi-threaded program, written paradoxically with Microsoft's
Programmer Workbench, the character-based precursor to Visual Studio.

However, this freedom from legacy code also meant there were few applications
available for OS/2, and the only drivers were for IBM printers. OS/2
eventually disappeared in spite of its technological superiority at the time.

IBM's development environment was called C-Set, and, despite being a 32-bit
compiler, was inferior to Programmer's Workbench. For instance, after a
compilation, if you double-clicked on an error message, it would open up the
source code in a separate editor window, in a proportional typeface. You could
not trigger a compilation from this window. You had to make your change, save
& close, then go back to the compiler window. Awkward.

There was no Resource Workshop for designing dialog boxes visually. You had to
write all the statements in a text editor, and wouldn't see the appearance
until compiling and running the program. This slowed down development.

While debugging, I recall trying to step into the GUI part of the application
code. This locked up the computer so bad we had to re-install OS/2, a tedious
process requiring 22 diskettes.

The IBM documentation was so inscrutable that even for ver. 2 of OS/2, we had
to refer to Microsoft's ver. 1 manuals. IBM's support gave an interesting
insight into OS/2's downfall. My client had an expensive OS/2 support contract
with IBM. The client contacts were two guys in the PC support section. When I
required technical support to answer some obscure and specialized questions
about OS/2, it didn't make sense to get these guys involved, even though they
were supposed to be the only official go-between with IBM. So I called IBM
with the client's authorization, and impersonated one of the support techs.
After a few calls I slipped and used my name. The IBM guy was livid and tore a
strip of me, saying that as an independent contractor, I had no business blah
blah. Here I was just trying to get a customer up & running.

~~~
PopeDotNinja
I worked on an IT helpdesk at an insurance company for the summer in 1996. I
had to support IBM PS/2 PCs that would tri-boot Windows 3.1, OS/2 Warp, and
Dos. No one operating system had all of what they needed.

Funny side story:

They had a token ring network, and in the network room, there weren't enough
physical network ports for all of the employees. Every morning someone would
call the helpdesk to say their computer was couldn't access the network, I'd
look at the N network cables, find one that without lights to indicate that
cable was in use, unplug the inactive one, and plug in the cable of the person
w/o access. It turned out on most days enough people called in sick or were on
vacation that we could get everyone who needed a connection wired up :)

~~~
Narishma
Didn't OS/2 support DOS and Windows applications?

~~~
opless
Yes, but only 'well written ones'.

Anything that decided to hit the hardware directly from DOS, or did something
that OS/2 didn't support in windows just crashed or had undefined behaviour.

Even windows in protected mode couldn't do all DOS things any more. Even if
you dropped out of protected mode, and fiddled around too much you'd end up
breaking windows when you switched back to it.

Back then you'd have all manner of weird DRM schemes which used dongles on the
parallel port, not to mention manually set IRQs, I/O Ports and blocks of high
mem (between 640K and 1M) where your device drivers were baked into the DOS
application, NOT the operating system. There were some driver.sys type drivers
for random hardware, but mostly it was just cheaper to write the driver inside
the app itself.

Programming under DOS was more akin to writing to an Arduino rather than
linux/windows back then.

------
peatmoss
Seems like a challenging project. I remember OS/2 fondly, and I remember (and
have heard tales of) its stability. Still, I have read stories that claim the
source code was a hot mess of hacks and liberally sprinkled assembly code.

Apart from “hacks and glory” (which for the record is a fine justification), I
don’t imagine that this project would have a lot of utility. While some old
ATMs and some other legacy applications run on OS/2, I’d guess that attaining
the degree of compatibility needed to satisfy those applications would be an
extremely tall mountain to climb.

I think there are a lot of us who remember computing of the 1990s and early
2000s fondly as being a time where you could discover an operating system that
was new or novel in some way. Combine that with the fact that computers felt
less laggy, and mostly used the same UI across applications (looking at you
electron), and I share the nostalgia.

I guess what I’m saying is that an OSS OS/2 is cool, and its authors should
have songs sung about them, but this isn’t the right foundation to build a
modern OS on.

~~~
kitd
I spent about 7-8 years developing on OS/2.

It lent itself to being tinkered and tailored in a much more developer-
friendly way than most OSes. The rexx scripting was pervasive. There were
meaningful file object attributes that could be extended and used per app. The
SOM model was a bit clunky but very powerful (I went on to work with its
designer later in my career). It had a bunch of powerful compilers that left
all the Windows competitors for dust.

And of course it looked great for a windowed GUI at the time.

~~~
guessbest
When did you develop for it? I remember 89 to 95 being the heyday of OS/2,
when if you wanted to get your Windows 3.1 machine on the network, you pretty
much had to use OS/2 or Novell to host the network.

~~~
kitd
This was approx 1990-1998. I was working for an actuarial partnership. Our
software generated customer-specific actuarial FORTRAN code, with the
generator and UI in C. We used the Watcom compilers for both ends of the
pipeline. They were top class, and still available AIUI.

------
twooclock
This brings back memories! I was part of TVT (translation and verification
team) for os/2 in 1996. Still remember how developers were supplying fresh
builds to install and verify. We were a bunch of people from all over the
world trying to do our best and localize os/2, but you could hear the boat
sinking - windows was just too good - which is a pitty since from technical
standpoint os/2 was better. I have to check I sill might have some cds from
that era...

~~~
pdonis
_> windows was just too good - which is a pitty since from technical
standpoint os/2 was better._

I grumbled about this through a fair part of the 1990s. I ran Warp for a while
and programmed for it as well as for Windows 3.1 and Windows NT 3.5; on the
machine I had at the time there were Windows 3.1 programs that actually ran
better on OS/2's compatibility layer than they did in native Windows.

~~~
twooclock
True. One thing I remember is that it had shortcuts which were introduced only
in win95. Unfortunately its UI was not very intuitive. Not to mention one had
to pay for it when win 3.1 was widely available for free at your local pirate.

------
rietta
Ah OS/2 Warp. The OS I got grounded over because I reformatted the family 486
and lost some of my parents files. I truly thought I was setting up dual boot.
I was so naive at the time.

~~~
dschuler
That's funny, the exact same thing happened to me!

~~~
unixhero
Me too! It DID say it managed to do this, however it didn't work.

~~~
tecleandor
My dad thankfully had all his documents on floppies... :P :)

------
zwieback
When I was in university (Fraunhofer, actually) we built a optical metrology
machine (CMM) and the SW was based on OS/2 1.2, which had reliable threading
and was generally rock solid compared to Windows. Linux was not a thing yet.

After graduating I moved to the US and got my first job due to my OS/2
experience. The company I worked for had a Mac/PC network bridge product (TCP
was not a thing on PCs yet) and we were contracted by IBM to write LAN Server
for Macintosh, basically the Mac/AppleTalk server for OS/2\. Good memories.

~~~
jdmg94
as a frontend developer, I salute you sir, that shit sounds INSANE.

~~~
watersb
As someone who supported software and Mac/PC networks in the 90s, and someone
who has done frontend development since 1995, I have a keen appreciation of
the irony here.

------
zozbot234
It would be interesting to see a Wine-like compatibility layer for OS/2
applications. It could even be included in Wine itself, seeing as there are
quite a few analogies between Win16/Win32 and OS/2.

~~~
sedatk
Windows had that subsystem (osxss.exe) but for OS/2 1.x only.

~~~
jacobush
OS/2 Warp could run Windows apps but it had actually a Windows 3.1 inside of
it. A bit like XP mode on Windows 7.

------
dang
Related from 2015:
[https://news.ycombinator.com/item?id=10335103](https://news.ycombinator.com/item?id=10335103)

------
lordleft
OS/2 always intrigued me because it looked like a strange cousin of Windows;
it so clearly shared the design language (and some actual code) with that
family of operating systems.

~~~
Yoric
Well, the Windows NT family (which includes Windows 2000, Windows XP, Windows
7, Windows 10) is a descendant of OS/2\. In fact, Windows NT 3.1 was basically
a reskinned OS/2.

I remember fond days of playing several MSDOS games at once under OS/2 (Elite:
Frontier and Colonization, iirc) while Windows 95 failed to play any of them
:)

~~~
hvs
This isn't quite true. Microsoft and IBM were working on OS/2 together and
Microsoft got fed up with the development delays and decided to build their
own system. So NT was designed from the ground up. It originally had multiple
subsystems (Win16, Win32, Posix) one of which included an OS/2 1.0 subsystem.

[https://www.itprotoday.com/compute-engines/windows-nt-and-
vm...](https://www.itprotoday.com/compute-engines/windows-nt-and-vms-rest-
story)

~~~
WorldMaker
With WSL bringing back the spirit of a POSIX-flavored subsystem, it might be
fun to see some other retro-computing subsystems such as a modern OS/2
subsystem, though I can't think of a good reason to do that other than fun.

Maybe if someone can think of a good reason to need OS/2 running on Azure it
could happen. Maybe there's a bank somewhere with the OS/2 apps investment and
enough money to throw at Microsoft (and IBM) somewhere to make it happen.

~~~
rrdharan
Also Microsoft already gave up on WSL1's subsystem approach and just made the
VM-based WSL2, focused on fixing the UX issues with VMs.

~~~
WorldMaker
WSL2 is certainly doing fewer kernel interactions as a subsystem than WSL1,
but my impression is that it is still classified as a subsystem in the way
that it launches and manages its more VM-like approach.

The comparison/analogy I've heard, and I'm not sure it is apocryphal but it
certainly makes sense to me, is to the Xbox One's game subsystems, which while
rarely described in great detail from an NT Kernel engineering standpoint,
when they are briefly described as such they are often described as subsystems
and that they are "VM-like" in operation.

~~~
rrdharan
The point is in WSL2 rather than emulating the Linux kernel, they just run it:

[https://en.m.wikipedia.org/wiki/Windows_Subsystem_for_Linux](https://en.m.wikipedia.org/wiki/Windows_Subsystem_for_Linux)

[https://github.com/microsoft/WSL2-Linux-
Kernel](https://github.com/microsoft/WSL2-Linux-Kernel)

The Xbox One also uses a hypervisor to run multiple OSes, one of which was
Windows 8:

[https://en.m.wikipedia.org/wiki/Xbox_One_system_software](https://en.m.wikipedia.org/wiki/Xbox_One_system_software)

[https://wccftech.com/xbox-one-architecture-explained-runs-
wi...](https://wccftech.com/xbox-one-architecture-explained-runs-
windows-8-virtually-indistinguishable/)

They started doing that with the Xbox 360.

~~~
WorldMaker
Yes, I mentioned all of that. All I was saying is that WSL2 is still
technically a subsystem by name, even if it is "just running the Linux
kernel". NT Subsystems have always varied in nature of how they operate. Yes,
it's disappointing that WSL2 is "less cool" or "less proper" a subsystem, but
they still call it a "subsystem for Linux", not a "Windows VM Host for Linux"
or anything like that. (It might be less confusing between WSL1 and WSL2 if
they had had chosen a name like "Windows VM Host for Linux" for WSL2.) To the
NT Kernel naming perspective these "micro-VM hosts" still appear to be called
"subsystem", even if they are doing so much directly less Kernel work than a
"proper" subsystem in the Win16/Win32/Classic POSIX/OS/2 1.x or even WSL1
sense.

Though this is getting into semantic weeds and drifting away from the original
point that more subsystems, especially retro-computing inspired ones would be
fun to see, even if they are more just "micro VM hosts" than full NT Kernel
"flavors".

(ETA: Also, it's a small stretch that Microsoft "gave up" on the WSL1
approach. They will still be supporting WSL1 side-by-side WSL2. The numbered
name approach makes it seem that it is a strict "upgrade", but it's more a
side-by-side trade-off option than the numbers imply.)

~~~
rrdharan
Yes, they kept the name.

"NT Subsystems have always varied in nature of how they operate."

Not sure what you mean here. There were classically three environment
subsystems and they all fit in to the architecture in a consistent manner:
[https://upload.wikimedia.org/wikipedia/commons/5/5d/Windows_...](https://upload.wikimedia.org/wikipedia/commons/5/5d/Windows_2000_architecture.svg)

The fact that if you look at the full callstack and address space of a regular
Linux process running in WSL2 you won't see the "classic" NT Kernel anywhere
feels like a pretty big difference to me.

Yes they are still supporting WSL1. Microsoft's support policies are generally
excellent. But it seems very unlikely there will be an interest in providing
OS emulation or compatibility at the userspace/OS kernel boundary using the
classic subsystem architecture, as a technical direction for the Windows team
to invest in going forward. It's an architectural dead-end.

------
mdaniel
For the "show me the code" folks: [https://github.com/osfree-
project](https://github.com/osfree-project)

------
Koshkin
According to the whitepaper, one of the (original) goals is/was to create
various "personalities", including that of Linux, OS/2 being the "base"
personality.

[http://osfree.org/doku/en:docs:general:index](http://osfree.org/doku/en:docs:general:index)

------
jchw
They mention their own bootloader called freeldr. Interestingly, this is the
same name as ReactOS’s bootloader. I assume it’s just a coincidence, but since
I know OS/2 and NT share some common lineage, I do wonder if there’s any
relation. A bit of searching didn’t seem to clear it up. Anyone have a clue?

~~~
JPLeRouzic
It's a long time since I do not follow this topic, but I think Freeldr is
(was?) an independent project. I think also it was introduced in Reactos at
the end of the 0.2.x branch. For example it was not used in Captive Reactos
and pre-2005 versions.

[http://git.jankratochvil.net/?p=reactos.git;a=blob_plain;f=l...](http://git.jankratochvil.net/?p=reactos.git;a=blob_plain;f=loaders/dos/loadros.asm;hb=HEAD)

Though I may be entirely wrong.

------
steQ
A nice reading about OS/2 histoty [https://arstechnica.com/information-
technology/2019/11/half-...](https://arstechnica.com/information-
technology/2019/11/half-an-operating-system-the-triumph-and-tragedy-of-os2/)

------
Koshkin
There was something cool and sweet about the MS-DOS command prompt simplicity
(compared to UNIX) and the OS itself being single-user with a (limited) multi-
tasking capability. I have always dreamed of a true 32-bit continuation of it,
and OS/2 seemed to have promised to be that, but something happened along the
way...

------
ogre_codes
The early versions of Citrix were based on OS/2, we used it to run a FoxPro
based DOS app over our WAN for quite a few years. For the time it was a pretty
innovative/ performant way to run apps over low bandwidth.

------
jdmg94
Most of Latin America's banks have banking systems on OS/2, maybe this project
can get some traction with the spanish speaking demographic

~~~
cesarb
The largest and oldest bank here in Brazil migrated all of its ATMs and branch
manager desktops from OS/2 to Linux a decade ago; the other large banks I know
of in Brazil seem to use Windows for desktops (and probably also their ATMs).
I don't know about other countries, but it wouldn't surprise me if their banks
have also migrated to something other than OS/2.

------
muterad_murilax
How old is this project?

~~~
tetraca
Pretty old. I want to say I built their website back in 2008 or so (they
changed the logo and color scheme but it seems to still use dokuwiki and the
base templates I built out), and it was definitely going on longer than that.

------
peter_d_sherman
Would love to see an Open Source OS/2!

~~~
hvs
Probably won't happen. Companies have been willing to buy the IP and support
it (Serenity Systems with eComStation, Arca Noae with ArcaOS) because there
are legacy installations of OS/2 that need to be supported (and are willing to
pay). To get a sense of the companies that still need OS/2 support, see this
list from Arca Noae:

    
    
      Advantech, Austria
      Agie Charmilles SA, Switzerland
      Bowe, Bell & Howell, U.S.A.
      Canadian Coast Guard, Canada
      Colgate Palmolive, U.S.A.
      Dematic North America, Luxembourg
      Federated Insurance, U.S.A.
      Johnson and Johnson, U.S.A.
      Pepsi Co., U.S.A.
      Roos Instruments, U.S.A.
      Siemens AG, Germany
      Trainitalie, F.S., Italy 
      Universal Instruments Corp, U.S.A.
      Whirlpool Corporation, U.S,A,
    

[http://ecomstation.com/index.phtml](http://ecomstation.com/index.phtml)
[https://www.arcanoae.com/arcaos/](https://www.arcanoae.com/arcaos/)

~~~
zozbot234
Rumor has it that OS/2 or a compatible system is still needed to boot up some
legacy IBM mainframes, the OS/2 box is used as a kind of system console.

~~~
skissane
That was true for IBM mainframes manufactured prior to 2005. The hardware
management console computer (kind of like BIOS setup on steroids) was a PC
running OS/2\. Models since 2005 have used Linux instead, although the
management app on Linux was designed to duplicate the visual look of OS/2 (to
make existing users feel more comfortable.)

I remember around 2006 or so, watching a service technician replace some
faulty hard disk drives in an enterprise SAN. He opens up the front door, and
out of this compartment he slides a laptop computer which runs some management
software. From the look of the user interface, it appeared to be running
Windows 3.1.

------
ChicagoDave
OS/2 was tied to the PS/2 hardware and IBM had it way over priced. We had one
in the office and when we needed a new card for a peripheral, we realized it
was never going to cut it compared to compatibles.

~~~
ogre_codes
OS/2 was not tied to the PS/2 hardware. Unless there was some specific version
of it. It was reasonably compatible with a fairly wide range of hardware.
(Roughly comparable to Linux desktop at various times)

~~~
ChicagoDave
Maybe I'm remembering "guilt by association". IBM was pushing the PS/2 line
very hard because they wanted the compatible hardware to die and they assumed
everyone would still trust them.

I don't remember ever trying to install OS/2 anywhere else.

