fix(0shell): remove mandatory use of low-level system calls and make it bonus

This commit is contained in:
miguel 2024-06-05 10:53:18 +01:00 committed by MSilva95
parent 61b2670c5a
commit 9e308f27e2
2 changed files with 11 additions and 3 deletions

View File

@ -28,7 +28,7 @@ For this project you will only have to create a simple `Unix shell` where you ca
- `mkdir`
- `exit`
> The commands need to be implemented from scratch, without calling any external binaries and exclusively using low-level system calls directly, without relying on built-in functions or libraries that abstract file operations?
> The commands need to be implemented from scratch, without calling any external binaries.
- You must manage the program interruption `Ctrl + D`.
- The project has to be written in a compiled language (like C, Rust, Go or other), **interpreted languages (like Perl and others) are not allowed**.
@ -48,6 +48,10 @@ This project will help you learn about:
You can also do more bonus features like:
- Implement the commands exclusively using `low-level system calls` avoiding built-in functions or libraries that abstract file operations.
- Avoid High-Level Abstractions: Instead of using functions like the Go `os.Open, os.Remove, and io.Copy`, you would use system calls directly through the `syscall` package using `syscall.Open, syscall.Close, syscall.Read, syscall.Write, syscall.Unlink`.
- Manage the interruption `Ctrl + C`
- Auto complete when you are writing
- Add piping

View File

@ -2,7 +2,9 @@
###### Was the project written in a compiled programming language?
###### Are the commands mentioned in the subject implemented from scratch, without calling any external binaries and exclusively using low-level system calls directly, without relying on built-in functions or libraries that abstract file operations?
###### Are the commands mentioned in the subject implemented from scratch, without calling any external binaries?
The use of execution commands (such as exec, system, os/exec, or similar functions) to call **external binaries** or utilities is strictly forbidden, as the project requires implementing all functionality from scratch without relying on external programs.
#### Functional
@ -76,7 +78,9 @@
#### Bonus
###### +Did the student added auto complete when you are writting the commands?
###### + Did the student implemented the commands exclusively using `low-level system calls` avoiding built-in functions or libraries that abstract file operations?
###### +Did the student added auto complete when you are writing the commands?
###### +Did the student added piping?