Linq is the base language extension which lets you query data collections using sql like syntax. The big advantage is that it is written next to your code in the Visual Studio environment so the concepts of sql data access have been promoted to first level language constructs. This means you get all the intellisense and other cool advantages of working in VS.
So like I said Linq is the basic technology. You can use this to query virtually anything. In plain vanilla form you can just access data like arrays:
http://weblogs.asp.net/scottgu/archive/2006/05/14/Using-LINQ-with-ASP.NET-_2800_Part-1_2900_.aspx
DLinq is what linq to sql was called when it was in development:
http://weblogs.asp.net/aaguiar/archive/2006/06/12/DLinQ-_3D00_-LinQ-for-SQL.aspx
Linq to sql is a way of mapping your database to a data context and then you can use linq to access your tables in your database and make changes. It is a pretty cool technology but unfortunately it is out of date now and is being "discontinued" by Microsoft in favour of Entity Framework (which is Linq to Entities).
When I say discontinued what I mean is this: they have said they will do more features after asp.net 4.0 but they are going to put main development emphasis on Entity Framework and lots of microsoft apps are going to be converted to use Entity Framework.
Xlink as you might have guessed by now is a way of querying xml files with linq.
Here is a tutorial introducing it:
http://www.devx.com/dotnet/Article/31838 Medevendra, if this helps please login to Mark As Answer. | Alert Moderator