Mars Rover Controlled By Java

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Alan Balmer

    #61
    Re: Mars Rover Controlled By Java

    On 21 Jan 2004 14:59:32 -0800, hhc314@yahoo.co m (Harry Conover) wrote:
    [color=blue]
    >A skilled programmer can even write in GWBASIC and produce fantastic
    >results through the clever use of (IIRC) PUT and POKE commands, which
    >allow the insertion of machine language instructions in the GWBASIC or
    >the Atari BASIC command stream. (I wonder how many of today's
    >programmers would be resouceful enough to use of such extreme
    >techniques to achieve their goals?[/color]

    Programmers tend to be as resourceful as necessary, to the detriment
    of the remainder of the code's life cycle.. Fortunately, such
    techniques are usually not necessary on today's programming platforms.
    Unfortunately, some programmers use them anyway.
    [color=blue]
    > Heck, for that matter how many have
    >ever even directly used machine code?)[/color]

    Rarely needed, even in my day. Assembler language is much preferable,
    and lots of people still use it. Direct use of machine code is (was)
    sometimes useful for debugging and patching.

    --
    Al Balmer
    Balmer Consulting
    removebalmercon sultingthis@att .net

    Comment

    • Randy Howard

      #62
      Re: Mars Rover Controlled By Java

      In article <400EF466.3770B 35C@Sonnack.com >, Chris@Sonnack.c om says...[color=blue]
      > One reason they make a diff on large aircraft is the proportional
      > difference in increasing the wing area of an already large wing.
      >
      > Keep in mind that ALL aircraft land with flaps.[/color]

      That's simply not true. Not only do some airplane designs simply not
      have flaps, but accomplished pilots practice flapless landings in
      case of a system failure.

      Numerous early Piper aircraft had no flaps at all, and flew very
      well. Same is true for quite a few other designs.

      Even exotic special purpose modern aircraft, such as the Extra 300
      series have no flaps.

      --
      Randy Howard
      2reply remove FOOBAR

      Comment

      • Randy Howard

        #63
        Re: Mars Rover Controlled By Java

        In article <400EF466.3770B 35C@Sonnack.com >, Chris@Sonnack.c om says...[color=blue]
        > One reason they make a diff on large aircraft is the proportional
        > difference in increasing the wing area of an already large wing.
        >
        > Keep in mind that ALL aircraft land with flaps.[/color]

        That's simply not true. Not only do some airplane designs simply not
        have flaps, but accomplished pilots practice flapless landings in
        case of a system failure.

        Numerous early Piper aircraft had no flaps at all, and flew very
        well. Same is true for quite a few other designs.

        Even exotic special purpose modern aircraft, such as the Extra 300
        series have no flaps.

        --
        Randy Howard
        2reply remove FOOBAR

        Comment

        • Michael N. Christoff

          #64
          Re: Mars Rover Controlled By Java


          "Harry Conover" <hhc314@yahoo.c om> wrote in message
          news:7ce4e226.0 401211406.5858d 3e7@posting.goo gle.com...[color=blue]
          > "Michael N. Christoff" <mchristoff@sym patico.caREMOVE THIS> wrote in[/color]
          message news:<ZCZNb.815 1$c1.1022393@ne ws20.bellglobal .com>...[color=blue][color=green]
          > > Java, the software developed by Sun Microsystems in the mid-1990s as a
          > > universal operating system for Internet applications, gave NASA a[/color][/color]
          low-cost[color=blue][color=green]
          > > and easy-to-use option for running Spirit, the robotic rover that rolled
          > > onto the planet's surface on Thursday in search of signs of water and[/color][/color]
          life.[color=blue][color=green]
          > >
          > > http://news.com.com/2100-1007_3-5142...l?tag=nefd_top[/color]
          >
          >
          > Mike, I have no facts to support this, but my guess is that that the
          > PR blurb you post is little more than a bit of marketing spin whose
          > quotes are being read out of context by a few Java enthusiasts.
          >
          > First of all, obviously Java is not an operating system. It's an
          > application programming language or tool targeted to the production of
          > Internet (particularly browser applications). You also cannot
          > implement a true operating system using Java as your programming
          > language. If you doubt this, I'll hand you an 80586 chip with 128-Megs
          > of online memory and chuckle as you try!)
          >
          > Java is absolutely useless except when running on a platform already
          > equipped with an operating system, and many layers of data
          > communications and application programs, where the top levels include
          > an operating TCP/IP stack and browser software.
          >
          > Almost certainly the OS within the rover is a highly optimized
          > real-time kernel likely programmed in assembler, C, C++ or some other
          > system implementation langage. (Perhaps even Ada, although that would
          > be a long-shot.) Java is certainly not a member of this tight-knit
          > club of system implementation languages, and I simply cannot picture
          > anyone even attempting to implement a real-time OS using it. Java is
          > not running the Rover, its real-time operating system is.
          >
          > My guess is that when you get details of the facts supporting this PR
          > release, you'll learn that certain Java apps form a portion of the
          > man-machine interface design employed for the entry of command
          > sequences here on earth, since Java is capable of simpllifying the
          > design of this type of software over what could otherwise be
          > programmed using xlib, C, C++ or even (gasp) assembly language, since
          > the programming of a control entry MMI is today not exactly rocket
          > science (no pun intended). (Heck, you could probably even use Visual
          > Basic for the purpose, if really desperate! Back in the early days of
          > surveilance satellites, we even programmed the ground based command
          > interpreters for the K-series birds using Fortran, and they were both
          > trivial to program and functioned perfectly.)
          >
          > Also, at last count the foundations of the Internet rested heavily on
          > C/C++/Assembler implementations running on Unix platforms, however
          > this may or may not have changed over the years. (At last count, the
          > thousands of different routines supporting operation of the Internet
          > involved the use of nearly as many different programming tools...since
          > so long as they all result in the production of really tight, robust,
          > executable machine code, the choice of programming language really
          > doesn't matter.)
          >
          > When a firm intentionally confuses application programming tools such
          > as Java with real-time OS implementation methodoloy, in my mind they
          > both risk and deserve justifiable ridicule. I don't believe that Sun
          > intended to create such confusion in their publicity release, however
          > a few Java enthusiasts do seem bent on misrepresentati on of Java's
          > capabilities, potentially at Sun's credibility expense.
          >[/color]

          a) the article never said that Java was on the rover itself. b) Java is
          more than a language, it is a platform. c) the fact that Java needs an
          underlying OS has never been disputed by anyone. The idea is for Java to be
          portable to other _already developed_ platforms. It would not be very
          portable if you had to dual boot into a Java OS to run Java apps. d) There
          is no reason to believe a real time system cannot be virtual machine based.
          It is technicaly feasible and all the benefits of seperating code from
          hardware/OS are just as relevant on embedded systems as they are on
          desktops. Just look at cell phones. (note: many many people laughed at the
          idea that something as small as a cell-phone could run any VM-based
          language. Java on top of VM on top of embedded OS seemed way too bulky to
          ever be practical. But Moore's law apparently does not apply only to
          desktops, but even embedded devices). Will a real-time Java have all the
          features of regular Java? Doubtful. ie: automatic garbage collection may
          not be possible.



          l8r, Mike N. Christoff



          Comment

          • Michael N. Christoff

            #65
            Re: Mars Rover Controlled By Java


            "Harry Conover" <hhc314@yahoo.c om> wrote in message
            news:7ce4e226.0 401211406.5858d 3e7@posting.goo gle.com...[color=blue]
            > "Michael N. Christoff" <mchristoff@sym patico.caREMOVE THIS> wrote in[/color]
            message news:<ZCZNb.815 1$c1.1022393@ne ws20.bellglobal .com>...[color=blue][color=green]
            > > Java, the software developed by Sun Microsystems in the mid-1990s as a
            > > universal operating system for Internet applications, gave NASA a[/color][/color]
            low-cost[color=blue][color=green]
            > > and easy-to-use option for running Spirit, the robotic rover that rolled
            > > onto the planet's surface on Thursday in search of signs of water and[/color][/color]
            life.[color=blue][color=green]
            > >
            > > http://news.com.com/2100-1007_3-5142...l?tag=nefd_top[/color]
            >
            >
            > Mike, I have no facts to support this, but my guess is that that the
            > PR blurb you post is little more than a bit of marketing spin whose
            > quotes are being read out of context by a few Java enthusiasts.
            >
            > First of all, obviously Java is not an operating system. It's an
            > application programming language or tool targeted to the production of
            > Internet (particularly browser applications). You also cannot
            > implement a true operating system using Java as your programming
            > language. If you doubt this, I'll hand you an 80586 chip with 128-Megs
            > of online memory and chuckle as you try!)
            >
            > Java is absolutely useless except when running on a platform already
            > equipped with an operating system, and many layers of data
            > communications and application programs, where the top levels include
            > an operating TCP/IP stack and browser software.
            >
            > Almost certainly the OS within the rover is a highly optimized
            > real-time kernel likely programmed in assembler, C, C++ or some other
            > system implementation langage. (Perhaps even Ada, although that would
            > be a long-shot.) Java is certainly not a member of this tight-knit
            > club of system implementation languages, and I simply cannot picture
            > anyone even attempting to implement a real-time OS using it. Java is
            > not running the Rover, its real-time operating system is.
            >
            > My guess is that when you get details of the facts supporting this PR
            > release, you'll learn that certain Java apps form a portion of the
            > man-machine interface design employed for the entry of command
            > sequences here on earth, since Java is capable of simpllifying the
            > design of this type of software over what could otherwise be
            > programmed using xlib, C, C++ or even (gasp) assembly language, since
            > the programming of a control entry MMI is today not exactly rocket
            > science (no pun intended). (Heck, you could probably even use Visual
            > Basic for the purpose, if really desperate! Back in the early days of
            > surveilance satellites, we even programmed the ground based command
            > interpreters for the K-series birds using Fortran, and they were both
            > trivial to program and functioned perfectly.)
            >
            > Also, at last count the foundations of the Internet rested heavily on
            > C/C++/Assembler implementations running on Unix platforms, however
            > this may or may not have changed over the years. (At last count, the
            > thousands of different routines supporting operation of the Internet
            > involved the use of nearly as many different programming tools...since
            > so long as they all result in the production of really tight, robust,
            > executable machine code, the choice of programming language really
            > doesn't matter.)
            >
            > When a firm intentionally confuses application programming tools such
            > as Java with real-time OS implementation methodoloy, in my mind they
            > both risk and deserve justifiable ridicule. I don't believe that Sun
            > intended to create such confusion in their publicity release, however
            > a few Java enthusiasts do seem bent on misrepresentati on of Java's
            > capabilities, potentially at Sun's credibility expense.
            >[/color]

            a) the article never said that Java was on the rover itself. b) Java is
            more than a language, it is a platform. c) the fact that Java needs an
            underlying OS has never been disputed by anyone. The idea is for Java to be
            portable to other _already developed_ platforms. It would not be very
            portable if you had to dual boot into a Java OS to run Java apps. d) There
            is no reason to believe a real time system cannot be virtual machine based.
            It is technicaly feasible and all the benefits of seperating code from
            hardware/OS are just as relevant on embedded systems as they are on
            desktops. Just look at cell phones. (note: many many people laughed at the
            idea that something as small as a cell-phone could run any VM-based
            language. Java on top of VM on top of embedded OS seemed way too bulky to
            ever be practical. But Moore's law apparently does not apply only to
            desktops, but even embedded devices). Will a real-time Java have all the
            features of regular Java? Doubtful. ie: automatic garbage collection may
            not be possible.



            l8r, Mike N. Christoff



            Comment

            • Michael N. Christoff

              #66
              Re: Mars Rover Controlled By Java

              [color=blue][color=green]
              > > Java is certainly not a member of this tight-knit
              > > club of system implementation languages, and I simply cannot picture
              > > anyone even attempting to implement a real-time OS using it.
              > >[/color][/color]

              As I mentioned, you would not implement the OS in Java, but would implement
              a VM for the OS that allows one to run Java code with deterministic time
              contraints on operations.

              I posted this already in another thread.

              Jim Sculley wrote:
              <quote>
              In any event this entire discussion has ignored the Realtime
              Specification for Java, implementations of which are being used in
              mission critical apps, such as control systems for a future Mars rover:


              -v05.pdf

              Jim S.
              </quote>



              l8r, Mike N. Christoff



              Comment

              • Michael N. Christoff

                #67
                Re: Mars Rover Controlled By Java

                [color=blue][color=green]
                > > Java is certainly not a member of this tight-knit
                > > club of system implementation languages, and I simply cannot picture
                > > anyone even attempting to implement a real-time OS using it.
                > >[/color][/color]

                As I mentioned, you would not implement the OS in Java, but would implement
                a VM for the OS that allows one to run Java code with deterministic time
                contraints on operations.

                I posted this already in another thread.

                Jim Sculley wrote:
                <quote>
                In any event this entire discussion has ignored the Realtime
                Specification for Java, implementations of which are being used in
                mission critical apps, such as control systems for a future Mars rover:


                -v05.pdf

                Jim S.
                </quote>



                l8r, Mike N. Christoff



                Comment

                • Richard Heathfield

                  #68
                  Re: Mars Rover Controlled By Java

                  Harry Conover wrote:
                  [color=blue]
                  > You also cannot
                  > implement a true operating system using Java as your programming
                  > language. If you doubt this, I'll hand you an 80586 chip with 128-Megs
                  > of online memory and chuckle as you try!)[/color]

                  Send them over. I could do with the chip (and the RAM). Feel free to
                  chuckle, whilst I fetch my screwdriver. :-)

                  --
                  Richard Heathfield : binary@eton.pow ernet.co.uk
                  "Usenet is a strange place." - Dennis M Ritchie, 29 July 1999.
                  C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
                  K&R answers, C books, etc: http://users.powernet.co.uk/eton

                  Comment

                  • Richard Heathfield

                    #69
                    Re: Mars Rover Controlled By Java

                    Harry Conover wrote:
                    [color=blue]
                    > You also cannot
                    > implement a true operating system using Java as your programming
                    > language. If you doubt this, I'll hand you an 80586 chip with 128-Megs
                    > of online memory and chuckle as you try!)[/color]

                    Send them over. I could do with the chip (and the RAM). Feel free to
                    chuckle, whilst I fetch my screwdriver. :-)

                    --
                    Richard Heathfield : binary@eton.pow ernet.co.uk
                    "Usenet is a strange place." - Dennis M Ritchie, 29 July 1999.
                    C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
                    K&R answers, C books, etc: http://users.powernet.co.uk/eton

                    Comment

                    • Jan C. Vorbrüggen

                      #70
                      Re: Mars Rover Controlled By Java

                      > In embedded software, we frequently write to memory addresses that are[color=blue]
                      > in turn mapped to hardware control registers. Early optimizer design
                      > was frequently done by software folk not familiar with this practices,
                      > often optimizing out writes to address that they didn't see being
                      > later read.[/color]

                      ...which is the correct thing to do, IMO. If you want such dead stores or
                      loads to happen in any case, you need to tell the compiler the changed
                      semantics of that value in any case. In fact, on a modern processor, even
                      if the compiler did not optimize the memory operation away, it is quite
                      likely it wouldn't happen at all or in time.

                      Crippling the optimizer is the wrong solution to this problem.

                      Jan

                      Comment

                      • Jan C. Vorbrüggen

                        #71
                        Re: Mars Rover Controlled By Java

                        > In embedded software, we frequently write to memory addresses that are[color=blue]
                        > in turn mapped to hardware control registers. Early optimizer design
                        > was frequently done by software folk not familiar with this practices,
                        > often optimizing out writes to address that they didn't see being
                        > later read.[/color]

                        ...which is the correct thing to do, IMO. If you want such dead stores or
                        loads to happen in any case, you need to tell the compiler the changed
                        semantics of that value in any case. In fact, on a modern processor, even
                        if the compiler did not optimize the memory operation away, it is quite
                        likely it wouldn't happen at all or in time.

                        Crippling the optimizer is the wrong solution to this problem.

                        Jan

                        Comment

                        • Jan C. Vorbrüggen

                          #72
                          Re: Mars Rover Controlled By Java

                          > d) There is no reason to believe a real time system cannot be virtual[color=blue]
                          > machine based. It is technicaly feasible and all the benefits of seperating
                          > code from hardware/OS are just as relevant on embedded systems as they are
                          > on desktops. Just look at cell phones.[/color]

                          Or, indeed, some smart cards (for instance, from GEMplus or axalto).

                          Their advantage is that you need to certify the JVM only once as to its
                          sandbox guarantees, and can then put new applications on the card and
                          certify them without regard to what else is running on the card, while the
                          current practice would require a re-certification of all the software on
                          the card as a whole. Megabucks saved.

                          Jan

                          Comment

                          • Jan C. Vorbrüggen

                            #73
                            Re: Mars Rover Controlled By Java

                            > d) There is no reason to believe a real time system cannot be virtual[color=blue]
                            > machine based. It is technicaly feasible and all the benefits of seperating
                            > code from hardware/OS are just as relevant on embedded systems as they are
                            > on desktops. Just look at cell phones.[/color]

                            Or, indeed, some smart cards (for instance, from GEMplus or axalto).

                            Their advantage is that you need to certify the JVM only once as to its
                            sandbox guarantees, and can then put new applications on the card and
                            certify them without regard to what else is running on the card, while the
                            current practice would require a re-certification of all the software on
                            the card as a whole. Megabucks saved.

                            Jan

                            Comment

                            • Willem

                              #74
                              Re: Mars Rover Controlled By Java

                              )> In embedded software, we frequently write to memory addresses that are
                              )> in turn mapped to hardware control registers. Early optimizer design
                              )> was frequently done by software folk not familiar with this practices,
                              )> often optimizing out writes to address that they didn't see being
                              )> later read.

                              Jan wrote:

                              ) ..which is the correct thing to do, IMO. If you want such dead stores or
                              ) loads to happen in any case, you need to tell the compiler the changed
                              ) semantics of that value in any case. In fact, on a modern processor, even
                              ) if the compiler did not optimize the memory operation away, it is quite
                              ) likely it wouldn't happen at all or in time.
                              )
                              ) Crippling the optimizer is the wrong solution to this problem.

                              Correct me if I'm wrong, but isn't it true that most compilers have some
                              kind of flag (like volatile) to indicate that such writes are not to be
                              optimized away ? And if not, that would be the way to go, wouldn't it ?


                              SaSW, Willem
                              --
                              Disclaimer: I am in no way responsible for any of the statements
                              made in the above text. For all I know I might be
                              drugged or something..
                              No I'm not paranoid. You all think I'm paranoid, don't you !
                              #EOT

                              Comment

                              • Willem

                                #75
                                Re: Mars Rover Controlled By Java

                                )> In embedded software, we frequently write to memory addresses that are
                                )> in turn mapped to hardware control registers. Early optimizer design
                                )> was frequently done by software folk not familiar with this practices,
                                )> often optimizing out writes to address that they didn't see being
                                )> later read.

                                Jan wrote:

                                ) ..which is the correct thing to do, IMO. If you want such dead stores or
                                ) loads to happen in any case, you need to tell the compiler the changed
                                ) semantics of that value in any case. In fact, on a modern processor, even
                                ) if the compiler did not optimize the memory operation away, it is quite
                                ) likely it wouldn't happen at all or in time.
                                )
                                ) Crippling the optimizer is the wrong solution to this problem.

                                Correct me if I'm wrong, but isn't it true that most compilers have some
                                kind of flag (like volatile) to indicate that such writes are not to be
                                optimized away ? And if not, that would be the way to go, wouldn't it ?


                                SaSW, Willem
                                --
                                Disclaimer: I am in no way responsible for any of the statements
                                made in the above text. For all I know I might be
                                drugged or something..
                                No I'm not paranoid. You all think I'm paranoid, don't you !
                                #EOT

                                Comment

                                Working...