Linux, non saprei, ho linux ma lo uso su un pc dedicato alla cnc.
Tutti i pic si programmano incircuit, si usano 3 pin, oltre all'alimentazione, l'MCLR, che è il reset del pic che in genere si viene collegato tramite una resistenza al positivo, bene si collega il pin direttamente al programmatore.
Poi si usano i pin SDA e SCK che se non li utilizzi sul circuito ma li dedichi alla programmazione basta collegarli direttamente al programmatore.
Vi sono molti schemi di programmatori su internet, ma dopo averne provati alcuni, sebbene funzionanti, ho acquistato il programmatore PicKit2 (adesso è uscito il 3) che si trova a prezzi intorno ai 30 mi sembra, e che essendo della microchip è direttamente supportato da loro, quindi ogni pic nuovo che esce trovi il firmware di aggiornamento sul sito, inoltre funziona anche da analizzatore di stati logici (solo 3 canali), e da interfaccia per fare debug delle seriali.
Dimenticavo.... ecco il link che spiega i collegamenti
PIC Programming using ICSP
Link Microchip
PICkit 2 Development Programmer/Debugger
CORREZIONE: ho riguardato i prezzi, in Italia intorno ai 55, dalla Microchip UK qualcosa meno ma poca roba.