Iβm considering installing Linux on my laptop but Iβm unsure if I should start with a virtual machine first. My main use cases are gaming and coding, so I want to make sure itβs the right fit.
What are the pros and cons of using Linux for someone like me? Would starting with VirtualBox be a good idea before going all in?
A loosely moderated place to ask open-ended questions
Search asklemmy π
If your post meets the following criteria, itβs welcome here!
Looking for support?
Looking for a community?
Icon by @Double_A@discuss.tchncs.de
If you code, its nearly always better on Linux. Except you code especially for Windows only.
For gaming Iβve had zero issues on bazzite, comes ready out of the box.
Its worth it to check https://www.protondb.com/ to see if the game you like works.
Personally for coding, I think Fedora Atomic is pretty up there because they make it easy to containerize everything. Universal blue has an atomic spin called Bluefin specifically designed for devs https://projectbluefin.io/
Bluefin-dx is the more dev oriented version, and I think Bazzite has a -dx version as well. But I agree, Iβm using Bluefin and love it for the containerization.
The downside is, you will be spending a lot of time customizing your Linux and fixing problems. This can be very rewarding and a great learning experience but it also takes time and effort. If you want to spend less time with your computer and more time talking to people offline or enjoying nature, installing Linux can be a bad idea.
Such a weird take dude. Someoneβs ability to enjoy nature is not at all tied to their operating system choice. And many people actually gain friends and achieve more social interaction as a result of starting a new hobby or special interest, and using a Linux-based operating system can be the same.
I think what you are trying to say is that switching to a new operating system comes with a learning curve, and depending on how much free time you have, you may end up spending the time leaning the OS, when youβd rather be doing something else.
The same can be said for anything. Learning Tae Kwon Do has a learning curve. When Iβm spending time on that, it eats into the time I would rather be customising my OS.
What are you coding? Despite what everyone is saying, if itβs .NET youβll be better off in Windows. You can do C# development in Linux, but C# and .NET are Microsoft products, and Linux is the ugly stepchild.
For all other coding purposes, Linux is vastly and measurably superior. You have a nearly endless array of tooling options and a wide variety approaches to nearly any language. VSCode is popular, but so is EMACS and EMACS is useful for so much else - itβs practically an OS, and there exist people who essentially boot directly into EMACS and never leave it. You have a half dozen different implementations of vi, NeoVIM being among the most popular and having an ecosystem of plugins that would make a sex toy store blush. You have The New Kids like Helix and Kakoune, which explore new modalities and change the way you edit text. You have vertical solutions - most programming languages have an IDE written in the language and optimized for coding in that language.
You can run most of these on Windows, but now Windows is the ugly stepchild: nearly all of this tooling was written on Linux, and works best on Linux, and doesnβt require fussing and working in a modality that is just different enough from idiomatic Windows use to feel jarring.
Linux simply has more software, and while thereβs a bunch of rough programs, many tools are - IMHO - better than their commercial counterparts on Windows. And by and large, you wonβt have to pay for them.
I also believe (and this is more my opinion than anything demonstrable) that for software developers, Linux gives you a better understanding of how computers work. This is a valuable thing for developers, understanding how things function. Windows hides, obfuscates, and conflates so much of how the system functions; and thereβs often only one way of doing something so that you donβt even consider, βwhat if?β What if we used a different init system? What if we did scheduled jobs differently? What if my window manager were different, my boot loader was different, I stored attributes for my program somewhere other than the Registry? While you could use KDE your whole life and never consider that things, you donβt have to step down very far and suddenly be in a domain where you see all of what goes into a modern OS. Windows locks that door to the basement, and sure, people do jimmy it and get in there, but itβs much harder; and Windows integrates so much of the OS that no matter how much ditzing you do, youβre never going to replace the Windows window manager with a different one.
I canβt emphasize enough just how important I feel understanding the fundamentals of how computers function is for software developers, even if you arenβt doing systems programming. Windows obfuscates and hinders that grokking process.
Been a dotnet developer exclusively on Linux for around 7 years now and Iβve never wanted to go back. Since .net core and Rider windows doesnβt really have anything to offer for me. Itβs different if youβre stuck on .net framework of course.
we do cross platform stuff and Iβm 99% of the time working on Linux, now I have to do some .NET core C# coding, was frustrated first with the language support on Linux - until I tried Rider. If Iβll have to do more C# going forward Iβll consider asking my employer to buy me a Rider license. The alternative would probably be me booting to Windows for that project (which I absolutely hate doing and only rarely have to)
Do you do that coding for a company, like for a job? I managed a team of .NET developers for a while, and although I donβt know anything about C#, much less Windows, it sounded almost impossible to do any Enterprise development without pulling in a .NET framework. I think I did once try to compile one of our applications on Linux, and got stuck on a dependency that was only available on Windows.
I do. Itβs mostly micro services and everything is running .net 6+ at this point. In the beginning I did have to find a few work arounds and tweak some stuff, but itβs been a while since Iβve run into that kinda thing. Everything we make is deployed on linux in production.
Maybe thatβs it. All of our servers were Windows (except for a couple running other frameworks). The team didnβt have any reason to not use the frameworks, so they did.
Iβve used exwm (emacs window manager) itβsβ¦ interesting, but thereβs a reason I use sway instead π€£
The question is mostly about what kind of gaming.
Most single player experiences are no longer a problem because of steam proton, but multiplayer anti cheat and other AAA DRM is sometimes a windows only thing.
Coding is just superior on linux. Itβs the platform built by coders to make their own life easier for 30 years.
You should dual boot, try it out for a few games and see how the dev process translates and get your feet wet.
Setting up a VM is probably a lot more effort than just installing it.
You mean getting a dual boot is easier and less time consuming than setting up a VM?
IDK much about these. Probably Iβll binge linux vids on YT for a while to get more info. After reading this comment section, i feel like i should try it because coding is just better in linux and i usually play single player offline games so even gaming would be fine there
Dual booting is problematic, as mentioned youβre messing with your partitions and could mess up your windows partition, but also windows can, unprompted, mess up your Linux bootloader. As long as youβre careful with partitions and know how to fix your bootloader from a live image, thereβs no real issue, but itβs worth keeping in mind.
By the way, I recommend rEFInd for the bootloader when dual booting, it doesnβt require configuration and will detect bootable systems automatically.
A VM sounds like a good idea to try a few things out, but do keep in mind performance can suffer, and you might especially run into issues with things like GPU virtualization. If you want to properly verify if things work and work well enough, youβll want to test them from a live system.
As a final note, you can give your VM access to your SSD/HDD - if you set that up properly, you can install and boot your Linux install inside a VM, and later switch to booting it natively. You still have the risk of messing up your partitions in that case, but it can be nice so you can look things up on your host system while setting up Linux in a VM.
Youβll find a little RTFM (read the friendly manual) much more time/result effective than watching videos. Want to go backward and forward to find an exact piece of information? Get precisely what the original developer meant? Ask for help on a forum? RTFM. RTFM. RTFM.
It may seem slower initially. Itβs a skill to develop. For me, it typically means 5 things (in order, where applicable).
tldr <command>. This you need to install. IIRC on Arch itβs tealdeer. This gives you common examples of the command. Common commands will have an entry, but itβs hit or miss for more obscure ones. Itβs crowd sourced so contribute when you can!
-h or --help This gives you usage, subcommands, flags, and options. It is exhaustive for common commands, but less common ones will not always give you the usage for everything or you need to do <command> -h or --help <subcommand> And sometimes a command only has -h or --help. If one doesnβt work, try the other
man <command> If a command has a man page, it is tue βsingle source of truthβ (quotes because that not what ssot actually is but it is a good descriptor) man pages are exhaustive. They have everything a program can do. If you want a deep dive for fun or need to find something very specific, it is almost always there. I suggest if you want to get good at Linux RTFM often
Arch Wiki. Itβs the wikipedia of Arch. User maintained and to the point. Again, reading is a skill. Learning to use the Arch Wiki effectively takes time, but it is well worth it. It is most useful if you run Arch (I canβt think of a time it references a package manager other than pacman). Following the pages in the wiki is almost exclusively why I use Arch Linux, btw. And donβt let people scare you away from it. They are arrogant pricks. Most arenβt. If you donβt want to do a custom install of Arch, itβs as easy as using the arch install TUI. And if you have issues, because you run into problems use the wiki!
Web search. You probably have this one down, but a few suggestions. Donβt ask a question. (Unless you know you are specifically searching for that question) your query should only contain the words for what it is you are searching for. And make things singular not plural. Singular is inclusive of plural. The other way around isnβt true. When you want to search a particular site, include that in your query string. Last. Donβt use google. They want to show you ads, and Iβve recently seen they donβt care about quality (anymore or potentially ever) The first result, which is typically what people go to, is almost always the one with the most ads. I suggest Duck Duck Go (opinions will vary) for the specific reason you can use what they call bangs to search on a particular site and go directly to the first (non ad optimizedβ¦yet) search result as am example !w cats takes you directly to the cats page on wikipedia. !aw virtual box. Arch wiki virtual box.
I would suggest (and typically do) use those in order repeating websearch (Iβve probably done this for up to an hour at least a few times this week) before I do the next 2. Write a forum post. Now you are getting to the point that if you canβt find the answer, it probably doesnβt exist. Again their are strategies and in this case, ettiquette you need to follow. Youβll annoy or even piss people off if you donβt. READ THE RULES OF THE FORUM. When you explain the problem, not what you are doing to do to solve it. There might be another way to solve it. Then explain what you have tried in terms of what you have read and tried so far.
Then and only then watch a video.
Dual booting is easy to do if you have a spare hard drive. Even just installing linux to a flash drive can at least give you a good idea of how it will run though it might be a bit slow. I wouldnβt recommend partitioning your hard drive to dual boot off of it for beginners though. Youβll risk data loss.
I recommend dual booting, not a VM. It is easy enough to choose which OS to boot into if you need to go back to Windows, while being enough friction that you donβt immediately fallback to going into Windows every time you donβt know how to do something in Linux.
I donβt code, but from the gaming standpoint, things are pretty decent on Linux these days. Iβve been on Linux full time on my laptop for well over a year now, and 6+ months on my main desktop now and find very few reasons to boot into Windows. I think I booted into Windows last weekend for the first time in at least 2 months because I had to upgrade the FW on a device that only had a Windows tool. Otherwise I do have a windows VM on a server that I use relatively frequently, because the state of 3D CAD software on Linux is horrible.
I actually recommend against dual booting, because Windows is not a friendly neighbor. It has a bad habit of fucking with boot loaders and insisting that it be the first priority every time it updates.
Do these issues go away if you have a two separate physical disks for each install?
Yeah, that is the downside of dual booting, you are almost certainly going to end up learning how to chroot to fix the bootloader at some point. But dealing with a VM, especially if you want to pass a GPU also has its own difficulties.
For gaming as long as itβs doesnβt shipped with malware AC you can play it just fine, idk for coding I never written a single line of code ever since I switched to Linux 2 years ago but I heard from most professional coder said Linux is perfect for coding (maybe not if you code softwares for windows).
Coding is absolutely miserable on Windows compared to Linux. Iβve been developing almost exclusively in Linux for the past twenty years. Nothing beats the command line for getting shit done; a split screen between a terminal and Sublime Text is my go-to setup.
Sounds intriguing. Could you send some screenshots or point me in the direction where I can learn some tips and tricks, so to speak?
A screenshot would add nothing. Terminal on the left side, Sublime Text on the right. Learn how to use git and gdb from the command line.
I would backup everything you need from your current laptop including game save files then just install Linux.
As everyone will say everywhere, if you play a game with anti cheat it wonβt work so then you shouldnβt change it. You can search this on protondb.
I love Linux gaming but some lack of certain games really bums me out.
To be clear, the vast majority of βgames with anti-cheatβ work perfectly well on Linux. Itβs just the ones where developers have chosen to either explicitly block Linux (e.g. Fortnite) or to use invasive rootkit anti-cheat (e.g. Riot games, FACEIT, etc.) which wouldnβt be allowed to work on Linux anyway because itβs a really stupid idea to let random gaming companies have access to your ring 0.
If your gaming consists of popular multiplayer games you might have a bad time. Many games with intrusive anti cheat donβt work. Check https://areweanticheatyet.com/ for compatibility.
Almost every other game should work without any issues, especially when you have them on Steam.
Even this can depend a lot. Iβve some friends that play that Marvel game (Rivals?) and it works great on Linux. I myself have played Monhan and Warframe a lot on Linux. Iβm not much of a competitive player, and I think where you might run into problems is competitive live-service titles.
Guild Wars and Final Fantasy XIV are both multiplayer games and work flawlessly for me.
Some games might require some fiddling you might not have on Windows, but itβs not that bad.
Even VR is pretty plug and play, though Iβve not bothered with FBT yet, and I think it differs a lot depending on what headset you have.
OpenSUSE Tumbleweed. AMD CPU with NVidia graphics.
So, I used to play valorant and pubg when I was still a windows user. It was around the time of my switch to Linux that I learned about intrusive kernel level anti cheat.
Honestly, I donβt miss them, and refuse to play a game that compromises the safety and security of my operating system, just as much as I refuse to use an operating system that even allows kernel level access to something as trivial as a game.
My latest run in with this issue was the Marathon pre-alpha. I was granted access only to find that Bungie was Linux hostile, and after making a few speeches about it in the discord I uninstalled it and left.
Iβm fine with this scenario. If I want competitive multiplayer I have CS2, Apex legends, and others. If games refuse to support Linux, fuck em.
Just another lens to view this through. Thereβs a certain rebellious spirit that can come along with embracing FOSS, and that should be part of the appeal.
If you are running windows non home edition enable the Hyper-V features and fire up a VM.
I was think about WSL but that may not work in this case.
Shit. What if you are running the home edition? Iβve been thinking about switching as well, but I donβt have a background in coding and Iβd have to run a dedicated ssd with windows just for my work programs (design related) or migrate to FOSS completely.
If you are on home edition then VirtualBox should be ok.
Hm, appreciate it! Iβll look into it.
If you have a USB stick you could just boot up a live CD of the operating system.
So that WSL thing doesnβt work in Windows home edition you mean?
I donβt think wsl will work as it doesnβt provide a desktop experience. But as wsl is supported on home editions by the look of it.
I installed linux mint to a secondary hard drive, then I installed steam onto that Linux install. I play wars two, so I added Guild Wars two as a non-steam game to steam.
I didnβt want to re-buy Guild wars two with steam because Iβd lose all of my progress. Once I added it as a non-steam game I just right clicked on the game within steam and changed the compatibility to the newest proton. (I didnβt choose a hot fix version of proton) It runs just fine.
This is what I would suggest that you do , is install it to a secondary drive to see if that variation of Linux will work for you.
FYI for GW2 you can actually use the steam client even if your account is non-steam, you just need to use a launch option β see here https://www.reddit.com/r/Guildwars2/comments/wvxqe3/logging_into_guild_wars_2_on_steam_with_an/
When you install to a secondary, does BIOS automatically give you the choice of which OS to load, or do you need to change boot order each time?
You donβt have to change the bios, but when you boot up, youβll get a boot loader screen that allows you to choose which OS you want.
Good good. Last time I tried installing a few years ago, it would only give that choice if I installed to the primary
One of my buds is a programmer and runs linux and windows on his machine. At this point heβs pretty adroit at fixing any issues on linux, but he has faced limitations before.
Regarding work, being on linux apparently was a big plus when he got hired, and works exclusively on linux due to its stability.
Regarding gaming, many games we play apparently run better on linux (inc. ArmA Reforger and some others, I forget), but some will just not run at all (anything with a kernel anticheat), and his mic sounds like utter shit on discord due to missing drivers or something.
I do remember there was a site where you could check how well a game ran on linux, but I forget. You might be able to check if the games you got run on steam deck, since they are linux based.
You probably remembering protondb.com. You can check how good your games run your games with proton (valveβs windows compatibel layer based on wine and dxvk). You can use proton with any games also outside of steam. For example with heroic launcher with epic and gog games.
Yeah this is the one.
Thereβs a 100% chance that his mic issues are not driver related, but instead are Discordβs fault. They are classically awful at providing feature parity for Linux.
Have him fiddle with the audio settings, itβs probably either the echo cancellation or noise reduction. As another commenter mentioned there are third party solutions for both.
I had mic quality issues in discord for a while and it turned out it was discordβs echo/noise cancelation misbehaving. Turned it off and started using https://github.com/noisetorch/NoiseTorch instead. Itβs actually way better at noise cancelation anyway.
Not that thatβs necessarily whatβs happening with your friend but thought Iβd throw it out in case it is
Iβll be sure to mention it! Appreciate it
Is this the one? WineHQ AppDB
Iβd say that is more like a bug tracker than a database for if something works well
Thereβs a blast from the past. But WineHQ was never a good or reliable database for this purpose, you were always better off just trying the software and moving to a native alternative if it didnβt work than lean on this for decent information.
Mightβve been, but I donβt remember it being so red. Iβm on mobile right now though, and my PC browser loads everything in dark mode, maybe the colors were affected.
In any case, the site my buddy showed me ranked games according to performance just like that one so that one would still be useful.
I used to run Mint and Win7 parallel in uni (gosh, a decade ago?) since we were working with ruby - at the time basically impossible to run and dev under windows.
In matters of development there are almost only advantages, depending on your target platform of course. Bash is great, tools and packages are usually easier to setup than on windows.
For gaming my only linux experience is the Steamdeck. Iβve ran a bunch of non-steam games and Proton (the bridge for windows games under Linux) does all the heavy lifting for you. I only had issues with the Riot launcher, which tended to break when detecting a new update.
If you are not going to install a non-beginner system like Arch or Gentoo then you should try a virtual machine first. Otherwise, it may come in handy if you want to choose a system with a desktop environment that suits you, because changing after installing a system for a novice user can be hard without avoiding problems.
In fact, on a virtual machine like Virtual Box you wonβt experience the problems you will encounter on real hardware (driver problem, etc.). Itβs better to test liveiso with Ventoy instead.