360 PROJECT
CPTS 360 PROJECT
Date Assigned: 3/7/2023
DUE & DEMO: close week 4/26-27/2023
=========================== WARNING !!!!! ===================================
WARNING: Academic Honesty, absolutely NO plagiarism allowed
If you got CODE from somewhere, you MUST acknowledge it and cite the source
You are responsible for ANY code you turned in
The project has been re-designed. Do NOT attempt to download code and submit
them as YOUR work. Violators will get F for the course and report to WSU.
=============================================================================
1. May work in 2-person teams. However, a comprehensive INTERVIEW will
be given to EACH individual during the DEMO. The INTERVIEW results
will be a major part of your final grades.
---------------- Project grading standards: --------------------
Full credit : Working AND can EXPLAIN your work.
1/2 or better : Partially working but can EXPLAIN your work.
0 and F, REPORT case to WSU: working but CANNOT EXPLAIN code.
-----------------------------------------------------------------
A. OBJECTIVE:
Design and implement a Linux-compatible EXT2 file system.
B. SPECIFICATIONS:
Implementation of EXT2 File System: Chapter 11.6
1. Files:
Files are exactly the same as they are in the Linux file system, i.e.
we shall use the same EXT2 file system data structures, except:
Only DIR and REG file types; no SPECIAL files (I/O devices).
2. Disks:
Disks are "virtual disks" simulated by Linux files.
Disk I/O are by Linux read()/write() on a BLKSIZE basis.
3. File names:
As in Unix/Linux, each file is identified by a pathname, /a/b/c or x/y/z.
If a pathname begins with "/", it's relative to the / directory.
Otherwise, it's relative to the Current Working Directory (CWD) of the
running process.
4. File System Commands and Operations:
File operations will be executed as commands. The required commands are
listed below. LEVEL 1 is the MINIMUM requirements for passing the course.
------------ LEVEL 1 ------------
showblock mountroot, ls, cd, pwd
mkdir, creat, rmdir,
link, unlink, symlink, readlink
------------ LEVEl 2 -------------
open, close, read, write, cat, dd
permission checking
-----------------------------------
All commands work exactly the same as they do in Unix/Linux.
5. Remaining semester will be devoted to the project
Start with Chapter 11.1 to 11.5: LAB5: showblock program
============================================================================
SAMPLE PROGRAMS:
Help files and sample solutiions will be posted at ~cs360/samples/PROJECT
============================================================================
HELPS
How to create virtual disks
# mkdisk sh script file
sudo dd if=/dev/zero of=$1 bs=1024 count=$2
sudo mke2fs -b 1024 $1 S2
chmod +x mkdisk
Then, mkdisk mydisk 1024; mkdisk diskimage 2048; etc.
How to use virtual disk:
# sh script do_it: do_it mydisk
sudo mount $1 /mnt
(cd /mnt; ls -l; sudo mkdir dir1; sudo touch file1)
sudo umount $1
How to view contents of virtual disk: show_it diskimage
sudo mount $1 /mnt
sudo ls -l /mnt
# other commands: ls -l /mnt/dir; etc
sudo umount $1