Question: Notes and Style must be written in C The prof has provided a working demo on d21 (sample Programs zip, myshell). try running on FCS

 Notes and Style must be written in C The prof has

provided a working demo on d21 (sample Programs zip, myshell). try running

on FCS linux machines/vm image your assignment code must be handed in

Notes and Style must be written in C The prof has provided a working demo on d21 (sample Programs zip, myshell). try running on FCS linux machines/vm image your assignment code must be handed in electronically using the D2L drop box. Try early and re-submit later. Include a Makefile. If "make" doesn't compile and produce an executable, your assignment will not be marked Your program must run. Programs that do not run, or segfault before working at all, will not be marked. Save early and often, and use version control. Submit often, only submit working versions. Your program must compile with Wall, with no warnings showing. You will lose marks for warnings. Include a "listing" file: a single .txt file with all your source files concatenated into it. Good header text in EACH file is imperative here. (e.g., cat *.h*.c > listing.txt) Confusion over D2L at the last minute is your own fault. Use common-sense commenting. Provide function headers, comment regions, etc. No particular format or style is required. Error checking is extremely important in real world OS work, and you must do it rigorously. Error handing, however, is hard in C. Try to handle gracefully when you can, but for hard errors (out of memory, etc.), hard fail (exit) is OK. Your assignment will be tested on FCS linux machines/images myShell - create a Linux shell to interact with the Kernel You will create a new shell (like bash) that uses system calls to enable the user to interact with the kernel to start programs, pause / continue them, catch signals, and to pipe data between programs. Synopsis: Your shell will Enable the user to pipe commands together. E.g., the following should work ls /usr/bin | grep a more - lists all the files in the /usr/bin directory, pipes that output into grep, which filters by only showing lines that have a, and then pipe that output into more. Support an arbitrary number of commands (up to some hard-coded maximum, e.g., 100). Use anonymous pipes, and dup2, to re-write a process' stdin and stdout entry to instead send data to and take from your pipe. Hint: the file table entries for standard in and out have fixed, standardized numbers, available in system constant somewhere. See if you can find it. Close unused pipe ends in the child / parent (e.g., the child may use the write end of a pipe, so the parent should close that after forking). Make sure that the parent blocks until all children are done! Notes and Style must be written in C The prof has provided a working demo on d21 (sample Programs zip, myshell). try running on FCS linux machines/vm image your assignment code must be handed in electronically using the D2L drop box. Try early and re-submit later. Include a Makefile. If "make" doesn't compile and produce an executable, your assignment will not be marked Your program must run. Programs that do not run, or segfault before working at all, will not be marked. Save early and often, and use version control. Submit often, only submit working versions. Your program must compile with Wall, with no warnings showing. You will lose marks for warnings. Include a "listing" file: a single .txt file with all your source files concatenated into it. Good header text in EACH file is imperative here. (e.g., cat *.h*.c > listing.txt) Confusion over D2L at the last minute is your own fault. Use common-sense commenting. Provide function headers, comment regions, etc. No particular format or style is required. Error checking is extremely important in real world OS work, and you must do it rigorously. Error handing, however, is hard in C. Try to handle gracefully when you can, but for hard errors (out of memory, etc.), hard fail (exit) is OK. Your assignment will be tested on FCS linux machines/images myShell - create a Linux shell to interact with the Kernel You will create a new shell (like bash) that uses system calls to enable the user to interact with the kernel to start programs, pause / continue them, catch signals, and to pipe data between programs. Synopsis: Your shell will Enable the user to pipe commands together. E.g., the following should work ls /usr/bin | grep a more - lists all the files in the /usr/bin directory, pipes that output into grep, which filters by only showing lines that have a, and then pipe that output into more. Support an arbitrary number of commands (up to some hard-coded maximum, e.g., 100). Use anonymous pipes, and dup2, to re-write a process' stdin and stdout entry to instead send data to and take from your pipe. Hint: the file table entries for standard in and out have fixed, standardized numbers, available in system constant somewhere. See if you can find it. Close unused pipe ends in the child / parent (e.g., the child may use the write end of a pipe, so the parent should close that after forking). Make sure that the parent blocks until all children are done

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!