Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Relevance of libc.so.6 in Linux kernel [closed]

My question is whether Linux kernel contains libc.so.6? After googling and going through different links, we found that libc.so.6, is not a part of Linux kernel, as the kernel has same libraries implemented for its own use in kernel space. libc.so.6 is a userspace library. But, still, the question was left, if the libc.so.6 is removed from "/lib", it crashes, as all the basic applications of Linux crashes.

So, the basic questions were left on:

  1. Can Linux run without libc.so.6? If yes, where such implementation is used?
  2. Who provides libc.so.6? Is it provided by Linux distributions only?
  3. Does Linux internally supports threading or not?
like image 701
pRAShANT Avatar asked Oct 30 '13 12:10

pRAShANT


2 Answers

Can Linux run without libc.so.6? If yes, where is this the case?

Compiling the code with option -nostdlib won't use standard libraries,

man GCC tells,

-nostdlib Do not use the standard system startup files or libraries when linking. No startup files and only the libraries you specify will be passed to the linker. The compiler may generate calls to memcmp, memset, memcpy and memmove. These entries are usually resolved by entries in libc. These entry points should be supplied through some other mechanism when this option is specified.

Check webpage for good glibc free implementation.

like image 33
Sunil Bojanapally Avatar answered Sep 29 '22 01:09

Sunil Bojanapally


  1. Yes. For example, I could write an application in assembly that did not use libc. Here are some examples: https://stackoverflow.com/questions/284797/hello-world-in-less-than-20-bytes
  2. On Linux, glibc is a common implementation of libc: https://www.gnu.org/software/libc/
  3. Yes. The threading options that glibc provides are a shim layer over a kernel interface.
like image 134
Bill Lynch Avatar answered Sep 29 '22 03:09

Bill Lynch