During the course we may alternate between Windows and Linux. While almost everyone uses Windows, not everyone has used Linux before.
- How would you suggest to someone become familiar with Linux if they had not used Linux before?
- How would you recommend they select a distribution?
- How would you recommend they download and install that distribution?
- What are some of the advantages and disadvantages of downloading a pre-made virtual machine?
Dan Bilenker says
1. How would you suggest to someone become familiar with Linux if they had not used Linux before?
The first, and most obvious tool is to use google to find an overview of the system, its features, and applications. I.E, “when in doubt, google it out.” Additionally YouTube has hours of video regarding the platform, and tutorials for various uses.
However, as Temple Students, I recommend using the LYNDA.com library in TUPortal. LYNDA is a hosted by LinkedIn, and hosts hours of courses on a variety of subjects. The courses range in difficulty from beginner to advanced.
LYNDA for TU Students: https://lynda.temple.edu/default.aspx
Login with Accessnet Credentials
Use the search function to look for Linux Courses
Examples of Courses:
o Linux Tips Weekly
o Learning Linux Command Line
o Linux Security & Hardening Essential Training
Once you are familiar with the basics, you would want to actually work on a Linux Platform. I would use a virtual machine as a test environment, rather than purchasing an entirely new system.
Here is an article regarding how to choose a distribution:
https://www.techradar.com/news/best-linux-distro
2. How would you recommend they select a distribution?
Selecting a distribution depends on the familiarity of the user, and what the user intends to do with the system. Linux is open-source, meaning anyone can write code for it. Therefore, there are user created distributions that are free, in addition to commercial products such as Unbuntu. Unbuntu is a good place to start, as it is straight forward, easy to navigate, and designed with simplicity in mind.
However, it is easy to research various distributions and compare the pros & cons. The chosen distribution should reflect the user’s level of knowledge, and incorporate what the user intends to do on the platform.
Furthermore, distributions can be built for specific purposes, and come pre-loaded and configured to meet those needs. Again, this is where reading and identifying the differences comes into play.
Here is a source: https://distrowatch.com/dwres.php?resource=major
Here is another: https://www.techradar.com/news/best-linux-distro
3. How would you recommend they download and install that distribution?
I would start here: https://www.linux.com/learn/how-install-and-try-linux-absolutely-easiest-and-safest-way
Generally when I need software, I look for the original source. Use verified sites – such as the one above, that have verified download servers. I also look for the https:// prefix.
The above link takes you to a Linux page, that has download links inside of the article (they recommend Unbuntu).
At the Unbuntu page, you can select whether you want to download via HTTP or Torrent. Torrent will be faster, but you need to be careful in choosing a torrent client. Many are riddled with malware, extras, and other malicious items you don’t want or need.
Here is an article on choosing a torrent client:
https://www.techradar.com/news/the-best-free-torrent-client
If you don’t want to mess with Torrents, select an HTTP download, just be warned it will be much slower.
Once you have downloaded the file, copy the .ISO onto a USB hard drive (make sure you have enough space).
Here’s where installing can differ:
1.) If installing on a physical machine (Windows), restart the machine and hold F12 to bring up the Boot Menu. Use the arrow keys to navigate to the USB drive option, and press enter.
The disk will initialize, and you will follow the on screen prompts to continue through the installation.
2.) If installing on a virtual machine such as Hyper-V or VMWare, create a new virtual machine, and when configuring the installation source files, browse your PC for the location you saved the .ISO file to and select that as your installation source.
If you have a physical machine to work on, great. If not, virtual machines are awesome and if you mess up, you can delete the virtual machine and start over. I use Hyper-V to build images and test my MDT (Microsoft Deployment Tool Kit).wim (Windows Image) files before I put them onto the network. The virtual machines have total functionality, so treat them like real PC’s and follow the same protocols. I found out the hard way that my .vhdx (virtual hard disk files), were easily corruptible by doing something as silly as not shutting down properly. I lost an image I had been working on for quite a while.
4. What are some of the advantages and disadvantages of downloading a pre-made virtual machine?
Advantage:
1.) Already configured, contains files, software, and other items needed
2.) Easy to deploy
3.) Saves time
4.) Has been tested for bugs/issues
5.) Can be pre-configured for a specific purpose
6.) Lots of support forums
7.) Can support multiple virtual machines simultaneously
Disadvantage:
1.) May not be configured the way you need
2.) May have too much software preloaded (conflicts)
3.) May conflict with your test environment
4.) Depending on how long the machine has been released, may still have issues
5.) May interfere with testing due to preconfigured security controls
Brandan Mackowsky says
Dan,
I feel this was a very well written high level overview to go about installing Linux. As someone who has very little experience using or setting up the platform, this was a great quick read to go through and see the varying options of Linux installations and sources that I can choose from. I feel that I will use this post as a reference point as I am setting up a virtual machine to use for the Linux system.
Vince Kelly says
1. How would you suggest to someone become familiar with Linux if they had not used Linux before?
I’m certainly NOT a Linux expert but I do feel pretty comfortable working with it – so ABSOLUTELY Z E R O
problem helping out if anyone needs it – please just send me an email. In addition, there are many, MANY (short and to the point) youtube videos on Linux basics. If someone is unfamiliar with Linux then I’d definitely suggest either installing the Gnome GUI or downloading the Ubuntu Desktop (or one of the Redhat desktop distributions). If you’re comfortable with Windows, the Linux GUI is a no-brainer.
As far as the command line goes, (in my opinion), Linux does have a larger (and more powerful) set of tools to work with that’s provided with the default versions but some of them may seem pretty cryptic. But the idea behind Linux/Unix variants is that the OS (and really ALL operating systems) are actually made up of literally thousands small, single purpose functions that are ‘strung together’ in order to accomplish a larger task by using OS facilities like pipes.
Basically this is nothing more than running a ‘utility’ like ls for example and redirecting the output of that command so that it becomes the input to another utility/command. For example, From the GUI typing in ‘Alt-t’ (to get the command prompt and then typing:’ ls | more’ on the command line is really nothing more than two utilities being ‘glued’ together – LS a directory listing and MORE which displays one page at a time.
This is the object oriented nature of Linux. Microsoft Powershell and the DOS emulator/command shell function exactly the same way, (taking the output of one object and redirecting it in another).
2. How would you recommend they select a distribution?
Its not just the distribution of Linux that you should consider, its the tool chain environment that you should decide to use as well – ie., do I want to use VMs or containers? What VMM/Hypervisor do I want to use – VMWare?, Virtualbox?, Linux KVM?, Xen?, etc,etc,etc.
As far as a basic OS distribution goes, to me, Ubuntu is hands down the best distribution for Bare Metal, VM or Container environments. But regardless of the distribution, you can simply download a base image VM or you can find fully preconfigured versions that come with HUGE variety of applications like; Apache Web server, mySQL database and Python or PHP or Perl languages – this is typically referred to as a LAMP stack.
. The best place to go to find any kind of distribution, (Ubuntu, Fedora, RHL, CentOS, etc., etc.)- again, in my opinion,- is: virtualbox.es This is a public repository created Hashi corp, the guys who developed one of the most popular configuration management tools ever developed called Vagrant.
3. How would you recommend they download and install that distribution?
Good news, Bad news kind of thing:
Good news, if you decide to go the container route:
The flat-out easiest thing to do is to just install a container run-time engine like Docker or Rocket and then download a prebuilt container that has everything that you need – the OS and all the applications – from a public container repository, like the Docker repository for example.
The pros of doing this is that its, simple, fast and scales MASSIVELY – you literally can create an entire container based infrastructure and then use a container orchestration tool like Kubernetes to automate everything (load balancers, firewalls, etc) using service chaining.
With Kubernetes, you don;t need to touch anything once its set up – you simply create a ‘Manifest’ text file that contains the ‘commands’/metadata that you want the Kubernetes orchestration Master to ‘accomplish’, This method is known as ‘Declarative’ or ‘Intent-based’ infrastructure because you literally ‘tell’ the infrastructure what to do and then the infrastructure controllers do everything that they can to accomplish that task. This is a different level of automation from the more traditional way of configuring things OS by OS and box by box that most of us are familiar with.
Anyway, the Manifest metadata is sent/presented to the Kubernetes Master apiserver and then the Master handles all the rest – ie. spinning up and tearing down container pods, standing up the facilities, etc., etc., etc. the Kubernetes orchestrator takes over the entire container life cycle.
Bad News:
Working with containers takes a *little* bit of getting used to – although containers are EXTREMELY easy to use once you get the hang of it. But that said, if you’re new or struggling with Linux and aren’t familiar with containers or tools like Kubernetes, then I wouldn’t go down this route because of the limited time for the semester.
Another alternative – just stick with the VMM/VM approach:
If you decide to download one of the VM based distributions from the virtualbox.es repository, all you do is cut and paste the URL provided next to the image that you want into your web browser. I usually just pull down the .iso file of the image that I want.
Once you have the image downloaded, you simply import it into the particular VMM that you’re using (ie, VMWare, Virtualbox, KVM, Xen, etc).
In my case, I’m running Windows10 so I use Hyper-V. Hyper-V comes with Windows10 so there’s nothing to download or install (except the VM of course) and its EXTREMELY easy to set up and use – only takes about 3 minutes and a reboot! there’s a decent video here: https://www.youtube.com/watch?v=wfG4oFI5FIk).
Once you have the image and decided on a VMM you simply import it into the hypervisor – all hypervisors have some sort import/export facility and pretty much all of them are intuitively obvious to use – the OS is really nothing more than a file.
The file aspect of the VM creates a LOT of flexibility because if you want to port your VM to another type of Hypervisor – like porting an Amazon cloud AMI image over to Virtual Box VDI VM, image or Hyper-V HDX image file to VMWare Player vmdk image, you can do it in a couple of ways:
1. Use a specialized file conversion utility (my favorite)- QEMU is absolutely the best I’ve ever seen for this
2. Use Microsoft Powershell. Powershell has some pretty impressive file conversion capabilities. For example, the following Powershell command (known as a ‘cmdlet’) converts a VMWare vmdk Ubuntu file image into a Microsoft Hyper-V VM:
ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath “c:\users\public\documents\Ubuntu Trusty64.vmdk” -DestinationLiteralPath “c:\users\public\documents\Ubuntu Trusty64.vhdx” -VhdType DynamicHardDisk -VhdFormat Vhdx
Of course this does take a little setup in PowerShell (gotta load the correct PS module, etc) but you get the point.
4. What are some of the advantages and disadvantages of downloading a pre-made virtual machine?
Advantages of downloading a preconfigured virtual machine or container:
Per the above post it’s extremely simple and exceptionally fast – you don’t have to struggle with or deal with a lot of OS minutia like Linux file system partitioning, messing with device drivers etc. Its all done for you – even down to the application. You do still have to do a little bit of tuning (selecting timezones for example) but that’s really not a big deal.
Downside to just pulling down the image (as opposed to doing it from scratch), is that you get what you pay for – ie, you get someone else’s idea of what needs to be configured and how it should be tuned.
The other downside is that (and this is true for ALL open source software), there can be some element of risk associated with pulling down an OS from a public site.- it’s for this reason that I’d recommend completely ISOLATING whatever you pull down. For example, stand the OS up on an isolated vSwitch that is not directly connected to your own NIC, and do NOT share your physical disk with the VM, use an external connectivity mechanism (like the Internet) to transfer file TO the VM – never from.
As far as I can tell from listening to everyone/all the interactions between the class so far, everyone seems to have a solid background in IT but that being said, if anyone needs another set of eyes, please don’t hesitate to reach out – I’d be happy to help as much as I can..
Brandan Mackowsky says
Vince,
I really enjoyed your in depth review of utilizing Linux throughout the semester. Surprisingly even working in IT, I really have not had too much experience reviewing or working with Linux and I’m looking forward to having an experience and some time to do so. Based on your post, I really feel that the in depth review will help me to understand how I want to/should go about setting up my Linux platform. I may take you up on some of that offer for help! Thanks for the review.
Kelly Conger says
Vince, I too will be hitting you up for some Linux advice. I’ve also heard about “containers” but didn’t know much about them until reading your post. Do all containers have to have an actual OS? or can they run a few services or even just applications? Thanks again for the information.
Dan Bilenker says
“Downside to just pulling down the image (as opposed to doing it from scratch), is that you get what you pay for – ie, you get someone else’s idea of what needs to be configured and how it should be tuned.”
– I agree. There are definitely benefits to pulling down a configured image, but the downside is you’re getting someone else’s configuration. If you’re advanced (I’m not), you’ll probably want a fresh environment tuned to your needs/preferences.
Also this: “The other downside is that (and this is true for ALL open source software), there can be some element of risk associated with pulling down an OS from a public site.- it’s for this reason that I’d recommend completely ISOLATING whatever you pull down. For example, stand the OS up on an isolated vSwitch that is not directly connected to your own NIC, and do NOT share your physical disk with the VM, use an external connectivity mechanism (like the Internet) to transfer file TO the VM – never from.”
I also agree with this sentiment – and its an excellent point. I should have specified this in my post as well. Typically when I build images, my baseline OS is ripped from a licensed disk purchased by the university. I have no issue loading it directly, and hosting on my server, or build/production drives for subsequent images – because I know what I’m getting. When downloading from an unverified source, you need to quarantine and ensure your virtual test environment doesn’t permeate your physical systems,
Kelly Conger says
A few years ago I would have recommended downloading CentOS as it mirrors the Redhat distribution and allows free updates but today an easier way would be to just download the latest LTS iso for ubunut, which at the time of this post is 10.04.1.
I’ve always just used a hypervisor to build my Linux VMS. On my Mac I have used both Parralells and vmware Fusion, the Mac version of Workstation. I have also tried out Virtual Box, many because its free, but you can get both Parralells and Fusion through the Temples software portal, https://e5.onthehub.com/WebStore/
Once you download and install your hypervisor of choice you can begin to great a new ubuntu VM.
I will try and put in some screen shots here.
Kelly Conger says
*LTS 18.04
Also, does anyone know how to edit a post?
Dan Bilenker says
I don’t think you can, which is kind of a bummer.