Slashdot Mirror


GNU/Linux Running On An 8-Bit Processor

dartttt writes, quoting Ubuntu Vibe: "Dmitry Grinberg has successfully booted Ubuntu 9.04 on an 8 bit micro machine with 6.5 KHz CPU and 16 MB RAM. Grinberg did this experiment on a ATmega1284p, 8-bit RISC microcontroller clocked at 24MHz and equipped with 16KB of SRAM and 128KB of flash storage. Since the RAM was too low, he added 30-pin 16MB SIMM to the machine and a 1 GB SD card to host Ubuntu image. ... To get the world's slowest Linux Computer running, he had to write an ARMv5 emulator which supports a 32bit processor and MMU. A similar machine can be made very easily and everything should come in about $20." There is source code available, but it's under a non-commercial use only license. Just how slow is it? "It takes about 2 hours to boot to bash prompt ('init=/bin/bash' kernel command line). Then 4 more hours to boot up the entire Ubuntu ('exec init' and then login). Starting X takes a lot longer. The effective emulated CPU speed is about 6.5KHz, which is on par with what you'd expect emulating a 32-bit CPU & MMU on a measly 8-bit micro. Curiously enough, once booted, the system is somewhat usable. You can type a command and get a reply within a minute." If you like watching a whole lot of nothing, there's a video of the boot process below the fold.

