diff options
Diffstat (limited to 'web/xv6-names.html')
-rw-r--r-- | web/xv6-names.html | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/web/xv6-names.html b/web/xv6-names.html deleted file mode 100644 index 926be3a..0000000 --- a/web/xv6-names.html +++ /dev/null @@ -1,78 +0,0 @@ -<html> -<head> -<title>Homework: Naming</title> -</head> -<body> - -<h1>Homework: Naming</h1> - -<p> -<b>Read</b>: namei in fs.c, fd.c, sysfile.c - -<p> -This homework should be turned in at the beginning of lecture. - -<p> -<b>Symbolic Links</b> - -<p> -As you read namei and explore its varied uses throughout xv6, -think about what steps would be required to add symbolic links -to xv6. -A symbolic link is simply a file with a special type (e.g., T_SYMLINK -instead of T_FILE or T_DIR) whose contents contain the path being -linked to. - -<p> -Turn in a short writeup of how you would change xv6 to support -symlinks. List the functions that would have to be added or changed, -with short descriptions of the new functionality or changes. - -<p> -<b>This completes the homework.</b> - -<p> -The following is <i>not required</i>. If you want to try implementing -symbolic links in xv6, here are the files that the course staff -had to change to implement them: - -<pre> -fs.c: 20 lines added, 4 modified -syscall.c: 2 lines added -syscall.h: 1 line added -sysfile.c: 15 lines added -user.h: 1 line added -usys.S: 1 line added -</pre> - -Also, here is an <i>ln</i> program: - -<pre> -#include "types.h" -#include "user.h" - -int -main(int argc, char *argv[]) -{ - int (*ln)(char*, char*); - - ln = link; - if(argc > 1 && strcmp(argv[1], "-s") == 0){ - ln = symlink; - argc--; - argv++; - } - - if(argc != 3){ - printf(2, "usage: ln [-s] old new (%d)\n", argc); - exit(); - } - if(ln(argv[1], argv[2]) < 0){ - printf(2, "%s failed\n", ln == symlink ? "symlink" : "link"); - exit(); - } - exit(); -} -</pre> - -</body> |