Hi,
DJAlexem wrote:I know C is a low level language, i am currently learning some of it, but is it a very good language for making things like kernels and Operating Systems?
C is probably the best language for things like kernels: lots of people are familiar with C, there's lots of example code in C (including Linux, FreeBSD, etc), there's several good free C compilers (that you could port to your own OS one day), it's low-level enough to do almost everything and it's high-level enough that you don't end up spending all day twiddling bits.
For all languages (except assembly), there's a few special instructions that a kernel needs to use that no higher-level language supports. This means that some assembly language is unavoidable. Assembly language is harder to get right and harder to maintain, so I wouldn't recommend using assembly language by itself (e.g. better to do everything you can in C, and only use assembly for the tiny pieces that no high level language can do).
DJAlexem wrote: I understand most of this prograaming language stuff, when it comes to theory I pick it up quickly, but when it comes to actually writing code, I don't perform as well. but none-the-less...
Learning the theory isn't too hard. Gaining experience takes practice. That's another good thing about C (and C++) - people can and do use it for writing applications; and you can get a lot of experience writing applications in C, where there's lots of debugging tools, etc to make it easier. This is probably important, because OSs are complex, and it would be much harder to write an OS when you don't have much experience with the languages you're using (much better to get experience writing applications for Linux or something; and then start your OS when you've got experience).
DJAlexem wrote:I notice you guys use Assembly and machine code a fair bit in making these OSs, Do you use that with other low level programming languages?
Most people use C (with a little bit of assembly) for kernels. Some people use C++ (with a little bit of assembly), some use assembly alone. A few rare people use other languages (Pascal, C#, D, something they invented themselves, etc).
DJAlexem wrote:And Qemu, is that like a simulator? I'm just curious cause making my own OS or programming language is something that I wanna get done in my life(im 15 atm btw

)...
Qemu is a virtual machine - a normal application that emulates a computer, that people use for testing their OSs to avoid rebooting a real computer a lot (it saves time). It also means if you mess something up you don't have to worry about trashing your (real) hard drive. The other reason to use virtual machines is that it's easy to have bugs that work on some computers and fail on other computers; so to increase the chance of finding those bugs you want to test on lots and lots of different computers. Virtual machines (Qemu, Bochs, VirtualBox, VirtualPC, VMware, etc) are a cheap way of increasing the number of "computers" you can test on (and increasing your chances of finding bugs).
Cheers,
Brendan