How different is Bare Metal Zig than Zig, Does it follow C (No std, etc.).
Bare metal programming usually means programming directly for the hardware without an operating system or layers of abstraction between your code and the computer. Zig calls this a “freestanding” target.
In C, the standard library usually targets an underlying OS (eg GNU Libc on Linux, or MSVCRT for Windows). With this comes assumptions about malloc() being globally available as well as a baked in IO implementation for access to files or a terminal. There are C stdlib implementations for embedded systems like Newlib/picolibc where you can quickly port to a specific target, but it’s not simple to set these up.
Zig approaches things a bit differently. All functions in std which require a memory allocator accept one explicitly as a parameter and now/soon all functions doing IO will similarly need an Io object. This means that Zig’s std can be used on freestanding targets without changes. It’s the caller’s responsibility to provide an appropriate std.mem.Allocator and std.Io to fill in the blanks.