Chciałbym mieć mały program do "ładowania aplikacji", który odbiera inne pliki aplikacji binarnych przez TCP z zewnętrznego serwera i uruchamia je.Wykonać proces z pamięci w ramach innego procesu?
Mogłem to zrobić, zapisując przesłany plik na dysk twardy i używając wywołania system(), aby go uruchomić. Zastanawiam się jednak, czy możliwe byłoby uruchomienie nowej aplikacji z pamięci bez dotykania dysku twardego.
Stan aplikacji ładującej nie ma znaczenia po załadowaniu nowej aplikacji. Wolę trzymać się C, ale rozwiązania C++ są również mile widziane. Chciałbym również trzymać się standardowych funkcji Linux C i nie używać zewnętrznych bibliotek, jeśli to możliwe.
Tak, jest to możliwe, ale jest nieco skomplikowane. Musisz emulować system operacyjny i mapować plik binarny do pamięci, itp. –
Możesz zapisać go do pliku na ramdysku – TJD
Mam również tendencję do myślenia, że * dowolny * poziom bezpieczeństwa systemu operacyjnego na umiarkowanie niedawnym CPU będzie robił najlepiej, aby to się nie stało. Z pewnością jest to wykonalne, ale byłby bardzo trudny w użyciu na dystrybucjach w świecie rzeczywistym (mam nadzieję). – BRFennPocock