Aa��^/n a b b y d e h jHH d_��SK�I�`H���H������ff@�����
�
�
�����
�����d a �Footnote
TableFootnote*��. . / - � �:;,.�!?rune6$ \"aTOCHeading(+APIsInteroperabilityJavaSoftLiteMKLinuxMyricomSelfhostSolarisTimeoutXgdbappletsawt_lockbytecodedebugger debuggersdereferenceddisassembler hashtablejavapjpeglongjmpmonothreaded notifyAllportabilityruntime schedulersetjmpwakeup
EquationVariables���z��!� ��G� ���� ��m; ��
�e 5 �
��u�u
�
�
�
� �`b y e
� �`
� �` UueU<$lastpagenum>V<$monthname> <$daynum>, <$year>���W"<$monthnum>/<$daynum>/<$shortyear>X<<$monthname> <$daynum>, <$year> <$hour>:<$minute00> <$ampm>Y8<$monthnum>/<$daynum>/<$shortyear> <$hour24>:<$minute00>ooZ<$monthname> <$daynum>, <$year> � ["<$monthnum>/<$daynum>/<$shortyear>\ <$fullfilename>]
<$filename>^<$paratext[Title]>_<$paratext[Heading]>co`
<$curpagenum>a
<$marker1>b
<$marker2>c (Continued)erd+ (Sheet <$tblsheetnum> of <$tblsheetcount>)egfPagepage <$pagenum>ofygHeading & Page<$paratext> on page <$pagenum>uphSection & Page%section <$paranum> on page <$pagenum>
I
y
Y��$
I � �P��$
J � �P��$
K � �QA���$
L � �QA;��$
M � �P��$
N � �P��$
O � �PA���$
P � �P��$
Q � �P��$
R
6QA"
S
QAa��$
T � �QTOC$
U
QA>��$
V
U
UP��$
W
X
XP
X
`
`QAu�
��> �
�"hn �
�mor
�
� fu�
�
�
�a
�
�a[T�
�pa�
�ico��
�
�uum�
�
er^�
�
�
er��
�
�in��
�
���
�
�e o�
�t)�
�age��
�o��
�
� �
�n<$�
�pSe��
�
�e��
�
�>��
�
���
�
���
����
���
�
��
�
��
�
���
�
���
�
����
�
�P�
�
���
�
�M
�
��
�
���!
�P�
�
�� �
�
��
�
��
�
��
�QAa�
�
��
�
��
�
�
�>
�P
���R
�
�P�
�
`�
�u
�
�
��
��
�
��
�
��
�
���
�
���
�
��W
�
��\
�
��f
!
�
��g
"
�
��h
#
�
��i
$
�
��j
%
�
��t
&
�
��q
'
�
��
(
�
��
)
�
��u
*
�
��v
+
�
��w
,
�
��x
-
�
��y
.
�
��z
/
�
��{
0
�
��|
1
�
��
2
�
��}
3
�
��"
4
�
��~
5
�
���
6
�
���
7
�
���
8
�
���
9
�
���
:
�
���
;
�
���
<
�
���
=
�
���
>
�
���
?
�
���
@
�
��6
A
�
���
B
�
���
C
�
��7
D
�
��8
E
�
���
F
�
���
G
�
���
H
�
���
I
�
���
J
�
���
K
�
���
L
�
���
M
�
���
N
�
���
O
�
���
P
�
���
Q
�
���
R
�
���
S
�
���
T
�
��
U
�
��
V
�
��)
W
�
��
X
�
��,
Y
�
��
Z
�
��"
[
�
��#
\
�
��-
]
�
��.
^
�
��/
_
�
��
`
��M
a
�
��5
b
�
��6
c
�
��7
d
�
��8
e
�
��9
f
�
��:
g
�
��;
h
�
��Z
i
�
��R
j
�
��V
k
�
��W
l
�
���
m
�
��}
n
�
��~
o
�
��b
p
�
��c
q
�
��d
r
�
��e
s
�
��f
t
�
��s
u
�
��h
v
�
��i
w
�
��"
x
��o
y
�
��u
z
�
���
{
�
���
|
�
���
}
�
���
~
�
���
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
��
�
�
��
�
�
��
�
�
��
�
�
��
�
�
��
�
�
���
�
�
���
�
�
���
�
�
��*
�
�
��+
�
�
��9
�
�
��
�
�
��
�
�
��I
�
�
��J
�
�
��K
�
�
��L
�
�
��M
�
�
��N
�
�
��O
�
�
��P
�
�
��Q
�
�
��i
�
�
��b
�
�
��c
�
�
��j
�
�
��k
�
�
��l
�
�
��m
�
�
��n
�
�
��$
�
���
�
��&
�
��(
�
���
�
���
�
�
��
�
��v
�
�
��w
�
�
��
�
��2
�
��4
�
��6
�
��7
�
�
��9
�
��;
�
��=
�
��?
�
�
��A
�
��C
�
��E
�
��K
�
��M
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
���
�
�
��
�
�� �
�
B�d" �
)� � � aKd# �
)�� � � bOH$�
$ �
+ ���H$�
��c
�
� �j����UUd�
�H�Ua�
% �
+ �nH�Ua�
��
� �����UUd�
��HH��& �
+ ��HH��
�
�� �
�d�\
B��' �
+ �9
�\
B��-�? �`�
�
��F��/���( �
, �F��/������
�� ��UTUT��`��E��(�) �
- � � ���E��(���E��(���(D.~* �
. �)D.~ �� �#����UUh�
Page 1���->v���6+ �
/ � � � � ����->v���6����->v���6, �
/ � � � � � �����->v���6� �->v��6- �
/ � � � � �%� �->v��6���->vG�i�6. �
/ � � � � ����->vG�i�6 � ����.��C���l/ �
0 � � � � ����.��C���l���A�l���A�l
O S F���->vI�_�0 �
0 � �
����->vI�_� � �d1 �
) � � c9
�HH�3��2 �
+ �HH�3��-
�
�� �`�
�
F��/���3 �
, �F��/������� �UTUT��`�� Ecole d�iInformtique de l�IN2P3
URUT��`�Tunis -Tunisie - June 29 1992H%�4 �
- � � �H%�H%�%D.~5 �
. �v��D.~ ���6� ��6����UUl�
� Page #H{��;�
6 �
+ � �%H{��;�
�� � � � ���`�
���l�{��;�
7 �
+ � ���l�{��;�
O 0 �
0 ���b)>����68 �
/ � � � � �)��b)>����6���)>����69 �
/ � � � � � �����)>����6� �)>���6: �
/ � � � � �� �)>���6��b)>�G�j�6; �
/ � � � � �����b)>�G�j�6 � ����*��C���l< �
0 � � � � ������*��C���l���=����=�
O S F���)>�I��_�= �
0 � �Ior���)>�I��_� � �d> �
) 1 � � d
-H��4�UP0? �
/ � �H��4�UP0H ��H ��FootnoteH(1�$@ �
* � � � � �Footnote1���A �
1 �1���61���1H�[��$B �
* � � � � �H1 Rule�[��C �
1 �7�[����l�[���Hw�.1]hP0D �
2 � � �Hw�.1]hP0H�$H�$H1 Rule� �H��SA��P0E �
2 � � ����H��SA��P0H�IH�I
Table RuleH���[����F �
* � � �� � � �
Table Rule[��G �
2 ���j[��C���l[��H2� H �
3 � � ��� � �_�
Title Rule�I �
- ���
)�H(�
P0J �
- � � �P0H(�
P0H2H2��H�
;w�P0K �
- � � �1H�
;w�P0H)H)
Title RuleHZ���L �
* � ��
TableFootnote�dM �
)$ � � e ��`��N �
+ ��� ��`��� ���`� D<$paratext> <$pagenum>
H`
$ �%�C�^�O �
+ � �E
2 �%�C�^� ��S ��STable of Contents SpecificationHd� �
4�
fTae \
B��� �
5 ��\
B�����2�
3
8
P
@
:
<
>
D
F
N
H
J
L`�
�e Porting problems encountered
-D`�
�understanding JavaSoft�s code
c`
�0fixing bugs and detecting Solaris specific code
P0�`�
�improving debugging tools
�`
�thread creation
0�`�
�stack direction
�`�
�
*dynamic linking
�`
�)implementing non blocking calls (IO,...)
`
�reentrance / thread-safety
<�`
�suspend / hidden system locks
[`
�/64 bit issues (back pointers, pointer size...)
�z`�
�4math errors in the systems (mainly floating points)
�`�
�C�.machine dependencies (includes and libraries)
�@h
��S... TESTING THE SYSTEMficH$�
R �
+ � �H$�
l$ � �
I�H�Ua�
S �
+ � � ���H�Ua�
l$ � �
J@
:HH��T �
+ � �oinHH��l$ � �
Kava\
B��U �
+ � �Jan\
B��l$ � �
LrovF��/���V �
, � � �hadF��/���l$ � �
MD.~W �
. � � �D.~l$ � �
N�HH�3��X �
+ � �
HH�3��l$ � � �
ObitH{����
Y �
+ � � �H{����
l$ � � �
O poF��/���Z �
, � � �dciF��/���l$ � �
P THD.~[ �
. � � �+ �D.~l$ � �
Q$ ��`��\ �
+ � �+ � ��`��l$ � �
T$\
B���
+ �+\
B��l$
� �
S$d_
4+ �
g\
B��`
5
ov\
B���V
F��/
`�
�Native code interface
D`
� �
c`
7
�%No differences at the bytecode level
$�`
�
�
�
+BAll the loaded libraries are searched to find the address
� �@
�/of a function given its ASCII name
{���`
6
�
�`
8
�)The interpreter loop calls this function
�`
9
���
7`
:
�7Native methods may call a few functions of the runtime
[V`
;
�+exceptions
~u`
<
�java interpreter loop
�`
=
�etc...
\\
B��b
+
\
B��l$
R�d�
4
h
�\
B���
5
\
B��% ��
`�
�Porting JDK
D`
�
�c`
!
�%
�Java Development Kit description
d�`
�
�`
"
�Porting phases
dif�`
�te
e�`
#
�JDK implementation choices
�
+�`
�ib
i`
� fPorting problems
\
B���
+
eit\
B��l$
Ud�
4uti
i
\
B���
5
w \
B���me
except
`
(
�etJava Development Kit
=D`
)
�
c`
$
�
+Java virtual machine
�`
2
�
�`
%
�$Native code support
�`
+
�
4javah
�`
'
�
�`
&
� �Java packages
`
,
�classes
<�`
-
�native libraries
[`
4
�
z`
*
�Java tools
��`
.
�&javac, javadoc, appletviewer, jdb ...
\
B���
+
\
B��l$
Ud�
4mem
j\
B���
5
rle\
B���
�it\
M
8
P
@
:
<
>
D
F
N
H
J
L\
B���
+
\
B��l$
S�d�
4me
kexpt\
B���
5
tJa\
B���
v`
�Java virtual machine
D`
/
�od
uc`
��java� binary
�`�
�Byte code loader
&�`
0
�s
(Byte code interpreter (with exceptions)
�`
�ibNative code interface
�`
1
�Thread support
ols�`
3
�
."Memory management (GC, finalizer)
`
5
�Basic java native methods
<�`
�/java.lang, java.io, java.util, sun.tools.debug
[`
Q
�
�z`�
�mJava basic classes\
B���
+
\
B��l$
UitdN
4N
J
l�\
B��O
5
\
B���$d
`
�
Thread support
ptD`
�
�Thread creation
c`
?
�%fixed stack size, checked at runtime
�`
@
� v
�`
A
�
Thread scheduling
�`
D
�110 user priorities but without any guarantee
�`
E
�Bysuspend / resume / exit
�`
B
�e
e`
C
�+ Monitors
<�`
F
�Na)Each java object has an implicit monitor
h[`
I
�5A monitor is both a lock and a synchronization point
z`
G
�Balock : enter, exit
ds
�
H
�9synchronization : [timed] wait, notify and notifyAll, al�@
H
�)lowed only when
� holding the lock
\
B��Q
+
\
B��l$
RdS
4J
m�
\
B��T
5
\
B�� d
`
>
�ThMemory management
D`
K
�Th
dc`
P
�"Java objects are stored in a heap
�`
L
�
�
M
�8Objects no longer referenced are subject to garbage col10�@
M
�ut0lection (native methods are taken into account)
su�`
N
�xi
�
O
�e 6The �finalize� method of garbage collected objects is @
O
� h called before their destruction
\
B��V
+
nro\
B��l$
R�dX
4 it
n\
B��Y
5
oin\
B��D
`
J
�Java packages
D`
�
c`
R
�*java classes present in all distributions
�`
S
�
T�`
T
�+corresponding native libraries if required
�`
U
�
�`
�
�graphism (libawt, jpeg ...)
t
�`
�
�Th#network (socket, http , html ... )
s a`
�
�p
audio
<�`
�
�...
\
B��[
+
sje\
B��l$
RhoddS�B;�&
5
�NxidS�B;�&&e
nale�`�green threads� B;�&
5
�ide� B;�&&
V
+`
ronative threadsdS�h;�
5
7
�dS�h;�
4
`
portabilityd]
4oin
p
\
B��^
5
\
B���Ja
`
�
`
�seJava tools
triD`
Z
�
Sc`
V
�javac : class compiler
ati�`
\
�qu
d�`
Y
�
Ujavap : bytecode disassembler
�`
W
�eg
.�`
]
�
�javadoc : document generator
t�`
X
�
`
^
�appletviewer : �mini browser�
<�`
[
�
+
[`
_
�
jdb : java debugger
z`
�
�$
�`
�
�5javap is the only one that is not a java application
\
B��`
+
gr\
B��l$
!
R� d�
4
!
! qS�\
B���
5
S�\
B���`
!`
�
4Porting phases
inD`
k
�#-1- native methods support (javah)
5c`
g
�
�`
a
�Ja&-2- (simplified) java virtual machine
�`
b
�2read and execute simple monothreaded applications
�`
h
�
V
�`
l
�mp-3- �independent� phases
u�`
c
�
Y.garbage collector (required for the compiler)
`
d
�dynamic linking
do<�`
e
�at9native libraries (java internals + awt, net, mmedia ...)
w[`
f
��
C tools (javap)
+z`
i
�
_jdb
jd�`
�2fixing/improving JavaSoft C code and java classes
�`
j
�at5debugging (local examples, test suites, web applets)
+\
B���
!
+
\
B��l$
$
R
4d�
"
4
$
$ r�
5\
B���
#
5
"\
B���
$
4
`
�JDK implementation choices
odsD`
w
�
5
c`
p
�
Memory management
�`
q
� j
�`
r
�Exceptions
��`
s
� s
l�`
t
�liObject monitors
�`
v
�
`
u
�epNative methods
�<�`
y
�ga
g[`
z
�reThreads
coz`
n
�
d�`
o
�inAWT
\
B���
$
+
"tna\
B��l$
!
'
#
#
Rvapd�
%
4
'
' saSt \
B���
&
5
%tde\
B���s,
+
'J`
{
�Memory management
D`
m
�
c
|
�
4>Objects are referenced through handles
� which contains }@
|
�
2the method table and a pointer to the object data
�`
~
�
�`
�
�3Handles are in a contiguous
� reserved space
im�`
�
�es
s�`
�
�
5