Posted: Sun Jan 21, 2007 11:41 am
This is all quite humorous.. Please continue.
You can, but it's not the best place to learn. It's like trying to learn to tie your shoes while swimming from a man-eating alligator. Meaning, by starting with user space programs, you'll be able to learn a more broad spectrum of abilities quicker. (It's very difficult to learn about memory management when you are trying to implement malloc in the same instance. )gaf wrote:If you know nothing you just have to start somewhere and I don't see why this somewhere couldn't be an operating system.
That's pretty much what I had in mind when wrote "most basic programming techniques". Certainly I agree with you that these primary skills are best learned in a more programmer friendly environment..Alboin wrote:It's very difficult to learn about memory management when you are trying to implement malloc in the same instance.
Personally I started programming in C++ and OS development was the first serious project I have tackled. Maybe the learning curve really is a bit steep at the beginning, but it doesn't take very long until you get the hang: After all there's no better way to learn about the importance of aligator-management than having been chewed by it for a couple of timesAlboin wrote:It's like trying to learn to tie your shoes while swimming from a man-eating alligator.
Very true. It appears we have reached a stalemate. Well played.gaf wrote:That's pretty much what I had in mind when wrote "most basic programming techniques". Certainly I agree with you that these primary skills are best learned in a more programmer friendly environment..Alboin wrote:It's very difficult to learn about memory management when you are trying to implement malloc in the same instance.
Personally I started programming in C++ and OS development was the first serious project I have tackled. Maybe the learning curve really is a bit steep at the beginning, but it doesn't take very long until you get the hang: After all there's no better way to learn about the importance of aligator-management than having been chewed by it for a couple of timesAlboin wrote:It's like trying to learn to tie your shoes while swimming from a man-eating alligator.
I've always prefered directly confronting projects without taking numberous intermediate steps. Rather than going from VisualBasic to Pascal before continuing with C and finally changing to C++ I simply learned the language I wanted to know. Doing so from scratch might take longer than conveting from C to C++ but all steps combined the efford is probably just the same.
In my opinion both approached have their advantages and I wouldn't want to say that either is necessarily better than the other. It probably depends on your personality which one suits you better..
regards,
gaf
So then for the same amount of effort that someone who took those intermediate steps has learned Visual Basic, Pascal, C and C++, you have just learned C++?gaf wrote:I've always prefered directly confronting projects without taking numberous intermediate steps. Rather than going from VisualBasic to Pascal before continuing with C and finally changing to C++ I simply learned the language I wanted to know. Doing so from scratch might take longer than conveting from C to C++ but all steps combined the efford is probably just the same.
If you know C++ you really almost know C. And if you know C you almost know Pascal. (And perl and python, and basic, and angol.) So once you know C\C++, you can program in nearly any language as most of them are based on C style syntax. (Except Lisp, Brainf*ck, etc.)urxae wrote:So then for the same amount of effort that someone who took those intermediate steps has learned Visual Basic, Pascal, C and C++, you have just learned C++?gaf wrote:I've always prefered directly confronting projects without taking numberous intermediate steps. Rather than going from VisualBasic to Pascal before continuing with C and finally changing to C++ I simply learned the language I wanted to know. Doing so from scratch might take longer than conveting from C to C++ but all steps combined the efford is probably just the same.
I like to test my kernel in as many virtual machines as possible, just to be safepcmattman wrote:BTW, I do all my testing in QEMU
Code: Select all
best way to write a beginner/hobby OS is in Assembly
You do know that C was designed as a small change to assembly, more of a language between cobol/fortran and assembly? Of course, you're not the first to think this. Try HLA (high-level assembly), designed by Randall Hyde, for such a language.pcmattman wrote:Exactly! Of course, the world would be a better place if we made an OSDev language that combined the best parts of Assembly with the best parts of C, but that's too hard... and you can do it anyway with any half-decent linker.
Why you censor a programming language Brainfuck? It is not mean to be censored - it doesn't mean "brain f**king programming language", mateAlboin wrote:urxae wrote:gaf wrote:(Except Lisp, Brainf*ck, etc.)