Skip to content

kulnaman/new_project1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPSC/ECE 3200: Introduction to Operating System - Project #1

1. Setup

1.1 GitHub

Code submission for all projects in the class will be handled via GitHub classrooms. Your account on canvas has been connected to github. Each student will automatically have private repositories for the projects.

You must not create any public repositories for storing your code. If you have discovered repositories with CPSC/ECE 3200 solutions, please notify the instructor.

1.2 Lab Machines

Your code will be tested on School of Computing lab machines. You are recommended to use these lab machines and test your code thoroughly before submission. Please consult the Computer Help Desk page for information on how to access these machine.

1.2.1 ssh-keys

You may set up your ssh keys on the lab machines in order to authenticate with GitHub from these machines. If you have already done this steps before, you can skip this secttion.

After log into one lab machine, run the following:


$ ssh-keygen -N "" -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub

Then, log in to GitHub and go to github.com/settings/ssh to add this SSH public key to your GitHub account.

1.3 RISC-V Development Tools

In this course, you will work on several project on top of the XV6 for RISC-V teaching operating system developed at MIT. To work with the RISC-V architecture on a X86 system, you'll need the RISC-V versions of a couple different tools: QEMU, GDB, GCC, and Binutils. Some machines in the lab have the tool-chain already installed. One can check for this by running the command:

which riscv64-unknown-elf-gcc

We have provided a bash script [install-riscv-tools.sh] which is included in the handout subdirectory. Simply run it under your home directory on any lab machine. You should see two generated directories: gnu and qemu. The script also does a simple test on the executables inside these directories.

Attention: make sure you pass the simple tests before you proceed to Task B

2. Useful Tools

To work on the projects in this course effectively, you may need to use several userfule tools that make a good fit for in any system hacker's toolbox.

  • Git: to clone the provided source files and submit your solutions through git commit and push
  • make: to compile and link and generate executable from Makefile.
  • man: to read manuals of commands and library functions.
  • vim: an editor for you to change source codes
  • gdb: gnu debuger
  • ctags: a tool that will sift through your code

If you are unfamiliar with some of these tools, you can find some tutorial online or ask the TAs for help.

3. Your Assignment

This project consists two tasks:

Task A: Text Sorting

Task B: XV6 System Call

You can find the descriptions and requirements for these two tasks in the TaskA and TaskB folders.

4. Testing

For testing your assignments on local machine use the test cases provided, more information is available inside the test folder.
You can also see the testcases passed on your github repository page. If you go to the actions tab on the repo page, and click on the workflow, you will see the testcases passed.
More information about this will be provided.

5. Submission

To submit your work, do:

cd ~/path/to/your-project-folder
git status
git add files-you-created-or-modified
git commit -m "Finished project1"
git push

This will save your work and give the instructor and TAs to see your progress.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published