I notice that both responses to my comparison of the
evidence to the
previously ordered definition have focused
too hard on dynamic versus
static.
I am a programmer and I do know what the words usually
means
and how the concepts are usually implemented in
practice, so please read my
explanation more carefully, as I
am being very technical here.
My main
point was about what counts as symbolic. And in
the context of this trial
(only), "Symbolic" is defined as
almost anything but the actual memory address.
So the court
may rule that a "symbol index" or "field index" as practiced
by
both the Sun JVM and the Google DalvikVM may count as a
symbolic
reference.
A key thing that these two virtual machines have, which
older, saner instruction sets do not, is one or more special
instructions or
addressing modes where the instruction
encoding explicitly says "The location
with this yet-to-be-
resolved-thing" and a different set of instructions or
addressing modes where the instruction says "That location".
In
contrast, most other instruction sets I have worked
with have only an
instruction form that says "That
location", and then program file formats
contain a separate
"relocation table" listing the places where instructions
need to have the offset or address field replaced by the
resolved value of a
symbol.
In traditional systems, the loader (if not the link
loader
before it) goes through the relocation table and
fills in all the
offsets and addresses before the
program can be run, as the code would
otherwise refer to the
wrong memory locations (namely those indicated by
whatever
bit pattern is stored in the unresolved instructions,
sometimes 0,
sometimes some bits related to the relocation
table).
In Java byte code
and Dalvik word code, the extra
instructions potentially allow unresolved
references to
remain in the running program without random bad effects.
It is
suggested, but might not be true, that if such an
unresolved reference is left
in the program by dexopt (or
the JVM '104 mechanism), that the VM will do the
lookup
during instruction execution, which would satisfy the
"dynamic" prong
of the courts definition of "symbolic
reference", unrelated to the issue of
dexopt being static or
dynamic itself.
[ Reply to This | Parent | # ]
|