Linux Guide

From Computer Science

Guides> linux

Created by Pete Johnson

Installing Linux

These pages describe how to install Linux as a virtual machine running on your own computer. Your Linux installation will look like just another window on your desktop: as if you had an imaginary (*virtual*, if you will) computer within the physical computer. In this arrangement, Linux is called the "guest" operating system in contrast to the "host" operating system.

Once you've downloaded, installed, and configured the software that lets you manage virtual machines, you need to get Linux into one. There are two options for this: you can install Linux yourself (more instructive) or you can use a preinstalled image of Linux (more expeditious). Following are instructions for both approaches.

(These instructions were last verified to work on 09 Feb 2020.)


There is a known bug whereby the graphical environment refuses to start. That is, when you run `startxfce4`, instead of seeing pretty pictures, you see errors like "(EE) AddScreen/ScreenInit failed for driver 0" and "(EE) Server terminated with error".

Permanent Fix

Edit our boot environment creation script, to avoid unruly bugs.

    $ sudo sed -i -e '/^MODULES=/ s/()/(i915)/' /etc/mkinitcpio.conf

(if prompted for your password, enter it)

Rebuild the initramfs:

    $ sudo mkinitcpio -P linux 

Reboot and hopefully X will start without restarting dbus.

Temporary Fix

The fix is to run this command:

$ sudo systemctl restart dbus

(The last character of the second word is the letter ell, not the digit one. When prompted, enter *your* password.)

After doing so, running `startxfce4` should work fine. Once inside, you can click on the icon at the bottom that looks like a TV screen to get a terminal in which you can type and work. You can (should) also install a text editor like atom. You should read the "Things you need to know" link above.

Whenever you boot the virtual machine anew, you will likely have to run that command again.

Using Linux

For information on installing new software and keeping your system up to date, see Things you need to know.

The graphical environment installed, Xfce, is fairly similar to graphical environments on other operating systems. I recommend poking around to see what you can do, but if you need more structured information, documentation is available.

One significant difference between Linux and the Big Two Operating Systems is the prominence of the command-line (ie, text) interface. You can access this power by running a *terminal emulator*, a program that simulates a physical access terminal from the 60s (but with more bells and whistles). The terminal emulator, by default, runs the same shell you've interacted with outside the graphical environment, and all the same principles apply.

The easiest way to transfer files between guest and host is to use shared folders.

I've compiled a list of basic commands.

What now?

First and foremost: *be fearless*. One of the benefits of working inside a virtual machine is that your normal computing environment is protected from anything you do inside the VM. Within the VM itself, it is *impossible* for you to break anything that can't be fixed by reinstalling and reinstalling is fairly easy.

Nextly... it depends on what you want out of Linux.

If you installed Linux because you wanted to experiment with software that isn't as easily available on other operating systems, check out the list of common applications on the Arch Wiki, install random software, and play around.

A specific option in this vein is to install a *display manager*, which is the piece of software that allows for graphical login as opposed to the text-based login you've got now. Check out the XFCE FAQ entry on display managers as well as the relevant page on the Arch Wiki. (This highlights the situation with much software on Linux: both the writers of the software and the distribution maintainers will often have documentation available on the same topic!)

You might find some inspiration in checking out screenshots of other peoples' Linux situations.

If you installed Linux because you want to get more experience programming, I recommend you find a program you find interesting and read its source code. Modify it. See what happens. Add a feature. Fix a bug.

If you installed Linux because you want to avail yourself of the power of a programmable command shell, check out the Advanced Bash-Scripting Guide. (As to be expected on Linux, there are other shells to choose from, too.

Where to get help

One of the reasons I favor the Arch flavor of Linux is that it has a particularly helpful wiki. The forums are also quite good, but before wading in there, I strongly recommend you check out the canonical guide on how to ask questions the smart way.

Also please check out the Common VirtualBox Issues page, or ask the ASI (currently Robert Lichenstein) any questions.

Other info

Background information, wherein I answer questions like, "what's an operating system", "what is Linux?", and "what's a distribution?"

Justification, which explains why I recommend, specifically, Linux, VirtualBox, Arch Linux, and so on.

Some notes for faculty and staff who might like students to use this Linux VM for their classes.