Page 2 of 2

Re:# of OS's

Posted: Fri Dec 03, 2004 3:57 am
by Candy
Solar wrote: In "the good ole days", a beginner started with a "hello world", followed up by a "POKE 53280,0" (comp trivia: Now what does that do on a C64?). A simple basic program. A simple assembler program. Oh, jolly, assembler. Now what can we do with this?
I guessed some pixel coloring, but it's the background to black (had to check :D, VICE emulator)
When the guys that started coding this way got to the point where they wanted to write something OS-ish (i.e., on their next machine...), they knew what a register is, they knew what a page pointer was and they could juggle bits and bytes without making stupid mistakes.

Today, people start with Visual Basic, then they get their first C compiler, look at the Windows API, chicken out and go for something "simple" like an OS for their first "real" programming project.

And we here then have to explain what a "static" declaration means, why a float variable doesn't make a good loop counter, what a "callback hook" is and why global variables are a bad idea for reentrant code...
... Yep... Wholeheartedly agree.

Re:# of OS's

Posted: Fri Dec 03, 2004 4:22 am
by distantvoices
I used to know the POKE(xxx,xxx) in former years, but now I rarely knew that it puts zero at that address. *gg* My only C64 I own is slightly broken. well.

regarding "os programming as a way to learn programming". Boah. that's a hard approach. I wouldn't do it this way. It's bad. You are smitten in shame ere you even reach basic printing "hello, Its me" in your average helloworld-pmode kernel without decent capabilities in Thinking in Algorithms, Solving a given set of problems, Having decent linked list algorithms at hands without thinking (dynamic data structures are a must!) and sorta. You gonna smite things in agony when attempting to write a kernel without programming knowledge. Think: I f. ex. do programming for about 15 years now - from beginner stages in c64 asm and basic to c, c++, java, php and sorta NOW. It took a special education to gain at least decent basic knowledge in ordered development of programs (I admit I knew very little about structured programming before thou I have got the Idea of functions already. I've produced spagetti basic code 'til then)

Hands away from learning programming by doing the os thing.

Stand small, keep the head low and learn BASICS before venturing for OS dev. As Solar says.

ha en bra dag.

Re:# of OS's

Posted: Fri Dec 03, 2004 5:12 am
by Solar
beyond infinity wrote: Stand small, keep the head low and learn BASICS before venturing for OS dev.
Thanks for the trailing S in BASICS. For a second I thought I'd get a stroke. :-D

Re:# of OS's

Posted: Fri Dec 03, 2004 5:26 am
by distantvoices
OH, and know what (solar, I hope this doesn't twist your pants tooo painfully *sfg*winkwink*):

BASIC, as simple and straight forward it is, it is sufficient to train algorithmic thinking - even dynamic data structures can be trained, if using a language like visual basic - and solving of a given set of problems.

Pls, lads, don't come with biases. I've self-learned programming hands-on-c64 with a clever book by my side.

Re:# of OS's

Posted: Fri Dec 03, 2004 6:02 am
by Candy
beyond infinity wrote: BASIC, as simple and straight forward it is, it is sufficient to train algorithmic thinking - even dynamic data structures can be trained, if using a language like visual basic - and solving of a given set of problems.

Pls, lads, don't come with biases. I've self-learned programming hands-on-c64 with a clever book by my side.
May I add to this?

I learned basic programming on a C64 too, without a decent book but with a number of non-copyprotected games. I did have some basic books, but they were aimed at people that had at least finished primary school, so kind of unfit for me. I then continued with GWbasic, QBasic and VBasic (4/5) until I thought I'd learn c++ (which is kind of a big step and I accidentally learned C in the process of getting there). Right now I haven't used basic in years, but I will still advise anybody learning programming to first try to get decent stuff running in basic before heading to "more powerful" languages, even if you can do more in them. If you can't use a simple language to its limits, how can you hope to use a complex language to any good and efficient use?

And yes, I did make a program that hit QBasics limits. It ran in 1280*1024 32-bit color with a translucent mousecursor and nice routines. However, since I only did small bits asm, it was dog slow and too big for QBasic to load (after the last addition). It's probably been lost forever, but I did submit it online as WOW3.BAS. You might be lucky.

Re:# of OS's

Posted: Fri Dec 03, 2004 6:07 am
by aladdin
Solar wrote:
Again, no offense intended. But all I have for people who attempt to learn C while writing their kernel (or better yet, learning C++ while writing their bootloader), is a hearty get real.
oh, i did not say that an OS is a good way to begin learnin a programming language.
personaly, I began developping my OS after doing advanced network and system programming in C.

what i mean is that an OS is a good idea to learn advanced programming, coz while developping a kernel, u have to understand how each piece of ur computer works, moreover u have to read lot of documentation and standards specification, which is not allways done where u r coding a "Hello World" ;)

i totally agree with u that developping an OS to learn a certain language is a bad idea

Re:# of OS's

Posted: Fri Dec 03, 2004 9:55 am
by Colonel Kernel
Solar wrote: An OS is about the most complex software you can write at all.
Ehhh... I'm not so sure about that. Implementation-wise, maybe. In terms of concurrency, maybe. I think things like natural language processing, speech recognition, and query optimizers are pretty complex beasts though. OS development requires a very good grasp of the details (and there are a lot of them), but it seems to me that you don't need to have a particularly advanced understanding of algorithms or high-level design techniques. You still need these things, but not to the extent you would for some of the more complex stuff mentioned above IMO.

Re:# of OS's

Posted: Fri Dec 03, 2004 11:26 am
by dh
the hardest thing (for me) is graphics. that's why I want my os to be graphical ;P. I'm not all too bright in some ways.

Re:# of OS's

Posted: Sat Dec 04, 2004 1:57 pm
by Solar (lazy)
I was referring to a graph commonly shown in Software Engineering classes:

A software made for a single user and a single purpose has complexity 1.

Making a software work for generic users increases complexity by x4.

Making software work for generic purposes (e.g., generic spreadsheet instead of managing your bank account) increases complexity by x4.

Making a compiler is x3 more complex than an average application.

Making an OS is x3 more complex than a compiler.

That's rough and oversimplifying, of course, but all in all I've found it to be a good guideline.

Re:# of OS's

Posted: Mon Dec 06, 2004 10:50 am
by dh
I find that standard is:
1 user, 1 job = 1
x users, 1 job = (1) * 2
1 user, x jobs = ((1) * 2) * 2
x users, x jobs = (((1) * 2) * 2) * 1.5
Graphics = * 3 bonus

All user prefrence ;P