-
Notifications
You must be signed in to change notification settings - Fork 268
Expand file tree
/
Copy path64bit_issues.xml
More file actions
143 lines (129 loc) · 5.76 KB
/
64bit_issues.xml
File metadata and controls
143 lines (129 loc) · 5.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<?xml version="1.0"?>
<!DOCTYPE chapter [
<!ENTITY % entities SYSTEM "generic-entities.ent">
%entities;
]>
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="cha-64bit">
<title>32-Bit and 64-Bit Applications in a 64-Bit System Environment</title>
<info>
<meta name="description">Configure your 64-bit environment to run existing 32-bit applications without requiring additional ports</meta>
<dm:docmanager xmlns:dm="urn:x-suse:ns:docmanager">
<dm:bugtracker/>
<dm:translation>yes</dm:translation>
</dm:docmanager>
<revhistory xml:id="rh-cha-64bit">
<revision>
<date>2026-04-09</date>
<revdescription>
<para/>
</revdescription>
</revision>
</revhistory>
</info>
<para>
&productnamereg; is available for <phrase os="sles">several</phrase> 64-bit
platforms. This does not necessarily mean that all the applications included
have already been ported to 64-bit platforms. &productname; supports the use
of 32-bit applications in a 64-bit system environment. This chapter offers a
brief overview of how this support is implemented on 64-bit &productname;
platforms.
</para>
<para>
<phrase os="sles">&productname; for the 64-bit platforms IBM &ppc;, IBM
&zseries; and &amd64;/&intel64;</phrase><phrase os="sled;osuse">&productname;
for the 64-bit platforms &amd64;/&intel64;</phrase> is designed so that
existing 32-bit applications run in the 64-bit environment
<quote>out-of-the-box.</quote> <phrase os="sles">The corresponding 32-bit
platforms are ppc for &power;, and x86 for &amd64;/&intel64;.</phrase> This
support means that you can continue to use your preferred 32-bit applications
without waiting for a corresponding 64-bit port to become available.<phrase os="sles"> The current &power; system runs most applications in 32-bit mode,
but you can run 64-bit applications.</phrase>
</para>
<note>
<title>No Support for Building 32-bit Applications</title>
<para>
&productname; does not support compiling 32-bit applications, it only offers
runtime support for 32-bit binaries.
</para>
</note>
<sect1 xml:id="sec-64bit-runt">
<title>Runtime Support</title>
<important>
<title>Conflicts Between Application Versions</title>
<para>
If an application is available both for 32-bit and 64-bit environments,
parallel installation of both versions is bound to lead to problems. In
such cases, decide on one of the two versions and install and use this.
</para>
<para>
An exception to this rule is PAM (pluggable authentication modules).
&productname; uses PAM in the authentication process as a layer that
mediates between user and application. On a 64-bit operating system that
also runs 32-bit applications it is necessary to always install both
versions of a PAM module.
</para>
</important>
<para>
To be executed correctly, every application requires a range of libraries.
Unfortunately, the names for the 32-bit and 64-bit versions of these
libraries are identical. They must be differentiated from each other in
another way.
</para>
<para>
To retain compatibility with the 32-bit version, the libraries are stored at
the same place in the system as in the 32-bit environment. The 32-bit
version of <filename>libc.so.6</filename> is located under
<filename>/lib/libc.so.6</filename> in both the 32-bit and 64-bit
environments.
</para>
<para>
All 64-bit libraries and object files are located in directories called
<filename>lib64</filename>. The 64-bit object files that you would normally
expect to find under <filename>/lib</filename> and
<filename>/usr/lib</filename> are now found under
<filename>/lib64</filename> and <filename>/usr/lib64</filename>. This means
that there is space for the 32-bit libraries under <filename>/lib</filename>
and <filename>/usr/lib</filename>, so the file name for both versions can
remain unchanged.
</para>
<para>
Subdirectories of 32-bit <filename>/lib</filename> directories which contain
data content that does not depend on the word size are not moved. This
scheme conforms to LSB (Linux Standards Base) and FHS (File System Hierarchy
Standard).
</para>
</sect1>
<sect1 xml:id="sec-64bit-kernel">
<title>Kernel Specifications</title>
<para>
The 64-bit kernels for &amd64;/&intel64;<phrase os="sles">, IBM &power; and
IBM &zseries;</phrase> offer both a 64-bit and a 32-bit kernel ABI
(application binary interface). The latter is identical with the ABI for the
corresponding 32-bit kernel. This means that the 32-bit application can
communicate with the 64-bit kernel in the same way as with the 32-bit
kernel.
</para>
<para>
The 32-bit emulation of system calls for a 64-bit kernel does not support
all the APIs used by system programs. This depends on the platform. For this
reason, few applications, like <command>lspci</command>, must be
compiled<phrase os="sles"> on non-&power; platforms as 64-bit programs to
function properly. On IBM &zseries;, not all ioctls are available in the
32-bit kernel ABI</phrase>.
</para>
<para>
A 64-bit kernel can only load 64-bit kernel modules that have been specially
compiled for this kernel. It is not possible to use 32-bit kernel modules.
</para>
<tip>
<title>Kernel-loadable Modules</title>
<para>
Some applications require separate kernel-loadable modules. If you intend
to use such a 32-bit application in a 64-bit system environment, contact
the provider of this application and &suse; to make sure that the 64-bit
version of the kernel-loadable module and the 32-bit compiled version of
the kernel API are available for this module.
</para>
</tip>
</sect1>
</chapter>