Middle English and Anglo-French perfective prefix, corresponding to Old French por-, pur- (Modern French pour), from Vulgar Latin *por-, a variant of Latin pro "before, for" (see pro-). This is the earliest form of the prefix in English, and it is retained in some words, but in others it has been corrected to Latinate pro-.
word-forming element used in English from c. 1300 and meaning "against, in opposition; in return; corresponding," from Anglo-French countre-, French contre-, from Latin contra "opposite, contrary to, against, in return," also used as a prefix (see contra (prep., adv.)). A doublet of contra-. In some cases it probably represents a purely English use of counter (adv.).
a prefix used freely in English and meaning "not, lack of," or "sham," giving a negative sense to any word, 14c., from Anglo-French noun-, from Old French non-, from Latin non "not, by no means, not at all, not a," from Old Latin noenum "not one" (*ne oinom, from PIE root *ne- "not" + PIE root *oi-no- "one, unique"). In some cases perhaps from Middle English non "not" (adj.), from Old English nan (see not). "It differs from un- in that it denotes mere negation or absence of the thing or quality, while un- often denotes the opposite of the thing or quality" [Century Dictionary].
The extension of the sense to corresponding relationships of descent, "a generation younger than" (grandson, granddaughter) is from Elizabethan times. The inherited PIE root, *nepot- "grandchild" (see nephew) has shifted to "nephew; niece" in English and other languages (Spanish nieto, nieta). Old English used suna sunu ("son's son"), dohtor sunu ("son's daughter").