a) By the assumption $f'(x)=f(x)$, we can conclude that $f$ is infinitely differentiable with
$$f^{(n)}(x)=f(x),\quad\forall x\in\mathbb{R}, n\in\mathbb{N}.$$
For $x>0$, and $k\in\mathbb{N}$, by Taylor's theorem there exists $\xi_k\in(0,x)$ such that
$$f(x)=\sum_{j=0}^k\frac{f^{(j)}(0)}{j!}x^j+\frac{f^{(k+1)}(\xi_k)}{(k+1)!}x^{k+1}=\frac{f(\xi_k)}{(k+1)!}x^{k+1}.$$
Set $M_x=\max_{t\in[0,x]}|f(t)|$, we have
$$|f(x)|\leq \frac{M_x}{(k+1)!}x^{k+1}\to 0,\text{ as }k\to\infty,$$
Therefore $f(x)=0$. Similarly we have $f(x)=0$ when $x<0$. Therefore $f(x)=0$ for all $x\in\mathbb{R}$.
b) From the proof of a), one can see that if $f$ vanishes at some point, then $f$ must be identically $0$ on $\mathbb{R}$, and in this case clearly
$$0=f(x)=f(0)e^x.$$
Now assume $f$ never vanishes, then by $f'(x)=f(x)$ we have
$$\frac{f'(x)}{f(x)}=1,$$
taking anti-derivative on both sides we have
$$\log|f(x)|=x+C,$$
where $C$ is some constant. This means
$$|f(x)|=e^Ce^x,\quad\Rightarrow\quad f(x)=\pm e^Ce^x.$$
Plug in $x=0$, we have
$$f(0)=\pm e^C.$$
Hence
$$f(x)=f(0)e^x.$$
An alternative way to do b): As Winther suggested, $f'(x)=f(x)$ is equivalent to
$$f'(x)-f(x)=0.$$
Therefore we have
$$0=e^{-x}f'(x)-e^{-x}f(x)=(e^{-x}f(x))'.$$
It follows that
$$e^{-x}f(x)=C\quad \Rightarrow\quad f(x)=Ce^x$$
for some constant $C$. Take $x=0$ we get $C=f(0)$.