DOS Subsystem for Linux
github.com
github.com
"DOS Subsystem for Linux" sounds to me like something that runs a DOS environment in Linux. When it's actually the opposite.
Also back in the day Windows supported POSIX as a subsystem and some others as well. Each one was considered a Windows subsystem for that specific architecture. And now that there's one for Linux, we get WSL.
- csrss: Client Server Runtime Subsystem
- smss: Session Manager Subsystem
and so on. It seems that WSL is indeed breaking convention, or else it would be something like lss or lxss for example.
With “Linux Subsystem for Windows”, the owner of the Linux trademark could hypothetically sue Microsoft arguing that consumers could misinterpret the name as meaning a part of Linux, or an official Linux product.
“Windows Subsystem for Linux” unambiguously implies only that the software is compatible with Linux, not that it’s affiliated with it. (It still uses the trademark, but in a way that would be considered descriptive fair use.)
It’s not like there’s any real chance the trademark owner in question, the Linux Foundation, would actually sue Microsoft over this, but lawyers tend to prefer safe over sorry.
The problem with "Linux subsystem for Windows" is that the Linux people were not involved and the thing isn't a normal Linux. So there is much more risk of a trademark dispute in that case.
That's part of what makes this kind of naming so confusing. "Rust for Windows" sounds like some kind of development in the rust language in the direction of supporting windows, but it's just a library.
I can imagine a trademark holder taking issue with something like this. For instance, imagine the Ford auto compnay marketed their USB port, which you can plug an iPhone into, as "iPhone for Ford Trucks".
edit:
Look at the title in the Rust for Windows github: https://github.com/microsoft/windows-rs
> Rust for the Windows SDK
What does that even mean? "Rust implementation of the Windows SDK API", or "Rust Wrapper for the Windows SDK" would make sense, but this phrasing is completely foreign to anyone doing software.
Interestingly enough, WSL 1 did not contain Linux at all. WSL2 on the of other hand ships the Linux kernel.
Windows Subsystem for Audio, Windows Subsystem for Filesystems, etc
We say that English is "right-headed" for this reason - an audio subsystem is a kind of subsystem, not a kind of audio.
Interestingly, there are a few established words, derived from verbs, like kiss-ass or pickpocket which have things the wrong way around; the prediction from right-headedness would be pocket-picker.
...none of those make any sense. Chrome isn't for Google. It's made and distributed by Google. iPhones aren't for Apple. Office isn't for Microsoft.
What were you trying to say?
Windows subsystem for Linux is a product. Just like Apple iPhone is a product. Just like Apple iCloud is a product. Nobody names their products with their company name at the end.
The equivalent of "Apple iPhone" is, in this case, "Windows Audio Subsystem". Not "Windows Subsystem for Audio".
"Hey hank, grab me the Microsoft Screws(tm) for 3/4 inch holes"
So the Linux subsystem should be called... Linux subsystem. Searching on Google would lead to type "linux subsystem for windows" and it would not be hard for Google to direct you to the right Microsoft website.
It's not dumb to them. Microsoft is not a tech company.
Microsoft is a marketing/sales company that happens to market and sell the software, services and hardware that the company makes.
Except that it isn't for Linux. So what you wrote implies that this is baked into an OS, but in fact it isn't.
It is extremely confusing.
Windows xSystem for Linux is not for Linux. It's for Windows.
Also, I was extremely happy to see the Web Archive backed up the Picasaweb album view, *and* the larger view pages, *and* the comments, so you can actually still go see: https://web.archive.org/web/20110411035819/https://picasaweb...
Also, I discovered to my surprise that the Download links still work - in the literal, upstream, sense. You can strip off the Web Archive prefix, request the direct image links from Google, and they promptly download (because of "content-disposition: attachment"). How interesting (at the very least), lol.
Thanks very much for the reference.
I am not a user (or even Gnome user), but FWIW, I looked and Adrian's eog_window_cmd_copy_image is still there almost 11 years later, only renamed in a minor way ("cmd" -> "action").
I am no expert on its churn, but the Eye Of Gnome project seems still quite active (last commit yesterday). That file src/eog-window.c itself has already had more commits since his patch than before it.
{ Not to suggest that code durability/quality is (or was) the whole point, but I thought being less "tears in rain" than it might have been took the inspirational factor up a notch and so seemed worth sharing here. }
A long time ago, during a night I couldn't sleep, I started thinking on the simplest way to calculate the volume of a torus without resorting to integrals. After a time I found a way to "turn it into a cylinder without changing its volume". Then went to my father's copy of "Simmons' Calculus with analytic geometry" to check my idea. How surprised was me to see that my father had had EXACTLY the same idea and left it written on the margin of the book!
That moment I saw how careful he was to model my way of thinking to be so similar to his. I'll be eternally grateful for that.
https://en.wikipedia.org/wiki/Torus goes on to say this:
> [For a non-weird torus,] The volume of this solid torus and the surface area of its torus are easily computed using Pappus's centroid theorem
> These formulas are the same as for a cylinder of length 2πR and radius r, obtained from cutting the tube along the plane of a small circle, and unrolling it by straightening out (rectifying) the line running around the center of the tube.
> The losses in surface area and volume on the inner side of the tube exactly cancel out the gains on the outer side.
Emphasis mine; that third sentence is weirding me out. Still thinking about it as an integral of cross sections, I can't see why the surface area or volume of the inner half of the torus should be different from the surface area / volume of the outer half. Are they?
I guess there's proprietary software, but for instance Proton is getting good enough that this might not be a major selling point for so much longer.
For non-technical users, linux is a ways off from being a serious option as a daily driver. But as a developer, why on earth would I choose Windows over Linux in 2021?
As to why you might still need Windows on a work computer, Office 365 is still limited compared to native Office, but of course Microsoft is pushing everyone to stop using native Office anyway. I still haven't found a way to sign a pdf with a smartcard on Linux yet, which is literally the only reason I still need Windows because of account provisioning workflows that haven't gone full auto yet and still require pdfs digitally signed with a smartcard. The other reason is your employer requires a Windows computer because you're in a big company with an IT department that requires remote management agents, which exist on Linux, but are a lot more mature and common on Windows. The final really obvious reason is you need to target Windows as a platform or both Windows and Linux and find it easier to put a Linux VM in Windows, especially now that WSL exists and does it for you, rather than the other way around.
I do wonder what hardware people are still having issues with. I can understand if you're using something like Arch that comes with almost nothing in the base system and expects you to know what packages you need for your peripherals, but for a kitchen sink distro like Fedora or Ubuntu, they seem to pretty much just work at this point. I've run them on laptops, with external monitors, external webcams, wireless keyboards and mice, Bluetooth headsets with microphones, eARC soundbars, WiFi 6, smartcard readers, NVIDIA GPUs, using a television as a monitor. Every single one of those things "just worked" the first time I plugged it in.
The only hardware issues I have had in the past two years are:
1. aRGB LED controller software and PWM fan control software only runs on Windows because the vendors don't use open standards and don't make Linux versions of their proprietary software
2. Microsoft Teams on Windows never seems to work with a Bluetooth microphone, but every other program that accepts audio input uses it just fine
<nerdsnipe>oooooooo, Interesting™</nerdsnipe>
I toyed around with smart cards a little while back after discovering a reader in an old laptop's PCMCIA slot (yes, I said old, shhh :P). A truly fascinating and horrendously broken/fragmented ecosystem.
Taking a look around, apparently LibreOffice can sign PDFs if the rest of the system is configured correctly (https://forum.manjaro.org/t/linux-pdf-signing-software/28519..., https://vmiklos.hu/blog/pdf-sign.html), the Arch Wiki has some interesting country-specific notes on electronic ID (https://wiki.archlinux.org/title/Electronic_identification), and the CAcert wiki which you've probably already seen was updated in March this year to add a mention of LibreOffice (https://web.archive.org/web/diff/20210506235206/202001250246...).
This honestly sounds fun to figure out... but that's almost certainly cuz I haven't repeatedly banged my head against the wall for however many hours/days/weeks ;)
You aren't even scratching the surface of how bad Teams is. It's haemhaerrhoids on disk.
What value is Windows adding here?
Windows is mostly the default; if you buy a computer it comes with Windows, if your employer gives you a computer it comes with Windows and with some employers you aren't even allowed to replace the OS, so having compatibility with Linux (and Android?) is a plus for devs.
Another advantage is that the drivers for Linux might not yet exist or be stable, while the proprietary Windows drivers probably exist and work.
But, people didn't care. OS/2 didn't actually provide any real features, and there wasn't much OS/2 software out there so it didn't take long until it was irrelevant.
Granted, in the case of WSl things are less obvious, but Windows really needs a hook to keep developers in. But all I see is new features allowing you to run GUI software in WSL as well.
As someone who has disliked Microsoft since a few years long time, it's amusing to see how the things changed.
Also don't even start about laptop experience. Poor battery, bluetooth issues, unable to change display brightness. Now I have newer thinkpad which is linux certified and most problems are gone, but for example trackpad experience is still much much worse than on windows.
Yes, maybe I could spend numerous hours to find/develop workarounds and money to replace all my hardware with linux compatible one, but why when I can use OS which works with everything I plug in and also use all linux software I need in WSL.
I like Linux and do run various distros on home pc's and old laptops. I've tried using it on work laptops many times (last time a few years ago) and end up getting frustrated after a while with lack of compatibility, broken drivers, poor battery life, etc and go back to Windows and get on with stuff uninterrupted.
> Yes I have never heard of Windows described as a "just works" experience. There's a whole IT industry built on top of Windows' flaws
I hate bullshit. I hate lies and bullshit.
I regularly see uptime over a year on Windows servers. Longest I've seen is 1200 days. I'm sure we've got longer in the crusty governmental section.
These boxes aren't falling over, I see them when someone notices they are unpatched, which ought to tell you everything about the effort required to operate them. Some grunt had "done the needful" and they just sat there serving pages until we brought them into patch management.
These boxes are worth every penny of the license because they just work. I have in no way run out of steam, I can continue for hours. Let's discuss the oom killer, shall we? Or how about "fix permissions" on Mac, if that's still a thing that Geniuses get paid for?
Like, what do you want, ballmer's head on a spike?
And you have the benefit, that Windows is the de-facto standard for desktop software, so everything will just run there. All games, all commercial software, also the software your company bought 15 years ago and is still working.
At least on mac you get access to iOS development which is legitimately marketable.
DOS Subsystem for Linux - https://news.ycombinator.com/item?id=24555689 - Sept 2020 (180 comments)
no networking though. :/
The GIF of this shows
C:\>dsl
Starting DOS subsystem for Linux, please wait... ok
C:\>_
and this immediately got me headscratching about the mechanics of how this was done. My first serious consideration (after noticing the Building section and hastily discarding notions of "remote/out-of-band terminal I/O...?") was that it was somehow boxing Linux up into a TSR and then somehow running that in the background. Coool.But no; the custom init.c uses virtual 8086 (vm86) mode to call back into DOS, trapping on a specific interrupt to enable DOS<->Linux communication. The launcher loads Linux into memory and jumps into it just like a bootloader would, then the init program maps the first 1MB of RAM (to cover all 640K of conventional memory) and hands the whole DOS address space area to vm86(2) to continue within DOS where everything left off. So, this isn't a TSR in the literal sense (it doesn't exit using INT 27h, "Terminate and stay resident"), nor in the figurative sense, wherein the program encapsulates Linux and then returns to DOS (which certain interpretations of the program output might suggest) in the same way exiting Netware or Windows 9x ("reboot in DOS mode", in certain circumstances) would. (But there are some interesting "it quacks like a duck" arguments in there, I can't deny that.)
The actual situation is basically the reverse of my first impression - this isn't a TSR that runs Linux, it's a DOS program that launches Linux that then continues DOS using v86. I've read how mainframes perform similar insanity, like where the kernel will initialize a VMM and then promote the bootloader/boot-up code into a task/process during startup. By some measures, this madness is arguably more awesome than a TSR.
Now, my question, which is squishy, and which I don't know how to articulate well (read: more concisely). Being able to run Linux in a TSR - cooool - leaps out at me as a captivating ball of interestingness that stands well above all the "oh yeah that would be kind of neat to look at one day... after I count to infinity twice" intrinsically non-interesting, passive armchair thoughts I'll forget within seconds of thinking of them. But I'd probably be able to keep coming back to an idea like "Linux in TSR" for many months before giving up.
Flip the whole thing around, though ("start Linux and then resume DOS in emulation"), and poof, the interestingness is all gone. I think this is not because I consider the idea fundamentally less cool (or worse, think it's outright silly or stupid!), but due to the opposite physiological reaction.
I discovered https://www.teamten.com/lawrence/writings/norris-numbers.htm... yesterday. It was a really cool read, describing how programmers hit walls in terms of how much code they can write (and presumably then continue to reason about) before everything devolves into madness. I think I've been dealing with an almost identical type of wall for some time, which I'm not sure how to scale.
Learning and experience seem to basically be ways to build neurological surface area (or, room to store irreducible complexity) that allow us to stuff more and more stuff into our creative problem-solving/reward loops ("productivity: finding happiness, just with ever more (and more...) steps!"). As this develops, and as we associatively fold doing more things into our reward loops, it seems that the habit-forming parts of the brain coordinate subconsciously with the parts of our executive function that internalize the core intrinsics of whatever we're learning about, and we just find ourselves especially drawn to things that will further deepen and specialize our understanding. And sometimes, we find areas are so interesting that the persistence is just there to keep at certain things even when they're hard. And that persistence... is our worldview, or focal point, of "what I'm doing right now". It's our baseline watermark, or threshold, of keeping on.
But this process seems to have a hair-trigger limit. Push the whole thing even a tiny bit too hard, and it loudly cracks, sparks fly and springs and gears go everywhere.
I think the inspiration associated with restriction and limitation is strongly related to this. It seems that the most fun projects are those that exceed an individual's (socially?) measured accomplishment by a significant amount, but fit well within the complexity scale of the untapped feedback-loop surface area.
Which leads me to my current existential juxtaposition. The systemic incoherence that accompanies ADHD, autism and depression (or any combination thereof), and the subsequent conscious "driving" of the brain (and veering all over the metaphorical road, without access to the feedback loops available to the subconscious), exacerbates this situation; without the machinery to maintain relaxed focus without losing disorientation, I constantly consciously course-correct - but these systems do not like to be "driven", they only function correctly when they can lead, and when there is harmony.
It also seems very difficult (at the very least) to consciously drive the machinery/focus that builds raw mental capacity; I wonder if this construction process is subconscious by design, while the usage or resolution process of achievement, that chases the delta between untapped potential and achievement, is conscious by design. If so, yay.
Without the cohesion of subconscious-first leadership, building and maintaining this delta between capacity and interest is a game of second-guessing how my brain works, which I'm not winning at, and so the level of fundamental interest I have in the sorts of things I do want to master lags behind my logical interest levels.
To complete my question, I look at projects like this, and I perceive their complexity scales like a person standing within a tiny fenced-in square and saying "I am outside the fence". If the person were defined to be inside the tiny square, that would represent a small amount of problem-solving complexity that might even be described as "cute" (see also: every well-executed minimalist software project ever). But with the definitions flipped around, the complexity quotient might as well be practically infinite, because it falls outside of the incredibly narrow window of surface area I have available, which I don't know how to build upon and expand, and so the interest just vaporizes. Thus, this project is too cool to be fundamentally interesting to me! :( (And yes, this is a meta-explanation; the "Linux in DOS vs DOS in Linux" pathway was what got me thinking about all this, and then gave me the mental framework to follow the ideas well enough to write them down.)
So, to anyone out there that this makes sense to, who has maybe figured out how to, well, https://twitter.com/Davidson_03/status/846740485200891909...
...I'm stuck. My brain thinks that logical awesomeness should directly translate to follow-through and persistence. I logically know it doesn't work that way (something something effort). But there's a short-circuit somewhere (kinda like the example of the monkey who had its fingers bound together for a few months, then couldn't move them independently - except instead of fusing, I'm dealing with something that never spliced apart), and the step(s) that are supposed to go in the middle are missing. Wat do, if you by any chance know?
This was a weird ramble, and if you got to the end of it, thanks very much for taking the time.
No, this does sound relevant. I just googled "4eak" and found https://proteopedia.org/wiki/index.php/4eak and https://www.uniprot.org/uniprot/P54645, and then from there learned about AMPK, which looks very interesting. Thanks very much for this reference, I'll definitely take a look.
Also, I find I honestly kinda resonate with https://philosopher.life. I find writing an slow and arduous process, though (related kinda-interesting relevant subthread: https://news.ycombinator.com/item?id=27112463 - the 4 comments represent the specific reference, while reading further athread (up-thread?) is likely useful for context).
For me, writing is a bit like putting a train on a multi-track rollercoaster ride and then finding all the carriages on different tracks at the end ("Noooo, that carriage is upside down and all the passengers fell out.") Now I think about it a good visual analogy would be https://www.youtube.com/watch?v=bcXiwNjkhxU&t=95s.
I think my brain has a few wiring bottlenecks in it somewhere, meaning I can only fit a certain amount of semantic value into my immediate focus, and much less than I know I should be able to. So, for example, if I'm listening to a piece of music in my head and want to actually switch to the track I'm thinking of, I basically get one shot to go "is this it", since whatever my ears hear next will immediately cancel out my memory of whatever pops into my head, even if I pause it. This seems to be a generalized extreme short-term memory problem; if I think of X, and then get a flash of insight on how it relates to Y, I'll immediately a) forgot X, and b) be incapable of deriving insight from the intersection between the two. I find I seem to be most appreciative of the contrasts between things, so this memory breakdown is extremely annoying.
And all this makes summarizing and writing tricky. I'd love to do more of it, but... welp. And so, it's kinda weird, but cool weird, to be reading the kinds of things on philosopher.life that I could see myself writing if a few settings on the character sheet were upped to 11 (particularly the above, which are at like 0.1 or 0.2) :). I particularly resonate with the existentiality, and the sense of incompleteness - in the non-exceptional sense, like I don't just mean "oh yeah I kinda see like 0.2% of myself in this haha", I can see these themes throughout almost everything, from the content to the writing style, and it is duly noted. Kind of cool that you've put that amount of effort in actually...
Thanks again.
Since you're already expected to have DOS to begin with, wouldn't it be simpler if there was just a single Linux folder to place on your C: volume and enable it using the native DOS command line once DOS has been booted, or automatically using AUTOEXEC.BAT?
He released the source code a few years ago: