I was just thinking about how linux is made.
What software is used for the creation of the linux software?
Is it Visual C++ or something else?
Now if I need to re-program Linux to suit me, which programming language should I know or learn in case I dont know.
Let's get one thing clear first. Do you refer to Linux as the whole GNU/Linux system, or to just the kernel (which really is the only component named Linux)?
In any case, it surely isn't made with Visual C++, which is a M$ contraption for writing Winbloze software.
The kernel itself is written purely in pure C (and, of course, some assembly language for low-level access), and must be compiled with GCC and the rest of the GNU build chain (GNU make, GNU bintools, etc.).
Most of the other components are also written in pure C, but most of them are portable to other UNIX systems as well, and as such do not require GNU tools. All KDE programs, plus a minority of other programs are written in C++.
To create software in Linux, gcc is recommended. Not that I know of any other compiler for Linux, but there's a good reason for that. Gcc is reportedly the best compiler in the world right now.
I like to learn more about GCC and resources available for it online.
Then go to http://gcc.gnu.org/. That's the official home page.
Dolda you should try icc sometime. I think you would be impressed with its performance over gcc.
ICC? Is that Intel's CC? Correct me if I'm wrong, but I've heard that GCC is supposed to be the world's best compiler right now in terms of optimizing.
Yes ICC is intel's compiler. GCC probably is the fastest on other non-intel platforms but ICC is still faster on intel machines(this might have changed with gcc3.2.3 since they were supposed to fix the p4 opts). Lot of the benchmarks were close but there was a few I seen where ICC had > 2x the score that gcc did. GCC still has its advantages of being multiplatform and supporting a lot more languages.
2 times?! That's pretty... much.
I read that they've implemented a much better instruction scheduler (among other things) for minimizing CPU pipeline stalls in GCC 3.3.1. It would be interesting to see a benchmark against that one.