We have a single eigenvalue of $\lambda_1 = 1$ and a triple eigenvalue of $\lambda_{2,3,4} = 0$.
For $\lambda=0$, we need to find three linearly independent eigenvectors and can just use the null space of $A$ for this. We have:
$$NS(A) = NS \left(\begin{bmatrix} 1 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0\end{bmatrix}\right)$$
This produces $v_{2,3,4} = (0,0,0,1), (0,0,1,0), (0,1,0,0)$ as three linearly independent eigenvectors, thus this matrix is diagonalizable and we can write the Jordan block using the eigenvalues down the main diagonal as:
$$J = \begin{bmatrix} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1\end{bmatrix}$$
Since the eigenspace corresponding to $\lambda=0$ is 2-dimensional, there are 2 Jordan blocks for $\lambda=0$; and since this eigenvalue has algebraic multiplicity 4, the two blocks have to have sizes adding to 4.
Therefore there is a $3\times3$ block and a $1\times1$ block, or there are two $2\times2$ blocks.
In the first case, we could find a string $z_i\longrightarrow y_i\longrightarrow x_i$ for one of the eigenvectors, where
the arrow indicates the operation of applying $A-\lambda I$ to the vector;
so since $\lambda=0$, this would mean that $A^2(z_i)=x_i$, and the author claims that this system has no solution (for $i=2$ or $i=3$).
Therefore there must be two $2\times2$ blocks, and so we can find strings
$y_i\longrightarrow x_i$ for $i=2$ and $i=3$ by solving $A y_i=(A-\lambda I)y_i=x_i$ for $y_i$.
The columns of $X$ consist of the vectors in these strings and the eigenvector chosen for $\lambda=1$.
Best Answer
The characteristic polynomial of a matrix in JNF factors into linear factors (as it does for any triangular matrix). Conversely, (up to multiplication by a constant) every polynomial is the characteristic polynomial of some matrix.
It thus follows that you need to be willing to work over a field in which every polynomial factors into linear factors, that is over an algebraically closed field.
Concretely, if you insist on working over the reals, the answer is "no." If you allow passage to the complex numbers the answer is "yes."
None. These are two names for the same notion.
For example: