Alf.
The full form of Alf is Executable and Linkable Format.
It's a format for the various types of files like binaries, relocatable files like object code, the
libraries, ISO files, and code terms.
So code terms are created when a program terminates with a fault.
It is also a format for kernel modules, so most of the files in Linux are using Elf as a file format.
So it's a file format like audio files are having format of MP3.
Right.
And you have video files which are having a format of MP4.
In Linux executables and linkable files, code, arms, binaries and shared objects are shared objects
or libraries or kernel modules.
These are the files which are having Elf as the file format.
File format.
It is a.
This is the file which Elf file is loaded by kernel to make a process.
So the file on the disk you call it as a program.
Once this Elf file is given to the kernel as an input, it creates it as a process.
And the format is versatile.
It allows it to be executed on various processor types.
So this format is not only on x86 or Amd64.
It is available for all different processor types like AMD, uh, it's on MIPs, it's on ARM, it's
on ARM 64.
So all it's the format is designed to be versatile so it can be supported on all processors.
It supports big endian and little endian architectures, 32 bit and 64 bit systems, and it supports
features like dynamic linking, which allows shared libraries to be loaded and linked at runtime, not
only during statically built building time and position independent code, which enables executables
and libraries to be loaded at different memory address.
So these are the features of Elf.
It has a lot of features and like, uh, Mac OS has a elf does not use Elf file format.
It uses something known as Mach-o.
So other OS.
The file format for executables is not Elf.
In macOS it is mach-o, whereas in windows you know it is an.
EXE format.
So the exe is the extension of the uh file.
And the format which windows uses for executables is known as Portable Executable Format.
Okay.
Uh, this is well known, right?
We know that X is just an extension.
Uh, but the format of windows for file X executable file file format for windows is Portable Executable
Format in uh, Linux.
Elf does not have any specific uh uh extension for Elf files.
So file name, uh, if you don't have any extension also that is fine because specification is not defining
like the file name should have dot elf okay.
If you add dot or dot elf anything, it's fine.
Like kernel modules we are saying it is.co for shared libraries.
We are giving a name dot.
So.
But uh for real relocatable files we are giving a.co.
But executable files we are not giving any extension.
So because the Elf specification is not defining any specific, uh requirement for an extension, but
in windows you will have a dot x dot MSI, right.
All those are defined in the Portable Executable specification.