Currently, I'm trying to read the storage component, since it's biased towards the lower layer, seems more difficult to understand and debug. All the materials I have found are the original papers on http://db.cs.berkeley.edu, I'm wondering how much it have been changed since Postgres. Could you please give me some suggestions? Thanks.
It has changed a lot since the Berkeley times. I doubt the original papers are of much use anymore in understanding modern PostgreSQL. You'll want to read src/backend/storage/smgr/README, although there isn't much there. Also make sure you read the "Database Physical Storage" section in the user manual, http://www.postgresql.org/docs/devel/static/storage.html.