1. 18
  1.  

  2. 4

    Can one of these run linux?

    1. 9

      Some older models can. Your best resource for running Linux on a Surface device is https://www.reddit.com/r/SurfaceLinux/

      The WSL works well enough for me and because of that I never considered installing Linux on it. In my opinion there are other machines that will get you a much better experience running Linux than these ones. The value of the Surface form-factor is how it can go from a laptop kind of machine with keyboard and landscape screen, into a drawing machine with pen, and into a tablet in portrait screen. This versatility requires an OS and apps that can accommodate these various paradigms and I don’t think there is any desktop environment for Linux that provides these type of usage. From what I’ve read, the touch screen basically becomes a mouse. Screen rotation sort of works but some apps don’t respond well to it. Keyboard hot plug is not fail proof and depending on the kernel it simply doesn’t work. Also, I don’t believe the built-in LTE is supported but I haven’t checked these in ages. If I was to run Linux I’d get either a thinkpad or a system76 machine and probably be happier than running it on a Surface. But that is just my opinion.

      1. 2

        +1 to WSL on Surface devices. I’ve been using a Surface Book as my primary personal laptop for a few years, and it pretty much exists to run Xming (an X11 server for Windows), urxvt, Chrome, and a handful of PC games. It helps that I do all my development with terminal-based tools like Neovim, rather than trying to mix Linux tooling in the WSL environment with native Windows stuff; when I’ve tried to do that it’s generally worked but felt clunky (and apparently there are some issues with having WSL write to the Windows-managed portion of the filesystem and vice versa, although I’ve never personally run into problems).

        Feels like having a very, very lightweight VM running Ubuntu… And apparently that’s what WSL2 actually is.

      2. 1

        Surface Pro X will be able to run linux on arm in WSL 2. I’m not sure otherwise…

        1. 1

          That was my first question too. The author is using the WSL layer, which I guess could work well enough, but I’d still miss i3/tiling window managers.

          I had a 2nd generation Surface Pro dual booting Windows/Linux way back in the day. But I never really liked the experience of it not really being usable on my lap like a laptop with it’s weird keyboard and ended up selling it on one of my own nomadic adventures

          1. 1

            FWIW you could run a full-screen X desktop on your Windows desktop using Xming/X410/etc. with i3 running under WSL. Getting multiple desktops and keybindings to play nice might take some fiddling, and I have no idea how those X servers would perform under x86 emulation, but all the pieces are there.

        2. 1

          Something that I am curious about that wasn’t immediately obvious from the post: if I want to build a ARM-native Windows App for the Pro X, what do I have to do? It sounds like I can run Visual Studio, under emulation, on the Pro X and then use that to build ARM-native apps?

          1. 1

            Yes, that is what I use. In this repository I have some code to compile multiple Lua versions for Windows on ARM64 if you want to check it out, this windows batch file is used to compile a specific Lua version for each of the platforms: x86, x64 and arm64. It has some hardcoded paths in it but I’ve built this for my own personal use and am OK with that.

            1. 1

              Thanks, that’s very interesting. A programming language you might want to look at it is OCaml. There is a Windows version as well as ARM64 support, but at least not an official way to do both.

          2. 1

            It really sounds to me like the experience of running Windows on ARM is, for you, basically the same as the experience of running Linux on ARM - including the fact that you are running Linux, under WSL2 - but that you have less freedom and the hardware is very opaque.

            I must say that, for most developers I’ve spoken to, the software compat is the only reason they stick with Windows these days. Because all of that software is closed source, the new ISA breaks compat. What on earth, then, is the point, other than MS locking you in?

            1. 1

              I’m stuck with Windows mostly because I really like the Surface form factor and Windows is the OS that works the best with it in terms of compatibility, battery life, touch support.

              The experience of running it is quite different than Linux on ARM because Linux on ARM is quite more mature in terms of development ecosystem. Raspberry Pis and IoT boards have been around for ages and everything has been ported to them. If you’re building from source and your build system is fetching prebuilts from who knows where, there is a great chance that it will just work. With Windows on ARM that is not yet the case as parts of the usual third-party development ecosystem such as cygwin, msys64, etc are not yet ready for prime time. You end up not being able to build stuff unless you fine tune everything by hand. For example, Lua which is the easiest thing under the sun to build would not build with the included makefile, I had to build my own batch file to build it. And thats for an easy project, those harder ones are quite a headache at the moment.

              Windows also allow me hypothetically (as in I haven’t shipped yet) to build apps and target a large market. I want to see if there is room for a small ISV in that ecosystem as I’m frustrated with Apple and its mandatory sandboxing/notarization/store requirements.

              1. 1

                I’m stuck with Windows mostly because I really like the Surface form factor and Windows is the OS that works the best with it in terms of compatibility, battery life, touch support.

                And this is entirely Microsoft’s fault, just to be clear.