Skip to content

Commit

Permalink
fix(0shell): remove mandatory use of low-level system calls and make …
Browse files Browse the repository at this point in the history
…it bonus
  • Loading branch information
MSilva95 committed Jun 5, 2024
1 parent 61b2670 commit 9e308f2
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
6 changes: 5 additions & 1 deletion subjects/0-shell/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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**.
Expand All @@ -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
Expand Down
8 changes: 6 additions & 2 deletions subjects/0-shell/audit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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?

Expand Down

0 comments on commit 9e308f2

Please sign in to comment.