From 9e308f27e210eeb23984abd088baa664dec986f3 Mon Sep 17 00:00:00 2001 From: miguel Date: Wed, 5 Jun 2024 10:53:18 +0100 Subject: [PATCH] fix(0shell): remove mandatory use of low-level system calls and make it bonus --- subjects/0-shell/README.md | 6 +++++- subjects/0-shell/audit/README.md | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/subjects/0-shell/README.md b/subjects/0-shell/README.md index d8b4790a8..2ddc96d7e 100644 --- a/subjects/0-shell/README.md +++ b/subjects/0-shell/README.md @@ -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 diff --git a/subjects/0-shell/audit/README.md b/subjects/0-shell/audit/README.md index e39026026..0a15cbb72 100644 --- a/subjects/0-shell/audit/README.md +++ b/subjects/0-shell/audit/README.md @@ -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?