Operating Systems - Prof. Omar Mansour
New York University
Tandon School of Engineering
Department of Computer Science and Engineering
Introduction to Operating Systems
Spring 2025
Assignment 1
(5 points)
In this assignment, you are required to download and install the latest VMware Workstation Player from
www.vmware.com and create a new virtual machine after downloading the latest Ubontu Linux distribution from
www.ubunto.com.
If you already have an Ubunto linux machine, then you may use it, however it is recommended that you use a
virtual machine for assignments that pertain to developing kernel modules. Please note that we will develop Linux
kernel modules in this class, and as such Mac OS will not do (besides, it behaves differently from Linux when
used with pthreads).
After successfully installing and running Linux, use one of the pre-installed editors (e.g. vi, gedit, emacs, etc), or
download an editor of your choice, to write a C program that prints the text “Hello world! This is Introduction to
Operating Systems, Spring 2025!” on the first line, and then on the next line, prints the student’s first/last names
on the second line, followed by a random number whose value is between 0-149 (please ensure you seed your
rand() properly, e.g. use srand(time(NULL)) to seed). Your program shall then put a new-line character
and then exit.
You should use gcc for compiling your program. You should name your output file (i.e. the executable) lab1 (yes,
no extension).
Below are the links for the free versions (for student use) of Vmware workstation (windows/linux) and Fusion
(Mac).
https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html
https://customerconnect.vmware.com/web/vmware/evalcenter?p=fusion-player-personal
What to submit to gradescope:
Please submit the following files individually:
1) Source file(s) with appropriate comments.
The naming should be similar to “lab#_$.c” (# is replaced with the assignment number and $ with the
question number within the assignment, e.g. lab4_b.c, for lab 4, question b OR lab5_1a for lab 5, question
1a).
2) A single pdf file (for images + report/answers to short-answer questions), named “lab#.pdf” (# is
replaced by the assignment number), containing:
• Screen shot(s) of your terminal window showing the current directory, the command used to
compile your program, the command used to run your program and the output of your program.
3) Your Makefile, if any. This is applicable only to kernel modules.
Operating Systems - Prof. Omar Mansour
RULES:
• You shall use kernel version 4.x.x or above. You shall not use kernel version 3.x.x.
• You may consult with other students about GENERAL concepts or methods but copying code (or code
fragments) or algorithms is NOT ALLOWED and is considered cheating (whether copied form other
students, the internet or any other source).
• If you are having trouble, please ask your teaching assistant for help.
• You must submit your assignment prior to the deadline.