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