Sasha Shepeliev
Zaproponuj Sasha pracę nad swoim kolejnym zleceniem.
Ranking
Umiejętności i kwalifikacje
Programowanie
Portfolio
-
minit
C i C++Minit — to minimalistyczny, ultralekki i odporny na awarie inicjalizator systemu (PID 1) oraz nadzorca procesów dla Linux, napisany w czystym C. To kompaktowa i szybka alternatywa dla systemd (lub nowoczesna zamiana dla s6/runit), zaprojektowana specjalnie dla systemów wbudowanych (embedded), kontenerów, IoT oraz niestandardowych dystrybucji. Główne możliwości w skrócie: Zarządzanie usługami i zależnościami: Parsuje proste tekstowe pliki .conf. Buduje graf zależności i uruchamia usługi równolegle, co zapewnia natychmiastowe ładowanie systemu. Wspiera poziomy ładowania analogicznie do systemd (cele / targets, na przykład basic.target, multi-user.target). Zaawansowany nadzorca procesów: Ochrona przed awariami: ma wbudowane mechanizmy wykrywania awarii (Flap detection) oraz ograniczania pętli awarii (Crash-loop throttle, eksponencjalne opóźnienie ponownego uruchomienia z jitterem), aby usługi, które cyklicznie się psują, nie przeciążały procesora. Model Circuit Breaker: jeśli usługa nieustannie się psuje, minit tymczasowo ją izoluje (jak bezpiecznik). Kontrole zdrowia: samodzielnie sprawdza żywotność procesów przez gniazda Unix lub niestandardowe polecenia. Jeśli proces zawiesza się — ponownie go uruchamia. Niskopoziomowa integracja bez zewnętrznych zależności: logind-shim: wbudowany minimalny odpowiednik systemd-logind. Działa przez D-Bus, umożliwiając uruchamianie menedżerów wyświetlania (GDM, SDDM) oraz zarządzanie sesjami użytkowników. Zarządzanie zasilaniem: poprawnie obsługuje zamykanie pokrywy laptopa oraz przejście w stan uśpienia (suspend/hibernate), uwzględniając opóźnienia od usług (na przykład daje NetworkManager czas na poprawne zakończenie sesji). Wczesny D-Bus: sam podnosi systemową szynę D-Bus podczas ładowania, unikając warunków wyścigu. Bezpieczeństwo i ograniczenia zasobów: Potrafi na bieżąco stosować filtry seccomp (tekstowe listy dozwolone lub binarny format BPF) oraz zrzucać możliwości Linuxa w celu izolacji procesów. Rozdziela usługi po cgroups (v2), pozwalając na sztywne ograniczenie CPU i pamięci bezpośrednio z konfiguracji. Efektywna architektura: Żadne marnotrawne cykle sondowania (busy-polling). Reakcja na zakończenie procesów oraz łagodne zamykanie realizowane są przez nieblokujące epoll i sigtimedwait. Zarządzany przez konsolowe narzędzie minit-ctl, które potrafi pokazywać drzewo zależności, tail-logi oraz zwracać status w formacie JSON.