Shop OBEX P1 Docs P2 Docs Learn Events
Running an OS on the Propeller? — Parallax Forums

Running an OS on the Propeller?

rcxkingrcxking Posts: 3
edited 2011-08-06 18:44 in Propeller 1
Hi everyone!

I'm new with the propeller, and I noticed that there's a lot of SBC's that run CP/M off a SD Card. Since it's possible to run an OS through the Propeller, is it possible to run something like Ubuntu off of a SBC with multiple Propeller chips? I saw the Dracblade Propeller Computer, and if a single Propeller can run and display video, I'm wondering if the Propeller will have enough power to display the graphics a modern OS like Ubuntu requires.

Thanks for your replies!

Comments

  • Heater.Heater. Posts: 21,230
    edited 2011-08-01 17:23
    Absolutely not.
  • rcxkingrcxking Posts: 3
    edited 2011-08-01 17:28
    Oh, so what OS's besides CP/M would the Propeller be able to run?
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-08-01 18:01
    Running CP/M happened because someone (heater intially) had the idea of emulating the instruction set of another microprocessor. For CP/M, it was the 8080 which is 1970's vintage.

    Emulating more recent micros would be needed to run more recent operating systems. I guess that would be a 286 for windows 1.0. The 286 may or may not be possible - I think a subset of 286 instructions includes 8080 instructions.

    Another approach is to start from scratch for an operating system. KyeDos is a text based OS that can run programs much like CP/M, but is written in native Spin. There are other "blocky text" based OS's that are possible using some of the graphics drivers in the obex. This takes things to about the mid 1980s.

    I do believe that a windows type GUI is possible, and I have written some of the elements in C but the program does tend to grow rather fast. I think it is going to need to be written from scratch rather than taking an 'off the shelf' OS like Ubuntu.
  • Mike GreenMike Green Posts: 23,101
    edited 2011-08-01 18:12
    The Propeller (with an SD card, TV display, and PS/2 keyboard) can run Sphinx which is an OS for the Propeller that's self supporting (can compile itself). It has a small bunch of utilities, a very simple text editor, and a Spin compiler / assembler. There's a version that runs on the C3 board and another that runs on several other Propeller boards.
  • prof_brainoprof_braino Posts: 4,313
    edited 2011-08-02 10:40
    rcxking wrote: »
    is it possible to run something like Ubuntu off of a SBC with multiple Propeller chips?
    I'm wondering if the Propeller will have enough power to display the graphics a modern OS like Ubuntu requires.

    http://hive-project.de/ runs a linux - like command line, but not so much GUI.

    Its in German, but Google translate woks fine. I have one of the R13 units built, and some R14 boards.
  • Kevin WoodKevin Wood Posts: 1,266
    edited 2011-08-02 14:52
    prof_braino forgot to mention PropForth, which is roughly analogous to an operating system. Perhaps operating environment is a better term, but the main thing is that it gives you a means to directly interact with the system.
  • Cluso99Cluso99 Posts: 18,069
    edited 2011-08-02 17:45
    There are a number of branches that have successfully obtained various parts of a propeller os. It just requires the time and organisation to bring all these developments together for a nice propeller os of its own. At least the CPM version can be spawned to run and then killed to revert back to the prop os.

    Look at such projects as KyeDos, PropDos, PropCmd, ZiCog (CPM), Sphinx, etc. Some links are in my signature.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2011-08-02 22:58
    Linux is based on Unix, a multi-user OS. That requires more resources. And Ubuntu, like most modern Linuxes, is a GUI interface. Again, that requires more resource.

    CP/M is/was a single user OS with a command line interface.

    But, there are LInuxes that do run in command line mode only and in single user mode. It is possible.
  • prof_brainoprof_braino Posts: 4,313
    edited 2011-08-03 08:47
    So he wants a GUI, and can use one or more props for it, and wants linux OS and can use one or more prop for it.
    Absolutely not.

    And its not possilbe. Excellent!

    So how would one divide the functions of Ubuntu so an individual function or group of functions can be handled by a single cog?

    How many cog-sized function groups would be in the list that includes all Ubuntu functions?

    My thought is first figure out how many cogs are needed and worry about stitching them back together later.

    Once the functions are defined, the interfaces should be straightforward.
  • mindrobotsmindrobots Posts: 6,506
    edited 2011-08-03 09:17
    I think the GUI needs to be better defined.
    I'm wondering if the Propeller will have enough power to display the graphics a modern OS like Ubuntu requires.

    I'm currently sitting at a Mac with a 22" display set at 1680x1050 with a bazillion colors..... this is typical for desktop GUI's and certainly out of scope for a Prop (or multiple Props) to handle. So for this and other reasons mentioned about Linux (in the context the OP asked), the "absolutely not" is warranted.

    Can a GUI be presented? Certainly. My iPhone has a wonderful GUI but I really don't like to use it as a window manager for program development for a number of reasons. In a pinch, you can use Telnet on it to do some command line things.....Jump Desktop is even usable (barely) to connect to a desktop.

    The Prop can present a GUI (with touch screen support) but not with the resolution, speed and functionality of a modern desktop GUI. It's also very taxing on system resources at any level.

    Can Linux be deconstructed and something that looks like Linux at the command line be presented to a user? Certainly.

    At some point, you deconstruct Linux to the point where it isn't really Linux....the user would need to decide what functionality they wanted and then decide if it's look and feel issues (command syntax, file system organization, programming languages) or if it's architectural and not (reasonably) possible on a Prop. Multithreaded, multi-user, protected, page-able memory, etc. - it would be really cool to have the prop able to handle user memory space virtualization at the hardware level, memory protection would be nifty, an executive mode, DMA transfers......but then it wouldn't be a Prop.
  • smbakersmbaker Posts: 164
    edited 2011-08-03 13:48
    Linux is based on Unix, a multi-user OS. That requires more resources. And Ubuntu, like most modern Linuxes, is a GUI interface. Again, that requires more resource.

    I don't think that multi-user or GUI are the defining properties of what can and cannot be run on the prop. We could certainly imagine a simplified multi-user GUI OS running on a prop. There might already be such things as I've seen several GUI OSes shown off in these forums.

    I think the defining property is more a question of scale. I can't efficiently pull a huge 5th wheel trailer with a motorcycle. But, I could pull a little fiberglass luggage trailer. In theory both trailers implement the same service, but the scale differs. Where do you draw the line at what is and is not appropriate? We can look at the extremes and realize that Ubuntu on a Prop isn't feasible, but somewhere out there in the middle of the continuum there is room for someone to push the envelope on how much OS we can fit on a prop.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2011-08-06 07:29
    Running Linux could have some definite advantages as many utilities and editors are already developed in C. Ideally they could be ported over to the Propeller. One good example is a Linux application called Busybox that bundles a lot of utilities.

    http://www.busybox.net/

    I suppose multiuser is not much of an issue if you don't use it like Linux does. At present, Linux takes advantage of the feature to run groups with specific rights that are not really users at all. It seems to be a back door that allows applications to do things that would be less secure in other ways.

    GUI is detachable in Linux. You can downsize your system to run only at command line and many servers have NO Gui for the boost in speed. Other the other hand, Windows is an inseparable GUI which both slows it down and may make it harder to code.

    At some point, one has to get down to basics, BIOS, RAM, Kernel, and File System. Unix/Linux are rather rigorous about what these are. Frankly, the need for a GUI better served in Ubuntu Linux on a desktop as video cards are now often as huge as a computer, and maybe faster.
  • TorTor Posts: 2,010
    edited 2011-08-06 08:58
    You don't need Linux to use the utilities, what you need is that application programming interface, the API. Linux itself (the kernel) demands a lot of features (even in its downscaled embedded version) that you don't really have in a propeller-type chip.

    Back to utilities: Most of them are written in C, and what they mostly need is the C runtime API which is covering quite large parts of what an application typically needs. That's why I could, years back, port many Unix tools to an extremely different minicomputer environment with basically nothing in common with Unix - as soon as C was available there was also a C runtime API that hid the differences. One tool I ported back then was microemacs.

    Another useful API is POSIX, add that to the good old Libc API and you can write almost anything you could wish for. Some of the POSIX sub-APIs will make some demands on what's underneath (i.e. the kernel and the syscalls), but it's still vastly simpler to implement a POSIX API than trying to port a Linux kernel to the Propeller.

    -Tor
  • rod1963rod1963 Posts: 752
    edited 2011-08-06 10:56
    Want Linux, wait until Parallax finishes the GCC port. Then you can start porting over Linux, not the full suite but say the embedded variant. Definitely a non-trivial port, not some thing you're gonna put out over a weekend of pizza and jolt.
  • Heater.Heater. Posts: 21,230
    edited 2011-08-06 11:22
    What embedded vatiant?
    There is ELKS the Embedded Linux Kernel Subset. That is old now and does not seem to be maintained.
    Event that will need external RAM to run on the Prop and hence be as slow as molasses.
  • rod1963rod1963 Posts: 752
    edited 2011-08-06 12:09
    uclinux.

    Yeah I'm quite aware that any port would need oodles of RAM and performance would be horrible. But some people just want it and confuse the Prop with a real microprocessor for which Linux was designed. The fact you can make a dog dance doesn't make it fit to be your ballroom dance partner.

    As far as I'm concerned, if you want to host Linux or say QNX on a SBC get a Beagle and save yourself the headache.
  • TorTor Posts: 2,010
    edited 2011-08-06 12:50
    I just suspect that many of those who say they want Linux aren't necessarily aware of what they're wanting.. my guess is that they don't, in general, realize that Linux is a Unix kernel and that's about it. What they usually associate with "Linux" is really the user level experience, and that is not Linux. Not really. The user level experience can be addressed by other means, as I indicated in my earlier message.
    Those who do know what they want (i.e. they need to run Linux on an embedded device due to some Linux kernel feature like e.g. RT priorities, device driver support, whatever) will probably also know enough to do just as rod1963 suggests: Get a Beagleboard or something similar ARM-based.

    -Tor
  • prof_brainoprof_braino Posts: 4,313
    edited 2011-08-06 14:58
    rod1963 wrote: »
    The fact you can make a dog dance doesn't make it fit to be your ballroom dance partner.

    But it would still be cool to see this particular dog doing this particular dance.
  • rod1963rod1963 Posts: 752
    edited 2011-08-06 16:09
    prof_braino

    Why? It would run horribly slow and be useless. It would only show that the Prop architecture isn't suited for it. It's much easier to take ARM board with 128MB of DRAM and gigs of flash and do a port. You also have serious mind share to help with port which a great plus and you'd have something useful like a development host for the Prop at the end.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2011-08-06 18:44
    Tor's comments are quite realistic. Most wanting Linux don't really comprehend what is an appropriate platform for it. Similar ambitions about GUIs are also dubious.

    What the Propeller does offer is a great microcontroller for sophisticated tasks which can easily exploit some limited video and mouse abilities for i/o. Getting too demanding of the audio/video aspect begins to bog everything down.

    Nonetheless, it is a fun and rewarding environment to learn how boundaries evolve in architectures.
Sign In or Register to comment.