Najnowsze smartfony z androidem to tak naprawdę procesory arm, linux i virtualna maszyna javy z "nakładką" androida która robi za GUI dla systemu operacyjnego.
Kernel/linux jest napisany w C. Jeśli chcesz napisać własny system (zakładając, że użyjesz gotowego kernela linux) to tak naprawdę musisz napisać wszystko co komunikuje się z ekranem i peryferiami telefonu czyli obsługa panelu dotykowego, ekranu, dźwięku, mikrofonu kamerki itd.
To jest duużo trudniejsze niż na to wygląda. Załóżmy, że jesteś na etapie pisania driverów do kamerki... Po pierwsze sama dokumentacja jest problemem bo trzeba ją umieć czytać i przerobić na kod biblioteki. Po drugie taki driver będzie współpracował tylko z tym jednym modelem kamerki lub tylko z tym jednym producentem kamerek.
To jest niesamowicie duży nakład pracy. Nie pomylę się mówiąc, że napisanie systemu dorównującego wydajnością i funkcjonalnością androidowi zajęło by Ci całe życie, a pod jego koniec i tak nie stworzyłbyś 50% tego co ma android.
Sorry za negowanie pomysłu, ale taka jest prawda.
A teraz trochę o pytaniach...
2. Programy komputerowe? Masz na myśli IDE, kompilator i programator? IDE wybierasz tak naprawdę jakie tylko chcesz, kompilator bierzesz ze strony producenta procesora czyli w tym przypadku GCC dla ARM a programator możesz zrobić sam albo użyć wygodnej opcji i kupić od producenta procesora.
3. Wgrywanie to podpięcie zasilania dla płyty głównej z prockiem, połączenie jej z PC przez USB i wysłanie komendy PC'towi żeby przesłał wsad (skompilowany program) przez kabel do procka.
4. Tak, możesz wrzucić przez USB. ARM mają sprzętową obsługę protokołu USB i wspierają wgrywanie wsadu z jego użyciem. Problem w tym, że takiemu procesorowi należy dostarczyć odpowiednich warunków żeby to działało, czyli potrzebna Ci płyta główna która rozprowadzi zasilanie dla procesora.
Jeśli chcesz choć trochę zbliżyć się do tego bardzo ambitnego pomysłu możesz spróbować z zestawem uruchomieniowym
https://sklep.atnel.pl/pl/p/Zestaw-uruchomieniowy-AVR-LIBRA/2 - taka fajna płytka do której można podpiąć wiele urządzeń jak na przykład...
https://sklep.atnel.pl/pl/p/Wyswietlacz-OLED/100 - taki fajny wyświetlacz
https://sklep.atnel.pl/pl/p/Wyswietlacz-TFT-LCD-kolor-4%2C3/73 albo coś większego ;)
W tym przypadku używałbyś 8 bitowych procesorów AVR a jeśli chcesz 32 bitowe ARM (czyli takie jak na telefonach) możesz rzucić się na to
http://www.cubietruck.com/products/cubieboard2-allwinner-a20-arm-cortex-a7-dual-core-development-board. Wgrywasz do niego linuxa, podpinasz ekran (napewno są już jakieś gotowe biblioteki) i możesz zacząć pisać swój "system operacyjny" czyli jakiś system okienek, menadżer zadań czy coś innego. Ale jak już mówiłem nawet ciężka praca nie zbliży cię za bardzo do tego co mamy teraz dostępne na wyciągnięcie telefonu.