Every class derived from MonoBehaviour?

Does every class in a Unity project have to derive from MonoBehaviour?
Of course, if it’s a script attached to a GameObject, it has, but what if it’s another class? Must it derived from MonoBehaviour too?

Finally, if I have a class derived from MonoBehaviour, not attached to a gameObject, but I initializate an instance, will it recieve Start, Update… calls too?

Not all classes have to derive from it at all - Unity’s great like that!

If you want to instantiate a class that uses MonoBehaviour, you should create and empty game object and attach the script to it, only then will the Start/Update/Awake etc. functions be called.