It’s not written out explicitly in this format in the Emacs manual, but you can get this information just by reading chapter 38.2 Interactive Subshell and chapter 38.8 Emacs Terminal Emulator of the Emacs manual, and chapter 1.1 What is Eshell? of the Eshell manual.
Specifically, the first paragraph or two of each of them should be enough for you to understand this:
38.2 Interactive Subshell ========================= To run a subshell interactively, type ‘M-x shell’. This creates (or reuses) a buffer named ‘*shell*’, and runs a shell subprocess with input coming from and output going to that buffer.
38.8 Emacs Terminal Emulator ============================ To run a subshell in a text terminal emulator, use ‘M-x term’. This creates (or reuses) a buffer named ‘*terminal*’, and runs a subshell with input coming from your keyboard, and output going to that buffer. … Some programs (such as Emacs itself) need to control the appearance of the terminal screen in detail. They do this by emitting special control codes. Term mode recognizes and handles ANSI-standard VT100-style escape sequences, which are accepted by most modern terminals, including ‘xterm’. (Hence, you can actually run Emacs inside an Emacs Term window.)
1.1 What is Eshell? =================== Eshell is a “command shell” written in Emacs Lisp. Everything it does, it uses Emacs’s facilities to do. This means that Eshell is as portable as Emacs itself. It also means that cooperation with Lisp code is natural and seamless.
But drew is correct; StackExchange is not the right place for long–form analysis or explanations of broad questions. Just read the manuals.