Operating Systems Concepts & Design
This lab will have you focusing on your physical system. Your workflow to complete the companion documentation is up to you.
Go to the folder that contains your repository (likely named ceg2350-yourgithubusername).
Create a new directory, Lab07.
Create a file named README.md in the Lab07 folder. The Lab 07 Template can be copied from this link:
https://raw.githubusercontent.com/pattonsgirl/CEG2350/refs/heads/main/docs/Labs/Lab07/LabTemplate.mdYou may refer to additional resources outside of the recommended resources provided.
Any resource that you use that contributes to your understanding of exercises in this lab should be cited in the Citations section of your lab answers. To add citations, provide the site and a summary of what it assisted you with. If generative AI was used, include which generative AI system was used and what prompt(s) you fed it.
If you make mistakes with commands in the lab, note them! Writing down what went wrong and what the correction was will significantly help your learning journey. If you cannot find a correction, it will help the TAs or myself understand what point you reached and determine some potential solutions.
Find out the following information about your physical system. For the GPU section, you likely only have a integrated or dedicated GPU - not all systems have both. Only fill out what you have.
If research proves your system does not support something, leave documentation and supporting articles.
C for Windows users/ for Linux / Mac usersNote to Mac Users: Mac does have a BIOS / UEFI equivalent and there is a way to access. There is also a link to the driver software.
You should experience making some hardware choices and installing an operating system. The easiest way to do this is via virtual machines. This allows your host to segment a set of resources to run a machine (a guest) via your host. Developers (and students :wink: ) use VMs to install software that isn’t compatible with their host OS, download and explore suspicious packages, create test environments, and other things. Companies will buy a server with massive amounts of resources (200 CPUs, a few terabytes of RAM, a few petabytes of storage) and segment it by creating virtual machines for various software needs. We are using a VM allocated in Amazon Web Services… they are everywhere!
You will need a computer that has CPU virtualization enabled. The lab machines and open lab machines in Russ 152 B & D are all good candidates (and may have VirtualBox already installed). For your own machine, you may need to enable CPU virtualization in your BIOS / UEFI.
Resources we’ve whipped up
Accomplish the following tasks using the guest OS in the virtual machine you made in Part 2. In your lab template, write a “how to” of steps taken to complete each task.
VBoxLinuxAddition.run executable as rootsshsys-info.sh is a bash script that generates a report of specs for Linux systems
The report will include OS and kernel version, CPU info, RAM usage, Disk space usage, and GPU info.
Run this report on both your AWS instance & your Linux Virtual Machine and add the results to your Lab template.
For each piece of info generated in the report, note at least one way to confirm the information is factual and the output is as expected. You may not use the same method on both systems - if you find a command line way on one system, you need to find an alternative option in the other.
The purpose here is to get you to explore both command line methods and graphical interface methods to finding system information.
Provide information about the purpose of sys-info.sh (and / or the whole script) to a generative AI system of your choice. Have it create a version of this script that outputs similar information for one of Windows or Mac based systems.
Run the script and provide:
Verify that your GitHub repo has a Lab07 folder with at minimum:
README.mdIn the Pilot Dropbox, paste the URL to the Lab07 folder in your GitHub repo
Your files should be cleanly presented in your GitHub repository. Citations should be included as needed. Include which generative AI system was used and what prompts were used if generative AI was used.
Windows Subsystem for Linux (WSL) is a feature of Windows that allows you to run a Linux environment on your Windows machine, without the need for a separate virtual machine or dual booting. WSL is designed to provide a seamless and productive experience for developers who want to use both Windows and Linux at the same time.
Check out the full list of features: https://learn.microsoft.com/en-us/windows/wsl/about
Once upon a time, we required Windows user install WSL2 with Ubuntu in order to use utilities like ssh. I strongly recommend Windows users install this. Upper level course will expect you to be aware of it and have it if you need it. Most developers who use Windows systems will have WSL2 with a linux distro in order to enable Linux based workflows.
Video - WSL2 Overview - Network Chuck
By default, WSL2 will come with Ubuntu selected as the default distro. Other options can be viewed in the Microsoft Store or you can find instructions to install a custom distro.
There are a lot of ways to add screenshots to a markdown file. I’m going to tell you my way. I use my system to take a screenshot, and then I upload files in my repository in GitHub.
Remember when content exists in your repository folder on GitHub, but does not exist in your local folder (the one you usually git push from) you need to do a git pull to sync back up.
We are going to be uploading images directly to our repository in GitHub, then use git pull pull those changes (more specifically, pull the commits which include the changes) to our cloned repositories.
git pullls and see them
# Either of these will work.
# The first is relative to VBox being in the same folder as the file I'm referencing it in (Lab 07)

# The second is an absolute path within the context of the repository

Either of these will work.
The first is relative to VBox being in the same folder as the file I’m referencing it in (Lab 07)
The second is an absolute path within the context of the repository
vmwgfx errors / have a blank screen:
Kernel panic generally implies that the VM needs more than one CPU core. 2 should be plenty. Check the recommended system specs for the guest OS.
Please take all advice below with a grain of salt - I test things for this course on Windows and Linux, not Mac. The following info is collected from helping students with troubleshooting and solutions that helped them.
Mac x64 users (intel / amd):
There may be bugs with VirtualBox 7.0 - if you see NEM something as an error, then it’s bugged. Rolling back to 6.1.40 solves this. Installer page: https://download.virtualbox.org/virtualbox/6.1.40/
Mac M1 Users:
That ARM based processor is a bear. UTM instructions (including an ARM based image): https://mac.getutm.app/gallery/ubuntu-20-04
I recommend using the open labs (152B&D) as they have VirtualBox installed already.