Transition to Linux

Pages: 12
I'm deciding on moving away from Windows to Linux. I have CentOS full on a disk so that's probably what I will choose but I am open to suggestions. I know CentOS is incompatible with NTFS so I will have to reformat my memory stick and hard drive. What would you suggest or are there any neat things you would like to say to someone transitioning? What is C++ development like on Linux compared to Windows? What's the difference between the distributions?
I did a transition from Windows to Ubuntu and never looked back. I use a completely standard distribution.

For a C++ IDE I use codeblocks. Not as good as the visual studio on windows, but considering the other benefits you get from using linux it evens out. Ubuntu has very little maintainance - I make an Ubuntu-specific upgrade every 6 months. The upgrade takes an afternoon but you can work while upgrading - it just slows down your system a bit. Other than that, the system has 0 maintainance, everything just works.

*Important. If you want everything to be smooth, I recommend you buy a machine with Linux preinstalled (doesn't matter which distro). My current computer was an Acer, bought with Linpus linux preinstalled. Why linux preinstalled? This means
1) the vendor tested all the hardware parts that they work with Linux out the box
2) You don't want to be stuck with the mess of configuring UEFI. In fact, you should look for a machine without UEFI: having linux preinstalled means you will be saved from that trouble (UEFI will either be turned off, or not present on the machine at all).
I did a transition from Windows to Ubuntu and never looked back


FWIW, I switched to Ubuntu several years ago and had nothing but problems for the 2 years I was on it. Then switched back to Windows and never looked back. =P

But that probably doesn't help OP so I should keep my mouth shut.
No windows.h and no _s stdio extensions.
Linux applications usually have no extensions, and extensions are almost only used for " home usage" (eg images, music... ).
Gui is a little bit more complex, since it is not an OS builtin feature, but is part of X11.
I am familiar with Ubuntu.

Anyways, most linux distros don't use NTFS (all of them?) but makes no particular difference since it is supported for external harddrives.
The most notable differences are:
Ui (Most distros use Gnome UI. Ubuntu switched to another one, I don't remember its name.
Supplied stock programs (Based on preferences and licensing. You probably won' t be able to listen MP3' s right away, for example, as it has different licensing than most linux distros, and will have to apt-get the codecs from the online repository)
Program installation commands ( apt-get is named differently on some distros )
Don't really know but I've heard something about codeblocks being more of an emulator than a compiler? What do you mean by no _s stdio extensions? Do you mean no file extensions or that the standard libraries are unusable? Which file system does Linux use, would you recommend Ubuntu, why and what are UEFI? Doesn't it have to do with booting?

switched back to Windows and never looked back. =P


Why?

Sorry for the many questions...
Don't really know but I've heard something about codeblocks being more of an emulator than a compiler?


Code::Blocks is neither an emulator nor a compiler. It's an IDE. That is... it's a front-end to put a user interface on top of a compiler to make it easier to use (along with several other things -- like embedding a debugger in your development environment, project management, makefile generation, etc).

Code::Blocks will use another compiler underneath it to actually compile the code. In the default install I believe it uses GCC.

What do you mean by no _s stdio extensions?


Microsoft added a bunch of "safe" versions of C functions (like fopen_s, strcpy_s). These are non-standard and only available on Windows.

You probably aren't using them (or at least, you shouldn't be), so you don't have to worry.


I'll let EssGeEich field the UEFI/Linux distro questions.

RealGiganitris wrote:
"switched back to Windows and never looked back. =P"

Why?


Ubuntu more or less works fine as long as you never leave the repos. As soon as you try to download anything off the net that isn't in the repo, a can of worms explodes in your face.

