From last ~6 months, I get paid to do just exactly that: migrate enterprise platform from Windows 7 to Linux. And it turns out surprisingly well.
The platform wasn’t a “plain” Windows 7 though, but Windows 7 Embedded with loads of custom patches as $company was some platinum gold ultra deluxe premium pro Microsoft Partner. The main point was of course lack of “embedded” version of win-ten, but there were some equally important tensions between them and MS too, mostly caused by Satya’s corp acting weirdly.
From software side - I was shocked about how well it went out for >20yrs codebase scattered over CVS, SVN, Git and whatever else to be ported on Linux. Took maybe 3-4 months to deliver a “runnable” stack which covered 20% of feature set. Now it covers like 85% and kills everything else in stability tests. Also, uses 300MB of RAM instead of 1,5GB (still not sure how) and - what’s most surprising for me - graphics performance is most likely doubled, there is some 2D and 3D rendering involved. Clever people may already guess out what was going out there.
From the OS side, which I’m responsible for - I should say the bar was pretty low when I got in there, the builds weren’t even automated (you can do that for Windows Embedded using special version of WAIK stuff) and boot time got reduced to couple of seconds. The thing that I’m not really proud of is the fact I’ve got called for PoC first and did it in 50 lines of shell thinking it won’t fly in such Windows-centric industry. It flew though, impressed everyone and management decided to go that route. Guess who still generated bootable images using shell script, now ~1500LOC? Yeah, I should move onto something more maintainable which can be understand for Windowsheads when I leave some day, yet still not pushing its own way in front of me like the distro-specific enterprise-esque tooling for image editing , mostly for RHEL distros. Thinking about Ansible now, especially when I look into todo list which has many features (not previously included in WE) and testing capabilities on running machine.
The hardest parts were, with no surprise for everyone I think, the users. And I don’t mean the basic UNIX training which wasn’t a big issue there. The main problems were habits and some sort of “concrete heads” - the developers were working there for 15-20 years and targeted 9x and NT through their whole life. Now some kiddo walks in and talks about some satanic penguins created by Russian hacker Linios Torvoltos. As a result, the software is built using Visual Studio, shares libraries have “.dll” extension (only the binary format has changed), software still addresses to Windows paths just because someone wrote a virtual file system translation layer, but it renders logs useless on Unix, multiplatform is done by switch-case and preprocessor trees, etc. Thanks God they didn’t used winelib. But, somehow, it runs! And while I don’t have any power in application development, I try to “inject” that “Unix way” into the development culture mostly by suggesting behavior changes in running product from my point of view.
So, in short: it’s almost always possible, not cheap (but not too expensive, small business could afford it in two quarters of feature freeze), might give you unexpected performance boost (and lowers the cost of target hardware) but most importantly requires some sort of openness from your current development team to accept changes and adopt to it, not acting in “get off my lawn” way.
There really isn’t a lot of substance to this article, it’s basically a rant that people won’t move from Windows 7 to Linux because the author thinks any remaining Windows 7 users are enterprise/businesses.
This title is misleading and the article says nothing. Well done, making it to the front page without saying anything meaningful.