姓是从居住的村落,或者所属的部族名称而来。氏是从君主所封的地、所赐的爵位、所任的官职,或者死后按照功绩,追加的称号而来。所以贵族有姓、有名、也有氏,而平民有姓、有名,没有氏。
据说在姓氏出现之前,人们是用图腾代替的。德国的东方学家马克斯·缪勒在《献给神话学》中说:一个图腾,开始是一个氏族图腾的标记,而后是部族的名字,而后是部族祖先的名字。在古代姓产生后世代相传,一般不会更改。而氏会随着封邑、官职的改变而改变。
古代的姓与氏,还可以区分是否能结婚。一般来说,古代的同“氏”的男女可以结婚,而同“姓”的男女却不可以结婚。姓氏相别的制度一直沿用到战国后期,中国的姓与氏才合而为一,人们认为姓氏没有贵贱之分,因此平民也从无姓到有姓。