68 of 361 comments (clear)

  1. Why? by Anonymous Coward · · Score: 3, Insightful

    Why?

    1. Re:Why? by ericloewe · · Score: 2

      Windows (any version) doesn't run natively on any 8-bit processor. Windows 3.1 is sure to be extremely slow to boot when run from something like this.

    2. Re:Why? by Penguinisto · · Score: 5, Insightful

      Why not?

      Seriously... the skills and knowledge can come in handy someday.

      Maybe someone desperately needs to retrofit modern code to crappy old equipment? Maybe the ultra low power requirements of an extreme low-end machine makes this a fit somewhere?

      Most importantly though, he did it because he could. Doing it puts his skill set far above that of most people, and having that on the resume would get him in good with nearly any semiconductor corp on the planet that needs a software or firmware developer.

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    3. Re:Why? by CanHasDIY · · Score: 2

      Then how did it work back in '93?

      Well, since you're the one who claims it did, why not tell us yourself how a 16-bit OS runs natively on an 8-bit system?

      --
      An enigma, wrapped in a riddle, shrouded in bacon and cheese
    4. Re:Why? by Captain+Spam · · Score: 4, Informative

      You are aware that the 80386 processor (what Windows 3.1 was designed for), which was 32-bit, was first released in '85, right?

      Note to a specific age group of Slashdot readers: You are aware exactly how old that fact I just presented makes us feel, right? *sigh*

      --
      Demanding constant attention will only lead to attention.
    5. Re:Why? by SomePgmr · · Score: 4, Funny

      Just ignore the trolls. ;)

      "Why do you want to climb Mount Everest?"

      "Because it's there" ~ George Mallory

    6. Re:Why? by nurb432 · · Score: 2

      I can think of several reasons for 'why not'.

      The most obvious is that for a processor of that caliber, there are much better operating systems available that exist today. Spending time with one of those would be a far more valuable use of time.

      --
      ---- Booth was a patriot ----
    7. Re:Why? by jd · · Score: 4, Insightful

      Alternatively, someone might want to design a new 8-bit CPU for certain embedded tasks where it's essential for there to be low power consumption and a high-end sophisticated OS. There are plenty of extremely slow mechanical operations (combine harvesting, for example) where millisecond responses are not going to be useful but where the complexity of the problem (varying evenness of the ground, varying field shapes, etc) mean you do want to be able to handle many different types of sensor, sophisticated algorithms, etc, within something that needs to be extremely cheap to build/replace and extremely low power to run to be more cost-efficient than having a farmhand (who is likely to be earning minimum wage or below).

      Another option is a System-on-a-Chip. At present, SoC runs into all kinds of problems because of the compromises you have to make to fit everything into one die. If you can reduce the transistors of the CPU component, you can increase the transistors somewhere else, which means this knowledge increases your flexibility in such systems. That's extremely valuable to know, even if you never go to this extreme.

      For deep space probes, radiation is a major concern. Well, for anything in space it's a major concern, but the deeper you go into space the nastier the radiation. It's why the highest-end space-rated CPUs are so primitive compared to commercial CPUs. Being able to reduce the complexity of the CPU and utilize the extra space for redundancy, without reducing the sort of complexity of software the CPU will run, is great news for anyone wanting to rival the Pioneer 10 & 11/Voyager 1 & 2 missions in terms of longevity whilst equally wanting to match Deep Space 1 or the Mars Rovers in terms of flexibility. Knowing that you don't strictly need a 32-bit architecture to run Linux and that you can slice out huge chunks of the architecture gives you tremendous power.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    8. Re:Why? by Shetan · · Score: 2

      That may be, but DOS was 16-bit, as was Windows 3.0 and 3.1. Until OS/2 2.0 and Windows 95, there was no particular need for a 386 - a 286 would have worked just fine.

      A 386 provided Virtual 86 mode which was needed to multitask DOS applications.

    9. Re:Why? by dmitrygr · · Score: 5, Informative

      I was bored :)

      --
      -------
      1. Enjoy your job
      2. Make lots of money
      3. Work within the law

      Choose any two.
    10. Re:Why? by dmitrygr · · Score: 5, Interesting

      It's up to 10 KHz now that i've optimized RAM access (new code up later today)

      --
      -------
      1. Enjoy your job
      2. Make lots of money
      3. Work within the law

      Choose any two.
    11. Re:Why? by vlm · · Score: 2

      Incidentally, why are they running Ubuntu on this? They could have taken Minix, which was originally written for 16 bit CPUs, and tried compiling it on this one. That's the smallest Unix that would run on an 8-bit CPU.

      The problem is the native processor has very little memory and storage... I ran minix on a 8-bit Tandy machine with 640K ram as an experiment and that has several orders of magnitude more storage both disk and ram than this processor.. As seen above he interfaced a simm as memory but that won't work natively, so he has to emulate...

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    12. Re:Why? by icebraining · · Score: 4, Insightful

      There's an objective valuation of time that I'm not aware of? Or are you just saying that because you don't find it a valuable use of time?

    13. Re:Why? by batkiwi · · Score: 4, Insightful

      The question is not "why make an 8-bit cpu and run stuff on it". The question is "why load linux on an 8-bit cpu where it's unusable?".

      There are tons of embedded 8 bit processors, and all can run very complex software written in c/c++/etc.

      I think this is cool, but the answer is simply "as a challenge." The microcontroller problem, and making it either powerful or easy to use, has been solved for years and is evolving. Running linux on them was never what was holding them back.

    14. Re:Why? by marcosdumay · · Score: 2

      Alternatively, someone might want to design a new 8-bit CPU for certain embedded tasks where it's essential for there to be low power consumption and a high-end sophisticated OS.

      The one thing you don't put in a system with a tight power envelope is an emulation layer. I doubt that has any practical application, but it is cool.

    15. Re:Why? by hamster_nz · · Score: 3, Insightful

      I think your project is really great.

      You will have learnt so much about the ARM architecture, and have a really good view of how things really work. I'm pretty sure that if you got your hands on an FPGA board you now have the skills to make your own ARM processor.

      This puts you head and shoulder above lot of the 'ubergeeks' that lurk on Slashdot discussing how they can get another 1% from their shiny purple Corsair RAM - they just don't get it!

    16. Re:Why? by hamster_nz · · Score: 4, Funny

      He was waiting for his Raspberry Pi to arrive, so had time to kill.

    17. Re:Why? by pspahn · · Score: 2

      And you know how when a V of geese flies overhead, there is often a side that is longer than the other?

      It's because there's more geese on that side.

      Sometimes things don't need explanation.

      --
      Someone flopped a steamer in the gene pool.
    18. Re:Why? by martas · · Score: 4, Funny

      And waiting for 4 hours for ubuntu to boot solved that? ;)
      Interesting project, BTW.

    19. Re:Why? by Farmer+Tim · · Score: 2

      As long as we don't run out of humpback whales we're fine.

      --
      Blank until /. makes another boneheaded UI decision.
    20. Re:Why? by broken_chaos · · Score: 3, Insightful

      It's a societal thing. We're essentially indoctrinated to believe that anything which doesn't make someone money is a waste of time.

    21. Re:Why? by pclminion · · Score: 2

      The last 8 bit processor in a computer was the 8086/8088.

      Those are both 16-bit processors. The 8088 had an 8-bit memory bus but was unquestionably a 16-bit CPU.

    22. Re:Why? by AmiMoJo · · Score: 2

      Try looking at the parts rather than the whole. He has a working ARM emulator with MMU. The AVR is connected to a large SD RAM module. Enough hardware is emulated to allow Linux to boot.

      Getting to the moon turned out not to be a particularly useful capability but many of the component parts developed to do it were well worth having.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  2. Re:Ultimate tech hipsters by Anonymous Coward · · Score: 4, Funny

    You mean, you bought the latest nokia?

    Reminder: this is /. , all people will want to know is: but does it run linux. Since your nokia apparently is unable to do so, this article proves the 8-bit processor superior.

    Have a nice day.

  3. Sometime tomorrow... by Anonymous Coward · · Score: 5, Funny

    They'll submit "FIRST POST"

  4. We could ... by PPH · · Score: 4, Funny

    ... build a Beowulf cluster of these!

    --
    Have gnu, will travel.
    1. Re:We could ... by jd · · Score: 4, Interesting

      Already done. One of the earliest supercomputer-grade clusters was a gigantic mesh of 65C02 processors. You'll need to come up with something better.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  5. My 0.02 by DaMattster · · Score: 3, Insightful

    On one level this shows just how clever Dmitry is and it shows excellent problem solving skills. However, I would be more impressed if he could do something interesting with more modern technology. The technical challenges of booting a modern OS on dinosaur hardware are amazing and if he could take his innovation ability and apply it to state of the art technology, image what he could achieve.

    1. Re:My 0.02 by dmitrygr · · Score: 4, Funny

      I do plenty of other things (flying planes, collecting speeding tickets, etc). This was just for fun. And it was quite fun. I never expected it to be fast enough to use, and am still quite amazed that it is usable (for some definitions of "usable")

      --
      -------
      1. Enjoy your job
      2. Make lots of money
      3. Work within the law

      Choose any two.
  6. Geoworks by Daniel+Phillips · · Score: 5, Informative

    Nice trick. However, let me point out that in 1990 Geoworks GEOS was capable of running a preemptive multitasking GUI looking much like QT but with better automatic widget layout, on an 8 MHz 8088. I will just heave a great sigh in the name of the lost art of tight coding. No, Linux is not tightly coded. I should know. The best you can say about it is, the other guys are worse.

    --
    Have you got your LWN subscription yet?
    1. Re:Geoworks by Ichijo · · Score: 4, Interesting

      No, Linux is not tightly coded. I should know. The best you can say about it is, the other guys are worse.

      Not MenuetOS. It's an operating system with a graphical UI, pre-emptive multitasking, and USB and TCP/IP stacks that boots from a single floppy.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
    2. Re:Geoworks by jellomizer · · Score: 3, Insightful

      My old stuff works so much better then my new stuff...%#@&*&(@+++ NO CARRIER Sorry Computer crashed. Because old software was so optimized... $#@%^^++ NO CARRIER For the old equipment. The only trade off was fault tolerance.

      You will not believe how much Computing power goes to making sure your computer doesn't crash every day.

      Back in the old days computers crashed much more then it does now. And it isn't that they are better programmers but more to the fact that there was a trade off on how much code in the back end needed to be done to protect the system.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    3. Re:Geoworks by kimvette · · Score: 3, Informative

      Nice trick with Geoworks, but the 8088 is a 16-bit processor on an 8-bit bus.

      Now, GEOS (the predecessor to Geoworks) did run on 8-bit procesors in the '80s, but it was in no way multitasking.

      --
      The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
    4. Re:Geoworks by jeffmeden · · Score: 2

      Nice trick. However, let me point out that in 1990 Geoworks GEOS was capable of running a preemptive multitasking GUI looking much like QT but with better automatic widget layout, on an 8 MHz 8088. I will just heave a great sigh in the name of the lost art of tight coding. No, Linux is not tightly coded. I should know. The best you can say about it is, the other guys are worse.

      "better automatic widget layout" - this made my day. I remember using GEOS as a boy, on a C64. It was a lot of fun going from text menus to an actual mouse-relevant UI, but sophisticated it was NOT. Automatic widget layout? There were 8 icons per window and if you didn't like where they were you could (a)bort, (r)etry, (i)gnore.

    5. Re:Geoworks by cpu6502 · · Score: 2

      That was a limitation of the C64 video chip. Only 2 colors were allowed per 8x8 square, so any attempt to move the icons would have led to a graphical mess (like macroblocking in heavy-compressed video).

      In order to avoid that mess, GEOS assigned every icon to a fixed location. It was intended to fit inside just 0.06 meg of RAM, not to be fancy. (For contrast the Mac OS ran in 0.5 meg of RAM.)

      --
      My AC stalker: " I personally agree with your posts most of the time, but that won't keep me from modding you troll"
    6. Re:Geoworks by david.given · · Score: 4, Informative

      I wrote some code for it: see here (including a Linux86 execution environment, that would allow you to directly run Linux86 binaries from GEOS, that I was really rather proud of).

      I can sum up the coding experience with the phrase: THE HORROR, THE HORROR.

      In order to write code for GEOS you needed a monster, badly written and badly documented SDK and a copy of Borland C. The actual code you wrote was in a C superset called GOC, which was compiled via a buggy preprocessor into incredibly cryptic C, which was then compiled with Borland and linked with a custom linker. Alternatively, if C wasn't your thing, there was an object-oriented dialect of 8086 assembler available. The OO system was bizarre, and allowed for classes to have unspecified superclasses, where the superclass was determined at run time: the system used this to great effect in the UI, where the app author's generic UI was turned into a specific UI implementation for the device. The C bindings were full of bugs, too, including function calls which didn't save all the registers properly...

      The actual architecture exploited the hell out of the 8086 segmentation architecture. Memory was organised as a set of relocatable blocks which were referred to by handles (which, under the hood, were usually segment descriptors). To dereference the memory, you had to lock the block, do your manipulation, then mark the block as dirty if you had changed it, and unlock it. The lock/unlock procedure allowed the system to ensure that the block was in memory, by paging it in if necessary, either from EMS RAM or disk. It was incredibly, utterly, un-Posix, and a complete pain to do anything in. The learning curve was insane.

      Where GEOS really did well was the application stack, which was subtle and elegant. There was a mechanism to allow you to use a file as a heap backing store (using a very similar but annoyingly different API to the block API described above, but that's not really important). The system automagically loaded and saved data from the file as you locked and unlocked blocks. There were standard components for everything up to and including a complete bitmap paint package, a vector drawing package, and a word processor --- and these all used these file heaps as storage. And, of course, you could have multiple components in the same file. OLE! But done right.

      By today's standards, of course, it's all a huge pile of incomprehensible, unmaintainable cruft, all inextricably linked to 16-bit 8086 code. It wasn't just utter mismarketing that killed GEOS: it was the inexorable march of time. It was simply unable to adapt to the 32-bit world. All the clever tricks they did to get decent performance out of an 8086 were liabilities on more modern hardware.

      That said, towards the end, when Geoworks was in its death spiral, they did produce two different attempts to rewrite GEOS for 32-bit RISC processors: GEOS-SE and GEOS-SC. I know absolutely nothing about these other than on the wikipedia page, and if anyone has any info, I'd be fascinated to hear about it.

    7. Re:Geoworks by Daniel+Phillips · · Score: 2

      Interesting. I did a little bit of coding to the GEOS API as well, not much more than building their hello world application, whatever that was. I noticed that the SDK itself would tend to crash if you looked at it sideways. I think the SDK ran on a Sun 1, I could be wrong about that.

      As far as the segment architecture goes, I did a similar thing myself with the 8086 segment architecture, which extended to the 286 protected mode model nicely, and also worked fine on 386, still using the 286 memory model but with 32 bit instruction escapes. Even mapping the segments to disk as you describe, it is interesting how my own parallel work is similar in that respect. The 286 version of it provided a very satifactory level of protection and system robustness, as each segment was protected from each other unless you go an explicitly do something nasty to a segment register. A considerably more robust development model than the everything-mashed-together-in-one-protection-domain Unix model. With the protected, segmented model, my kernel could easy suffer internal segfaults and rarely go down. Just great for maximum hacking gain with minimum pain.

      Well, I don't think the low level machinery is all that important, it is actually quite easy to rebuild. It is the object oriented architecture that seemed to have some kind of special magic. "Sending out methods" as they quaintly called it. I don't quite get your point about the unspecified superclasses. It sounds interesting. Something about GEOS allowed a small team to accomplish more in less time than other teams many times their size. And some of that work has not been equaled to this day. It remains interesting.

      --
      Have you got your LWN subscription yet?
  7. No it won't. by pavon · · Score: 5, Informative

    No version of windows ever ran on an 8-bit processor. Windows 1.0-3.0 would run on an 8086, but that is still 16-bit, and Windows 3.1 won't even run on that, it needs a 286 or higher.

    1. Re:No it won't. by swillden · · Score: 2

      No version of windows ever ran on an 8-bit processor. Windows 1.0-3.0 would run on an 8086, but that is still 16-bit, and Windows 3.1 won't even run on that, it needs a 286 or higher.

      But you could run Windows on an 8-bit processor the same way this guy ran Linux on one -- write an 8-bit emulator for the 32-bit platform you want to run. Except that I don't think you could get any semi-modern Windows to run in 16 MB of RAM.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    2. Re:No it won't. by root_42 · · Score: 2

      An 8088 is still a 16 bit machine. It has 16 bit registers and supports arithmetic operations on 16 bit values. Just the data bus is 8 bit and hence pushing those 16 bit values around the system takes more time...

      --
      [--- PGP key and more on http://www.root42.de ---]
    3. Re:No it won't. by scharkalvin · · Score: 2

      Intel sold the 8088 CPU as an 8 bit processor. It really was a 16 bit machine inside, but with an 8 bit data bus that could use all the 8 bit parts that worked with the 8085 CPU. So many people are confused and think windows ran on an 8 bit machine. BTW windows vers 1 and 2 could run on a 16 bit 8088 PC XT machine. Version 3 and 3.1 dropped the XT support but continued to run on 286 AT machines.

    4. Re:No it won't. by HBI · · Score: 2

      Good memory, you are correct. It had "real mode" (640k) for XT/8086/8088 clones, "standard mode" (16mb/286 prot mode) for AT/286 class machines and "386 Enhanced mode" which gave you virtual 8086 DOS multitasking along with Windows proper.in a 64 megabyte address space. No one had more than 8mb in a 386 at the time anyway.

      --
      HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
    5. Re:No it won't. by toddestan · · Score: 3, Informative

      You can get Windows XP to boot on as little as 18 MB of ram:
      Source.

    6. Re:No it won't. by unixisc · · Score: 2

      The 'bitness' is the #bits in the ALU - the width of inputs to and outputs from the ALU. If that number is 8, it's an 8-bit CPU, no matter what the data bus is. However, if the registers of a CPU are 128 bit and the operations are 128 bit e.g. you can add 2 128-bit numbers, then it's a 128 bit CPU.

  8. Re:75 MHz 286 by kwark · · Score: 4, Interesting

    What 286 ran at 75Mhz? Only 486 cpus ran at those speeds. And AFAIK Debian never had a kernel for non 386 80x86 CPUs.

  9. Re:Ultimate tech hipsters by wagnerrp · · Score: 4, Insightful

    That's simply not true. Those little 8-bit microcontrollers are used all over the place. You probably have several in your desktop, some in your monitor, more in your TV, a whole bunch in your car. You just never see anyone trying to run one as the primary CPU on an interactive computer these days.

  10. Re:Actually, cool! by alexru · · Score: 2

    Question for Linux hackers: is there a reason why the Linux kernel would not be portable to an Atmel AVR microcontroller?

    Linux requires MMU and AVRs don't have it. Memory limitations will kick in as well (the most powerful AVR has 256 kB of flash ans 32 kB of RAM, so external storage will be required)

  11. But does it run... by Qubit · · Score: 4, Funny

    ...oh wait, I see what you did there.

    --

    coding is life /* the rest is */
  12. DMV by j00r0m4nc3r · · Score: 4, Funny

    Let me guess, the DMV ordered 1000 copies..?

  13. 2 Hours? That is fast! by DarthVain · · Score: 4, Interesting

    "slowest Linux Computer running"...

    I beat that score by a large margin. Years ago I took an old 386 Laptop that ran at 25Mhz, I don't recall how much ram it had, but I am going to go with "not much", and booted DSL (Damn Small Linux) in just over 21 hours. Which is over 10x as slow as the one in the article! So technically I think I had the "slowest Linux computer".

    Why did it boot so slow? Well it was also the reason I used DSL, because it was less than 50MB, and I could fit it on a Zip drive. Attached via a parallel cable. It did work, and it did eventually boot, however I had to leave it over night (I thought it would eventually just crash), but it worked its way through. Also on a fun note, when typing and executing commands it was like telneting to the moon, there was like a 4-5 second delay between typing any command hitting execute, and any sort of result. I really just wanted to see if it was possible to install and run an OS on a zip drive connected via a parallel port. The answer is yes, but not very well.

    1. Re:2 Hours? That is fast! by DarthVain · · Score: 2

      Now that I think about it, I think the laptops hard drive was also so small that even DSL was much too large for it. It probably only had a 20MB hard dive in the thing, which would have made it necessary to try the zip drive thing at all if I wanted to use it as a linux machine. I think that necessity is what gave me the idea. Had a useless piece of hardware sitting around that I thought might be useful for something if I could get Linux on it. Turns out I was wrong... Still useless... :)

    2. Re:2 Hours? That is fast! by spauldo · · Score: 2

      The 386 SX used a 16 bit bus.

      It was designed much for the same reasons the 8088 was designed - motherboards and the relevant chipsets were all 16 bit, so a company could save a bit of cash and development time and get an SX out there faster and cheaper than a DX.

      Neither the SX nor the DX had a coprocessor. You could buy one and install it, if the board supported it - I never actually saw an Intel 80387 chip, but I saw a few clones.

      The whole SX/DX thing got more confusing with the 486, since it didn't mean the same thing (SX chips were the same as DX but with the coprocessor disabled).

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
  14. My first linux box by Cito · · Score: 2
    Was a Packard Bell Legend 70 CD Supreme (haha)

    was a 75 mhz, 8 meg ram, had a 4x cdrom (hence the cd supreme) it came with windows 3.11 on it and used trumpet winsock to get online.

    I formatted it and installed Slackware Linux I got from a CD inside a book at "Waldenbooks" store I had bought on linux. I think it was somewhere around 2.0.20 - 2.0.29 era linux kernel.

    Anyhow slackware on a 75mhz/8 meg ram was much much more fun and easier getting online than dealing with win 3.11 and trumpet winsock. I was shocked that slackware recognized the on board modem and the cdrom since the cdrom in that thing connected to a funky riser card.

  15. GNU/Linux on a homebrew microcoded ARM processor by Guy+Harris · · Score: 3, Insightful

    That's how this is best thought of. In effect, he used an AVR chip as the microengine for a vertically-microcoded implementation of ARMv5, with some extensions. It's not as if Linux is running natively on an 8-bit architecture; that's be like saying, for example, that when OS/360 was running on a 90-bit-instruction/32-bit data VLIWish Harvard architecture machine when it's running on a System/360 Model 50.

  16. Re:I'm almost scared to ask by fliptout · · Score: 4, Funny

    If your hobby is 'waiting for stuff to happen', then this is a great project to undertake.

    --
    A witty saying proves you are wittier than the next guy.
  17. Re:I'm almost scared to ask by jd · · Score: 3, Interesting

    To this project or to this discovery? To the project, probably no. Well, other than being excellent practice in problem-solving. To the discovery, probably yes. There have long been arguments over the minimum complexity requirements for a general-purpose OS, which is an important problem to solve as complexity is a governor of many things (cost, durability, power requirements, heat generation, etc). We already know from Turing that any CPU can run any software for any other CPU, provided the memory is available and the CPUs are Turing Machine equivalents. What we've been less clear on is what this means in practice, how to exploit it, and whether architectural limitations violate the Turing Machine equivalency requirement. We now have numbers to work with, a case study, and a proof by example that equivalency is satisfied.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  18. Re:Ultimate tech hipsters by Dzimas · · Score: 4, Funny

    I design musical synthesizers using Atmega MCUs. They work really well as controllers in price-sensitive consumer applications, but booting linux on one is about as sensible as fixing your car with a spoon.

  19. Re:How much more... by dmitrygr · · Score: 5, Interesting

    I don't use a SIMM for the JVM project - but I am going to release a fully working(threads, synchronization, exceptions, interfaces, all the datatypes, etc) JVM for AVRs soon

    --
    -------
    1. Enjoy your job
    2. Make lots of money
    3. Work within the law

    Choose any two.
  20. Re:Ultimate tech hipsters by Zardus · · Score: 3, Insightful

    You mean we're supposed to use a fork??

    --
    You can mod your friends, you can mod your nose, but you can't mod your friend's nose.
  21. Re:Funky specs... 6.5KHz? Really that slow? by dmitrygr · · Score: 4, Informative

    1. the emulated cpu *effective clockspeed* averages 6.5 KHz in released code (10KHz with better RAM code, that i am releasing later today)
    2. Site is still up (it occasionally hic-ups with a 4xx ot 5xx HTTP error, but mostly it is still up
    3. the linux ram is a 30-pin SIMM of 16MB capacity, the interface to which (incl. refresh) I bit-banged using 3 8-bit IO ports. The AVR's internal RAM is used for emulator SoC state, AVR stack, and the icache

    --
    -------
    1. Enjoy your job
    2. Make lots of money
    3. Work within the law

    Choose any two.
  22. Re:Ultimate tech hipsters by cheater512 · · Score: 3, Insightful

    An awful lot of stuff doesn't need that kind of compute power.

    And AVR chips actually pack a massive amount of power. 24mhz is faster than a 486 and when you are reading sensors and similar things thats tons.
    Its only 6.5khz if you try emulating a ARM chip on it.

  23. Remember when you used to be able to... by rnturn · · Score: 2

    ... install Linux on a '486 system with a mere 16MB of RAM? I still recall how POed I was when I needed to borrow RAM frmo another system to install Red Hat because the new Anaconda required 32MB. (Because, you know, all that additional memory was required for that slide show showing you all the cool features that you were probably going to be too lazy to read about.)

    --
    CUR ALLOC 20195.....5804M
  24. Re:75 MHz 286 by batkiwi · · Score: 2

    You're forgetting about 486 DX4 75mhz. Clock trippled baby.

  25. Re:75 MHz 286 by Frohboy · · Score: 3, Informative

    486 came in a DX model which ran at 33/66Mhz. The 1st Pentiums came in at 75Mhz. The only 286 i remember was a Unisys 8 or 10Mhz. I'm just sayin.

    The 486DX4s ran at 75Mhz (with a 25Mhz bus, since despite the name, they only had a 3x multiplier. The DX4-100 had a 33Mhz FSB.). The first Pentiums were 60 or 66Mhz, with no multiplier (i.e. the CPU and FSB were clocked the same). The 75Mhz Pentiums came a year later and ran on a 50Mhz FSB (at 1.5x), and were cheaper (or at least the same price) compared to the 66Mhz model (since you had a faster CPU, but slower bus), if I recall correctly.

  26. Re:Ultimate tech hipsters by teslafreak · · Score: 2

    Also of note, AVR and PIC chips are available in a lot of prototype and home lab friendly packages. Many (most?) of the ARM chips are in xQFP, and you can use those at home, but it's quite imposing.

  27. Re:Ultimate tech hipsters by unkiereamus · · Score: 3, Interesting

    I actually have fixed a car with a fork once.

    Main engine fuse blew out, I was 60 miles from anywhere, and for whatever reason, had a cheap ass fork in my car. Bent up the middle two tines, shoved the outer tines in the fuse holder, taped the hell out of it to prevent shorting and away I went.

    Also, don't try this at home, if the fuse blew, there's probably a reason, etc, etc, etc.

    --
    I needed a sig so people would know who I am, but I was too drunk to make something witty, so you get this instead.
  28. Re:GNU/Linux on a homebrew microcoded ARM processo by Lothsahn · · Score: 2

    So how exactly is a processor running a program to implement another instruction set architecture, with the main memory used by the implemented ISA being accessed by special operations, and with the program and its internal data existing in a separate block of memory, different from, say, a (vertical) microcode engine, running microcode to implement another instruction set architecture, with the main memory used by the implemented ISA being accessed by special microcode operations, and with the microprogram and its internal data existing in a separate block of memory?

    Each would be granted a separate patent?

    --
    -=Lothsahn=-
  29. Re:Ultimate tech hipsters by arkane1234 · · Score: 2

    I feel ya there. I started using Linux for the first time on my brand new 386dx/40 with 5MB ram. (Slackware, 1994 I think)
    I remember X/Window (without the s...) being such a memory hog and requiring 8MB of memory which I didn't have. I learned Linux the right way then, because of that memory problem. Remember, Linux had a target of being a server platform back then. X/Window was never meant to be a point-and-click interface, it was meant to be a GUI interface for graphical context. (or just multiple terminals open at once)

    Nowadays, nearly everything is just 'pop the disk in, let it run, pop it out, reboot, do what you need to do'.

    Linux is competitive in what it's for, being a server platform with an optional GUI attached. What I do is just pop 'wmaker' into the .xinitrc after I install WindowMaker and I'm done. Oh, and changing the /etc/inittab to make the default runlevel "3" so X/Window doesn't pop up.

    --
    -- This space for lease, low setup fee, inquire within!