If you are new to Linux, I guess the “ls” command would have been one of the first command you would learn. The ls command is passed down to the shell by the user (input) interpreted by the kernel and returns to your terminal (output) the result of the input command. We will go more in depth on this later on, but first lets define ls.
Programming does need libraries, as crazy as that sounds. So what is a library in a developers world? A collection of pre-compiled codes(functions) that can be used when calling/compiling our program. Libraries helps save development time by keeping functions collected and used when needed. To juggle your memory a bit, remember GCC?
GCC, is a compiler that goes through a series of steps in order to make your program executable. In our image below, you can see GCC converts files into object files (.o) in the “Linking” phase before being executable. …
C is a compiled language, therefore anything you write (source code) goes through a series of process in order to have your executable code. I like to think of it like a recipe, you have to go step by step in other get your exquisite code done. Let me show you how to cook a compiled code.
After you have finished your source code you have to pass it through the compiler, in this case GCC (GNU Compiler Collection).
Soft links in the other hand do not point to the original spot at memory as a hard link, they point to the file it is linked which in turn points to a spot at the hard drive. In contrast to hard links if the original file gets deleted or its name changed, link will go dangling meaning it will not function. They do offer portability which can be linked at different file system and take up less memory.
Learn more about file system:
Below are some images of how hard and soft links work