Loading ...
Sorry, an error occurred while loading the content.

Dell Linux netbooks with ARM vs. SheevaPlug with ARM

Expand Messages
  • Thad Floryan
    There was another blurb on Slashdot today about Dell and Linux. Here it is: In an effort to expand its Linux offerings, Dell is researching new
    Message 1 of 1 , Aug 15, 2009
    View Source
    • 0 Attachment
      There was another blurb on Slashdot today about Dell and Linux. Here it
      is:

      " In an effort to expand its Linux offerings, Dell is researching
      " new netbook-type devices and will soon offer netbook Linux OS
      " upgrades, a company official said on Wednesday. The company is
      " researching the possibility of offering new Linux-based mobile
      " devices called smartbooks, said Todd Finch, senior product
      " marketing manager for Linux clients, at the OpenSourceWorld
      " conference in San Francisco. The company will also upgrade its
      " Ubuntu Linux OS for netbooks to the latest version in the next
      " few weeks ... Smartbooks with Arm chips have inherent advantages
      " over x86 chips like Atom, such as lower power consumption and
      " longer battery life, according to Finch. The chips are also
      " becoming more powerful, as indicated by the growing number of
      " applications on smartphones, he said. 'I think it's natural
      " and reasonable for us to begin looking at them as they begin
      " scaling their processors up.'"

      Looks like ARM CPUs are the way to go; 1200 bogomips is nothing to
      sneeze at and a test I ran today (see below) showed the SheevaPlug
      outperformed one of my desktops running Fedora.

      The test was compiling and (simple) execution of one of my major
      programs from a decade ago. As you can see, there are 190 C source
      files, 75 C header files, and 5 machine-independent (*.min) files for
      a total of 350+ K lines of source code comprising the program.

      It's basically a compiler, runtime, database processor, etc.; had I pursued it further back then, it'd probably replace Java -- Gosling
      and I exchanged "some words" back then about runtime efficiencies. :-)

      As just a quick test, it compiled/linked fine in just a few minutes.
      Curious, I "enabled printcode" and typed two statements, exited and
      displayed the code dump. It looks fine (noting the SheevaPlug is on
      UTC and it's a little-endian system).

      Note the program during its make procedure determines the architecture
      of the system upon which it's being built (big/little endian and other
      system quirks) and generates its code tables appropriately. It's run
      unchanged across MC68K, HP-PA RISC, Sun SPARCs, RS6000, SGI, VAX,
      Alpha, Intel, AMD, etc. systems.

      For the curious, here's an endian-ness routine I wrote 17 years ago:

      /*----------------------------------------------------------------------
      * CHECK_ENDIAN -- recognize and identify three kinds of endian-ness
      *
      * Returns:
      * 0 = unknown
      * 1 = big-endian (MC68K, HP-PA RISC, Sun, RS6000, SGI)
      * 2 = little-endian (VAX, Alpha, Intel)
      * 3 = PDP-11 endian
      *
      * Author: Thad Floryan, 14-May-1992
      */
      int CHECK_ENDIAN()
      {
      unsigned int u = 0x01234567;
      unsigned char *p = (unsigned char *)&u;

      if (0x01 == *p) return 1;
      if (0x67 == *p) return 2;
      if (0x23 == *p)
      {
      if (0x01 == p[1] && 0x67 == p[2] && 0x45 == p[3]) return 3;
      else return 0;
      }
      return 0;
      }


      That's what code portability means, and proper system design. Here's
      the logs from the SheevaPlug:

      root@debian:/media/usbhd/thad/pdms/src# uptime
      01:31:44 up 13 days, 16:08, 1 user, load average: 0.11, 0.13, 0.15

      root@debian:/media/usbhd/thad/pdms/src# df
      Filesystem 1K-blocks Used Available Use% Mounted on
      rootfs 519168 195268 323900 38% /
      tmpfs 257816 0 257816 0% /lib/init/rw
      varrun 257816 272 257544 1% /var/run
      varlock 257816 0 257816 0% /var/lock
      udev 257816 12 257804 1% /dev
      tmpfs 257816 0 257816 0% /dev/shm
      tmpfs 257816 38712 219104 16% /var/cache/apt
      /dev/sda1 244136352 119008 244017344 1% /media/usbhd

      root@debian:/media/usbhd/thad/pdms/src# uname -a
      Linux debian 2.6.22.18 #1 Thu Mar 19 14:46:22 IST 2009 armv5tejl GNU/Linux

      root@debian:/media/usbhd/thad/pdms/src# ls *.c | wc -l
      190

      root@debian:/media/usbhd/thad/pdms/src# ls *.h | wc -l
      75

      root@debian:/media/usbhd/thad/pdms/src# ls *.min | wc -l
      5

      root@debian:/media/usbhd/thad/pdms/src# cat *.c | wc -l
      318995

      root@debian:/media/usbhd/thad/pdms/src# cat *.h | wc -l
      17481

      root@debian:/media/usbhd/thad/pdms/src# cat *.min | wc -l
      14508

      root@debian:/media/usbhd/thad/pdms/src# ll pdms
      -rwxr-xr-x 1 root root 3336890 Aug 16 01:06 pdms*

      root@debian:/media/usbhd/thad/pdms/src# file pdms
      pdms: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically \
      linked (uses shared libs), for GNU/Linux 2.6.16, not stripped

      root@debian:/media/usbhd/thad/pdms/src# ./pdms
      PDMS® for UNIX®, Version 1.00 Copyright © 1999 by ThadLABS
      ThadLABS Software Free Trial


      *ena prtcd

      *ty @date + @int(@sqrt(123)) days
      08/27/2009

      *ty @fdate
      Aug 16, 2009

      *q
      root@debian:/media/usbhd/thad/pdms/src# cat dump.lis

      Direct statement GENERATED CODE DUMP: Sun Aug 16 01:18:33 2009
      For @... = [ty @date + @int(@sqrt(123)) days]

      Header Information

      000000 84 CPsfix, codoff to string fixup chain
      000004 0 CP.CPxxxx (not used)

      Generated Code

      000008 LIRC 0,=123 (=0x7b)
      000016 CVINRR 0,0
      000020 RSQRT 0,
      000024 CVNIRR 0,0
      000028 DTDAYS 0,
      000032 LFBD 1,+36 (codoff=72 (0x48))
      000040 ADDDRR 0,1
      000044 TYPEDV 0,+28 (codoff=76 (0x4c))
      000052 LSRO 0,+28 (codoff=84 (0x54))
      000060 TYPESV 0,+16 (codoff=80 (0x50))
      000068 RET

      Encoded FDTs: 1

      000072 @DATE [0x00f80000]

      Encoded Formats: 2

      000076 0x00000000 (freeform)
      000080 0x00010000 (FNiow=1)

      Strings: 1

      000084 SDptr=92
      000088 SDlen=1, SDnext=0
      000092 "\012"

      000096 END

      Direct statement GENERATED CODE DUMP: Sun Aug 16 01:18:37 2009
      For @... = [ty @fdate]
    Your message has been successfully submitted and would be delivered to recipients shortly.