this post was submitted on 15 Apr 2024
172 points (96.7% liked)

Linux

48315 readers
1217 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I really want to switch to Linux, up to this point there were two things keeping me on Windows, gaming and work.

Gaming nowadays is a lot easier than a couple of years ago thanks to Valve and Proton, so that's not a problem anymore; with the other one I don't know if I can make something work enough and that's why I'm asking here.

I work as a fullstack software developer with windows products I don't fear for the frontend part because typescript, angular, react, .... those I know I can run on linux with no problem on VS Code; for backend thought: dot.net, visual studio, sql server, ... I think there is no Visual Studio for Linux and I don't know if I can run & debug .net 8 applications on a linux machine? I can use docker for things like databases. Does anybody else has a similar scenario and things that had to overcame? Tips, problems that I may not see now before making the switch, and solutions to my current problems are welcome

you are viewing a single comment's thread
view the rest of the comments
[–] Max_P@lemmy.max-p.me 30 points 7 months ago (4 children)

For the work part in particular, you may find that a virtual machine will get the job done pretty well. With modern CPUs there's basically no overhead, so it's often easier to just run the OS you need in a VM.

You can just run it in the background, run your .NET and SQL server and stuff, possibly VSCode remote into it. PowerShell over SSH. If you need to run a GUI application, you can just RDP into it. FreeRDP has a cool feature where it can RDP a single application so it pops up as any other app on the host. Works great when you just need the database's GUI or whatever.

With virtio drivers and everything, it will be essentially as fast as if native. GUI will be slow because of software rendering, but the point is to use it as a server and only use the GUI as necessary, and for server stuff RDP isn't too bad given it's basically localhost network.

There's also the fun but painful world of VFIO and passing through a real GPU into the VM and feeding back the video to the host with Looking Glass. It's so good you can game on that (anticheat still won't work though, they don't like VMs), so if RDP bothers you that's an option. Although in my experience, Visual Studio is just as slow and buggy natively, so I wouldn't bother and just RDP.

If you add virtiofs to the mix, in theory you can share the code folder and use VSCode on the host and compile on the guest, or even compile on the host and run on the guest. Or send compile commands to Windows over SSH from VSCode. I have my entire Steam library (and Proton containers) on virtiofs and it works perfectly, so I have to imagine a code project should work nicely as well.

Virtual machines are an awesome tool. There's also the benefit of keeping all the work stuff in a big isolated container. If you have multiple projects you can make multiple VMs and not worry about one project needing version X and the other version Y of whatever.

[–] jjlinux@lemmy.ml 10 points 7 months ago (1 children)

And this is why I didn't comment. I knew someone had already suggested the VM way. This is the best way to keep your stuff separate from work related.

[–] space_comrade@hexbear.net 3 points 7 months ago* (last edited 7 months ago) (1 children)

I don't like VMs because I need to allocate memory upfront for it, and considering it's a Windows VM and depending on the dev work you're doing on it you might need to give it 10Gb+.

If it's at all possible for OP I'd recommend getting a separate physical workstation and then just remoting into it with your Linux machine, if you use VSCode the process is pretty much seamless, you use VSCode from your Linux machine normally while all the work is being done on the remote machine.

[–] daisyKutter@lemmy.ml 1 points 7 months ago (1 children)

That's a great idea, can I use the 2 screens of my PC doing that?

[–] space_comrade@hexbear.net 1 points 7 months ago

Not sure what you mean exactly. The Windows workstation machine could be accessed remotely from anywhere. I mean sure you're gonna have to hook it up to a monitor to set it up but after that you shouldn't have to access it directly, at least not often.

[–] Flaky@iusearchlinux.fyi 3 points 7 months ago

Has Virtiofs matured lately into something that can be used day-to-day? I ask because I think the virtio stuff will be better for Windows virtualisation in the long-term, especially when VMware's future is not certain, but I heard folder-sharing on Windows guests was pretty bad from Lemmy recently, and a few years ago I tried it and yeah, I have to agree.

[–] Enoril@jlai.lu 2 points 7 months ago (1 children)

Exactly what i did. Help also to not mix work and private life by having 2 distinct VM: one with ArchLinux for Gaming/Private apps, one with win10 for work

[–] Max_P@lemmy.max-p.me 1 points 7 months ago

It's even nice to subdivide some activities. I have a disposable one for running sketchy stuff, two for gaming (Arch and Windows), a few work ones, a few dev ones.

They're just so cheap to run these days, I always have one or two running at all times.

[–] nexguy@lemmy.world 2 points 7 months ago

Just wanted to add that no one should ever NOT be using a vm as their dev machine.