What are the differences between vector, vector_block and vector_nest

I’ve noticed that there are three types of vectors and matrices. What are the differences between them ? And are there any detailed examples about how to use these functions to assemble vectors and matrices? I want to use the PETSC modules, such as, KSP, SNES and TS directly, but I don’t know how to pass the Fenics vector and matrix to the functions of these modules.