Dual Boot, C-Ready System (& Windows vs Ubuntu)

Dual Boot

Last 2 days I've been setting up my computer, getting it ready to work. I bolded words I think will help anyone looking for setting up dual boot easily.

I begun with formatting it, I have plenty of junk left due to going through different areas of programming, touching on them and leaving them be. I also want to have a proper dual boot, and I had Ubuntu installed as a subsystem - meaning I was using it only through the cmd of Windows. So I erased everything.

Since Windows 10, It's pretty easy to format using Window's Control Panel. It's quite intuitive, and there is no need of external copy of Windows to do so. I'd advice using it to anyone interested in formatting his pc.

Once done with the format and installing all my Windows necessities, I proceeded to install Ubuntu through an iso-imaged USB I preset (using Rufus and an Ubuntu.iso file). The installation wasn't as smooth as I thought, it turns out my computer is using RST (Rapid Storage Technology), which for some reason doesn't allow proper installation of Ubuntu. I had to change it to AHCI (Advanced Host Controller Interface). Both of these seem to be different standards by which the computer communicate/write to it's memory drive. After a quick check online, there is not real difference in performance between these two, unless you use certain technologies (like RAID or Optane memory. more info online). After changing these settings (following this guide) on Windows registry and the bios (which is always a bit nerving experience) the installation ran smoothly.

C-Ready System

At the near future I intend to use my Ubuntu OS mainly for coding in C. After installing Discord & Zoom I went on with my current C needs.

sudo apt became a new friend, allowing me to install the compiler (gcc) with ease. Using commands in Linux systems might seem like an obstacle at first, but after getting used to it, it actually feels much more intuitive. To do the same in Windows, I'd have to worry about things like: searching for the compiler online, getting to the right page, downloading the right version. With Linux, after sudo apt update && sudo apt upgrade (which updates the softwares list library) there is nothing to worry about! sudo apt install gcc and you're done!

I can totally understand why programmers use Linux over Windows, and why more casual users use Windows. If you've never coded or used a terminal(like cmd on windows), writing commands on a black screen might seem intimidating in comparison to the visual ease of the Windows'y way.

With the compiler out of the way, I begun my research of which IDE should I use. So far I've been writing in Eclipse, Pycharm and Notepad++. Pycharm is intended for python, Eclipse is intended for Java. I actually wrote some C++ scripts with Eclipse and wasn't quite satisfied with how it worked, it seemed much more compatible for Java. Notepad++ is awesome! but as a text editor. I really want to have an IDE with a built-in Debugger and project management capability, I've found it extremely useful for large projects.

Most online sources seem to advocate for VSC (Visual Studio Code). I'm kind of hating on Microsoft's products at the moment, as most of them are behind a paywall(Windows, Office). The products ARE good, and do their jobs well, but I feel like free alternatives are not far off. Microsoft also bought Blizzard recently, and I don't like it when one corporation holds the market under it's control. I might end up using VSC, but for now I'll keep on researching.

To have things c-ready without an IDE, I'll use the good old nano (Ubuntu's default txt editor) and Terminal commands. In addition, I installed GDB (GNU Debugger) and Valgrind. This will allow me to have full c coding capabilities without an advanced IDE.

RwK