9 ms·
It's baffling than after 30 years, Windows is still stuck in a weird directory naming structure inherited from the 80's that no longer make sense when nobody ha
by eloisant 11mo ago
It's baffling than after 30 years, Windows is still stuck in a weird directory naming structure inherited from the 80's that no longer make sense when nobody has floppy drives.
- leptons 11mo agoWindows can still run software from the 80's, backwards compatibility has always been a selling point for Windows, so I'd call that a win.
- chasing0entropy 11mo agoMy original VB6 apps (mostly) still run on win11
- mananaysiempre 11mo agoHmm. IME VB6 is actually a particular pain point, because MDAC (a hodgepodge of Microsoft database-access thingies) does not install even on Windows 10, and a line-of-business VB6 app is very likely to need that. And of course you can’t run apps from the 1980s on Windows 11 natively, because it can no longer run 16-bit apps, whether DOS or Windows ones. (All 32-bit Windows apps are definitionally not from the 1980s, seeing as the Tom Miller’s sailboat trip that gave us Win32 only happened in 1990. And it’s not the absence of V86 mode that’s the problem—Windows NT for Alpha could run DOS apps, using a fatter NTVDM with an included emulator. It’s purely Microsoft’s lack of desire to continue supporting that use case.)
- drxzcl 11mo agoWait, what's the story of the sailboat trip? My searches are coming up empty, but it sounds like a great story.
- mananaysiempre 11mo agoYeah, I was surprised by the lack of search results when I was double-checking my post too, but apparently I wasn’t surprised enough, because I was wrong. I mixed up two pieces of Showstopper!: chapter 5 mentions the Win32 spec being initially written in two weeks by Lucovsky and Wood > Lucovsky was more fastidious than Wood, but otherwise they had much in common: tremendous concentration, the ability to produce a lot of code fast, a distaste for excessive documentation and self-confidence bordering on megalomania. Within two weeks, they wrote an eighty-page paper describing proposed NT versions of hundreds of Windows APIs. and chapter 6 mentions the NTFS spec being initially written in two weeks by Miller and one other person on Miller’s sailboat. > Maritz decided that Miller could write a spec for NTFS, but he reserved the right to kill the file system before the actual coding of it began. > Miller gathered some pens and pads, two weeks’ worth of provisions and prepared for a lengthy trip on his twenty-eight-foot sailboat. Miller felt that spec writing benefited from solitude, and the ocean offered plenty of it. [...] Rather than sail alone, Miller arranged with Perazzoli, who officially took care of the file team, to fly in a programmer Miller knew well. He lived in Switzerland. > In August, Miller and his sidekick set sail for two weeks. The routine was easy: Work in the morning, talking and scratching out notes on a pad, then sail somewhere, then talk and scratch out more notes, then anchor by evening and relax. (I’m still relatively confident that the Win32 spec was written in 1990; at the very least, Showstopper! mentions it being shown to a group of app writers on December 17 of that year.)
- p_ing 11mo ago> It’s purely Microsoft’s lack of desire to continue supporting that use case. NTVDM leverages virtual 8086 mode which is unavailable while in long mode. NTVDM would need to be rewritten. With alternatives like DOSBox, I can see why MSFT may not have wanted to dive into that level of backwards compat.
- mananaysiempre 11mo agoAs I’ve already said in my initial comment, this is not the whole story. (I acknowledge it is the official story, but I want to say the official story, at best, creatively omits some of the facts.) NTVDM as it existed Windows NT (3.1 through 10) for i386 leveraged V86 mode. NTVDM on Windows NT (e.g. 4.0) for MIPS, PowerPC, and Alpha, on the other hand, already had[1] a 16-bit x86 emulator, which was merely ifdefed out of the i386 version (making the latter much leaner). Is it fair of Microsoft to not care to resurrect that nearly decade-old code (as of Windows XP x64 when it first became relevant)? Yes. Is it also fair to say that they would not, in fact, need to write a complete emulator from scratch to preserve their commitment to backwards compatibility, because they had already done that? Also yes. [1] https://devblogs.microsoft.com/oldnewthing/20060525-04/?p=31073 https://devblogs.microsoft.com/oldnewthing/20060525-04/?p=31...
- anthk 11mo agoReactOS' NTVDM DLL wll work under XP-10 and it will run some DOS games too.
- AndrewDavis 11mo agoDidn't Microsoft drop 16 bit application support in Windows 10? I remember being saddened by my exe of Jezzball I've carried from machine to machine no longer working.
- mkup 11mo agoMicrosoft has dropped 16-bit application support via builtin emulator (NTVDM) from 64-bit builds of Windows, whether it happens to be Windows 10 or earlier version of Windows, depends on user (in my case, it was Windows Vista). However, you can still run 16-bit apps on 64-bit builds of Windows via third party emulators, such as DOSBox and NTVDMx64.
- deleted 11mo ago[deleted]
- deleted 11mo ago[deleted]
- lmm 11mo ago> you can still run 16-bit apps on 64-bit builds of Windows via third party emulators, such as DOSBox and NTVDMx64. Or Wine, which is less reliable but funnier.
- ale42 11mo agoDo you mean winevdm? https://github.com/otya128/winevdm https://github.com/otya128/winevdm Wine itself doesn't run on Windows AFAIK.
- lmm 11mo ago> Wine itself doesn't run on Windows AFAIK. It does, if you use an old enough version of windows that SUA is available :). I never managed to get fontconfig working so text overlapped its dialogue boxes and the like, but it was good enough to run what I needed.
- 11mo ago
- anonymous_sorry 11mo agoIt's very impressive indeed. Linux goal is only for code compatibility - which makes complete sense given the libre/open source origins. If the culture is one where you expect to have access to the source code for the software you depend on, why should the OS developers make the compromises needed to ensure you can still run a binary compiled decades ago?
- notepad0x90 11mo agoI like being able to run games from early 2000s. Being able to write software that will still run longer after you're gone used to be a thing. But here we are with linux abandoning things like 'a.out'. Microsoft doesn't have the luxury to presume that it's users can recompile software, fork it, patch it,etc.. When your software doesn't work on the latest Windows, most people blame Microsoft not the software author.
- Gud 11mo agoOk, I prefer to use software which is future compatible, like ZFS, which is 128-bit. “The file system itself is 128 bit, allowing for 256 quadrillion zettabytes of storage. All metadata is allocated dynamically, so no need exists to preallocate inodes or otherwise limit the scalability of the file system when it is first created. All the algorithms have been written with scalability in mind. Directories can have up to 248 (256 trillion) entries, and no limit exists on the number of file systems or the number of files that can be contained within a file system.” https://docs.oracle.com/cd/E19253-01/819-5461/6n7ht6qth/index.html https://docs.oracle.com/cd/E19253-01/819-5461/6n7ht6qth/inde... Don’t want to hit the quadrillion zettabyte limit..
- bhaney 11mo ago> Directories can have up to 248 (256 trillion) entries It took me a minute to figure out that this was supposed to be 2^48, but even then that's ~281 trillion. What a weird time for the tera/tibi binary prefix confusion to show up, when there aren't even any units being used.
- chuckadams 11mo agoSomeone did some back-of-the-napkin math and calculated that to populate every byte in a 128 bit storage pool, you'd need to use enough energy to literally boil the oceans. There was a blog post on oracle.com that went into more detail, but no link into Oracle survives more than 10 years.
- simondotau 11mo agoI don’t like running games from the early 2000s outside of a sandbox of some description. If you disagree, it's because we don't have sandboxes which don't suck. Ideally, running old software in a sandbox on a modern OS should be borderline transparent — not like installing XP in a virtual machine. While I understand the appeal of software longevity, and I think it's a noble and worthy pursuit, I also think there is an under-appreciated benefit in having unmaintained software less likely to function on modern operating systems. Especially right now, where the concept of serious personal computer security for normal consumers is arguably less than two decades old.
- BobbyTables2 11mo agoYeah, try explaining “drive C:” to a kid these days, and why it isn’t A: or B: … Of course software developers are still stuck with 80 column conventions even though we have 16x9 4K displays now… Didn’t that come from punchcards ???
- ahoef 11mo agoWhile 80 characters is obviously quite short, my experience is that longer line lengths result in much less readable code. You have to try to be concise on shorter lines, with better phrasing.
- Sharlin 11mo agoIt did, but 80 columns also pretty closely matches the 50ish em/70ish character paragraph width that’s usually recommended for readability. I myself wouldn’t go much higher than 100 columns with code.
- strogonoff 11mo agoCome for punchcards, stay for legibility. 80 characters per line is an odd convention in the sense that it originated from a technical limitation, but is in fact a rule of thumb perfectly familiar to any typesetting professional from long before personal computing became widespread. Remember newspapers? Laying the text out in columns[0] is not a random quirk or result of yet another technology limitation. It is the same reason a good blog layout sets a conservative maximum width for when it is read on a landscape oriented screen. The reason is that when each line is shorter, the entire thing becomes easier to read. Indeed, even accounting for legibility hit caused by hyphenation. Up to a point, of course. That point may differ depending on the medium and the nature of the material: newspapers, given they deal with solid plain text and have other layout concerns, limit a line to around 50 characters; a book may go up to 80 characters. Given a program is not a relaxed fireside reading, I would place it closer to the former, but there are also factors and conventions that could bring acceptable line length up. For example, indentation and syntax highlighting, or typical identifier length (I’m looking at you, CNLabelContactRelationYoungerCousinMothersSiblingsDaughterOrFathersSistersDaughter), or editor capability to wrap lines nicely[1]. Finally, since the actual technical limitation is gone, it is actually not such a big deal to violate the line length rule on occasion. [0] Relatedly, codebases roughly following the 80 character line length limitation unlock more interesting columnar layouts in editors and multiplexers. [1] Isn’t the auto-wrap capability in today’s editors good enough that restricting line length is pointless at the authoring stage? Not really, and (arguably) especially not in case of any language that relies on indentation. Not that it could not be good enough, but considering code becomes increasingly write-only it seems unlikely we will see editors with perfect, context-sensitive, auto-wrap any time soon.
- ForOldHack 11mo agoIn the 80s, running DOS 3.1 on an IBM Network, I was networking dual floppy PCs, and with testing, got through drive '!' '@' '#' '^' So I was able to use 26 floppies, 24 of them non local... It was all removed with the next release, 3.2, so I would make some bets about NT Networking and its NetBIOS roots. I was inspired by the Dr Seuss, "On beyond Zebra."
- naikrovek 11mo agoIt’s not baffling at all. They strongly value maintaining backwards compatibility guarantees. For example, Windows 11 has no backwards compatibility guarantees for DOS but operating systems that they do have backwards compatibility guarantees for do. Enterprises need Microsoft to maintain these for as long as possible. It is AMAZING how much inertia software has that hardware doesn’t, given how difficult each are to create.
- wizzwizz4 11mo agoThe 3.5mm audio jack is 75 years old, but electrically-compatible with a nearly 150-year-old standard.
- naikrovek 11mo agoYeah speakers haven’t changed enough to make the 3.5mm connector obsolete.
- anthk 11mo agoVictorian teletypes can be hooked to a serial port with a trivial adapter, at least enough to use CP/M and most single-case OS'es. Also, some programming languages have a setting to export code compatible with just Baudot characters: http://t3x.org/nmhbasic/index.html http://t3x.org/nmhbasic/index.html So, you could feed it from paper tape and maybe Morse too.
- PunchyHamster 11mo agoI had game partition mounted as subpath on a drive and it just not worked well with some apps. Some apps (in this case Steam) don't run "what is is space in current path" (despise say GetDiskFreeSpaceExW accepting full path just fine), they cut it to the drive letter, which causes them to display space of the root drive, not the actual directory that they are using and in my case was mounted as different partition
- Octoth0rpe 11mo ago> Windows is still stuck in a weird directory naming structure inherited from the 80's that no longer make sense when nobody has floppy drives. I think you could make this same statement about *nix, except it's 10 years _worse_ (1970s). I strongly prefer the fhs over whatever MS thinks it's doing, but let's not pretend that the fhs isn't a pile of cruft (/usr/bin vs /bin, /etc for config, /media vs /mnt, etc)
- gerdesj 11mo agoUnix starts at root, which is how nature intended. It does not change characteristics based on media - you can mount a floppy at root if you want. Why get upset over /media vs /mnt? You do you, I know I do. For example The Step CA docs encourage using /etc/step-ca/ (https://smallstep.com/docs/step-ca/certificate-authority-server-production/#running-step-ca-as-a-daemon https://smallstep.com/docs/step-ca/certificate-authority-ser...) for configuration for their product. Normally I would agree but as I am manually installing this thing myself and not following any of the usual docs, I've gone for /srv/step-ca. I think we get enough direction from the ... "standards" ... for Unix file system layouts that any reasonably incompetent admin can find out which one is being mildly abused today and get a job done. On Windows ... good luck. I've been a sysadmin for both platforms for roughly 30 years and Windows is even odder than Unix.
- Wowfunhappy 11mo ago> Unix starts at root, which is how nature intended. It does not change characteristics based on media - you can mount a floppy at root if you want. Why is the root of one of my drives `/` while the roots of my other drives are subdirectories of that first drive?
- TimeBearingDown 11mo agoOnly the root of the root filesystem is / The point is that any filesystem can be chosen as the OS’s root. The root of all other filesystems - there could be multiple per drive - is where you tell the filesystem to be mounted, or in your automounter’s special directory, usually /run/media, where it makes a unique serial or device path. * clarity
- kqr 11mo agoWait 'til you hear about the PDP-11 emulator of a CPU it is running on.
- exidy 11mo agoInherited from the 80s? Microsoft effectively inherited drive letters via an 8086 semi-clone of CP/M called QDOS[0], it was the basis for PC-DOS and later MS-DOS. CP/M dates back to 1974. But Gary Kildall didn't come up with the idea of drive letters in CP/M all on his own, he was likely influenced by TOPS-10[1] and CP/CMS[2], both from the late 60s. [0] https://en.wikipedia.org/wiki/86-DOS https://en.wikipedia.org/wiki/86-DOS [1] https://en.wikipedia.org/wiki/TOPS-10 https://en.wikipedia.org/wiki/TOPS-10 [2] https://en.wikipedia.org/wiki/CP/CMS https://en.wikipedia.org/wiki/CP/CMS
- fortran77 11mo agoIt's baffling tha[t] after 59 years , Unix is still stuck in a weird directory naming structure inherited from the the late 60s that no longer make[s] sense when nobody has floppy drives.
- cbm-vic-20 11mo agoUnix pre-dates floppy drives, at least on PDP-11.
- monocasa 11mo agoUnix just barely predates the PDP-11 itself.
- 1718627440 11mo agoI don't know about you. A common namespace composed as a tree makes sense to me. Splitting of user data makes sense to me. Splitting data from code executable code make sense to me. Splitting configuration from other data does. So does splitting code into executables and libraries, splitting into per machine/shared, and splitting into core OS and other (now reversed). The actual names don't matter all that much, but they are short and standardized so we use them. What do you find weird about the directory naming structure?
- dragonwriter 11mo agoI don't particularly like the Windows naming structure, but it made just as much sense with later removable-media-with-fixed-drives systems (like optical drives) as it did with floppy drives. It maybe makes less sense now that storage is either fixed media or detachable drives, rather than some being removable media in fixed drives, but the period after commonn removable media is a lot shorter than the period after common floppy drives. (And mostly, I'm talking about using drive letters rather than something like what unix does. C being the first fixed media device, may seem more arbitrary now, but it was pretty arbitrary even in the floppy era.)
- toolslive 11mo agoThere's special place in hell for the inventor of drive names. IIRC, it's something that was nicked from CP/M.
- rwmj 11mo agoTim Patterson certainly copied it from CP/M and may not have been aware of anything predating it, but according to Wikipedia drive letters have quite a long history: https://en.wikipedia.org/wiki/Drive_letter_assignment https://en.wikipedia.org/wiki/Drive_letter_assignment
- zoeysmithe 11mo agoI mean its a successful commercial project because it doesnt break things, at least not that often. You can run some really old software on windows. Its kind of taken for granted, but this is just not the norm is most industries. As for baffling, I mean, I type in things like 'grep' everyday which is a goofy word. I'm not even going to go into all the legacy stuff linux presents and how linux, like windows, tries hard not to break userland software.