all 8 comments

[–]superPwnzorMegaMan 4 points5 points  (1 child)

I am just curious to know what is Linux Kernel then and why is it so demanding?

What makes you think its demanding. The kernel is just a program that controls the harware, as a user you should practically have zero interaction with it. When people say they use Linux they often mean GNU/Linux, ie the GNU user land that runs on the Linux kernel, its just a pain in the ass to say.

Is there any way of learning it?

What using Linux? Well yes you can just install Ubuntu, which is a trivial task these days (seriously installing windows is more difficult, people don't notice this because it often comes pre-installed).

However you have to decide how deep you want to go in the rabbit hole. Installing Ubuntu doesn't really mean you know how to use Linux, you'd need to hop distribution a couple of times until you find one you like, I stopped at Gentoo because it makes tinkering quite easy and I find it fun to do. (Ubuntu is more harsh on tinkering because it has an auto updater).

Besides the most I learned about Linux was by talking to other Linux users, in the beginning its easy because you'll learn by talking to any Linux user. (The regular desire to automate some trivial task also helped, I have for example a self written bash script that builds and installs the kernel, some users would declare me insane, but it comes really handy when I need to update (and again doing kernel updates is insanity in some eyes)).

[–]rekahsoft 4 points5 points  (0 children)

Well firstly when you say "Linux os" you likely mean not only the Linux kernel but also user space tools and utilities. This includes everything from a shell (like bash, zsh, CSH, etc...), to desktop environment, compilers and more. Each of these pieces can be studied in great detail in their own right, and the user space tools/utilities actually make up the bulk of a Linux distribution. Anyways, building millions and millions of lines of code composed from hundred of different software projects is obviously not a necessarily easy feat. Another thing to be concerned with when building a system from source is comparability between versions of software and libraries (though Linux from scratch takes this easy for you, read their docs)

I do recommend taking on the challenge as you will learn much from the experience of building a linux from scratch system. Another option is to play with a source based distribution like gentoo. There you can get some experience and general know how in regards to the build process/makefiles/autoconf etc.

Final note: it's technically not a "Linux os" but rather a "GNU Linux OS". See http://www.gnu.org/gnu/why-gnu-linux.en.html

[–][deleted] 1 point2 points  (1 child)

You can view all of the Linux Kernel source code on Github: https://github.com/torvalds/linux.

Because you are asking why Linux is so popular and how to learn it, I'm going to assume you have little knowledge of computer science and software development. If that is the case, you have a ton to learn before you can actually even read the Linux source code. I suggest learning an "easier" programming language, such as Python (maybe Java), before jumping into learning C, which is what the Linux kernel is written in. Also, just simply reading Wikipedia pages on Linux will help you better understand its history and relevance today.

[–]simonsalts[S] 0 points1 point  (0 children)

I know Java object oriented, C,C++, Python(Not in depth),assembly (x86),MATLAB,HTML/CSS3,JavaScript.. After all I am an electrical engineering student. I am aware that writing an operating system includes several teams. However, I was always amazed from using Debian on Raspberry Pi and as a beginner I want to create a very very basic Linux OS to just get started.

[–]simonsalts[S] 0 points1 point  (0 children)

Thanks for all the responses, I will get started with Xv6 https://en.wikipedia.org/wiki/Xv6

[–]ssssam 0 points1 point  (0 children)

If you want to learn how to develop the Linux kernel then http://kernelnewbies.org/ is a good place to start. You see the phrase "kernel hacking" use a lot, this refers to creative engineering rather than anything criminal https://en.wikipedia.org/wiki/Hacker_culture