Nano98: Windows 98 that boots and runs under 5MB (2003)
web.archive.org
web.archive.org
Nowadays it seems that a Windows ISO does not come up short of 4 GB and this tradition of "repacking" them into small, optimised, crap-free operating systems (albeit of questionable legality, but inevitably used on a machine that had a real windows license!) has been lost. I lament this.
At least a few years ago some of this trend was still alive making little PE images that could almost be used for real desktop use on sites like reboot.pro and other spin-offs, though it seems to be a lot less mainstream than the piracy heydays during the XP era.
I wonder if they’ll ever use it to replace WinPE. They’ve had the same installer since Vista, and it probably needs a redo (it still takes forever to install Windows).
For repair/maintenance, there is WinPE (and now, live USB boot)
It is interesting how the use of these underground builds are prevalent enough to be worthwhile to compromise
I created a stripped down Windows 95 live CD that had the default shell replaced by StarCraft. I could sit down at a machine, insert my CD, reboot, and the machine would boot directly into SC.
I was terrified that I removed my OS and replaced it with a shareware point and click adventure game.
It was a great learning experience though (esp. for my German: https://moorhuhn.fandom.com/de/wiki/Dunkle_Schatten)
win+R before login was pretty useful - albeit insecure!
(Write.exe is still present in Windows 10, and redirects to WordPad, which replaced Write.exe in Windows 95.)
UBCD4Win was the toolkit I used. It had all my virus scanners, data recovery apps, pretty much everything I could ever need on there. Like a Linux live CD but with Windows. Shit was brilliant!
Windows still does WinPE, but I think that is limited to OEMs and other fancy Microsoft-licensed corpos.
Unfortunately that "hacker spirit" seems to end at "must have the source code"; the same can't be said of those customising Windows and such, who definitely didn't have the source but succeeded nonetheless.
[1] I remember someone being very surprised that I patched the binary of a FOSS application, instead of changing the source and compiling it --- the former took a few minutes, the latter would've taken far more time (to get all the dependencies, build system, etc.) and possibly introduced other unwanted changes.
Patching a binary is impressive, sure, but it's the polar opposite of sustainable. You don't have a good way to document your fix, it's dependent on one exact source tree and how the compiler was feeling that morning, and even minor changes from upstream can completely change the way a binary patch would need to work.
It's great for a one-off hack, but part of the appeal of open source for many people is how easy it is for your changes to become part of the "permanent record" of that piece of software.
Don't use its defaults though; it'll remove Microsoft Account login and Store (which I wanted because I have Game Pass for the kids).
My only HDD was 120MB Conner Peripherals HDD that fell on asphalt out of jacket pocket of my friend while he was riding a bike (no kidding!) and was crisscrossed with bad sectors.
I put up an ambitious (back then) plan to map out all broken sectors and then try to fit Windows 95 and Delphi2 onto the rest.
I remember I was left with something like 70MB of usable disk space and most of it was devoted to Delphi 2.
I have spent a number of days iterating moving some Windows files, restarting to see if it still boots and does the job, restoring the files if it did not.
I was left with something like 20MB (? I assume, I don't remember exactly). There was not a single file that I could remove without breaking it, I have edited a lot of registry and INI files to disable features to let me remove as much as possible. There was no sound support, no plug&play, no unnecessary tools, nothing.
Hats off if you can do the same to Windows98 and shrink it to 5MB.
It also reminds me the well known Things That Turbo Pascal Is Smaller Than (https://prog21.dadgum.com/116.html)
You would've learned more about the system by accident/happenstance than most people learn in years.
You don't have the HDD anymore by any chance, do you? :) it would be cool to image it...
So basically you had 70MB total to work with, you squished Win95 into 50MB, then had 20MB for Delphi?
What were the rest of the system's specs, and what era was this in?
Yes, it had more memory than HDD!
It was my first development machine (after programmable calculator which was stolen) so I have fond memories of it.
I believe minimum Delphi 2 install was over 70MB so I also had to cut it up to fit the drive.
I remember back in the day i made an "install" set of 7 floppies (more than necessary but i wanted some extra stuff) to use with my 386 (which had no working CD ROM) for when my parents used the main PC. BTW that 96MB of memory most likely made a ton of difference, mine had 4MB and was horribly slow with Delphi 2 :-P
I got into a few situations like this myself, but none exactly this crazy :)
How'd you fit 96MB RAM into a 386, btw?? My 486DX2s (2005 represent) only had room for a few MB of RAM. O.o
How'd programming GUIs go without a mouse? Typing in x/y/w/h into the properties box? I'm guessing you have a slightly higher baseline awareness of accessibility (focus order, etc) than most, huh.
Also, out of curiosity, what sort of programmable calculator was it?
Wow, programming environments have always been headscratchingly big. (For a one-pass compiler and IDE, 70MB is kind of... surely the (converted) Win95 API headers didn't require that much space...)
> The Wikipedia page for C++ (214,251 bytes).
$ wget https://en.wikipedia.org/wiki/Turbo_Pascal
$ wc Turbo_Pascal
668 10672 164349 Turbo_Pascal
Never mind C++, rather: The Wikipedia page for Turbo Pascal (164,349 bytes).Win98SE the last windows i actually enjoyed using and believed it was an improvement over the its predecessor.
Nowadays im afraid to run modern windows without a VM and a firewall.
Though I think I may have had a proper dos boot disk for some games, hard to remember, it was quite awhile back. :)
I don't think so, for example requirements for RAM:
Windows 98: 16 megabytes (MB) of memory (24 MB recommended)
Windows 2000: 64 megabytes (MB) of RAM recommended minimum;
Fast and light as Windows 98 but more stable than Windows XP.
But I've tried anyway. Then I got owned so hard by Nimda that it is still the first thing that comes to my mind when I think of Windows 2000.
In Windows 98 SE, there was a button next to “minimise” that would give every widget a tooltip explaining what it did and how to use it; most programs came with a built-in, GUI instruction manual. Nobody else does this! (The best help UI ever made, and Microsoft just dropped it…)
Windows 98 SE included its own kernel-based virtual machine system, which it used for multi-tasking DOS and “sandboxing” DOS drivers. (They had a global lock and full privileges, though, so it's not really much of a sandbox.)
Windows 98 came with Active Desktop: you could display bits of website on your desktop as widgets (e.g. a weather service). It also came with mshta.exe, for HTML Applications; HTAs were basically like Electron, but built into the OS, so you didn't have loads of insecure Chrome versions clogging up your RAM and hard drive. (It was Internet Explorer, but iirc Internet Explorer was actually good around about that time.)
Yes, it was DOS-based. Yes, you could log in as the system user by clicking “cancel” on the “enter your username and password” box. It should be simple to beat that… so why hasn't anyone?
I never found Active Desktop all that useful. It was annoying because if you wanted a jpg desktop wallpaper, it would enable Active Desktop just for that. The problem was that it noticeably slowed the entire system. I would always convert to bmp and use that, taking a hit on disk space (and possibly RAM) instead of speed.
So, after they're loaded and (possibly) scaled to fit the screen, I'd expect every background image to use exactly the same memory amount.
Well, not centered or tiled backgrounds, which I recall Windows did support, and upscaling could be done on a per-pixel basis (although I don't know if that was supported), but yes, the image format shouldn't matter.
Back when win95 and co were being made, decoding an image was a lot of work for the hardware, I suspect they'll try to make restoring the background (e.g. dragging a window around and changing what's occluded) to be the simplest bitblt they can.
> Windows 98 Second Edition is terrible in many ways. I could probably hit the comment limit listing them.
Strong evidence it was not that good.
> Yet it remains my favourite operating system of all time, because everything else (yes, even precious Debian!) is just worse. Worse UI, worse memory use, worse hackability…
In terms of UI, yes, very clean UI by default. You can reach that level today but not out of the box. On the other side, it came with very few programs installed, so you had to install third party apps and consistency went to the trashcan once o did that.
Memory management... we have memory control groups today, I can install and remove swap files and devices with the system running, oomd saves my desktop virtually crashing when under memory pressure, I can use compressed memory... I have to admit that amount memory usage is way larger today and, albeit with third party apps, you could have compressed in win9x but it didn't went far.
Now, there's no way win9x comes even close to debian in terms of hackability. You can easily install compilation dependencies and sources of most packages, modify, compile... I don't even want to argue about this.
> In Windows 98 SE, there was a button next to “minimise” that would give every widget a tooltip explaining what it did and how to use it; most programs came with a built-in, GUI instruction manual. Nobody else does this! (The best help UI ever made, and Microsoft just dropped it…)
Current tool-tips in clickable items removes the need of such feature. Self explainable text boxes also. If you need a '?' widget to get help on other widgets, I'd consider the UI is not obvious enough and should be fixed.
> Windows 98 SE included its own kernel-based virtual machine system, which it used for multi-tasking DOS and “sandboxing” DOS drivers. (They had a global lock and full privileges, though, so it's not really much of a sandbox.)
Extremely unsafe and unstable! No separation between processes' memory and hardware access. UNIX had that since the 70's. The 80386 had such features since early 80's. It is hard to find a good reason why a popular OS in late 90's had no such feature. It was fixed when xp was released by using the nt kernel, but it was 3 decades too late.
> Windows 98 came with Active Desktop: you could display bits of website on your desktop as widgets (e.g. a weather service). It also came with mshta.exe, for HTML Applications; HTAs were basically like Electron, but built into the OS, so you didn't have loads of insecure Chrome versions clogging up your RAM and hard drive. (It was Internet Explorer, but iirc Internet Explorer was actually good around about that time.)
By "widgets on the desktop" it meant "ads". Most people simply disabled active desktop, it was a major waste of resources and minor source of instability. I admit that electron apps eat too much memory, but I think it is proportional to the amount of RAM available these days. I don't think things got worse in this area over time.
Also, IE had its fair share of memory leaks, vulnerabilities and instabilities.
> Yes, it was DOS-based. Yes, you could log in as the system user by clicking “cancel” on the “enter your username and password” box. It should be simple to beat that… so why hasn't anyone?
It was beat. Just read above.
It's mostly the UI I remember fondly. Technically, of course, it was a garbage fire.
True… though not for the reasons you've listed. It's hackable because half the programs are written in Python or Perl, and because it has man pages; your average 6 year old mucking about with the system will eventually stumble across them. Also, environments like LXDE are fairly customisable, providing insight into how the system works.
The ability to download sources with `apt-source` (or whatever the command is) isn't useful if the guts aren't exposed for you to play with; you'll never want to do something if you don't know it's possible in the first place. (A bad thing about Windows: I could never make .EXE files. A good thing about Windows: I learnt what .EXE and .DLL files were, and that they could contain icon resources, just by mucking around with the GUI interface.)
But yes, had I grown up with Debian, I probably would've had more fun. :-P
I tried linux on my first computer. Minilinux was very limited, mostly a toy on that machine. Debian didn't had support for my keyboard at the time, so I never installed it. I tried a RedHat based distro later just to discover it had no support for my soundcard and winmodem, so I had to go back to windows.
Since the machine was somewhat limited for a late 90's early 2000's, I had to take some care when using it. I discovered that regedit could be run from DOS and that it could backup and recover the register without needing to boot windows. I simply stopped uninstalling programs: just deleted them and recovered a previous register state. With a bit of care I could use the same machine from 1998 to 2001 without ever reinstalling windows. Friends were impressed because of that.
I could use that machine to run video game emulators, abandonware, delphi and c++ builder 5, turboc, IRC, p2p, browsing the web, listened to mp3 and watched webstreams with realplayer. When the matrix movie arrived I could watch it using xvid/divx with some special configurations to make it run fast enough on my machine. The software was well optimized to do so much with a 200mhz mmx processor with 32MB RAM.
Later, the soundcard gained support in 2007 and I replaced the modem with a network card, got 2 floppy drives units, 2 HDDs a cdrom drive and a cdrw-recorder. It became a capable linux box, but it was too late and I already had a new machine which had better compatibility with linux than with windows. But I still have some fond memories of that machine, I repent throwing it away.
The described feature isn't really about tooltips, but about showing context-specific help. Tooltips are generally a sentence whereas context help can be a paragraph or two. In addition tooltips are generally placed in toolbars or other "static looking" items whereas context help can be used with any widget on screen, including entry/edit widgets (it isn't that it is technically impossible to use tooltips there - some applications do that - but it is abusing the tooltips and can be unwieldy).
This is one aspect of the Win9x series which is little-mentioned and little-understood, but IMHO actually represents a huge technical achievement in comparison to NT (which is more of a "traditional" OS design) --- it's really a hypervisor for DOS VMs with all hardware passed-through by default. A similar architecture wouldn't be seen on the PC until KVM, over a decade later.
Yes, you could log in as the system user by clicking “cancel” on the “enter your username and password” box.
Win9x being thoroughly a single-user OS, that login dialog was designed only for authenticating to the network.
Technically this is still there, it is just that almost no applications use it. However one of the very few things Qt with its Qt Designer (which otherwise is a horrific application) does right is being able to set up context help (as they are called) tips very easily and on the spot (the original method in Win9x was way too cumbersome, though 90% of that was WinHelp itself being too cumbersome). I remember doing that for some tools in a gamedev job a few years ago and the ability to have instant description for any element on the tool dialogs was something the designers liked.
KDE has had it on some apps, it still does in System Settings, though it doesn't work anymore on most settings.
Do you perhaps mean Bochs[1]? I've seen it booting Windows 95 on an early PSP and similar stunts, so running Windows inside Bochs on a smartphone would IMO not be that much out of the ordinary.
Or is there really a PC emulator from BOSCH[2] available somewhere?
I just found the idea quite funny that I could have a "BOSCH emulator" in my tool box, right next to my BOSCH electric drill. Especially since OP even used the capitalized spelling from the brand logo.
I'm not trying to be mean here, I genuinely found it funny and tried to point that out the way people usually do in social interactions, rather than rudely responding along the lines of "OMG you made a typo there". I guess that got a little "lost in translation" due to the textual medium and culture difference?
I used this to make a custom Win 10 install for my first gen threadripper desktop. There were major teething issues since I bought it on launch day. Specifically, the Intel wifi driver that was bundled in the windows installer at that point would blue-screen on threadripper the moment it loaded. Intel had an updated driver available, but the bad driver was literally in the windows installer. I couldn't actually get to first boot. Used ntlite to make a custom windows installer where the only change was the updated intel wifi driver.
Experimented with modding Hyper-V Server (the free one) with some success, but too many DLLs missing and multimedia functions don't work.
Works fine for daily use after you restore some small things.
Conversely, I've had Manjaro updates break my GRUB config twice in the last year, which is a pretty daunting problem to fix for 99.9% of end users.
I don't expect the small team at Manjaro to do a better job of this than a trillion dollar company, I just find the reputation WU has these days puzzling. Deferring updates for extended periods of time seems to consistently cause my users far more problems than it supposedly solves.
[0] https://en.wikipedia.org/wiki/Windows_Preinstallation_Enviro...
But I always wondered about the legality of using that approach to create a windows Image you could boot of a USB stick, or even a Boot-image server over network.
Afaik, WinPE is the engine under the installation system in older version, and can only be legally used in workflows peripheral to System installation/debug/repair.
Windows Embedded seems to be the MS-preferred approach these days if you need a custom-purpose Windows installation.
How to get/use Windows Embedded legally without an Enterprise agreement has be on my "look-into-it-some-day"-list, but since I don't have/use Windows-only tools in my daily workflows, the urgency has been somewhat steadily decreasing.
I've used to build Linux USB installers for PoS systems. Some of these systems used some kind of flashable custom keyboard that most of the time had to be programmed in place and the proprietary software ran on Windows.
I've build a 100MB-ish image containing the current version of WinPE and the program along with its library dependencies. I think I had to download some kind of special blob to that Syslinux could load it into memory.
I also remember booting a small WinPE ISO into the server virtual ISO ILO function to repair remote Windows servers on remote retail stores. Pretty much all the disk related stuff is included. That particular ISO had the proprietary drivers for the server raid controllers.
Anyway very good stuff if you only need to run some old style software that doesn't require multitasking.
The summary in this Wikipedia article about the startup process helped a lot: https://en.wikipedia.org/wiki/Windows_NT_startup_process
http://www.mypal-browser.org
800,000 users can't be wrong (out of 240 million XP users worldwide).This project is important because Firefox stopped working on XP 4 years ago - and you can't do things like captchas without a modern browser.
It's fairly janky and slow, but it does what it promises and starting from usual installation media will produce a HDD image with Windows 98 installed and somewhat customised (containing some files I wanted and a custom desktop wallpaper and such).
https://github.com/visual2000/paschke
EDIT: Looking closer, it would be possible to steal tips from this guide to make it quicker and faster probably - although the aim with Paschke was to start from a vanilla installation media, instead of just putting the minimum files needed into a disk image.
...Maybe treat it like Existential Arch Linux?
(Where "existential" applies to both "the project might be dead in a few years" and "they disable Windows Update, so not actually Arch Linux" :D)
Yikes...
If anyone is impressed by these 5MB, please remember this: https://news.ycombinator.com/item?id=28515025
Can't believe that their product page is still up. I believe it came about after the 90's MS anti-trust cases. MS argued that IE was integral to Windows, so these devs made a product to strip IE out, just to show that it wasn't as integral as MS claimed. Then they built on it and it became a legit product for slimming down Windows installs.
Those were fun times.
Sadly I deleted my first drawings made in Windows Paint
I spent years using that; especially in VM’s!
In the early days of Intel Macs, I used TinyXP almost exclusively in Parallels. :)
Discourages me from even trying this... can't be that good if the person that made it couldn't even make a script.