Ce ''s'' vient de la forme latine de ces noms propres.
Quelle que soit l'origine lointaine de chacun de ces noms, le grec, l'allemand ou autre, ils ont tous étés latinisés à un certain moment. Gilles était Aegidius, Jacques était Jacobus ou Jaconus, Georges était Georgius, Charles était Carolus.
En
français, on a gardé le ''s'' à la fin de la forme latine. Quand il s'agit des prénoms, les auteurs ont respecté la règle du ''s'' à la fin.
Par contre, quand on utilise ces mots comme
noms de famille, les façons de l'écrire varient.