Normally we perform this to check the stability of the build to deploy in testing environment for further testing. During smoke testing of the software, we do not go into finer details.
The term Smoke testing came at time of developing an electronic chip board, when a electronic chip is made, the developers connect to power supply and check if smoke is coming from that chip or not to make sure that current passes through all the parts of chip or not.
Sanity testing is testing the application(After receiving a build with a change request or enhancement) to ensure if it is stable enough to continue further testing. If the test fails or any showstopper or critical issue, we cannot continue testing further. Sanity testing is the initial test after the build release.
BVT is also called smoke testing or build acceptance testing (BAT)