For a language that is suppose to sutain portablity, Parallax has pretty much ignored the concepts of STDIN, STDOUT, and STDERR and replaced the three with the Debug/Terminal port. And other serial ports are designated as a Device.
++++++++++++
So the assertion that i/o is not part of the C language seems to agree with the fact that asynchonous serial is done a bit differently wherever I look. Catalina C on the Propeller also has its own vision of compliance of i/o with C portablity.
Nonsense. PropGCC may be a bit odd with regard to devices, but Catalina C incorporates stdio, stdin, and stderr exactly the way the ANSI standard intended. The same C program will work seamlessly whether you have serial IO, TV, VGA or even proxy I/O drivers where the real I/O is provided by another propeller chip. And because of Catalina's registry, you can replace the built-in drivers with any other Spin driver you want.
According to some article that I read that was cited here in this thread, UNIX came before C. I always thought that it was UNIX, but since that is not the case, that is why I posed my question. Now that I think about it, maybe "K&R C" should be used with the Propeller, since it is for educational purpose; maybe somebody can come up with an elegant OS for the Propeller while they were at it.
Ray
Unix and C were developed about the same time. From memory (look it up if you are really interested), the first complete version of Unix was written for the PDP-8 in assembler. This proved to be non-portable, so first the languages A, then B, then C were devised to try make the operating system more portable to other chip architectures. C proved so successful that the D language (which I believe was written) proved unnecessary.
K&R C is of interest only historically. These days, even very simple languages are expected to come with full I/O and library support, so ANSI C is the language that should be selected for most purposes.
ANSI C can be used with or without a file system.
Unix (or DOS or whatever OS) primarily provided a file system and maybe, multi-user services in the early days: though these rapidly adopted network services as they matured.
I doubt if you really want to have a Propeller provide a multi-user OS, use a Raspberry Pi or Beagle Bone or something.
If you read the first 20 or so pages of Expert C Programming (the text I mentioned in #1), it pretty well explains all this history and dismissed K&R C. So ANSI C is really the good entry point.
++++++++++
Sorry, I removed the link to the FREE PDF as it seems to be a copyright issue. Google Search provided me with the link for this an many other classic computer texts in PDF format. I guess this is an on-going problem.
I doubt if you really want to have a Propeller provide a multi-user OS.
Why not? Since the Propeller is all about education. ANSI C and GCC are all about compilers for the industry setting, which companies insist that should be available. For an educational purpose, you get K&R C, a Propeller, and a statement: Create the most elegant OS possible!
For a language that is supposed to sustain portablity, Parallax has pretty much ignored the concepts of STDIN, STDOUT, and STDERR and replaced the three with the Debug/Terminal port. And other serial ports are designated as a Device.
PropGCC does support STDIN, STDOUT and STDERR. That is the "normal" way that it works. Parallax may provide alternative ways for serial I/O because Spin programmers are used to interfacing directly to the serial drivers. It takes a bit of extra work to perform non-buffered and non-blocking serial I/O using the standard I/O functions. However, PropGCC does allow for full portability using standard I/O.
To save space, the SD File driver is not included by default. It can be added by specifying a file driver list. This is also true for additional serial ports, I2C and SPI drivers. They can all be accessed through standard I/O.
According to some article that I read that was cited here in this thread, UNIX came before C. I always thought that it was UNIX, but since that is not the case, that is why I posed my question.
As Ross said, it was about portability. Unix (or UNIX as it was spelled then) was written in assembler and became popular very quickly. People wanted to run the same OS on other architectures. Actually even when you look at only the PDP series the different models weren't compatible (pdp7, pdp8, pdp10, pdp11, pdp12.. this was way before "backwards compatible" was an established idea).
So it became pretty painful to re-write UNIX every time. C was invented for the purpose of rewriting UNIX into something portable. And it worked pretty well, I remember how amazed I was when a local guy somewhen around the end of the seventies, or possibly the year 1980, simply acquired the Unix source (as you could do academically back then) and got it running on his homebrew computer system.
D was mentioned.. I don't know if there really was a D planned at that time, even though there was B and C (and maybe A), there was no consciously planned path there. In any case there is a D now, and it's quite nice. But it's doubtful if it will ever become more popular than any of the other languages that aren't part of the Big Group (which I won't try to list explicitly because everyone probably have their own opinions of what that constitutes - although C, Java, C++ are of course part of that list. And a small handful of others.)
I just did a quick search for K&R C source code, and nothing came up, all references are to ANSI C or GCC. Is there or has there ever been source code available for K&R C, that anybody knows of?
Maybe there is something out there.. but the closest thing that's available (at least I think it is available) is PCC, the Portable C Compiler which was written in 1973 (it still exists but not as K&R-like C anymore). It has a few more features than K&R C though, e.g. the 'void' type. But I believe a great many system compilers were based on PCC after it became available - for the same reason as UNIX spread after it was rewritten into C: Portability.
I just did a quick search for K&R C source code, and nothing came up, all references are to ANSI C or GCC. Is there or has there ever been source code available for K&R C, that anybody knows of?
Ray
I programmed in K&R C back in the mid to late 80's on an IBM PC and an AT&T 3B 2. This was before the ANSI C spec was published in 89, afterwards the compilers I used started supporting that syntax by the early 90's. This was over 20 years ago, and I recall we had to use compiler switches to select the C variant. I imagine that most of that source code has long since been re-written or sent off to the bit bucket. It was also prior to the widespread adoption of open source development techniques, so I imagine finding any of this archaic style C online will be tough.
I just did a quick search for K&R C source code, and nothing came up, all references are to ANSI C or GCC. Is there or has there ever been source code available for K&R C, that anybody knows of?
Ray
Yes, of course. But most of it has probably now been migrated to ANSI C. There is really no point in reverting to K&R C for any reason.
So, I answered as if Rsadeika asked about the source of a K&R C compiler, and everybody else answered as if he asked about C source in K&R style!
I'm not sure who interpreted the question correctly. As for C code in K&R style, I have migrated all of mine to ANSI over the years. Including the microEmacs source I once ported to a 16-bit minicomputer - its C compiler was as close to K&R as I can imagine. Of course that old code is still there somewhere down there in its Git repository.
So, I answered as if Rsadeika asked about the source of a K&R C compiler...
Thanks Tor, that is exactly what I was after. After doing some searching I did find something along the lines of "Portable C Compiler", but that is not the source of K&R. Now I may have to see if there is source for Unix, since UNIX is in assembly. I am just slightly curious as to how they could use a limited C compiler, by todays standards, and come up with an awesome OS.
The K&R C compiler is as capable as any ANSI compiler, it's just that ANSI standardised a lot of interfaces and also added improvements such as prototypes for functions, and the 'void' type (also used by the pre-ANSI PCC compiler) which lets you avoid messy and error-prone casts in code like e.g.
variable = (struct abcd *)malloc (size);
With ANSI you don't need or want that cast: Just
variable = malloc (size);
So it's easier to write better code with an ANSI compiler, and it's also more portable (standard libraries), but I can't offhand think of anything that can't as well be done with a K&R compiler. So writing UNIX (which wasn't that big to start with) shouldn't be a problem as far as the compiler is concerned.
Why not? Since the Propeller is all about education. ANSI C and GCC are all about compilers for the industry setting, which companies insist that should be available. For an educational purpose, you get K&R C, a Propeller, and a statement: Create the most elegant OS possible!
Ray
Well, how exactly are you going to have all the multiple users share the resources of one Propeller?
I suppose that having a few users log in and an administrative oversight in some instances might be handy for process control in a factory setting, but the Propeller's strongest points are its uses and applications without an OS... where it can handle timing critical tasks with precsion and flexiblity.
Certainly the Propeller is about education, but it should focus of what can be best learned with it. And topics should be useful in today's world.
Sure one can teach pottery, basket making, and black smithing for the sake of education, but they really are quaint throwbacks. How about K&R C on AppleDOS or CPM with data storage on a cassette tape recorder?
These days, System On Chip (SOC) devices seem to work well with Linux and can do as a server connected to the internet in a way that multiple users can simultaneously share the server. But with only 32Kb of RAM and serial ports for modems connected to dumb terminals, you are asking users to revert to computers of the 1960s.... and spending a lot of time, cash, and effort to do so.
My feeling the the Propeller doesn't need to replicate Unix to be a significant educatonal resource. It has a vast amount to offer to those that use it to find a different way for micro-controller architecture. The Propeller contrasts the most widely accepted schemes of what computer architecture is and can be.
If you want to teach multi-user systems and systems administration,
Just get a CubieTruck, add a SATA harddisk, load Linux ... and all and everything is readily available. You can even have GCC, Python, Java, and more. But you might as well load any old junk PC with Linux and get as good results.
I am dismayed by all the abuses promoted as being 'educational' these days, mostly by touts that have no idea what education's real burdens are.
An abridged 12,000 lines of the C source code of the kernel, memory manager, and file system of MINIX 1.0 are printed in the book. Prentice-Hall also released MINIX source code and binaries on floppy disk with a reference manual. MINIX 1 was system-call compatible with Seventh Edition Unix.[1]
I have to stop myself right now, before I start down this path. I long time ago I purchased the original MINIX 1.0 book, I have it some where in my library. I had an interest in creating my own OS, but I ran into some problems, bootloader and drivers, that is an occupation in itself. Now, I am curious if something like this could fit on the upcoming P2 chip, maybe even the P1? Having PropGCC and Catalina available, that would take care of a C compiler; I do remember that even the source for MINIX 1.0 contained some assembly, which could be a problem. What a really good way to learn C, and to find out all the capabilities of such a compiler. Since there is no mention of a shell, that could be a problem for creating some programs for accessing the peripherals that would be added to your Propeller system. Just dreaming...
Well, I suspect that neither Linux or Minix will fit into the actual Propeller chip. These OS take some sort of mass storage to really do much, and really require more MIPS than a Propeller can produce..
Minix at one time appealed to me, but the actual book is very expensive. (I think they are up to version 3 now) So with FREE software, and expensive documentaton; I decided to be more patient with learning LInux. That has paid off for me.
In Chinese the term 'ambition' is represented as 'wild heart'.
Sometimes we expect too much, too soon. And the usually result is that someone is willing to sell use rather expensive 'educational' materials and serivices. But the reality is that some things just can't be fast tracked, you learn by doing and thinking a bit. After using LInux for 5 or so years, it is much easier to comprehend how it works. Maybe now I could get into reading the source code in C.
But I doubt if I will ever desire a UNIX/Linux on the Propeller or the Propeller2. It is better suited for using SDcards as mass storage and they use FAT32.
I do have a CubbieBoard1, and that is a great little platform for Linux. The CubbieTruck is their third product and even better. I think that would be the optimal tiny Linux platform. It can already load Ubuntu. And you can use GCC immediately.
But I will always turn to a Propeller to learn lower level concepts and methods. There is a huge niche in learning for a programable device that doesn't try to do everything and doesn't have a general purpose OS... and that is where the Propeller actually excels.
If you are trying to decide between Minix and Linux, just consider that something like 70% of the world wide web is running on Linux devices. What Google, Apple and MS provide is end-user desktop OSes.
I would think something like OS/9, FLEX, or the newer NitrOS9 would be a more ideal P2 target. Those are currently 6809 assembly language, but do offer multi-user capabilities, file system support, scripting, drivers, etc...
I've got NitrOS9 on my CoCo 3, and it's a pretty nice multi-user system, capable of running in 64K or so RAM, though it really starts to perform at 128 and up.
You don't use a car to plow a farm field or a farm tractor to drive to the mall. Use the right tool for the job. If it's for education it is even more important to learn what tool is right for the job at hand.
Well, how exactly are you going to have all the multiple users share the resources of one Propeller?
I suppose that having a few users log in and an administrative oversight in some instances might be handy for process control in a factory setting, but the Propeller's strongest points are its uses and applications without an OS... where it can handle timing critical tasks with precsion and flexiblity.
Certainly the Propeller is about education, but it should focus of what can be best learned with it. And topics should be useful in today's world.
Sure one can teach pottery, basket making, and black smithing for the sake of education, but they really are quaint throwbacks. How about K&R C on AppleDOS or CPM with data storage on a cassette tape recorder?
These days, System On Chip (SOC) devices seem to work well with Linux and can do as a server connected to the internet in a way that multiple users can simultaneously share the server. But with only 32Kb of RAM and serial ports for modems connected to dumb terminals, you are asking users to revert to computers of the 1960s.... and spending a lot of time, cash, and effort to do so.
My feeling the the Propeller doesn't need to replicate Unix to be a significant educatonal resource. It has a vast amount to offer to those that use it to find a different way for micro-controller architecture. The Propeller contrasts the most widely accepted schemes of what computer architecture is and can be.
If you want to teach multi-user systems and systems administration,
Just get a CubieTruck, add a SATA harddisk, load Linux ... and all and everything is readily available. You can even have GCC, Python, Java, and more. But you might as well load any old junk PC with Linux and get as good results.
I am dismayed by all the abuses promoted as being 'educational' these days, mostly by touts that have no idea what education's real burdens are.
I would think something like OS/9, FLEX, or the newer NitrOS9 would be a more ideal P2 target. Those are currently 6809 assembly language, but do offer multi-user capabilities, file system support, scripting, drivers, etc...
I've got NitrOS9 on my CoCo 3, and it's a pretty nice multi-user system, capable of running in 64K or so RAM, though it really starts to perform at 128 and up.
You don't use a car to plow a farm field or a farm tractor to drive to the mall. Use the right tool for the job. If it's for education it is even more important to learn what tool is right for the job at hand.
You may want to read up on EPA-Tractors...
They started out as ordinary cars that was rebuilt for use as farm tractors, mostly during WWII, when the 'real thing' was difficult to source.
There's still a large scene for these in Sweden. So big in fact that their 'DMV' had to create a class for them(A-Tractor) later
They still can't go faster than 30Km/h, but can be some of the hottest things on wheels...
And legal for 16year olds to drive...
(Minimum age for a Class B license there is 18. So the alternatives are bicycles, mopeds, or EPAs... And only one has room for your girlfriend... )
If all you have(or is allowed to use) is a hammer...
I would think something like OS/9, FLEX, or the newer NitrOS9 would be a more ideal P2 target. Those are currently 6809 assembly language, but do offer multi-user capabilities, file system support, scripting, drivers, etc...
I've got NitrOS9 on my CoCo 3, and it's a pretty nice multi-user system, capable of running in 64K or so RAM, though it really starts to perform at 128 and up.
Dang it, I just read the NitrOS9 page and I'm suddenly wishing I used a 6809e for my retro computer project rather than a 65c02.
Well, I suspect that neither Linux or Minix will fit into the actual Propeller chip. These OS take some sort of mass storage to really do much, and really require more MIPS than a Propeller can produce
I'll agree that mass storage is needed.
But the Propeller has more than enough processing power (MIPS)... as long as you're using character interfaces and not GUI's.
Case in point: MPE/iX (MPE running as an application under HP/UX) on an HP 3000 in the mid 90's. 100+ users in only 128MB of RAM. I'm not sure what the rating for the machine was, but I doubt it was more than 20 MIPS.
You may want to read up on EPA-Tractors...
They started out as ordinary cars that was rebuilt for use as farm tractors, mostly during WWII, when the 'real thing' was difficult to source.
There's still a large scene for these in Sweden. So big in fact that their 'DMV' had to create a class for them(A-Tractor) later
They still can't go faster than 30Km/h, but can be some of the hottest things on wheels...
And legal for 16year olds to drive...
(Minimum age for a Class B license there is 18. So the alternatives are bicycles, mopeds, or EPAs... And only one has room for your girlfriend... )
If all you have(or is allowed to use) is a hammer...
Good point, but we have a lot of choices available, so we may as well choose a better tool for the job.
Interesting thing about the EPA's. Areas of Canada allow young and unlicensed drivers to drive farm equipment on the roads as well. I don't think they can take them into cities or towns though.
When I was in Italy a few years back I found out that a 15 year old could drive, although they were restricted to a specific type of car, and IIRC only during the day. Quite a surprise that was.
Evil thought: Just rip the 6502 out One retrofit, and you are likely in business! I've got a spare
Not evil and possible without too much disruption, as the retro computer I'm building exists to be hacked. The support chips and address decoding logic are 100% compatible. The 6809e isn't pin or clock signal compatible with the 6502, but they're close enough that you can build an adapter that plugs into the socket. It remaps the pins and generates a new clock signal. I've seen projects online for the Apple II and Atari 800 with new 6809e ROMs in them. You can do the same thing with the 65c816 too, although the benefit seems less clear to me.
They stopped making the 6809e, but used system pulls are available quite cheaply.
Nothing wrong with quirky modifications or retro projects for learning....
But they are best done AFTER you get an education in the basics. That is the FUN stage, where the hobby begins. It may sharpen your skills for a career in computer science, but not really be a direct economic objective.
My main point about the need for multi-user systems is that there is simply a big bottleneck if you are using serial ports, modems, and dumb terminals. Getting a device with included LAN capability built-in is really much easier to build and support.
Has anyone actually built and deployed a Propeller with multiple modems and an OS that allows more than one user to log in at the same time? Or are we just talking?
The majority of what I do on a Propeller excludes even a file system. I have amply file system storage on other devices ... desktop PC, notebook, and so on.
If I really want to play around with something, Spinix and David Hein's pfth Forth really are very satisfying. I can actually read all the source code in PASM, and use the system fully.
That was first written in C, and then optimized by full conversion to PASM. (So you can use it to comprehend the relationship between the two.)
When it comes to a Quad-copter flight control system, I'd go with the Propeller any day. RTOS are needed and that is the kind of thing the Propeller does well.
Areas of Canada allow young and unlicensed drivers to drive farm equipment on the roads as well. I don't think they can take them into cities or towns though.
It used to be like that in Norway too, but I believe (but I'm not certain) this is changed now. The traffic picture is very different from when I as a teenager was driving a tractor around (for years) as part of my summer job. It was legal for a young (15 yo) unlicensed driver to drive a tractor on roads, but _only_ when going between "legal targets", e.g. between the farm and a field.
I would think something like OS/9, FLEX, or the newer NitrOS9 would be a more ideal P2 target. Those are currently 6809 assembly language, but do offer multi-user capabilities, file system support, scripting, drivers, etc...
I've got NitrOS9 on my CoCo 3, and it's a pretty nice multi-user system, capable of running in 64K or so RAM, though it really starts to perform at 128 and up.
Dang it, I just read the NitrOS9 page and I'm suddenly wishing I used a 6809e for my retro computer project rather than a 65c02.
I've been tempted to acquire a CoCo 3 myself, remembering my days of using a Dragon 32 (6809, CoCo 1 compatible basically). I had the full listing of FLEX at some point too, but I don't know where it ended, I haven't seen it for years. The 6809 is a nice processor. But I've got enough on my hands already (65C02 and Z80 systems) so I've tried to hold back on the CoCo3 investment. I'm not sure if being reminded by posts like yours is helping...!
(I actually have a Hitachi 6309 'enhanced 6809' CPU in a drawer somewhere.)
I've been tempted to acquire a CoCo 3 myself, remembering my days of using a Dragon 32 (6809, CoCo 1 compatible basically). I had the full listing of FLEX at some point too, but I don't know where it ended, I haven't seen it for years. The 6809 is a nice processor. But I've got enough on my hands already (65C02 and Z80 systems) so I've tried to hold back on the CoCo3 investment. I'm not sure if being reminded by posts like yours is helping...!
(I actually have a Hitachi 6309 'enhanced 6809' CPU in a drawer somewhere.)
Vintage computers like the CoCo are available on eBay quite cheaply. It's the shipping that can get expensive, particularly for someone in Norway.
I purchased a TI 99/4A because I always wanted to play Parsec, plus it the first 16 bit home computer. I got a complete system for less than $100 USD. My kids have a blast retro gaming on the TI 99/4A. They love to play Amazing where you are mice running from cats. I figure that a CoCo 3 should be around the same price.
My retro computer probably cost me more than a used VIC-20, but I wouldn't have learned as much about how address decoding or I/O chips work which was the point of a DIY retro machine.
Revisited my copy of The C Programming Manual:2ed over my morning latte today and reread the Introduction.
If someone is having trouble with getting a vision of what C is and what it is intended to be, reading that will help greatly.
"Since C is relatively small, it can be described in a small space, and learned quickly. A programmer can reasonably expect to know and understand and indeed regularly use the entire language." -- Kernighan and Richie: 1988, page 2.
I think that says it all and is especially why I am attracted to C while so wary of C++. My main point is that newcomers and even old-timers don't have to dig through thousands of pages of text and libraries to figure out how to program something. C was special in its day; and it still is.
I did order a copy of the companion text, The Standard C Library by P.J. Plauger, 1992 as it seems to be the logical companion reference. I already have The UNIX Programming Environment by Kernighan and Pike, 1984.
The three texts are all short by today's standard of computer books and when read as a group puts you well on you way to understanding both C and Linux (Linux is simply a derivative of UNIX for personal computers). In fact taken together, they will move the new learner rapidly ahead. Most of what has been written since has had to build upon these, and often go the route of lots of graphic and screen shots of the GUI instead of really explaining the key points in a need-to-know fashion.
++++++++++++++
Taiwan seems to not allow anyone under 18 a driver's license, but recently decided that those of use that have them no longer need to bother with renewal exams -- the one you have is good for the rest of your life. Different strokes for different folks.
Comments
Nonsense. PropGCC may be a bit odd with regard to devices, but Catalina C incorporates stdio, stdin, and stderr exactly the way the ANSI standard intended. The same C program will work seamlessly whether you have serial IO, TV, VGA or even proxy I/O drivers where the real I/O is provided by another propeller chip. And because of Catalina's registry, you can replace the built-in drivers with any other Spin driver you want.
Ross.
Unix and C were developed about the same time. From memory (look it up if you are really interested), the first complete version of Unix was written for the PDP-8 in assembler. This proved to be non-portable, so first the languages A, then B, then C were devised to try make the operating system more portable to other chip architectures. C proved so successful that the D language (which I believe was written) proved unnecessary.
K&R C is of interest only historically. These days, even very simple languages are expected to come with full I/O and library support, so ANSI C is the language that should be selected for most purposes.
Ross.
Unix (or DOS or whatever OS) primarily provided a file system and maybe, multi-user services in the early days: though these rapidly adopted network services as they matured.
I doubt if you really want to have a Propeller provide a multi-user OS, use a Raspberry Pi or Beagle Bone or something.
If you read the first 20 or so pages of Expert C Programming (the text I mentioned in #1), it pretty well explains all this history and dismissed K&R C. So ANSI C is really the good entry point.
++++++++++
Sorry, I removed the link to the FREE PDF as it seems to be a copyright issue. Google Search provided me with the link for this an many other classic computer texts in PDF format. I guess this is an on-going problem.
Ray
To save space, the SD File driver is not included by default. It can be added by specifying a file driver list. This is also true for additional serial ports, I2C and SPI drivers. They can all be accessed through standard I/O.
So it became pretty painful to re-write UNIX every time. C was invented for the purpose of rewriting UNIX into something portable. And it worked pretty well, I remember how amazed I was when a local guy somewhen around the end of the seventies, or possibly the year 1980, simply acquired the Unix source (as you could do academically back then) and got it running on his homebrew computer system.
D was mentioned.. I don't know if there really was a D planned at that time, even though there was B and C (and maybe A), there was no consciously planned path there. In any case there is a D now, and it's quite nice. But it's doubtful if it will ever become more popular than any of the other languages that aren't part of the Big Group (which I won't try to list explicitly because everyone probably have their own opinions of what that constitutes - although C, Java, C++ are of course part of that list. And a small handful of others.)
-Tor
Ray
-Tor
I programmed in K&R C back in the mid to late 80's on an IBM PC and an AT&T 3B 2. This was before the ANSI C spec was published in 89, afterwards the compilers I used started supporting that syntax by the early 90's. This was over 20 years ago, and I recall we had to use compiler switches to select the C variant. I imagine that most of that source code has long since been re-written or sent off to the bit bucket. It was also prior to the widespread adoption of open source development techniques, so I imagine finding any of this archaic style C online will be tough.
Yes, of course. But most of it has probably now been migrated to ANSI C. There is really no point in reverting to K&R C for any reason.
Ross.
I'm not sure who interpreted the question correctly. As for C code in K&R style, I have migrated all of mine to ANSI over the years. Including the microEmacs source I once ported to a 16-bit minicomputer - its C compiler was as close to K&R as I can imagine. Of course that old code is still there somewhere down there in its Git repository.
-Tor
Ray
variable = (struct abcd *)malloc (size);
With ANSI you don't need or want that cast: Just
variable = malloc (size);
So it's easier to write better code with an ANSI compiler, and it's also more portable (standard libraries), but I can't offhand think of anything that can't as well be done with a K&R compiler. So writing UNIX (which wasn't that big to start with) shouldn't be a problem as far as the compiler is concerned.
-Tor
Well, how exactly are you going to have all the multiple users share the resources of one Propeller?
I suppose that having a few users log in and an administrative oversight in some instances might be handy for process control in a factory setting, but the Propeller's strongest points are its uses and applications without an OS... where it can handle timing critical tasks with precsion and flexiblity.
Certainly the Propeller is about education, but it should focus of what can be best learned with it. And topics should be useful in today's world.
Sure one can teach pottery, basket making, and black smithing for the sake of education, but they really are quaint throwbacks. How about K&R C on AppleDOS or CPM with data storage on a cassette tape recorder?
These days, System On Chip (SOC) devices seem to work well with Linux and can do as a server connected to the internet in a way that multiple users can simultaneously share the server. But with only 32Kb of RAM and serial ports for modems connected to dumb terminals, you are asking users to revert to computers of the 1960s.... and spending a lot of time, cash, and effort to do so.
My feeling the the Propeller doesn't need to replicate Unix to be a significant educatonal resource. It has a vast amount to offer to those that use it to find a different way for micro-controller architecture. The Propeller contrasts the most widely accepted schemes of what computer architecture is and can be.
If you want to teach multi-user systems and systems administration,
Just get a CubieTruck, add a SATA harddisk, load Linux ... and all and everything is readily available. You can even have GCC, Python, Java, and more. But you might as well load any old junk PC with Linux and get as good results.
I am dismayed by all the abuses promoted as being 'educational' these days, mostly by touts that have no idea what education's real burdens are.
Ray
Minix at one time appealed to me, but the actual book is very expensive. (I think they are up to version 3 now) So with FREE software, and expensive documentaton; I decided to be more patient with learning LInux. That has paid off for me.
In Chinese the term 'ambition' is represented as 'wild heart'.
Sometimes we expect too much, too soon. And the usually result is that someone is willing to sell use rather expensive 'educational' materials and serivices. But the reality is that some things just can't be fast tracked, you learn by doing and thinking a bit. After using LInux for 5 or so years, it is much easier to comprehend how it works. Maybe now I could get into reading the source code in C.
But I doubt if I will ever desire a UNIX/Linux on the Propeller or the Propeller2. It is better suited for using SDcards as mass storage and they use FAT32.
I do have a CubbieBoard1, and that is a great little platform for Linux. The CubbieTruck is their third product and even better. I think that would be the optimal tiny Linux platform. It can already load Ubuntu. And you can use GCC immediately.
But I will always turn to a Propeller to learn lower level concepts and methods. There is a huge niche in learning for a programable device that doesn't try to do everything and doesn't have a general purpose OS... and that is where the Propeller actually excels.
If you are trying to decide between Minix and Linux, just consider that something like 70% of the world wide web is running on Linux devices. What Google, Apple and MS provide is end-user desktop OSes.
I've got NitrOS9 on my CoCo 3, and it's a pretty nice multi-user system, capable of running in 64K or so RAM, though it really starts to perform at 128 and up.
You don't use a car to plow a farm field or a farm tractor to drive to the mall. Use the right tool for the job. If it's for education it is even more important to learn what tool is right for the job at hand.
You may want to read up on EPA-Tractors...
They started out as ordinary cars that was rebuilt for use as farm tractors, mostly during WWII, when the 'real thing' was difficult to source.
There's still a large scene for these in Sweden. So big in fact that their 'DMV' had to create a class for them(A-Tractor) later
They still can't go faster than 30Km/h, but can be some of the hottest things on wheels...
And legal for 16year olds to drive...
(Minimum age for a Class B license there is 18. So the alternatives are bicycles, mopeds, or EPAs... And only one has room for your girlfriend... )
If all you have(or is allowed to use) is a hammer...
Dang it, I just read the NitrOS9 page and I'm suddenly wishing I used a 6809e for my retro computer project rather than a 65c02.
I'll agree that mass storage is needed.
But the Propeller has more than enough processing power (MIPS)... as long as you're using character interfaces and not GUI's.
Case in point: MPE/iX (MPE running as an application under HP/UX) on an HP 3000 in the mid 90's. 100+ users in only 128MB of RAM. I'm not sure what the rating for the machine was, but I doubt it was more than 20 MIPS.
Walter
Good point, but we have a lot of choices available, so we may as well choose a better tool for the job.
Interesting thing about the EPA's. Areas of Canada allow young and unlicensed drivers to drive farm equipment on the roads as well. I don't think they can take them into cities or towns though.
When I was in Italy a few years back I found out that a 15 year old could drive, although they were restricted to a specific type of car, and IIRC only during the day. Quite a surprise that was.
Totally. I've got two of them in tubes. One of these days... I really like that 8bitter. Great assembly language.
Honestly, the 6809 is powerful enough to be worth some emulation / expansion on the P2. NitrOS9 would adapt to it as a target with very little work...
But more realistically, an OS built in the same way, perhaps with some compatable structures might be a winner. Good thoughts anyway.
Evil thought: Just rip the 6502 out One retrofit, and you are likely in business! I've got a spare
Not evil and possible without too much disruption, as the retro computer I'm building exists to be hacked. The support chips and address decoding logic are 100% compatible. The 6809e isn't pin or clock signal compatible with the 6502, but they're close enough that you can build an adapter that plugs into the socket. It remaps the pins and generates a new clock signal. I've seen projects online for the Apple II and Atari 800 with new 6809e ROMs in them. You can do the same thing with the 65c816 too, although the benefit seems less clear to me.
They stopped making the 6809e, but used system pulls are available quite cheaply.
But they are best done AFTER you get an education in the basics. That is the FUN stage, where the hobby begins. It may sharpen your skills for a career in computer science, but not really be a direct economic objective.
My main point about the need for multi-user systems is that there is simply a big bottleneck if you are using serial ports, modems, and dumb terminals. Getting a device with included LAN capability built-in is really much easier to build and support.
Has anyone actually built and deployed a Propeller with multiple modems and an OS that allows more than one user to log in at the same time? Or are we just talking?
The majority of what I do on a Propeller excludes even a file system. I have amply file system storage on other devices ... desktop PC, notebook, and so on.
If I really want to play around with something, Spinix and David Hein's pfth Forth really are very satisfying. I can actually read all the source code in PASM, and use the system fully.
That was first written in C, and then optimized by full conversion to PASM. (So you can use it to comprehend the relationship between the two.)
When it comes to a Quad-copter flight control system, I'd go with the Propeller any day. RTOS are needed and that is the kind of thing the Propeller does well.
I've been tempted to acquire a CoCo 3 myself, remembering my days of using a Dragon 32 (6809, CoCo 1 compatible basically). I had the full listing of FLEX at some point too, but I don't know where it ended, I haven't seen it for years. The 6809 is a nice processor. But I've got enough on my hands already (65C02 and Z80 systems) so I've tried to hold back on the CoCo3 investment. I'm not sure if being reminded by posts like yours is helping...!
(I actually have a Hitachi 6309 'enhanced 6809' CPU in a drawer somewhere.)
-Tor
Vintage computers like the CoCo are available on eBay quite cheaply. It's the shipping that can get expensive, particularly for someone in Norway.
I purchased a TI 99/4A because I always wanted to play Parsec, plus it the first 16 bit home computer. I got a complete system for less than $100 USD. My kids have a blast retro gaming on the TI 99/4A. They love to play Amazing where you are mice running from cats. I figure that a CoCo 3 should be around the same price.
My retro computer probably cost me more than a used VIC-20, but I wouldn't have learned as much about how address decoding or I/O chips work which was the point of a DIY retro machine.
If someone is having trouble with getting a vision of what C is and what it is intended to be, reading that will help greatly.
"Since C is relatively small, it can be described in a small space, and learned quickly. A programmer can reasonably expect to know and understand and indeed regularly use the entire language." -- Kernighan and Richie: 1988, page 2.
I think that says it all and is especially why I am attracted to C while so wary of C++. My main point is that newcomers and even old-timers don't have to dig through thousands of pages of text and libraries to figure out how to program something. C was special in its day; and it still is.
I did order a copy of the companion text, The Standard C Library by P.J. Plauger, 1992 as it seems to be the logical companion reference. I already have The UNIX Programming Environment by Kernighan and Pike, 1984.
The three texts are all short by today's standard of computer books and when read as a group puts you well on you way to understanding both C and Linux (Linux is simply a derivative of UNIX for personal computers). In fact taken together, they will move the new learner rapidly ahead. Most of what has been written since has had to build upon these, and often go the route of lots of graphic and screen shots of the GUI instead of really explaining the key points in a need-to-know fashion.
++++++++++++++
Taiwan seems to not allow anyone under 18 a driver's license, but recently decided that those of use that have them no longer need to bother with renewal exams -- the one you have is good for the rest of your life. Different strokes for different folks.