Operating Systems
***************************IMPORTANT**************************
Comments from project1: Your program does not produce a binary file that contains the information stored in the program. Your program writes the data to the existing filesystem, not the binary file as stated in the specification.
Additionally, your code cuts off the first character of the directory name.
The code must work on putty
RUFS.h is header file which is included in RUSH.cpp so as to use RUFS functions in it.
Project2-Description
RUSH – The RU SHell
For this project, you will build upon your binary file system from project 1(RUFS.cpp). You will create an interactive shell that can be used to query information about the binary file system, or add to it. Your program takes a single command line argument, the binary file to use for the shell session. When the program starts it is located in the root directory for the binary file system, displays a prompt, waits for user input, reports on user input, and repeats until stopped by a command. Note: if your program is started with a file name that does not exist, your shell should create an empty binary files system that will be stored in that file.
Commands the RUSH shell responds to
pwd – Print the absolute path of the current directory from the root directory
ls – List the names of all of the files and directories stored in the current directory, include the type (file, directory, etc). Also list the name of the directory.
cd - Change the current working directory to the specified directory
cd .. – Change the current working directory to the previous working directory (or ignore if in the root director)
mkdir - Create a directory in the current working directory
cat - Print the contents of the text file to the screen or print out invalid file type createTextFile - Create a text file of the particular name, and prompt the user for its contents
run - For now, print out running program
start - For now, print out starting program
step - For now, print out stepping in program
printInfo – Print out the information produced after the quit command in Project 1
quit – Stop the execution of the RUSH shell and return to the linux shell.
Sample usage scenario (on an empty binary file called sample.bin)
./RUSH sample.bin
EnterCommand>ls
Directory Name: root
EnterCommand>mkdir test
EnterCommand>cd test
EnterCommand>pwd
Current directory is root/test
EnterCommand>createTextFile test.t
Enter file contents>A test file
EnterCommand>ls
Directory Name: test
Filename: test.t Type: Text file EnterCommand>cat test.t
Text file contents:
A test file
EnterCommand>cd ..
EnterCommand>pwd
Current directory is root
EnterCommand>quit
Note: your code must account for extraneous spaces or newlines. If it does not handle these input cases, a grade deduction will be made. Your program will be tested by inputting the commands listed earlier into a file, then redirected into your program via ./NAME < inputFile . If your program does not work in this manner, you will not receive a passing grade on the project.
Submission requirements:
Include all of your files in a directory name project along with a Makefile that can build your program and produce the RUSH executable.
When I unzip I expect one directory to be produced (project2) that contains your source code and a Makefile that will build your program (i.e. I will type make in that directory and it should produce a program called RUSH).
Your submission will be tested on putty Please make sure it works on that system before you submit to D2L. I will not accept programs that only work on your machine and not on putty.
Rubric
Submission requirements: If not met, you receive a 0 for your submission. Homework/Project 1 should have provided feedback necessary to successfully submit this project.
Runtime:
To get a C on your submission it must take the input from the specification and
produce the output from the specification (albeit it cannot be hardcoded).
To get a B on your submission it must produce correct output for at least ½ of the
additional test cases I will use on your program.
To get an A on your submission it must produce correct output for all of the
additional test cases I will use on your program.
Design: Can lower your grade by one letter. Deductions are made for choices such as all of your code in one function. Use what you have learned from previous courses and you should have no issues with this deduction.
Comments: Can lower your grade by one letter if your submission doesn’t contain comments on:
Variables – purpose, type, scope
Function headers (purpose, parameters, return type, called by / calls)
Explanation for blocks of code (inline comments)
Readme file for program containing name, what it is, how to use it.
Header for every source file containing purpose and functions / classes contained /
where to start looking.
Note: If you score a B or higher on this assignment, I will replace your Project 1 score with your Project 2
CS 340 Milestone One Guidelines and Rubric Overview: For this assignment, you will implement the fundamental operations of create, read, update,
Retail Transaction Programming Project Project Requirements: Develop a program to emulate a purchase transaction at a retail store. This
7COM1028 Secure Systems Programming Referral Coursework: Secure
Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip
CS 340 Final Project Guidelines and Rubric Overview The final project will encompass developing a web service using a software stack and impleme