Learn the theory
Learn about scalability from a theoretical point of view. What are the methods, techniques, trade-off, architecture, etc. You should then have a good view of the concepts such as transaction, redundancy, concurrency, multi-threading, caching, garbage collection, fault-tolerance, recovery, asynchrony, load-balancing, partitionning, distributed hash tables, programming model (actors, object-oriented, erlang, clojure, etc.), distributed algorithm ( 2 phase commit, group communication, consensus, etc.)
Learn how existing system works
Theory in this area can not be applied as-is. You always have trade-off. Learn how real system work. Look at white papers in the field of relational database systems or clustering in popular app. server, architecture of popular web sites (eBay, Amazon, FriendFeeds, etc.), Google platform documents (GFS, Chubby BigTable, etc.), Cloud-related architectures and maybe NoSQL projects. Subscribe to a few website or blogs of people in this area (Rick Ho is one I like but there are others).
Practice
The best is to have a real project where you have real performance problem to improve. Elaborate a few architectures on how you could improve that. Otherwise, create your own problem, say, with a little web site which provide a basic service (e.g. store to do list) that you run on Amazon EC2 and see if it's scale. I don't know about OS project to join.
IMHO, architecting truely scalable system goes from the requirements (know what need to be fast or not) down to the hardware. Inbetween there is the network, the OS, the middleware, and the application architecture which will need to be considered.