JMSA,
As already specified within the answeres you've received, different frameworks address different reality solutions.
Thus, I understand your curiosity. As said by Johnny D., Linq isn't a Framework, but a .net subset technology. You may work with it even though you're not using any of the other frameworks you mentionned.
OpenSource or Proprietary? As far as I'm concerned, I prefer OpenSource. There are so many people who contributes to these projects worldwide, that you may have the support required by whoever else uses the same OpenSource product as you do. Proprietary products cost! In anyway, the best way to go is to understand how a framework works so that you may use it at its fullest. Depending on your employer, some prefer OpenSource and others prefer proprietary.
What framework to choose? That is a good question for the skill you say you are.
In my humble point of view, I really like Microsoft Enterprise Library which is an OpenSource framework for whatever the project you're working on. For example, most of the programs you'll write will require a Database connection or so. Enterprise Library, through its DAAB (Data Access Application Block) provides a set of tools out of the box which will allow you to build multi-database systems without to change or recompile your code, but simply by configuration. Enterprise Library has been asked to Microsoft to maintain by such companies as IBM, HP and some other big companies that we might even ignore the existence. So, when it comes to connect to a database, I am using Enterrise Library. I even built my own Framework based on it to even ease the process of connecting to a database without having to worry about the syntax.
As for NHibernate, as you mentionned it, this is an integration framework to help you map your logical objects to your relational data tables within your database. Such frameworks as Entity Framework does the same. Except that Entity Framework, as far as I know, stands ONLY for SQL Server. If you're developping a system for an Oracle database, Entity Framework will not provide you the tools you need, unless I ignore a further support for a larger range of database engines. The advantage of NHibernate is that this is compatible with near any database engines in the world. I even know that NHibernate allows to write your code solely in object-oriented programming, and when it's time to persist your objects, NHibernate may create itself the database schema for your proper database engine without having to write a DSL (Data Structure Language) statement!
I talk for myself when I say I prefer using NHibernate along with Enterprise Library, both OpenSource products.
Hope this helps and light you up a little. But first, master the basics of Object-Oriented Programming, otherwise you'll have a hard-time trying to learn to use these tools.
Take care! :-)