Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm wondering what would be a good bulleted list of what linux does, or what features are provided "out of the box"
I know that there are tons of distributions that all do so many different things, so I'll limit the scope of my question to things that the kernel provides, and things bash provides.
I've been using linux for about a decade, and really became a hardcore user about three years ago. When I first started out..it felt like a lot of the OS was invisible...and if you didn't know it was there, you'd have no reason to assume anything was there at all....
Things specifically like why there are bsd-style init scripts vs some other way of doing init scripts.....environment variables that hold paths for compiling and linking code....code that executes silently on startup, like stuff in .profile or .bashrc, etc.
I wonder ....what else is there that a user might not be seeing? What unsettles me about using the command line so much is that...I don't think I have any way of knowing for sure if I've ever really fully understood the OS...if there's some other feature I've never heard of, I'd have no way of knowing about it.
In windows...at least a long time ago, you could look at the menus of a given program, and that'd almost certainly demonstrate the full scope of functionality of that program. You could see it...there was an actual tangible thing showing you all of what could be done. there's not really an equivalent for the command line for this...I mean there are man-pages, but there's not a single, comprehensive overview that shows you the limits of what can be done...and often times, it leads me to think "well, how the hell was I supposed to know that?" when I've uncovered some new thing. It's more like wandering haplessly in the dark, feeling for walls, I guess.
So...I guess as far as functions provided by the kernel and bash go...is there any fundamental user function provided other than environmental variables, files, directories, ACLs (where applicable), kernel calls and userspace calls?
In the above links you will find additional reference links to help you.
Plus look at my signature for other useful links.
EDIT: Do not forget to look at 'man bash' and other 'man command' (where command is the bash command in question) for detailed description for bash commands.
IBM sometimes uses the term, "system control program (SCP)." I think that's a pretty good term, especially when talking about the kernel layer.
The kernel, of any OS, is fundamentally concerned with the hardware. It provides a logical abstraction of the hardware, physically controls and configures the hardware, and coordinates all activities. It therefore also provides security, because if the kernel declines to do something for you it can't be done at all. Because the kernel is "privileged," it can ask the hardware to do things that the hardware will refuse to do directly for you.
Per contra, if something does not "directly involve the hardware," it's probably not the kernel-layer doing the work. User-space programs make heavy use of standard software libraries, such as "glibc," which provide further insulation and abstraction, but which ultimately must turn to the kernel for any hardware-related services they may require. The kernel is "as far 'down-to-the-bare-metal' as software goes," except for microcode.
The Linux system, these days, is quite vast. But, so is Windows.
Last edited by sundialsvcs; 03-17-2016 at 01:10 PM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.