6 comments

  • antomal 27 minutes ago

    I'm seeing some great technical questions about process lifecycles and Rust invariants. To clarify: regarding job control, when a process is recalled, it currently rejoins the foreground process group. I'm leveraging Rust's ownership model to ensure FDs are closed properly, but I'm still refining the signal semantics for SIGTSTP.

  • antomal 2 hours ago

    Thanks for the question! For Job Control, I’m currently implementing a custom management system to handle foreground and background process groups.

    Regarding signal propagation, I’m leaning towards a direct integration with libc to maintain that 'native' feel you mentioned, specifically for managing tcsetpgrp and ensuring the terminal is correctly assigned to the active process group.

    One feature I’m particularly proud of is what I call 'Pinning': it allows the user to pin a specific process and recall it instantly. This is part of my effort to make GRSH feel more interactive than a standard POSIX shell.

    As for async signal handling, I'm currently refining the core loop to ensure that complex pipelines don't leave zombie processes or mismanaged groups on the FreeBSD kernel. It's a work in progress, and feedback on the current implementation in the repo is more than welcome!

  • antomal 2 hours ago

    I've been working on GRSH because I wanted to explore building core system utilities using Rust's memory safety guarantees, with a specific focus on the FreeBSD ecosystem.

    While the shell is still in its early stages, my goal is to create a lightweight, fast, and secure alternative to traditional shells that feels at home on both FreeBSD and macOS.

    Key features I'm focusing on:

    Zero-cost abstractions for process management.

    Native performance on BSD-based systems.

    Minimalist design without the bloat of modern 'all-in-one' shells.

    I'm also developing DIR (a visual disk analyzer for FreeBSD) as part of this 'Grim Reaper' toolset.

    I would love to hear your feedback on the implementation or any specific features you'd like to see in a Rust-based shell for Unix systems.

    Source Code: https://github.com/antoniomalara301289/grsh Project Page: https://grimreaper.icu

  • utentemedio 2 hours ago

    Great to see more Rust-based tooling coming to FreeBSD. Regarding the architecture, how are you handling Job Control and signal propagation? Specifically, are you using a custom wrapper for libc to manage tcsetpgrp and foreground process groups, or are you leveraging a specific Rust crate for asynchronous signal handling? I’m curious to see how GRSH maintains the 'native' feel when managing complex pipelines on the FreeBSD kernel.

  • fabiominnelli an hour ago

    Finalmente la prima Shell Italiana.