

There are a lot of other helpful replies in this thread, so I won’t add much, but I did find this reference, which you could read if you have a lot of free time. But I particularly liked reading this summary:
- _start calls the libc __libc_start_main;
- __libc_start_main calls the executable __libc_csu_init (statically-linked part of the libc);
- __libc_csu_init calls the executable constructors (and other initialisatios);
- __libc_start_main calls the executable main();
- __libc_start_main calls the executable exit().
Ubuntu is doing stupid things with packages, replacing them with their proprietary packaging system (called Snap). It has been controversial, the way that they are pushing it, especially since the Snap server is proprietary and non-open source.
A lot of people won’t consider using Ubuntu at all for this reason alone, and it makes sense - when you consider that there are so many other distros to choose from these days, Ubuntu just doesn’t really provide a whole lot of added value anymore.