Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Operating Systems

DOS's Last Stand? On a Modern Thinkpad X13 with an Intel 10th-Gen Core CPU (yeokhengmeng.com) 73

Slashdot reader yeokm1 is the Singapore-based embedded security researcher whose side projects include installing Linux on a 1993 PC and building a ChatGPT client for MS-DOS.

Today he writes: When one thinks of modern technologies like Thunderbolt, 2.5 Gigabit Ethernet and modern CPUs, one would associate them with modern operating systems. How about DOS?

It might seem impossible, however I did an experiment on a relatively modern 2020 Thinkpad and found that it can still run MS-DOS 6.22. MS-DOS 6.22 is the last standalone version of DOS released by Microsoft in June 1994. This makes it 30 years old today.

I'll share the steps and challenges in locating a modern laptop capable of doing so — and the challenge of making the 30-year-old OS work on it with audio and networking functions. This is likely among the final generation of laptops able to run DOS natively.

This discussion has been archived. No new comments can be posted.

DOS's Last Stand? On a Modern Thinkpad X13 with an Intel 10th-Gen Core CPU

Comments Filter:
  • Link to TFA (Score:5, Informative)

    by arglebargle_xiv ( 2212710 ) on Monday August 19, 2024 @12:18AM (#64717218)
    The post omits the link to the article it's talking about, you can find it here [yeokhengmeng.com].
    • by Tx ( 96709 ) on Monday August 19, 2024 @02:50AM (#64717358) Journal

      The link is next to the title. What, you don't think the teal on dark teal colouring is super visible?

      • Ah, so it is. Barely visible on a phone.
      • Teal?

        Thats a colour?

        Interesting, I had no idea slashdot was using colours, I have always assumed it was just shades of greys. Thats the thing about being a dutan (green weak colourblind), sometimes greens look grey).

        No wonder Slashdot looks so boring.

        • Teal?

          Thats a colour?

          Interesting, I had no idea slashdot was using colours, I have always assumed it was just shades of greys. Thats the thing about being a dutan (green weak colourblind), sometimes greens look grey).

          No wonder Slashdot looks so boring.

          Don’t worry, I doubt anyone here will blame you for thinking slashdot is one giant grey area.

        • by hawk ( 1151 )

          yeah, it's a color.

          Some kind of green.

          Of course, the only reason I know this is that my wife chose it for bridesmaids' dresses.

          And more than 30 years later, I still can't tell why it's different . . .

          sidenote: at a multi-year high school reunion, they color-coded the tablecloths for graduating year, to help us find one another.

          And some genius used both green and teal. At an all boys school!

          fortunately, enough of us had wives with us to figure it out.

      • by GrumpySteen ( 1250194 ) on Monday August 19, 2024 @06:23AM (#64717566)

        It's a usability nightmare!

        Every modern UI designer knows that it's supposed to be a super light grey text on a white background!

      • Ah thank you! -- I've been using Slashdot two decades and I just realise where the article link is now.

      • by hawk ( 1151 )

        hah!

        I have fsdn blocked with littlesnitch, so it's white background, black text--to the right margin!, and blue links.

        So no link here for me, unless it was hard-coded to be white on white . . .

        but, really now, after nearly thirty years, do you expect me to start clicking them *now*?

        hawk

  • And this is a lot of why Intel is not so competitive anymore. They're still building chips with ancient software in mind, while everyone else is breaking away. They still build chips for regular people that have a ton of backwards compatibility and high end features that only a few use. Take off all that junk and they can be a lot more competitive, even with their relatively crap fabs.

    • And this is a lot of why Intel is not so competitive anymore

      And this is how one knows that you aren't quite up to speed with what is going on in Intel. x86S is Intel's pitch to do exactly what you indicate. [intel.com] And you can find the current spec and what OSes and firmware need to be doing to reach x86S operations. [intel.com]

      Obviously them only pitching this in 2023 may be a bit late to the game. But Intel sees that dropping the old real and extended mode as the only way forward for simplifying design. But Intel is very much so heading in this direction, but one doesn't go down

      • by dwywit ( 1109409 )

        Intel CPUs are already emulating the x86 instruction set, so.....

        • by slack_justyb ( 862874 ) on Monday August 19, 2024 @09:25AM (#64717844)

          Nah you are getting that confused. You're right in that they emu x86. They're confusingly calling a x86_64 only machine x86S. No emu, all long mode and that it's. So IA32e as that emu is called, that's there but only ring3. Actual IA32e ring0 would be dropped in x86S. So you can't do system code in ring0 even on a 64b OS that allowed such, the hardware would just simply not be there any longer to support those instructions.

          You are right about IA32e, but this stuff is different than that. This would completely remove 32b at ring0 and leave it only at ring3.

      • the Intel® 64 architecture

        Mod Intel funny.

        • The AMD64 architecture surely?
          Intel's 64 bit architecture was Itanic, which is very very dead.

    • by dlarge6510 ( 10394451 ) on Monday August 19, 2024 @03:58AM (#64717440)

      > while everyone else is breaking away.

      Who else?

      ARM?

      Mips?

      Well ARM are trying to move into the server room and good on 'em as I'd like to have ARM there but you do realise that the main architecture on the planet is x86/x64? And there are only two manufacturers of such chips and they all are x86 compatible? CPU's are mostly microcode these days, the modern ones mostly likely just emulate / convert instructions on the fly.

      If you are thinking of ARM, well ARM is a mess. It's hard to get anything running between ARM chips. The ARM chips used by the RPi till the PI3 (might have been the Pi 2, still supported 26bit instructions, which was a boon for us RISC OS users.

      MIPS I think are used on cheap Chinese linux laptops.

      RISC V? Well let me know when one appears on the market...

      Apple? When was the last time you saw an Apple server? Operating as a domain controller for a corporate network? Yeah.

      The fact is the most common architecture on the planet is x86/x64. There is nothing else. It runs the main OS on the planet, MS Windows, and the main OS' that make up the internet being Linux and the BSD's and of course Windows. The vast majority run on x86/x64 servers.

      Don’t get me wrong, I hate having such a dominant mono-architecture. I hail from the days when we had C64/Speccy Amiga etc, all different platforms and architectures. It was cool and fun. Now its all the same and boring, but it doesn’t change the fact that everything non-embedded is x86, heck you still have NEW 386 and 486 hardware being installed. Till recently that included the Z80 as well, which is 8080 compatible! RS232 is everywhere, the 6502 is still cropping up and still manufactured. ARM won the small and light and power efficient areas with mobile phones and some embedded stuff too. But on the desktop and server space, x86 rules.

      I miss the days of different architectures in that area, I was thinking of getting a MIPS laptop just a few years back, or using some ARM system (better and bigger than a Pi) as a main Linux desktop etc. I'm looking forward to ARM moving more into the serverroom, but its early days yet and it’s been talked about for years.

      Regardless, x86 won’t go anywhere, neither will DOS. So many systems you rely on just to get by daily run on such hardware and software. It's cheaper to maintain them than to replace them. Industrial control systems and heavy machinery, that simply can’t be thrown away just because some pimply faced youth fresh out of Uni doesn’t want to read “DOS for dummies”.

      Edit: actually I was wrong. The most widely used OS on the planet is actually Minix. Most CPU's are intel ones, and they all run Minix in the management engine.

      • The fact is the most common architecture on the planet is x86/x64. There is nothing else. It runs the main OS on the planet, MS Windows, and the main OS' that make up the internet being Linux and the BSD's and of course Windows. The vast majority run on x86/x64 servers.

        You are factually wrong. There are an estimated number of 2 billion computers in the world (this includes desktops, laptops, servers) and an estimated number of 7 billion smartphones (this does NOT include tablets). That makes Android on ARM the most used combination around the world. And I didn't count the increasing amount of IoT devices.

        To go further... yes, currently most servers run on x86/x64, but the likes of Amazon and Google develop their own CPUs, so most servers will shift to Linux on ARM.

      • by kbahey ( 102895 )

        There are many new products based on ARM and RISC-V that are coming down the pipeline, for desktops and for servers.

        They are still in the early stages, but they promise lots of benefits (lower power, longer battery time, ...etc.)

        Take a look at the Youtube channel Explaining Computers [youtube.com] for reviews of many of those.

        And various flavours of Ubuntu (desktop, server, ...) are available for various Rockchip [github.io] based SBCs, ITX boards and so on.

        So the dominance of x86 in servers and desktops may soon get serious challen

    • They're still building chips with ancient software in mind, while everyone else is breaking away.

      No they aren't. Not only do Intel CPUs not natively support DOS (they provide a specific compatibility layer to get DOS BIOS calls working - you can find this option in your UEFI setup called "CSM"), but Intel has actively proposed dropping 16bit real mode from their CPU architecture altogether.

  • Many shortcomings (Score:5, Interesting)

    by lsllll ( 830002 ) on Monday August 19, 2024 @12:51AM (#64717252)
    DOS 6.22, while the latest, still had many shortcomings. Enter 4DOS [wikipedia.org]. When I discovered 4DOS in 1991 it opened the door do the next level of administration on our Novell NetWare servers. As a programmer, I couldn't get enough of using all the functionality it offered and a replacement command interpreter for command.com. Pair that with programming custom software using NetWare's API, system administration became a breeze. Until Windows domain controllers dethroned NetWare, and then it was time to move on to Linux :-)
    • Yup! 4DOS (and 4NT) were _amazing._ You could free up SO much of conventional 640 KB memory. I think I even ran into the issue where one game wouldn't load because TOO much conventional memory was available!

      The dad of a friend of mine introduced me to 4DOS and QEdit around ~1988. Good times.

      Norton Utilities 5.0 even licensed a copy and called their version NDOS.

      • It's still around, it's called Take Command. If you've ever had to run Windows but wanted it CLI-based, that's your program.
        • It's still around, it's called Take Command. If you've ever had to run Windows but wanted it CLI-based, that's your program.

          Pretty much every machine I work on has TCC/LE installed on it. I don't pretend to use as much of it as I used to but aliases and command-history that obeys the first couple characters you type? Super helpful when you rely on a command line in Windows.

          On my main machines I use something called ConEmu which is basically tabbed command prompts and keep a TCC/LE and a PowerShell open at all times. It's more feature rich than the new console thing Win11 got.

          • I like the tab completion and shortcuts, makes it vastly easier to work with long pathnames, just and you've navigated across four levels of directories with minimal typing and no clicking. It's kind of a DOSsy version of some of the better Unix shells.
            • 100%. Tab Completion was THE killer feature of 4DOS/4NT! You could press tab repeatedly to cycle through filenames. I think it took Microsoft YEARS to implement this.

    • 4DOS was not a replacement for DOS but a replacement for command.com. Just saying ...
      There also were 4OS2 and 4NT, both also great tools.

      btw: You can still buy these.

      • by lsllll ( 830002 )
        You must have stopped reading after the opening sentence.

        a replacement command interpreter for command.com

        But I'll give you that the opening sentence was misleading.

      • by dryeo ( 100693 )

        4OS2 and I think 4DOS were open sourced under the Sybase license IIRC. Same license as Openwatcom.
        Hmm, looking at wiki, https://en.wikipedia.org/wiki/... [wikipedia.org], the 4DOS source license is pretty restrictive,

        Originally distributed as shareware, 4DOS has been later released as unsupported freeware. Currently, the source code is available under a modified MIT License but it "may not be used in any commercial product without written permission from Rex C. Conn"[7] and "may not be compiled for use on any operating sys

    • by Rufty ( 37223 )
      I really like 4DOS/4NT/TakeCommand, to the extent that when I moved on from Windows I kept using file descriptions via extended attributes. xattr + pattr + eza -l@
  • why? (Score:5, Insightful)

    by nicubunu ( 242346 ) on Monday August 19, 2024 @12:53AM (#64717254) Homepage

    The only question it comes to mind is: why? Why run MS-DOS when you can run FreeDOS instead?

    • Run MS-DOS 4.01 it's free and open source

    • by yeokm1 ( 5219085 )
      Both FreeDOS and MS-DOS will work for this experiment. Choosing MS-DOS 6.22 was more for nostalgia.
      • by vbdasc ( 146051 )

        They could've used IBM PC DOS 2000/7.1 instead for the added benefit of supporting FAT32, int 13x and possibly other enhancements. Or the DOS embedded in Windows ME edition for even more bugfixes and modern features.

        • by dryeo ( 100693 )

          Or OS/2 in the form of ArcaOS, therefore mdos 5 or any other version of DOS in the VDM, on even newer hardware as it does not need the CSM support, just the framebuffer below 4GB, it includes its own VGA BIOS. Newest hardware also has a problem with limited RAM under 4GB as so much is given over to PCI space.

    • by Dwedit ( 232252 )

      Some programs require MS-DOS and are incompatible with FreeDOS.

      • Re:why? (Score:4, Funny)

        by Powercntrl ( 458442 ) on Monday August 19, 2024 @02:14AM (#64717308) Homepage

        Some programs require MS-DOS and are incompatible with FreeDOS.

        This is not a comment I thought I'd see being made in 2024. It's like ever since vinyl records came back people have lost their minds trying to see how much of the past they can resurrect. I can just imagine a visitor from the past asking "So, in 2024 you've got fusion power and flying cars, right?"

        "Nope. But you can buy a copy of Taylor Swift's latest album on vinyl and somebody just installed DOS on their laptop. Also, we do sort of have AI now, but it's complicated."

        • Re:why? (Score:5, Insightful)

          by dlarge6510 ( 10394451 ) on Monday August 19, 2024 @04:37AM (#64717474)

          > how much of the past they can resurrect.

          I think you need to have a deep dive into how much of the "past" never ever left.

          I always foundit odd how people assume "DVSs no longer exist" or "VHS no longer exists" just because they didnt see them on the shelves anymore, even though they were right in their faces if there simply actually looked in the right placed, but no, the supermarket stopped selling DVS's so no DVD's exist :D

          I rember telling a mate at work about my bluray haui from HMV a couple of years ago, we asked openly "do they still make blurays?" :D

          Also I remember how some members of staff needed a flash drive to play an MP4 on a static TV downstairs in the restururant. They came up to IT asking sheepishly if we had such thing as a flash drive, something they thought was as retri as a floppy disc. I told them taht we didnt, as we never get the back. Told them to simply pop across to the supermarket and expence it to the company. Lol, the looks on their faces as I told them to get one off the shelf, they literally couldnt believe that SD cards, flash drives were still manufactured. I couldnt understand how they were so blind and I spared them the shock that in 2024 the DVD+R's are still on that shelf too :D I thought that would be too much for them.

          When you work in IT, especialy industrial IT, you get to accept that ther reason why there is a WIndows NT system embedded inside thet critical bit of machinerey that the company relies on (this was back in 2016) is because the company wont swallow the *quarter million* needed to buy something newers that runs off a modern OS. When THEY pay you and your job and bonus depends on the financial stabilioty of a company making beer in a worls that not drinking as much beer, you learn to keep your mortgage being paid by NOT demanding they throw away a functioning bottling line just because it runs NT 4.

          I remember the storm that ensured at that place when two 6502, yes 6502 based quality measurement devices packed up.. They were over 25 years old and finally failed. Fucking awesome service life I thought, and when I saw the original company that made them still existed and offered EXACT duplicate drop in replacements I thought wow, buy two new ones and get another 20 years. But the costs? £3000 a unit, and they needed two so £6000. Wow, based on 6502's, NEW ones made in 2018. Using 16 charcater 2 line LCD displays and CENTRONICS parallel ports to print to BRAND NEW laser printers and BRAND NEW dot matrix printers. It all really kicked off whan I suggested they get the new units, and they were new drop in replacements with the same hardware but with the addition of a USB port (yes USB and a 6502 based system, wow, I later figured out is was a USB adapter card running off a microcontroller) taht allowed advanced control and mesurement via modern PC software.

          Anyway they eventually got them, commisioned them and sung the praises about the ew software and the COMPATIBILITY.

          The scary thi is not the fact that 6502’s and NT and DOS are being sued in modern 2024 to do things worth huge amounts of money, but that these systems sometimes get connected to a network today and immediately become an attach vector.

          But it doesn’t get better if you use new systems either. We eventually totally replaced the SCADA system in the brewery with a modern one running off windows 10 machines. The company that came to install it all were dead against us demanding the following:

          - Each machine has defined users and complex passwords (they wanted ONE admin user and THE SAME password they use across the world)

          - The SCADA network was to be physically isolated from the corporate LAN. (They simply couldn’t understand this one)

          - Remote support would be done via a IT dept controlled VPN that allows a “jumpbox” to be used to access the SCADA systems (they wanted the SCADA LAN on the net with no firewall or V

          • by AmiMoJo ( 196126 )

            VHS is an interesting example because we have better tools to play it back now, with superior quality to anything that was available when it was current technology. A lot of interesting video that was barely watchable on VHS is now recoverable. Everything from personal family videos to lost episodes of TV shows and unseen recovered material from productions.

    • I think the point of this was to see how a 23 year old OS works on modern hardware, not how a somewhat basic but only 2 year old and currently maintained OS works.

      • Re:why? (Score:4, Informative)

        by nicubunu ( 242346 ) on Monday August 19, 2024 @09:18AM (#64717822) Homepage

        FreeDOS is 29 years old if you count from the initial release or 18 years old if you count from the stable release.

        If you read the article, you'll see the specific laptop model was chosen because it still support UEFI-CSM, as in boot in BIOS mode. If the computer has only UEFI and no BIOS, then MS-DOS simply can't run, that's the cutout line.

    • FreeDOS doesnt run everything DOS can

  • The legacy BIOS has been going away from UEFI motherboards so you cannot toggle enable it anymore. Is there some implementation of BIOS calls so that you could boot to FreeDOS (or MS-DOS) on an UEFI-only system?

    • by zekica ( 1953180 )
      I'm not sure, from what I have found on the internet:

      To the best of my knowledge, one can't get full BIOS compatibility from a "UEFI loader" as the BIOS really needs to be in the 0xf0000-0x100000 area of memory and that gets locked down by the firmware. It might be possible to "hack" SeaBIOS to run in an area of memory outside of that range, but I suspect it would be a large amount of work with little gain. It would almost certainly be simpler to run a Linux image and then launch the desired OS via QEMU.

    • by vbdasc ( 146051 )

      No, this is indeed the end of DOS. But do not despair though, DOS will be able to run in virtualization or emulation in the foreseeable future.

      • by Zarhan ( 415465 )

        Yeah, not really concerned about being able to play games with Dosbox Staging and the like. Mostly wondering about stuff that still requires direct hardware access. I guess industrial PCs will continue to have BIOS anyway, but they are moving towards specific niches.

        I was really more thinking about a setup where you have UEFI boot up the "legacy BIOS" implementation e.g. lifted from coreboot, which would then hand execution over to DOS.

        • not really concerned about being able to play games with Dosbox Staging and the like. Mostly wondering about stuff that still requires direct hardware access.

          You can at least in theory use passthrough for that stuff. The emulator gets relatively direct access to the hardware. Still might break some things. But you cannot have the legacy BIOS used only at boot, because DOS depends on BIOS to function. You cannot "hand execution over to DOS" because DOS hands execution back to the BIOS constantly!

    • No, DOS relies on a BIOS.

      Only very recently have UEFI's been dropping the needed support.

    • by xack ( 5304745 )
      There have been some "FreeDOS" laptops that use a minimal Linux distro to wrap a minimal dosbox install.
  • by Tablizer ( 95088 ) on Monday August 19, 2024 @02:19AM (#64717318) Journal

    I don't know why the Hell MS is deprecating DOS for PowerShell language. They could have enhanced DOS to improve it instead of add Yet Another Language.

    They could have chosen among 4 existing MS languages for OS scripting: DOS, C#, VBS, or JavaScript so that MS shops can leverage what they know.

    If you want to do super-fancy programming, then use C# (along with a nice server admin library). Otherwise an enhanced DOS or VBS is fine for scriptish tasks. PowerShell is kind of a goofy language anyhow.

    • They could have enhanced DOS to improve it instead of add Yet Another Language.

      They did. They enhanced for loops so they can now process the output stream of a program (like backticks in a UNIX shell script), and have options to make variables fill in at runtime instead of load time of the script. Dos now has more advanced variable substitution like replacements, extracting parts of a path, etc.

      You can do an awful lot with DOS these days. Off course, that is the DOS that is shipped with Windows, not a stand-alone version.

      • by Tablizer ( 95088 )

        Okay, but then why have two different languages/tools that do pretty much the same thing? It's a product DRY violation, anti-factoring.

    • PowerShell was originally a side project by a Microsoft engineer. If I remember the history right (I'm in no mood for googling the details right now), he wanted a way to script administrative stuff on Windows using everything available through .Net, rather than going the official MS way at the time of having everything done via graphical wizards. And he was even reprimanded for that. So from the start it couldn't be an alteration of something already existing, such as VBS, as it wasn't really in anyone's ra

      • by Tablizer ( 95088 )

        MS should have viewed it as demonstrating the need for a better Windows scripting tool rather than take the experiment as-is. The consumer doesn't want to have to learn Yet Another MS Language unless it's significantly better than the existing, and the existing are un-improvable. Neither applies. MS did it illogically. Vulcans cry.

    • by vbdasc ( 146051 )

      DOS is not a language, and the classic Windows NT command prompt is not DOS.

  • by dlarge6510 ( 10394451 ) on Monday August 19, 2024 @03:24AM (#64717402)

    I love it. You can also install later versions that have been "extracted" from Win98 etc but 6.22 is fine.

    When running in a VM look up a TSR program called "dosidle". It allows DOS to use the correct instrictions of modern CPUs to let them enter the idle state, if you dont do that the host CPU runs at 100%.

    Basically DOS 6.22 and FreeDOS will runs just fine on any system that has a functional BIOS or UEFI that still implements enough of the traditional BIOS calls and interrupts. Same with GPS, but YMMV with your GPU properly supports all graphics modes, especially CGA modes which may or may not work and may or may not look shit simply due to the fact that GPU makers im plement them and rarely tested.

    There is a large DOS community writing drivers etc for FreeDOS and DOS itself. If you find you have an industrial system that must run DOS and for some reason cant use FreeDOS and you merely need an RS232 port, you'll find even a Ryzen 5 will be able to do it.

    Conversley you'll find that all this wonderful backwards compatibility also maintains massive security vulnerabilities in our main architecture that we struggle to patch. If we get brave enough to drop the old stuff, we could totally redesign our main architecture to be more secure.

    Anyway, after discovering the UNix shells in 1997/8 I've long found DOS to be too limiting as an OS, but it has plenty of uses as there is so much software out there, especially if you are into using serial programmers for microcontrollers.

    • after discovering the UNix shells in 1997/8 I've long found DOS to be too limiting as an OS

      Microsoft made a bourne shell for DOS. No clue where it came from originally but I used to have sh.exe on my PC. If you had just a few other utilities you could use it to do stuff like unpack SHARs. Unfortunately it used a lot of RAM. There was a k shell which was much smaller, I have even less idea where that came from as it's been a very long time.

      Obviously the shell wasn't what made DOS limiting... it was DOS

  • Very cool. Questions for yeokm1, if you turn off vsync, how many frames per second in Descent? Aren't some things in the game dependent on cpu speed and a really fast cpu screws things up because it was designed with a range of cpu speeds in mind?
    • by yeokm1 ( 5219085 )

      I'm not sure how to disable vsync in DOS in this machine. I highly doubt there are any utilities to do so. As for Descent 1, was there even an FPS counter for it?

      As for CPU speed you raise a good point, I did not artificially modify or slow down the CPU or anything. Everything was stock yet the games I have tried like Descent seems to run at the right speed although I would recall it being quite speed sensitive. I wonder if the Lenovo has capped the CPU's real and protected mode performance in some way by d

  • Did anyone else play on kali back in the day? Compete in ladder matches?
  • One day i was called to the hospital to troubleshoot an old DOS computer which stopped working. Some critical system, they couldn't just make it go away. I booted to the F8 menu and stepped through the Config.sys and Autoexec.bat and found the system crashed a few seconds after loading the NIC drivers. Repeated the sequence, and found it occurred and completely correlated with the first network driver layer. Asked if anything changed recently - like the switch? "Oh yeah last night actually." Please re
  • I still have Classic Quake to run. You fellas can Netfl*x binge all you want, while I'm the going to go 1-on-1 against some AI bots (not really smart ones, just clever ones

  • DOS requires real mode, and all x86 chips, even the shiniest Ryzen 9 series to the buggiest Intel Core Ultra 9 14th gen CPU can still do it.

    Heck, they actually have an input for the A20 gate so you could run 16-bit software that needed the loop-around.

    The problem though is that most of the boot firmware lack the legacy boot option. But you'll probably get to exercise the bit of RAM that is ignored in the memory map because it's inconvenient. (most OSes will skip the 0-1MB region of RAM to avoid the 384k upp

The question of whether computers can think is just like the question of whether submarines can swim. -- Edsger W. Dijkstra

Working...