Sentences (a) and (b) may mean the same, depending on exactly what you mean by them. But they do not have the same meaning for me.
up to 9000 years ago. To me, this describes the last 9000 years travelling backwards from today. A society living 1000 years ago would be in this set.
before 9000 years ago. To me, this describes the period starting 9,000 ago and travelling even further back in time. A society living 15,000 years ago would be in this set. (If it is luchtime and I refer to an event that happened "before breakfast", the timeline is: event, then breakfast, then lunchtime.)
until 9000 years ago. To me, this refers to the same period as "before 9000 years ago." But there is an implied difference. Until suggests that the society existed before 9000 years ago, but it came to an end at the 9000 year point. Before focusses just on the period before, and implies nothing about the period after.
If I wanted to make the period of the book completely clear, I would say
either of these expressions:
"This book is about societies that existed up until 9000 years ago." - this would cover the period before the 9000 year point, but not after it.
"This book is about societies that existed more than (less than) 9000 years ago." This time the major focus is on the described period, but doesn't completely exclude the other period.
I'm adding this note as a response to the questions in the comments.
The English language question is about describing correctly certain periods of time. But I think it's more confusing than it needed to be because of the examples used. So here's another example which might be simpler: A book about architecture before or after 1900 AD.
This book is about architecture up to 1900 AD. In this book I would expect to read about buildings created before 1900 AD. Some of them may still exist today; others might not exist. But they would be relevant to the theme of the book because their creation took place within the period of the book. But I would not expect to read about a building designed in 1910 AD.
Note that this is the opposite of "up to 9000 years ago" (see above). That's because the meaning of "up to" depends on context. With "up to 1900 AD" we are moving forward until we reach a fixed year. With "up to 9000 years ago" the fixed point is today and we are stretching the period out backwards.
This book is about architecture more than 120 years ago. 120 years takes us back to 1900 AD (approximately). So this sentence means the same as "architecture up to 1900 AD."
This book is about architecture since (or after) 1900 AD.
This book is about architecture within the last 120 years.
Both of these examples mean the same, and are the opposite of the first two.