the tangent bundle
At each point p of a smooth manifold M there is a tangent space T_p M — the linear space of velocity vectors of curves through p, your best linear model of M near p. The tangent bundle TM is what you get by collecting all of these, one for every point, and assembling them into a single new smooth manifold. It packages 'a direction at every point' into one object you can do geometry on.
As a set, TM is the disjoint union over all p in M of the tangent spaces T_p M; a point of TM is a pair (p, v) with v a tangent vector at p. The projection pi: TM -> M sends (p, v) to p, and each fiber pi^{-1}(p) is the n-dimensional vector space T_p M. The smooth structure on TM comes from the charts of M: a chart (U, x^1, ..., x^n) gives every nearby tangent vector the coordinates (x^1, ..., x^n, v^1, ..., v^n) where v = sum of v^i times the partial-with-respect-to-x^i. Transition maps multiply the velocity components by the Jacobian of the base transition, which is smooth — so TM is a smooth manifold of dimension 2n, and in fact a vector bundle of rank n over M.
The point of the construction is that vector fields become honest geometric objects: a vector field is a smooth section of TM, that is, a smooth map X: M -> TM with pi composed with X the identity, choosing one tangent vector at each point in a smoothly varying way. Whether TM is trivial — diffeomorphic as a bundle to M times R^n — is a deep question: it is trivial for the circle and for any Lie group, but the hairy-ball theorem says TS^2 is not trivial because S^2 admits no nowhere-zero vector field. So the global twisting of TM already encodes real topology of M.
The tangent bundle of the circle is trivial: TS^1 is diffeomorphic to S^1 times R, because the unit tangent field 'go counterclockwise' is smooth and never vanishes, giving a global frame. By contrast TS^2 admits no such global nonzero section.
TS^1 is trivial; TS^2 is not (hairy-ball theorem).
TM is canonically defined; T*M is its dual but the identification of TM with T*M is NOT canonical — it requires extra data (a metric). Keep vectors and covectors separate until you have chosen such data.