I spent hours upon hours wresting with my system to do tasks that should have been trivial (like plugging in a USB flash drive and trying to copy a file from it -- I'm not exaggerating -- it took 2+ hours for me to do it... and I had to solicit help from my Linux-savvy friends online. Without them I never would have figured it out).



EDIT:

I've ranted about it before on these forums. If interested, you can see my rant here:

http://www.cplusplus.com/forum/unices/18514/4/#msg98069
Last edited on
I have an HP with NTFS and UEFI and I had linuxMint working with a dual boot of Windows 8. It was a little tricky to get it working. You have to turn off secure boot. I don't remember what else I did but it worked with no problems until I tried changing my graphics driver.
Last edited on
I'm confused about your rant, you don't like it because it's console based?

This is the world I never understood. There's like some weird fetish where people like doing things the hard way.


It's not so much a fetish for doing things the hard way but a fetish for
*deep inhale* Consoles! Have you ever used MS-DOS? It can easily replace windows if people continued to develop it today into a multitasking speedy console with modern capabilities. My favourite MSDOS app is MXPLAY.EXE because it is console and works 1000* better than Windows Media Player.

Maybe you should try a different distribution of Linux? What file system does Linux support?
@ Disch: I loved Microsoft Visual studio (used the express version only). *In my opinion* it is the best program written by that company, and they are giving it away for free (makes a serious point for free software by the way).

I like excel, however google spreadsheets are superior *in my opinion*, so in that respect switching to Linux is not a minus (whether on Windows or on Ubuntu, I'd recommend using google spreadsheets to Excel/ the Libre office version of Excel).

As far as Microsoft Word goes: most mathematicians, including myself, are mortal enemies of that program. Word has been immensely disrespectful to the field of mathematics*, and the Microsoft equation editor is a crime against humanity. I use all the time LaTeX: LaTeX has lots of problems and issues. However, compared to the misery the Microsoft equation editor has caused me (I've lost actual mathematical work due to that abomination), all problems of LaTeX seem reasonable.

*To explain how Word has been disrespectful to math: the tex engine precedes both Windows and Word, and the LaTeX macros were created around the same time as the said programs. Mathematicians have clearly stated the format in which they want to enter math: we want to write \frac{ x^2+2x+3}{x-1} and get a correctly rendered beautiful formula. Our request has been made before the Microsoft equation editor was ever created. Yet Microsoft did not respect the mathematicians' wishes of how to enter math.

Mathematicians say "we want formulas done this and that way to make our work easy". Microsoft tells us: "we know better than mathematicians what is the best way for them to enter mathematics". Then we say, "well if you don't respect our wishes, we won't use your program". And that's how it goes. I haven't touched Word since 2005 (been using LaTeX exclusively on windows 2005-2009 and on linux since 2009).
Last edited on
RealGiganitris wrote:
I'm confused about your rant, you don't like it because it's console based?


Not really. I didn't like it because it didn't work. Between resolving missing dependencies to build programs, fixing broken packages and/or resolving package version conflicts, having to write scripts to manually mount drives that should by all rights be plug and play, etc, etc. The list goes on. Ubuntu gave me nothing but trouble.

If I didn't have access to people I know who were into it and could help me out with the problems I was having, it would have been completely unusable.

Having to dive into the console to do anything certainly isn't a plus. I shouldn't have to learn a new programming language just to use my OS -- nor was I willing to. But with *nix you pretty much have to.

It's not so much a fetish for doing things the hard way but a fetish for
*deep inhale* Consoles!


Manually writing makefiles and constructing elaborate build scripts to automate building a program instead of just pressing Ctrl+B from an IDE is "the hard way".

It's kind of the mentality that is behind all of Linux. Everything is "do it yourself". Yes it's powerful. And yes... if you like tinkering around and doing that kind of stuff, you might like it.

But for me... I just want my OS to work. I don't want to have to wrestle with it to get it to do what I want. So I absolutely hated it.

Maybe you should try a different distribution of Linux?


No thanks. I tried Ubuntu on recommendations that it was the easiest to use. If that nightmare was the easiest, I don't want to touch any others with a 10 foot pole.


EDIT:

Also:

http://xkcd.com/456/




I guess what I'm saying is... it'd be good to try Linux out. I'm not saying you shouldn't. Just know what you're getting yourself into. It is going to be a certain amount of work at first, and there's going to be a learning curve.



EDIT2:

One thing I will say is that installing libs for programming was much, much easier on Ubuntu than it is on Windows. As long as:

-) It is available from the repo (apt-get)
-) You don't need multiple versions or an older version

A simple apt-get installs the lib and you're good to go. I was really impressed with that.





....But as soon as you step outside the repo.....
Last edited on
Wait, there's a learning curve to Ubuntu? Arch or Gentoo, sure... but Ubuntu is designed around the end-user being damn near stupid to the point there is no root user anymore to avoid accidents. You shouldn't have to ever open up a terminal or really do anything that requires a whole lot of technical ability.
NoX: Yeah, that's what I was told which was why I tried it.

Too bad it's not true.
What isn't true?
In fact I had to use the terminal even to install Steam. Rarely you doubleclick an executable on its own.
But, yes, I recommend Ubuntu.
Consider making a live CD (or even a live USB, ubuntu's download website gives some instructions on that).
Supported filesystem will be shown in the Partition Manager when installing it.
Also consider dualbooting: if you have a free partition and Windows is already installed, it will show up at boot time so you can still use it while installing linux on the free partition.
I have had none of the issues that Disch has described and I have been using Ubuntu for a good two years now. I use several non-official repos and nothing has broken. I'm not sure when he used it, but now it is very stable system and definitely worth checking out.
NoXzema wrote:
What isn't true?


What you said in your post:

You shouldn't have to ever open up a terminal or really do anything that requires a whole lot of technical ability.




ResidentBiscuit wrote:
I have had none of the issues that Disch has described and I have been using Ubuntu for a good two years now. I use several non-official repos and nothing has broken. I'm not sure when he used it, but now it is very stable system and definitely worth checking out.


It was about 4-5 years ago. Things have probably improved a lot since then, but I'm scarred for life.

But yes, I agree. It's worth checking out. Maybe you won't have the experience I did. Maybe you will. I have heard tales from both sides --- people having no trouble, and people like me having nothing but trouble. OP might very well fall in love with it.
What exactly required technical ability in your case?
closed account (z05DSL3A)
I must admit that I'm not a big fan of Linux for 'desktop' use. Probably like Disch, I have had it go tits up far too easily for me to want to use it for that.
@NoX:

http://www.cplusplus.com/forum/unices/18514/4/#msg98069

Ctrl+F for "The most recent instance of this happening:"


Also I had issues with incompatible versions of libs required to build certain programs.

It seemed that whenever I downloaded something new I had to fix a bunch of broken packages.

One time I spent a hour trying to download and build the source for bSNES and compile it... only to just give up and download the Windows binary and run it through Wine (which took all of 2 seconds). Having to compile everything instead of just downloading binaries is retarded.
Last edited on
I don't really understand, given that a modern Ubuntu setup (or hell, even a poorly setup Arch linux system) will automount USB drives if udev can find a driver for it and/or it matches the generic storage driver. It's literally plug-and-play as an icon pops up on my laptop that I run mint on without the requirement of a terminal.

And again, not everything is built from source on Linux. Hell, most things are *not* built from source in a modern desktop environment, if anything is at all. The only one that would do this is if you're building packages yourself or if you're using a source-based package manager like portage.
Ubuntu uses apt-get and pre-compiled packages, the average user does not have a C or C++ compiler installed onto their desktop.

Software vendors can produce binaries for Linux users as well, contrary to popular belief, much like a PE executable. They just don't since packages like that are often instead introduced via distribution packages: https://apps.ubuntu.com/cat/applications/bsnes

New software will sometimes compile binaries for convenience purposes until its well adopted. Proprietary software also does this... I use Tixati for instance.
Pages: 12