To be certifiable, airplanes have to have some kind of cues to warn when you are getting close to a stall, and have decent behaviour during the stall, because nobody is perfect. Airplanes with very strong physical cues prior to stall, like the whole airframe shaking, and good behaviour during a stall, like a good natural pitch over tendency with immediate unstalling of the wing, can get away without stall warning and prevention systems.
Transport aircraft with highly loaded wings and high performance airfoils may have poor behaviour before the stall (no buffeting or shaking), and poor recovery performance after, and need a little help. The airfoils used for airplanes that fly at near trans-sonic speeds tend to suffer from this because they tend to stall from the leading edge, at which point the wing stops lifting all at once, and there is often no prior buffeting or shaking.
The earlier supercritical (higher critical mach#) airfoils developed in the 70s were especially bad for this because they developed a flow separation bubble just aft of the leading edge at high angles of attack, due to the profile that was used to manage the formation of shock waves (the Challenger business jet and CRJ200 Regional Jet is typical). You do not want to experience the natural stall on such an aircraft and some kind of system has to be in place as a backup for mishandling of the airplane by the pilot.
For airplanes with mechanical/hydraulic controls, to provide a tactile warning as a substitute or supplement for the airplane shaking (pre-stall buffet), stick shakers are used, which is just a motor with an eccentric weight on the control column. If the post stall behaviour (not much natural pitch over, or worse, settling into an unrecoverable deep stall) is poor, a stick pusher is installed to give the control column a shove just before the natural stall occurs. The stall protection system calculates when to do all this.
Most high performance aircraft use shakers, and some use stick pushers. With FBW, the FBW computers intervene directly within the control loop to achieve the same end without having to shake or push the controls.