Czy istnieją jakieś dobre (wstępne) samouczki dotyczące dodawania wywołań systemowych do FreeBSD za pośrednictwem modułów ładowalnych jądra? W szczególności wymagana forma metod, uzyskanie informacji z procesów, itp.Tworzenie nowych wywołań systemowych za pośrednictwem KLD w FreeBSD
Odpowiedz
Jestem naprawdę szczęśliwy, widząc, że twój profesor daje ci takie praktyczne zadania. Chciałbym mieć takich prof.
W każdym razie chodzi o to, że gdy pracujesz w domenie jądra, możesz ledwie znaleźć jakiekolwiek zasoby. Osoby pracujące w domenie jądra nie dokumentują ani nie piszą samouczków. Tak naprawdę trudno jest znaleźć jakiekolwiek dokumenty "Level Entry". Ponadto, nawet jeśli znajdziesz taki samouczek, rzeczy w jądrze ciągle się zmieniają, a dokument nie będzie aktualizowany. Kiedy zaczynałem, musiałem się uczyć, czytając kod jądra.
Inną ważną rzeczą jest, że Linux jest bardziej udokumentowany niż jakikolwiek UNIX. Czasami możesz czytać zawartość Linuksa i przekazywać tę wiedzę do systemu UNIX. Wystarczy z narzekaniem. Oto zasoby, które mogą ci pomóc.
BSD UNIX:
- Dynamic Kernel Linker (KLD) Facility Programming Tutorial ma "KLD syscall implementacji szkielet"
- Designing BSD Rootkits: An Introduction to Kernel Hacking To uczy innego podejścia przy użyciu Runtime kernel patching (zazwyczaj trojany używać tego podejścia) załatać dyspozytora wywołań systemowych i stworzyć wywołanie systemowe.
Linux:
- Adding A System Call to Linux Kernel: krok po kroku tutorial
- Kernel command using Linux system calls: Poznaj interfejs wywołania systemu Linux (SCI), aby dowiedzieć się, jak dodać nowe wywołania systemowe (i alternatywy dla robi więc)
Dziękuję bardzo! To było bardzo pomocne. – dckrooney
@dcmoebius: Cieszę się, że ci pomogło. Jeśli nie masz problemu z udostępnieniem swojego kodu. Proponuję napisać samouczek/wpis na blogu dotyczący tego zadania. I podaj link tutaj. Pomoże to innym. – claws
To świetny pomysł. Zrobię to, ale niestety późniejsze zadania są oparte na tym. Tak więc poczekam kilka tygodni na wydanie "rozwiązania": P – dckrooney
- 1. Odtwarzanie dźwięku w C++ za pomocą rodzimych wywołań systemowych?
- 2. Wykonywanie wywołań systemowych mount z perl
- 3. Tworzenie aplikacji systemowych w Androidzie
- 4. Jak zabronić wywołań systemowych, GNU/Linux
- 5. debian strony man dla wywołań systemowych
- 6. Gdzie jest tabela wywołań systemowych w jądrze Linux?
- 7. Lista i dokumentacja wywołań systemowych dla jądra XNU w OSX
- 8. Implementacja wywołań systemowych/pułapek w jądrze Linuksa źródło
- 9. Tworzenie nowych dystrybucji w scipy
- 10. Tworzenie nowych baz danych z potencjalnie niebezpiecznych danych wejściowych za pośrednictwem PDO i mysql
- 11. Tworzenie nowych pól dla klienta
- 12. asymetryczne tworzenie klucza za pośrednictwem sieci
- 13. Tworzenie nowych config sails.js Środowisko
- 14. Tworzenie nowych plików automatycznie wykonywanych?
- 15. Tworzenie i rejestrowanie nowych ról w Symfony2
- 16. Tworzenie nowych plików za pomocą funkcji I/O Lua
- 17. Tworzenie funkcji z nieokreśloną liczbą kolejnych wywołań
- 18. Rails/Devise - Tworzenie nowych użytkowników poprzez żądanie json
- 19. Jakie są identyfikatory dźwięków systemowych dla nowych kliknięć klawiatury w systemie iOS 10?
- 20. Tworzenie obiektu nullable za pośrednictwem Activator.CreateInstance zwraca null
- 21. Tworzenie partii i archiwizacja aplikacji systemu iOS za pośrednictwem terminala
- 22. Tworzenie nowych metod wyniku akcji IHttpActionResult
- 23. tworzenie asynchronicznych wywołań formularza ogólnego obsługi (.ashx)
- 24. Unix i FreeBSD
- 25. FreeBSD Echoprint codegen
- 26. Tworzenie względnego dowiązania symbolicznego za pośrednictwem pakietu os
- 27. Tworzenie nowych projektów z istniejącego repozytorium "boilerplate"
- 28. W Perlu, w jaki sposób mogę zablokować wiele wywołań systemowych, aby zakończyć?
- 29. Elasticsearch replikacja innych danych systemowych?
- 30. Najlepszy sposób na tworzenie nowych elementów DOM
Muszę zauważyć, że nie jest to zadanie domowe, ale jest częścią większego zadania. :) – dckrooney
Jestem po prostu ciekawy. Co jest kompletnym zadaniem? – claws
Kompletne zadanie polega na utworzeniu oddzielnego algorytmu planowania procesów. – dckrooney