在远古的黄河流域,有许多原始氏族,为了表示区别,它们各有各的称号,后来这些称号就成了每个氏族子孙的姓氏,例如,最早在黄河中游今河南地区有一个名叫公孙的部落,公孙部落出了个有名的部落联盟领袖,这就是黄帝,于是黄帝及其同族的兄弟都以“公孙”为姓。
黄帝有二十五个儿子,其后裔分为二十五宗,但其中有十二宗特别强大,形成了十二个独立的氏族部落,它们的名字分别为姬、酉、祁、己、滕、葴、任、荀、僖、姞、儇、衣。后来这些部落的子孙后代就分别以上述部落名字为姓,所以《史记·五帝本纪》上说:黄帝的子孙有十二个姓。其中的姬姓氏族后来成了周朝的开创者,所以周朝分封的诸侯大都姓姬。
上古黄河南面还有一个强大的氏族部落,因其始祖名叫姜嫄,所以叫“姜”部落。后来该部落出了名叫炎帝的领袖,建立广大的部落联盟,其势力和黄帝的部落联盟不相上下。其子孙后代都以部落名称为姓,即姓姜,最有名的是姜太公(姜尚)。由于姜太公帮助周武王建立了周朝,所以西周初年,姬姓和姜姓是两大贵族姓氏,互相通婚,子孙分封各地,姬姓子孙分封的国家有晋、燕、鲁、陈、谢、邓、蒋、邢、茅、凡、胙、祭等诸侯国,姜姓子孙分封的国家有齐、许、申、吕等诸侯国。后来这些诸侯国的子孙都放弃了原来的姬姓或姜姓,改为以封国的国名为姓,这就是今天的鲁、谢、陈、邓、蒋、邢、茅以及许、申、吕等姓的起源。
上古长江流域有一个祝融部落,据说祝融是黄帝的玄孙,生时担任火正,为掌握火的官员。他死后为火神,受到后世敬奉,子孙分为八个氏族部落:己、黄、彭、秃、妘、曹、斟、芈,并且以这些部落名为姓,其中的芈姓是楚国君主的祖先。所以楚国国君都姓芈。
至于司马氏,是以官名作为姓氏,司马氏的祖先作过司马,也就是掌管军事的官。
但司马迁在《太史公自序》中述说自己的家世时,从黑帝颛顼说起,颛顼是黄帝的孙子,昌意的儿子,建国于高阳,在位七十八年。司马迁说:“在古代,颛顼帝曾命令南方首长名叫‘重’的专管天上的事务,北方首长名叫‘黎’的专管地下的事务。”这里提到的“重”和“黎”,是两兄弟,就是司马氏最早的始祖,司马氏的家世都是从“重”和“黎”两人传下来的。
这个名叫“重”的官员的官衔为南正,所谓管理天上的事务,就是负责观察天上的星象、根据天上的星辰运转制定历法,还要管理与诸神、鬼怪以及各种超自然力量沟通的事情,这就是说,“重”是个大巫师。而那个名叫“黎”的官员的官衔为北正(又称火正),即负责农事的官员,但不负责与诸神、鬼怪以及各种超自然力量沟通。
这是一次重大的改革,原先每一个官员都是巫师,都可以和神沟通,都可以代表神意说话,发布神的旨意;甚至每个凡人都可和神通话,解释神意。这种神人不分的现象造成很大的混乱,如果每个人都是神,那么,神就不尊贵了,神意就不值得重视了。现在规定唯有担任南正的“重”可以观察天上的星象、制定和修改历法,管理与诸神、鬼怪以及超自然力量沟通的事情,其他的官员都只能管理地上的事务,如种植、收获、作战等等。从此以后,观察星象、制定历法,管理与诸神鬼怪沟通的事情的官员就称作“天官”,因为他管理的是天上的事务;而其他官员则称“地官”,因为他们管理范围仅限于地上的民事。这次改革有一个特定的名称:“绝天地通”,意思是说,断绝了普通人与天神的来往,唯有“天官”可以通天。据传说首先主张进行这项改革的是颛顼。
“天官”是无比高贵的大巫师,可以通神,又负责观星象,定历法,后两项工作后来是史官的职责,所以后世的史官都称“天官”,这也是《史记·天官书》的由来。
做官也有做官的难处。不久,四凶族(危害其他氏族的邪恶氏族)之一的共工氏又作乱了,“重”的氏族和“黎”的氏族对共工氏太纵容姑息,因此,黄帝的曾孙、五帝之一帝喾整治官员队伍,将“重”和“黎”罢了官(一说处死),派专门管理火的吴回接替他们。
“重”和“黎”被罢官(或处死)之后,氏族衰落了一个时期。司马迁写道:“在唐尧虞舜的时代,‘重’‘黎’的后嗣仍旧掌管这一方面的职事,直到夏商二代,‘重黎氏’掌管天地诸事,做得很好。”这里说了两个情况:一是“重”的氏族和“黎”的氏族已经合并为一个部落,称为重黎氏部落;二是唐部落的尧帝和虞部落的舜帝先后担任部落联盟首领时,重新起用“重黎氏”部落的后裔,担任观星象和负责农业的官员。这意味着“重黎氏”部落由衰落转向振兴,并且一直到大禹建立的夏朝和汤王建立的商朝,“重黎氏”部落的后裔都世袭这方面的官职。
到了殷末,殷纣王荒淫无道,不听劝谏。担任天官的“重黎氏”部落后裔观察星象,认为天命在周,遂弃暗投明,归属了周武王。武王九年,在梦津大阅兵,参加盟会的有八百诸侯。大家都催促武王发兵,天官夜观星象,知道纣王气数未尽,劝说武王耐心等待时机。其实他认为此时武王的准备工作还不充分,所以借星象的名义,进行劝止。武王听了天官的话,到十一年才兴师伐讨。结果势如破竹,一举成功。殷周之际,天官可是立了大功。
司马迁继续写道:“周朝时候,程伯休甫就是‘重黎氏’的后裔。”“重黎氏”的后人中忽然冒出了一个叫“程伯休甫”的人,实在有点令人摸不着头脑。据后人分析,程是邑名,程邑在咸阳(今属陕西省)东面,伯是伯爵,程伯就是封在程邑的伯爵,休甫是这个人的字。由此可见,这个名字叫休甫的人,因有军功,被封为伯爵,封地在程邑。可程伯休甫当时担任什么官职呢?司马迁继续说:“当周宣王时,失其守而为司马氏。”其意思是说,这个程伯休甫是周宣王(公元前827年—前782年在位)时的人,不再担任天官,改任司马,掌管军事和军需,并且以司马作为姓氏。因此,这个程伯休甫是重黎氏的后人中第一个以司马作为姓氏的人,在姓氏史上,司马氏的受姓始祖就是程伯休甫。
司马迁又写道:“从此司马氏便世代掌管周史。”由此可见,程伯休甫的后代并没有改行,还是继承老祖先的天官旧业,担任周朝的史官,因为史官是天官演变来的,这时文字系统已经十分发达,担任天官的人不但要观察天象,而且要将国家大事用文字记录下来,其工作已等于后世的史官,所以司马迁说是“世典周史”。