add existing documentation
This commit is contained in:
21
doc/abi.txt
Executable file
21
doc/abi.txt
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
=== TASK ENVIRONMENT ====
|
||||||
|
|
||||||
|
This data is placed <somewhere> in the address space
|
||||||
|
of a new task.
|
||||||
|
|
||||||
|
environment_t {
|
||||||
|
/** array of string pointers for command line arguments. */
|
||||||
|
size_t argc;
|
||||||
|
char **argv;
|
||||||
|
|
||||||
|
/** handles to the system manager and session manager services
|
||||||
|
respectively */
|
||||||
|
kern_handle_t system;
|
||||||
|
kern_handle_t session;
|
||||||
|
|
||||||
|
/** handles to the pagebuf objects storing the initial thread
|
||||||
|
stack and task heap respectively */
|
||||||
|
kern_handle_t stack;
|
||||||
|
kern_handle_t heap;
|
||||||
|
}
|
||||||
|
|
||||||
375
doc/boot-process.txt
Executable file
375
doc/boot-process.txt
Executable file
@@ -0,0 +1,375 @@
|
|||||||
|
================================================================================
|
||||||
|
| Rosetta Operating System |
|
||||||
|
| ~~~~~~~~~~~~~~~~~~~~~~~~ |
|
||||||
|
| The Boot Process |
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
1 Bootloader
|
||||||
|
------------
|
||||||
|
|
||||||
|
The bootloader loads the kernel executable and an initrd.
|
||||||
|
|
||||||
|
|
||||||
|
2 Kernel
|
||||||
|
--------
|
||||||
|
|
||||||
|
The kernel initialises itself, extracts the bootstrap program from the initrd
|
||||||
|
and executes it.
|
||||||
|
|
||||||
|
The initrd is an EC3 image containing (in most cases) two key items:
|
||||||
|
1) A bootstrap executable.
|
||||||
|
2) A volume containing the boot filesystem.
|
||||||
|
|
||||||
|
This data is stored in several 'tags' within the container:
|
||||||
|
* VOLU, CTAB, STAB, and XATR for the boot filesystem volume (ignored by
|
||||||
|
the kernel)
|
||||||
|
* EXEC for the bootstrap program.
|
||||||
|
|
||||||
|
(technically speaking, the only hard requirement as far as the kernel is
|
||||||
|
concerned is the EXEC tag. The initrd could contain any number of other
|
||||||
|
volumes or tags, including none at all)
|
||||||
|
|
||||||
|
The boot filesystem is ignored by the kernel. It is up to the bootstrap
|
||||||
|
program to make use of it.
|
||||||
|
|
||||||
|
The bootstrap program is a static ELF binary in an EXEC tag with an
|
||||||
|
identifier of 0x555345524C414E44 ("USERLAND" in ASCII).
|
||||||
|
|
||||||
|
The key feature of the EXEC tag in an EC3 image is that, for static and flat
|
||||||
|
binaries, it extracts the information needed to run the executable and stores
|
||||||
|
it in a special data structure for easy parsing. This allows the reader (the
|
||||||
|
kernel in this case) to load and run the executable without having to
|
||||||
|
implement an ELF parser.
|
||||||
|
|
||||||
|
Such information includes:
|
||||||
|
* The offset and size of the read-write (.data, .bss) and read-exec
|
||||||
|
(.text, .rodata) segments both in the file (source) and in virtual
|
||||||
|
memory (destination).
|
||||||
|
* The entry point address.
|
||||||
|
|
||||||
|
The following structure can be found at the beginning of the EXEC tag.
|
||||||
|
Any *_faddr variables are offsets relative to the beginning of the tag.
|
||||||
|
|
||||||
|
struct ec3_exec_aux {
|
||||||
|
uint8_t e_type; // EXEC_ELF, EXEC_FLAT, etc
|
||||||
|
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
uintptr_t rx_segment_faddr, rx_segment_vaddr;
|
||||||
|
size_t rx_segment_fsize, rx_segment_vsize;
|
||||||
|
|
||||||
|
uintptr_t rw_segment_faddr, rw_segment_vaddr;
|
||||||
|
size_t rw_segment_fsize, rw_segment_vsize;
|
||||||
|
|
||||||
|
uintptr_t entry;
|
||||||
|
} i_elf;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
uintptr_t base;
|
||||||
|
uintptr_t entry;
|
||||||
|
} i_flat;
|
||||||
|
} e_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
As long as you aren't reading any volumes, the EC3 image format is simple
|
||||||
|
enough that finding the EXEC tag and reading its contents is a trivial
|
||||||
|
operation. This minimises the amount of code needed in the kernel to find
|
||||||
|
the bootstrap program.
|
||||||
|
|
||||||
|
The auxiliary information in the EXEC tag is enough for the kernel to copy
|
||||||
|
the executable into memory, set the appropriate memory permissions, and
|
||||||
|
jump to the entry point.
|
||||||
|
|
||||||
|
|
||||||
|
3 Userland Bootstrap
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
The userland bootstrap program (or "userboot") is responsible for making
|
||||||
|
available the boot filesystem and starting the system management task.
|
||||||
|
|
||||||
|
Any kernel tasks have a negative task ID, and the userland bootstrap task
|
||||||
|
will always be given a task ID of zero. Therefore, the first task spawned by
|
||||||
|
userboot will always have a task ID of 1.
|
||||||
|
|
||||||
|
Once the system management process is started, userboot can (but doesn't HAVE
|
||||||
|
to) exit. The system management task will automatically become the root of
|
||||||
|
the task tree.
|
||||||
|
|
||||||
|
If userboot exits without spawning any other tasks, the action taken will
|
||||||
|
depend on the command-line arguments given to the kernel.
|
||||||
|
|
||||||
|
Some options include:
|
||||||
|
* Shut the system down
|
||||||
|
* Restart the system
|
||||||
|
* Trigger a kernel panic
|
||||||
|
|
||||||
|
In most cases, userboot will remain running, providing the system management
|
||||||
|
task with access to the boot filesystem until other drivers are online, at
|
||||||
|
which point the bootstrap program will exit.
|
||||||
|
|
||||||
|
In more specialised cases, userboot can remain running for the life of the
|
||||||
|
system. It can wait for the task it spawns to exit before taking some action.
|
||||||
|
|
||||||
|
This is useful for automated testing. The bootstrap program can run a program
|
||||||
|
that will run the test suite (or could itself be a test suite program), wait
|
||||||
|
for the tests to finish, and then shut down the system.
|
||||||
|
|
||||||
|
|
||||||
|
3 System Management Task
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
The system management task will be in charge of the system for the entire
|
||||||
|
time the system is up. It is responsible for starting device drivers and
|
||||||
|
setting up an environment for the system to carry out its intended purpose
|
||||||
|
(i.e. handling interactive user sessions).
|
||||||
|
|
||||||
|
Of course, the system management task can (and certainly should) delegate
|
||||||
|
these tasks to other system services.
|
||||||
|
|
||||||
|
On Rosetta-based systems, system management duties are handled by the systemd
|
||||||
|
daemon. systemd fulfills a few important roles, including:
|
||||||
|
1) managing system services, and restarting them if they fail.
|
||||||
|
2) loading and launching executables.
|
||||||
|
3) managing the system namespace.
|
||||||
|
|
||||||
|
userboot sends commands to systemd to bring up the rest of the userland
|
||||||
|
environment. During this process, systemd maintains a connection to userboot
|
||||||
|
to load files from the boot filesystem. You might think that having two tasks
|
||||||
|
communicate with each other (violating the strict one-way client-server
|
||||||
|
message flow) would result in deadlocks, but a few key design choices in
|
||||||
|
userboot and systemd avoid this.
|
||||||
|
|
||||||
|
technically, there is nothing wrong with two tasks waiting on each other, as
|
||||||
|
long as two THREADS within those tasks don't end up (directly or indirectly)
|
||||||
|
waiting on each other.
|
||||||
|
|
||||||
|
therefore, to ensure that this principle is not violated:
|
||||||
|
1) systemd performs all process-launching activities and request-handling
|
||||||
|
activities on separate threads that never wait on each other. when a
|
||||||
|
request is received to launch a new process, systemd's request-handler
|
||||||
|
thread dispatches the request (and the responsibility to respond to the
|
||||||
|
client) to a separate loader thread. this allows systemd to continue
|
||||||
|
servicing other requests (including filesystem requests from its own
|
||||||
|
loader threads).
|
||||||
|
2) userboot performs all system startup activities (including sending
|
||||||
|
commands to systemd) and filesystem request-handing activities on
|
||||||
|
separate threads that never wait on each other.
|
||||||
|
|
||||||
|
because of this, despite the circular communications between userboot and
|
||||||
|
systemd, messages between the two tasks still technically only travel in a
|
||||||
|
single direction when you consider their individual threads:
|
||||||
|
|
||||||
|
userboot[init] -----> systemd[req-handler]
|
||||||
|
| :
|
||||||
|
═════NO═COMMUNICATION═════ : (async task dispatch)
|
||||||
|
| v
|
||||||
|
userboot[fs-handler] <----- systemd[launcher]
|
||||||
|
|
||||||
|
key:
|
||||||
|
task-name[thread-name]
|
||||||
|
---> Request/reply exchange (the arrow points toward the request
|
||||||
|
recipient)
|
||||||
|
...> Non-blocking action (e.g. scheduling another thread to run)
|
||||||
|
|
||||||
|
technically, systemd[req-handler] schedules systemd[launcher] to run and
|
||||||
|
doesn't wait on it. therefore, if userboot[init] sends a request to
|
||||||
|
systemd[req-handler] to launch a server, it will receive a reply from
|
||||||
|
systemd[launcher].
|
||||||
|
|
||||||
|
Because of the fixed order in which userboot and systemd are started, and
|
||||||
|
the deterministic assignment of task IDs mentioned in the USERLAND BOOTSTRAP
|
||||||
|
section, the channels that the two tasks use to communicate with each other
|
||||||
|
have well-defined locations:
|
||||||
|
|
||||||
|
* userboot always has TID 0, and always hosts the boot filesystem on its
|
||||||
|
first channel, giving a tuple of (nd:0, tid:0, chid:0).
|
||||||
|
* systemd always has TID 1, and always hosts its system management
|
||||||
|
interface on its first channel, giving a tuple of (nd:0, tid:1, chid:0).
|
||||||
|
|
||||||
|
|
||||||
|
5 From Userboot to the Root Filesystem
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
Now that we are familiar with the inner workings of these two critical tasks,
|
||||||
|
lets go through the steps taken to bring up the full userland environment:
|
||||||
|
|
||||||
|
1) when userboot starts, it is given (by the kernel) a handle to a pagebuf
|
||||||
|
object containing the initrd. userboot maps this pagebuf into its
|
||||||
|
address space and mounts the initrd[1].
|
||||||
|
2) userboot creates a new task to run the system management service.
|
||||||
|
userboot contains just enough ELF-related code to do one of the
|
||||||
|
following:
|
||||||
|
* if the system management executable is statically-linked, simply copy
|
||||||
|
the relevant ELF segments into the new task's address space and
|
||||||
|
create a thread that will start running at the executable's entry
|
||||||
|
point.
|
||||||
|
* if the system management executable is dynamically-linked (the more
|
||||||
|
likely scenario), load the dynamic linker[2] into the new task's
|
||||||
|
address space and creates a new thread that will start running at the
|
||||||
|
dynamic linker's entry point.
|
||||||
|
3) systemd initialises the system namespace and mounts the boot filesystem
|
||||||
|
provided by userboot at '/', temporarily making it the root filesystem.
|
||||||
|
4) systemd starts the device manager service, emdevd, and instructs it
|
||||||
|
to scan the system devices. this blocks systemd until the scan is
|
||||||
|
complete.
|
||||||
|
5) in response to a scan command, emdevd uses whatever drivers are
|
||||||
|
available in the current root filesystem to find and initialise as many
|
||||||
|
devices as possible. because the boot filesystem only contains the
|
||||||
|
drivers needed to mount the root filesystem, this scan will be
|
||||||
|
far from complete, but it will be repeated once the real root
|
||||||
|
filesystem is available.
|
||||||
|
6) eventually the scan will complete, and emdevd will return control
|
||||||
|
back to systemd. at this point, the storage device containing the
|
||||||
|
root filesystem has been found and brought online.
|
||||||
|
7) emdevd provides a devfs-like interface to all the devices on the
|
||||||
|
system. systemd mounts this pseudo-filesystem at '/dev' in the
|
||||||
|
system namespace.
|
||||||
|
8) systemd starts an instance of the filesystem server, fsd, and provides
|
||||||
|
it with three parameters:
|
||||||
|
* the path to the device node containing the root filesystem (e.g.
|
||||||
|
'/dev/disk0s1')
|
||||||
|
* the name of the filesystem format to be mounted (e.g. 'ext2')
|
||||||
|
* the mount flags (the root filesystem is always mounted read-only
|
||||||
|
during boot. once /etc/fstab is accessible, the root filesystem
|
||||||
|
is re-mounted with the flags it specifies)
|
||||||
|
9) fsd will load the necessary filesystem driver (e.g. for ext2
|
||||||
|
filesystems, fsd will load fs-ext2.so) and mount the filesystem
|
||||||
|
on the provided device.
|
||||||
|
10) systemd mounts the filesystem provided by fsd to the root of
|
||||||
|
the system namespace. at this point, the root filesystem is now
|
||||||
|
available (albeit read-only for now).
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
[1] In this case, mounting doesn't involve the system namespace (until
|
||||||
|
systemd starts up, there *is* no system namespace), but rather
|
||||||
|
userboot creating any data structures it needs to be able to privately
|
||||||
|
locate and read files within the boot image.
|
||||||
|
[2] despite being a .so file, the dynamic linker is designed to be a
|
||||||
|
self-contained position-independent executable with no external
|
||||||
|
dependencies, in order to avoid a chicken-and-egg situation where the
|
||||||
|
dynamic linker itself requires a dynamic linker to load. the only
|
||||||
|
functionality required to load it (beyond copying its code and data
|
||||||
|
into memory) is finding and iterating through the DYNAMIC segment,
|
||||||
|
processing any relocation entries contained within.
|
||||||
|
|
||||||
|
|
||||||
|
6 Runlevels
|
||||||
|
-----------
|
||||||
|
|
||||||
|
the state of the system, and what functionality the system has, depends on
|
||||||
|
which services are running. For example:
|
||||||
|
* without deviced or fsd, no filesystems are available.
|
||||||
|
* without lockdownd, user authentication and authorisation is not
|
||||||
|
available.
|
||||||
|
* without airportd, network connectivity is not available.
|
||||||
|
* without seatd, multiplexing of peripherals between multiple user
|
||||||
|
sessions is not available.
|
||||||
|
* without sessiond, user sessions are not available.
|
||||||
|
... and so on.
|
||||||
|
|
||||||
|
different sets of services can be brought online to tailor the available
|
||||||
|
functionality. under systemd, these sets of services are called runlevels.
|
||||||
|
runlevels are hierarchical, with higher runlevels building upon the
|
||||||
|
functionality provided by lower runlevels. as the runlevel increases, the
|
||||||
|
number of system services running on the machine increases.
|
||||||
|
|
||||||
|
|
||||||
|
6.1 Pre-defined Runlevels
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Rosetta has a range of pre-defined runlevels:
|
||||||
|
* Off:
|
||||||
|
- Instructing systemd to move to this runlevel will shut the system down.
|
||||||
|
* Minimal:
|
||||||
|
- Only the root filesystem is available, and is read-only.
|
||||||
|
- All device drivers are loaded, and all devices are visible.
|
||||||
|
- All network interfaces are down, and no socket I/O is possible.
|
||||||
|
- The security service is offline, so no authentication or authorisation
|
||||||
|
checks can be performed, and the interactive user is effectively root.
|
||||||
|
- Neither the session nor seat managers are online, so only one session
|
||||||
|
is supported.
|
||||||
|
- A basic console and shell are started to allow the user to interact
|
||||||
|
with the system.
|
||||||
|
* Single-User: Same as Minimal, except:
|
||||||
|
- all filesystems mounts prescribed by /etc/fstab are performed.
|
||||||
|
* Multi-User: Same as Single-User, except:
|
||||||
|
- The security service is running, allowing user authentication.
|
||||||
|
- System security and permissions are now enforced.
|
||||||
|
- The seat and session manager services are running, allowing multiple
|
||||||
|
user sessions to be running simultaneously.
|
||||||
|
- instead of dropping straight into a shell, the interactive user is
|
||||||
|
presented with a text-based login prompt before their shell is
|
||||||
|
launched.
|
||||||
|
* Networking: Same as Multi-User, except:
|
||||||
|
- The networking service is running, and all network interfaces are
|
||||||
|
brought up and configured according to system configuration.
|
||||||
|
* Full Mode: Same as Networking, except:
|
||||||
|
- The system's display manager is running, allowing for logging in
|
||||||
|
and interacting with the system via a graphical user interface.
|
||||||
|
|
||||||
|
In most circumstances, the system will be running in one of the runlevels
|
||||||
|
based on Multi-User. Not only does this enable most of the "usual" system
|
||||||
|
functionality, but it also enforces user authentication and authorisation.
|
||||||
|
The lower runlevels are mostly used for system administration and
|
||||||
|
troubleshooting when there is a problem preventing the system from reaching
|
||||||
|
a higher runlevel.
|
||||||
|
|
||||||
|
|
||||||
|
6.2 How Runlevels Affect Security Enforcement
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
User authentication and authorisation depend on the system security service
|
||||||
|
(lockdownd). Without it, no users can log on to the system, and no permission
|
||||||
|
checks can be performed. So, how does a system behave when lockdownd isn't
|
||||||
|
running?
|
||||||
|
|
||||||
|
There are a few circumstances where lockdownd may be offline, some
|
||||||
|
intentional and some unintentional. The system may be booted in Minimal or
|
||||||
|
Single-User mode. These runlevels don't start lockdownd as the interactive
|
||||||
|
user is root by default. However, lockdownd may crash while running on a
|
||||||
|
multi-user system.
|
||||||
|
|
||||||
|
So if you are an application or service running on a Rosetta system, and your
|
||||||
|
attempt to connect to the security service fails because the service has
|
||||||
|
stopped working, or was never running in the first place, what do you do?
|
||||||
|
|
||||||
|
The system management service keeps track of what runlevel the system is
|
||||||
|
currently running at, and anyone can contact the service to query this
|
||||||
|
information. So, you can take action depending on the system runlevel:
|
||||||
|
* If the runlevel is Single-User or below, you know that system security
|
||||||
|
is not being enforced, so there is no need to contact the security
|
||||||
|
service.
|
||||||
|
* If the runlevel is Multi-User or higher, you know that system security
|
||||||
|
is (or should be) enforced. If the security service cannot be reached
|
||||||
|
in this case, you should wait for the system management service to
|
||||||
|
(re)start it. In the worst case scenario, where the security service
|
||||||
|
cannot be started, all authentication and authorisation actions should
|
||||||
|
be presumed to fail, so that there is never a lapse in security.
|
||||||
|
|
||||||
|
|
||||||
|
7 From the Root Filesystem to User Interaction
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
Now that the root filesystem is available, we can start bringing other
|
||||||
|
system components online. This process culminates in an interactive user
|
||||||
|
session.
|
||||||
|
|
||||||
|
1) systemd instructs emdevd to perform another scan of the system devices.
|
||||||
|
with a wider range of drivers now available, (hopefully) all devices
|
||||||
|
will now be detected and initialised.
|
||||||
|
2) systemd will now start working towards reaching a target runlevel.
|
||||||
|
right now, the system is running at the Minimum runlevel. For the
|
||||||
|
purposes of this document, let's assume that the target runlevel is
|
||||||
|
Networking, and the system will move through the Single-User and Multi-
|
||||||
|
User runlevels to get there.
|
||||||
|
3) In order to reach the Single-User runlevel, the filesystem mounts
|
||||||
|
specified in /etc/fstab must be performed. The Single-User runlevel
|
||||||
|
defines a script for systemd to execute, which performs the necessary
|
||||||
|
mount operations.
|
||||||
|
4) The Multi-User runlevel is more complex and will require starting a
|
||||||
|
range of services.
|
||||||
|
5) First, the security service, lockdownd, is brought online. This is the
|
||||||
|
pivotal service that converts the system from single-user to multi-user.
|
||||||
|
|
||||||
|
|
||||||
|
vim: shiftwidth=3 expandtab
|
||||||
90
doc/filesystem.txt
Executable file
90
doc/filesystem.txt
Executable file
@@ -0,0 +1,90 @@
|
|||||||
|
/ [nsd:0, fsd:0] (drivers/fs/fs-ec3.so)
|
||||||
|
|--svc [nsd:0]
|
||||||
|
| |--os.SystemManager -> overlordd
|
||||||
|
| |--os.Launcher -> launchd
|
||||||
|
| |--os.SeatManager -> seatd
|
||||||
|
| |--os.NetworkManager -> airportd
|
||||||
|
| |--os.DeviceManager -> emdevd
|
||||||
|
| \--os.SecurityManager -> lockdownd
|
||||||
|
|--dev [emdevd:0]
|
||||||
|
| |--zero (drivers/char/io-misc.so)
|
||||||
|
| |--null (drivers/char/io-misc.so)
|
||||||
|
| |--random (drivers/char/io-random.so)
|
||||||
|
| |--urandom (drivers/char/io-random.so)
|
||||||
|
| |--bus
|
||||||
|
| | |--pci (drivers/bus/io-pci.so)
|
||||||
|
| | | |--0000:00:00.0
|
||||||
|
| | | |--0000:00:02.0
|
||||||
|
| | | |--0000:00:05.0
|
||||||
|
| | | | ...
|
||||||
|
| | | \--0000:ff:16.7
|
||||||
|
| | |--acpi (drivers/bus/io-acpi.so)
|
||||||
|
| | | |--PNP0A03
|
||||||
|
| | | |--PNP0C0B
|
||||||
|
| | | |--PNP0900
|
||||||
|
| | | | ...
|
||||||
|
| | | \--PNP0500
|
||||||
|
| | \--usb (drivers/bus/io-xhci.so)
|
||||||
|
| | |--1-0:1.0
|
||||||
|
| | |--1-1
|
||||||
|
| | |--1-1:1.0
|
||||||
|
| | | ...
|
||||||
|
| | \--4-6:1.0
|
||||||
|
| |--block
|
||||||
|
| | |--disk0 (drivers/block/io-ahci.so)
|
||||||
|
| | |--disk0s0 (drivers/block/io-block.so)
|
||||||
|
| | |--disk0s1 (drivers/block/io-block.so)
|
||||||
|
| | |--disk1 (drivers/block/io-xhci.so)
|
||||||
|
| | \--disk1s0 (drivers/block/io-block.so)
|
||||||
|
| |--char
|
||||||
|
| | |--ser0 (drivers/char/io-serial.so)
|
||||||
|
| | |--ser1 (drivers/char/io-serial.so)
|
||||||
|
| | |--ser2 (drivers/char/io-serial.so)
|
||||||
|
| | \--ser3 (drivers/char/io-serial.so)
|
||||||
|
| |--input
|
||||||
|
| | |--event0 (drivers/input/io-ps2.so)
|
||||||
|
| | \--event1 (drivers/input/io-ps2.so)
|
||||||
|
| |--net
|
||||||
|
| | |--eth0 (drivers/net/io-e1000.so)
|
||||||
|
| | \--wlan0 (drivers/net/io-b43.so)
|
||||||
|
| \--video
|
||||||
|
| \--card0 (drivers/video/gfx-vga.so)
|
||||||
|
|--home
|
||||||
|
| \--max
|
||||||
|
| |--Downloads
|
||||||
|
| \--Documents
|
||||||
|
|--boot
|
||||||
|
| |--mango_kernel
|
||||||
|
| \--initrd.ec3
|
||||||
|
|--usr
|
||||||
|
| \--lib
|
||||||
|
| |--libsystem.so
|
||||||
|
| \--drivers
|
||||||
|
| |--bus
|
||||||
|
| | |--io-pci.so
|
||||||
|
| | |--io-acpi.so
|
||||||
|
| | \--io-xhci.so
|
||||||
|
| |--block
|
||||||
|
| | |--io-ahci.so
|
||||||
|
| | \--io-block.so
|
||||||
|
| |--char
|
||||||
|
| | \--io-serial.so
|
||||||
|
| |--input
|
||||||
|
| | \--io-ps2.so
|
||||||
|
| |--video
|
||||||
|
| | \--gfx-vga.so
|
||||||
|
| |--net
|
||||||
|
| | |--io-e1000.so
|
||||||
|
| | \--io-b43.so
|
||||||
|
| \--fs
|
||||||
|
| |--fs-ext2.so
|
||||||
|
| |--fs-fat32.so
|
||||||
|
| \--fs-ec3.so
|
||||||
|
|--net [airportd:0]
|
||||||
|
| |--node1
|
||||||
|
| | \-- ...
|
||||||
|
| \--node2
|
||||||
|
| \-- ...
|
||||||
|
\--vol
|
||||||
|
|--disk1 [fsd:0] (drivers/fs/fs-ext2.so)
|
||||||
|
\--disk2 [fsd:1] (drivers/fs/fs-fat32.so)
|
||||||
468
doc/ld-linux.txt
Executable file
468
doc/ld-linux.txt
Executable file
@@ -0,0 +1,468 @@
|
|||||||
|
ELF Header:
|
||||||
|
Magic: 7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00
|
||||||
|
Class: ELF64
|
||||||
|
Data: 2's complement, little endian
|
||||||
|
Version: 1 (current)
|
||||||
|
OS/ABI: UNIX - GNU
|
||||||
|
ABI Version: 0
|
||||||
|
Type: DYN (Shared object file)
|
||||||
|
Machine: Advanced Micro Devices X86-64
|
||||||
|
Version: 0x1
|
||||||
|
Entry point address: 0x20290
|
||||||
|
Start of program headers: 64 (bytes into file)
|
||||||
|
Start of section headers: 239208 (bytes into file)
|
||||||
|
Flags: 0x0
|
||||||
|
Size of this header: 64 (bytes)
|
||||||
|
Size of program headers: 56 (bytes)
|
||||||
|
Number of program headers: 11
|
||||||
|
Size of section headers: 64 (bytes)
|
||||||
|
Number of section headers: 27
|
||||||
|
Section header string table index: 26
|
||||||
|
|
||||||
|
Section Headers:
|
||||||
|
[Nr] Name Type Address Offset
|
||||||
|
Size EntSize Flags Link Info Align
|
||||||
|
[ 0] NULL 0000000000000000 00000000
|
||||||
|
0000000000000000 0000000000000000 0 0 0
|
||||||
|
[ 1] .note.gnu.pr[...] NOTE 00000000000002a8 000002a8
|
||||||
|
0000000000000020 0000000000000000 A 0 0 8
|
||||||
|
[ 2] .note.gnu.bu[...] NOTE 00000000000002c8 000002c8
|
||||||
|
0000000000000024 0000000000000000 A 0 0 4
|
||||||
|
[ 3] .hash HASH 00000000000002f0 000002f0
|
||||||
|
000000000000013c 0000000000000004 A 5 0 8
|
||||||
|
[ 4] .gnu.hash GNU_HASH 0000000000000430 00000430
|
||||||
|
0000000000000160 0000000000000000 A 5 0 8
|
||||||
|
[ 5] .dynsym DYNSYM 0000000000000590 00000590
|
||||||
|
00000000000003c0 0000000000000018 A 6 1 8
|
||||||
|
[ 6] .dynstr STRTAB 0000000000000950 00000950
|
||||||
|
00000000000002c1 0000000000000000 A 0 0 1
|
||||||
|
[ 7] .gnu.version VERSYM 0000000000000c12 00000c12
|
||||||
|
0000000000000050 0000000000000002 A 5 0 2
|
||||||
|
[ 8] .gnu.version_d VERDEF 0000000000000c68 00000c68
|
||||||
|
00000000000000ec 0000000000000000 A 6 7 8
|
||||||
|
[ 9] .rela.dyn RELA 0000000000000d58 00000d58
|
||||||
|
0000000000000d98 0000000000000018 A 5 0 8
|
||||||
|
[10] .rela.plt RELA 0000000000001af0 00001af0
|
||||||
|
0000000000000060 0000000000000018 AI 5 21 8
|
||||||
|
[11] .plt PROGBITS 0000000000002000 00002000
|
||||||
|
0000000000000050 0000000000000010 AX 0 0 16
|
||||||
|
[12] .plt.sec PROGBITS 0000000000002050 00002050
|
||||||
|
0000000000000040 0000000000000010 AX 0 0 16
|
||||||
|
[13] .text PROGBITS 0000000000002090 00002090
|
||||||
|
0000000000029285 0000000000000000 AX 0 0 16
|
||||||
|
[14] .rodata PROGBITS 000000000002c000 0002c000
|
||||||
|
0000000000006fc0 0000000000000000 A 0 0 32
|
||||||
|
[15] .stapsdt.base PROGBITS 0000000000032fc0 00032fc0
|
||||||
|
0000000000000001 0000000000000000 A 0 0 1
|
||||||
|
[16] .eh_frame_hdr PROGBITS 0000000000032fc4 00032fc4
|
||||||
|
0000000000000944 0000000000000000 A 0 0 4
|
||||||
|
[17] .eh_frame PROGBITS 0000000000033908 00033908
|
||||||
|
000000000000362c 0000000000000000 A 0 0 8
|
||||||
|
[18] .data.rel.ro PROGBITS 0000000000038620 00037620
|
||||||
|
0000000000001860 0000000000000000 WA 0 0 32
|
||||||
|
[19] .dynamic DYNAMIC 0000000000039e80 00038e80
|
||||||
|
0000000000000170 0000000000000010 WA 6 0 8
|
||||||
|
[20] .got PROGBITS 0000000000039ff0 00038ff0
|
||||||
|
0000000000000010 0000000000000008 WA 0 0 8
|
||||||
|
[21] .got.plt PROGBITS 000000000003a000 00039000
|
||||||
|
0000000000000038 0000000000000008 WA 0 0 8
|
||||||
|
[22] .data PROGBITS 000000000003a040 00039040
|
||||||
|
00000000000010d0 0000000000000000 WA 0 0 32
|
||||||
|
[23] .bss NOBITS 000000000003b110 0003a110
|
||||||
|
00000000000001c8 0000000000000000 WA 0 0 16
|
||||||
|
[24] .note.stapsdt NOTE 0000000000000000 0003a110
|
||||||
|
0000000000000420 0000000000000000 0 0 4
|
||||||
|
[25] .gnu_debuglink PROGBITS 0000000000000000 0003a530
|
||||||
|
0000000000000034 0000000000000000 0 0 4
|
||||||
|
[26] .shstrtab STRTAB 0000000000000000 0003a564
|
||||||
|
0000000000000104 0000000000000000 0 0 1
|
||||||
|
Key to Flags:
|
||||||
|
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
|
||||||
|
L (link order), O (extra OS processing required), G (group), T (TLS),
|
||||||
|
C (compressed), x (unknown), o (OS specific), E (exclude),
|
||||||
|
R (retain), D (mbind), l (large), p (processor specific)
|
||||||
|
|
||||||
|
There are no section groups in this file.
|
||||||
|
|
||||||
|
Program Headers:
|
||||||
|
Type Offset VirtAddr PhysAddr
|
||||||
|
FileSiz MemSiz Flags Align
|
||||||
|
LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000
|
||||||
|
0x0000000000001b50 0x0000000000001b50 R 0x1000
|
||||||
|
LOAD 0x0000000000002000 0x0000000000002000 0x0000000000002000
|
||||||
|
0x0000000000029315 0x0000000000029315 R E 0x1000
|
||||||
|
LOAD 0x000000000002c000 0x000000000002c000 0x000000000002c000
|
||||||
|
0x000000000000af34 0x000000000000af34 R 0x1000
|
||||||
|
LOAD 0x0000000000037620 0x0000000000038620 0x0000000000038620
|
||||||
|
0x0000000000002af0 0x0000000000002cb8 RW 0x1000
|
||||||
|
DYNAMIC 0x0000000000038e80 0x0000000000039e80 0x0000000000039e80
|
||||||
|
0x0000000000000170 0x0000000000000170 RW 0x8
|
||||||
|
NOTE 0x00000000000002a8 0x00000000000002a8 0x00000000000002a8
|
||||||
|
0x0000000000000020 0x0000000000000020 R 0x8
|
||||||
|
NOTE 0x00000000000002c8 0x00000000000002c8 0x00000000000002c8
|
||||||
|
0x0000000000000024 0x0000000000000024 R 0x4
|
||||||
|
GNU_PROPERTY 0x00000000000002a8 0x00000000000002a8 0x00000000000002a8
|
||||||
|
0x0000000000000020 0x0000000000000020 R 0x8
|
||||||
|
GNU_EH_FRAME 0x0000000000032fc4 0x0000000000032fc4 0x0000000000032fc4
|
||||||
|
0x0000000000000944 0x0000000000000944 R 0x4
|
||||||
|
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
|
||||||
|
0x0000000000000000 0x0000000000000000 RW 0x10
|
||||||
|
GNU_RELRO 0x0000000000037620 0x0000000000038620 0x0000000000038620
|
||||||
|
0x00000000000019e0 0x00000000000019e0 R 0x1
|
||||||
|
|
||||||
|
Section to Segment mapping:
|
||||||
|
Segment Sections...
|
||||||
|
00 .note.gnu.property .note.gnu.build-id .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_d .rela.dyn .rela.plt
|
||||||
|
01 .plt .plt.sec .text
|
||||||
|
02 .rodata .stapsdt.base .eh_frame_hdr .eh_frame
|
||||||
|
03 .data.rel.ro .dynamic .got .got.plt .data .bss
|
||||||
|
04 .dynamic
|
||||||
|
05 .note.gnu.property
|
||||||
|
06 .note.gnu.build-id
|
||||||
|
07 .note.gnu.property
|
||||||
|
08 .eh_frame_hdr
|
||||||
|
09
|
||||||
|
10 .data.rel.ro .dynamic .got
|
||||||
|
|
||||||
|
Dynamic section at offset 0x38e80 contains 19 entries:
|
||||||
|
Tag Type Name/Value
|
||||||
|
0x000000000000000e (SONAME) Library soname: [ld-linux-x86-64.so.2]
|
||||||
|
0x0000000000000004 (HASH) 0x2f0
|
||||||
|
0x000000006ffffef5 (GNU_HASH) 0x430
|
||||||
|
0x0000000000000005 (STRTAB) 0x950
|
||||||
|
0x0000000000000006 (SYMTAB) 0x590
|
||||||
|
0x000000000000000a (STRSZ) 705 (bytes)
|
||||||
|
0x000000000000000b (SYMENT) 24 (bytes)
|
||||||
|
0x0000000000000003 (PLTGOT) 0x3a000
|
||||||
|
0x0000000000000002 (PLTRELSZ) 96 (bytes)
|
||||||
|
0x0000000000000014 (PLTREL) RELA
|
||||||
|
0x0000000000000017 (JMPREL) 0x1af0
|
||||||
|
0x0000000000000007 (RELA) 0xd58
|
||||||
|
0x0000000000000008 (RELASZ) 3480 (bytes)
|
||||||
|
0x0000000000000009 (RELAENT) 24 (bytes)
|
||||||
|
0x000000006ffffffc (VERDEF) 0xc68
|
||||||
|
0x000000006ffffffd (VERDEFNUM) 7
|
||||||
|
0x000000006ffffff0 (VERSYM) 0xc12
|
||||||
|
0x000000006ffffff9 (RELACOUNT) 142
|
||||||
|
0x0000000000000000 (NULL) 0x0
|
||||||
|
|
||||||
|
Relocation section '.rela.dyn' at offset 0xd58 contains 145 entries:
|
||||||
|
Offset Info Type Sym. Value Sym. Name + Addend
|
||||||
|
000000038620 000000000008 R_X86_64_RELATIVE 2f041
|
||||||
|
000000038628 000000000008 R_X86_64_RELATIVE 2e8c9
|
||||||
|
000000038630 000000000008 R_X86_64_RELATIVE 2e8af
|
||||||
|
000000038638 000000000008 R_X86_64_RELATIVE 2f049
|
||||||
|
000000038640 000000000008 R_X86_64_RELATIVE 2f059
|
||||||
|
000000038648 000000000008 R_X86_64_RELATIVE 2e8e1
|
||||||
|
000000038650 000000000008 R_X86_64_RELATIVE 2f071
|
||||||
|
000000038658 000000000008 R_X86_64_RELATIVE 2f08b
|
||||||
|
000000038660 000000000008 R_X86_64_RELATIVE 2f0a2
|
||||||
|
000000038668 000000000008 R_X86_64_RELATIVE 2f0b4
|
||||||
|
000000038670 000000000008 R_X86_64_RELATIVE 2f0c8
|
||||||
|
000000038678 000000000008 R_X86_64_RELATIVE 32b48
|
||||||
|
000000038680 000000000008 R_X86_64_RELATIVE 2e887
|
||||||
|
000000038688 000000000008 R_X86_64_RELATIVE 2e8f4
|
||||||
|
000000038690 000000000008 R_X86_64_RELATIVE 2f0db
|
||||||
|
000000038698 000000000008 R_X86_64_RELATIVE 2f0e7
|
||||||
|
0000000386a0 000000000008 R_X86_64_RELATIVE 2f0fd
|
||||||
|
0000000386a8 000000000008 R_X86_64_RELATIVE 2f115
|
||||||
|
0000000386b0 000000000008 R_X86_64_RELATIVE 2f121
|
||||||
|
0000000386b8 000000000008 R_X86_64_RELATIVE 2f13b
|
||||||
|
0000000386c0 000000000008 R_X86_64_RELATIVE 2f14a
|
||||||
|
0000000386c8 000000000008 R_X86_64_RELATIVE 2f15a
|
||||||
|
0000000386d0 000000000008 R_X86_64_RELATIVE 2e89e
|
||||||
|
0000000386d8 000000000008 R_X86_64_RELATIVE 2f169
|
||||||
|
0000000386e0 000000000008 R_X86_64_RELATIVE 2f187
|
||||||
|
0000000386e8 000000000008 R_X86_64_RELATIVE 32b70
|
||||||
|
0000000386f0 000000000008 R_X86_64_RELATIVE 2f19b
|
||||||
|
0000000386f8 000000000008 R_X86_64_RELATIVE 2f1aa
|
||||||
|
000000038700 000000000008 R_X86_64_RELATIVE 2f1b9
|
||||||
|
000000038708 000000000008 R_X86_64_RELATIVE 2f1d1
|
||||||
|
000000038710 000000000008 R_X86_64_RELATIVE 2f1de
|
||||||
|
000000038718 000000000008 R_X86_64_RELATIVE 2f1f4
|
||||||
|
000000038720 000000000008 R_X86_64_RELATIVE 2f203
|
||||||
|
000000038728 000000000008 R_X86_64_RELATIVE 32b90
|
||||||
|
000000038730 000000000008 R_X86_64_RELATIVE 2f20f
|
||||||
|
000000038738 000000000008 R_X86_64_RELATIVE 2f22d
|
||||||
|
000000038740 000000000008 R_X86_64_RELATIVE 2f247
|
||||||
|
000000038748 000000000008 R_X86_64_RELATIVE 2f25a
|
||||||
|
000000038750 000000000008 R_X86_64_RELATIVE 2f26d
|
||||||
|
000000038758 000000000008 R_X86_64_RELATIVE 2f286
|
||||||
|
000000038760 000000000008 R_X86_64_RELATIVE 32bb8
|
||||||
|
000000038770 000000000008 R_X86_64_RELATIVE 2f29a
|
||||||
|
000000038778 000000000008 R_X86_64_RELATIVE 2f2b5
|
||||||
|
000000038780 000000000008 R_X86_64_RELATIVE 2f2c8
|
||||||
|
000000038788 000000000008 R_X86_64_RELATIVE 2f2e4
|
||||||
|
000000038790 000000000008 R_X86_64_RELATIVE 2f2fd
|
||||||
|
000000038798 000000000008 R_X86_64_RELATIVE 2f30c
|
||||||
|
0000000387a0 000000000008 R_X86_64_RELATIVE 2f31a
|
||||||
|
0000000387a8 000000000008 R_X86_64_RELATIVE 2f333
|
||||||
|
0000000387b0 000000000008 R_X86_64_RELATIVE 2f350
|
||||||
|
0000000387b8 000000000008 R_X86_64_RELATIVE 2f36b
|
||||||
|
0000000387c0 000000000008 R_X86_64_RELATIVE 2f37a
|
||||||
|
0000000387c8 000000000008 R_X86_64_RELATIVE 2f38b
|
||||||
|
0000000387d0 000000000008 R_X86_64_RELATIVE 2f3a6
|
||||||
|
0000000387d8 000000000008 R_X86_64_RELATIVE 2f3b4
|
||||||
|
0000000387e0 000000000008 R_X86_64_RELATIVE 2f3bd
|
||||||
|
0000000387e8 000000000008 R_X86_64_RELATIVE 2f3d2
|
||||||
|
0000000387f8 000000000008 R_X86_64_RELATIVE 2f3df
|
||||||
|
000000038800 000000000008 R_X86_64_RELATIVE 2f3f4
|
||||||
|
000000038808 000000000008 R_X86_64_RELATIVE 2f408
|
||||||
|
000000038810 000000000008 R_X86_64_RELATIVE 2f41a
|
||||||
|
000000038818 000000000008 R_X86_64_RELATIVE 2f428
|
||||||
|
000000038820 000000000008 R_X86_64_RELATIVE 2f441
|
||||||
|
000000038828 000000000008 R_X86_64_RELATIVE 2f45f
|
||||||
|
000000038830 000000000008 R_X86_64_RELATIVE 2f475
|
||||||
|
000000038838 000000000008 R_X86_64_RELATIVE 2f486
|
||||||
|
000000038840 000000000008 R_X86_64_RELATIVE 2f49c
|
||||||
|
000000038848 000000000008 R_X86_64_RELATIVE 2f4ac
|
||||||
|
000000038850 000000000008 R_X86_64_RELATIVE 2f4ba
|
||||||
|
000000038858 000000000008 R_X86_64_RELATIVE 2f4d6
|
||||||
|
000000038860 000000000008 R_X86_64_RELATIVE 2f4e5
|
||||||
|
000000038868 000000000008 R_X86_64_RELATIVE 2f4f8
|
||||||
|
000000038870 000000000008 R_X86_64_RELATIVE 2f50b
|
||||||
|
000000038878 000000000008 R_X86_64_RELATIVE 32be0
|
||||||
|
000000038880 000000000008 R_X86_64_RELATIVE 2f517
|
||||||
|
000000038888 000000000008 R_X86_64_RELATIVE 2f532
|
||||||
|
000000038890 000000000008 R_X86_64_RELATIVE 2f54f
|
||||||
|
000000038898 000000000008 R_X86_64_RELATIVE 32c08
|
||||||
|
0000000388a0 000000000008 R_X86_64_RELATIVE 32c30
|
||||||
|
0000000388a8 000000000008 R_X86_64_RELATIVE 32c58
|
||||||
|
0000000388b0 000000000008 R_X86_64_RELATIVE 32c78
|
||||||
|
0000000388b8 000000000008 R_X86_64_RELATIVE 32ca8
|
||||||
|
0000000388c0 000000000008 R_X86_64_RELATIVE 32cd0
|
||||||
|
0000000388c8 000000000008 R_X86_64_RELATIVE 32d08
|
||||||
|
0000000388d0 000000000008 R_X86_64_RELATIVE 2f566
|
||||||
|
0000000388d8 000000000008 R_X86_64_RELATIVE 2f579
|
||||||
|
0000000388e0 000000000008 R_X86_64_RELATIVE 32d38
|
||||||
|
0000000388e8 000000000008 R_X86_64_RELATIVE 2f588
|
||||||
|
0000000388f0 000000000008 R_X86_64_RELATIVE 2f5a5
|
||||||
|
0000000388f8 000000000008 R_X86_64_RELATIVE 32d58
|
||||||
|
000000038900 000000000008 R_X86_64_RELATIVE 2f5b6
|
||||||
|
000000038908 000000000008 R_X86_64_RELATIVE 2f5cd
|
||||||
|
000000038910 000000000008 R_X86_64_RELATIVE 2f5e4
|
||||||
|
000000038918 000000000008 R_X86_64_RELATIVE 2f5fe
|
||||||
|
000000038920 000000000008 R_X86_64_RELATIVE 2f616
|
||||||
|
000000038928 000000000008 R_X86_64_RELATIVE 32d78
|
||||||
|
000000038930 000000000008 R_X86_64_RELATIVE 2f634
|
||||||
|
000000038938 000000000008 R_X86_64_RELATIVE 32da8
|
||||||
|
000000038940 000000000008 R_X86_64_RELATIVE 2f64b
|
||||||
|
000000038948 000000000008 R_X86_64_RELATIVE 2f65b
|
||||||
|
000000038950 000000000008 R_X86_64_RELATIVE 32dc8
|
||||||
|
000000038958 000000000008 R_X86_64_RELATIVE 32df0
|
||||||
|
000000038960 000000000008 R_X86_64_RELATIVE 2f672
|
||||||
|
000000038968 000000000008 R_X86_64_RELATIVE 2f68b
|
||||||
|
000000038970 000000000008 R_X86_64_RELATIVE 32e18
|
||||||
|
000000038978 000000000008 R_X86_64_RELATIVE 32e40
|
||||||
|
000000038980 000000000008 R_X86_64_RELATIVE 32e68
|
||||||
|
000000038988 000000000008 R_X86_64_RELATIVE 32e98
|
||||||
|
000000038990 000000000008 R_X86_64_RELATIVE 2f6a5
|
||||||
|
000000038998 000000000008 R_X86_64_RELATIVE 2f6ba
|
||||||
|
0000000389a0 000000000008 R_X86_64_RELATIVE 2f6cd
|
||||||
|
0000000389a8 000000000008 R_X86_64_RELATIVE 2f6da
|
||||||
|
0000000389b0 000000000008 R_X86_64_RELATIVE 2f6eb
|
||||||
|
0000000389b8 000000000008 R_X86_64_RELATIVE 2f709
|
||||||
|
0000000389c0 000000000008 R_X86_64_RELATIVE 2f723
|
||||||
|
0000000389c8 000000000008 R_X86_64_RELATIVE 2f735
|
||||||
|
0000000389d0 000000000008 R_X86_64_RELATIVE 2f74e
|
||||||
|
0000000389d8 000000000008 R_X86_64_RELATIVE 2f76a
|
||||||
|
0000000389e0 000000000008 R_X86_64_RELATIVE 2f788
|
||||||
|
0000000389e8 000000000008 R_X86_64_RELATIVE 2f79d
|
||||||
|
0000000389f0 000000000008 R_X86_64_RELATIVE 2f7ae
|
||||||
|
0000000389f8 000000000008 R_X86_64_RELATIVE 2f7c2
|
||||||
|
000000038a00 000000000008 R_X86_64_RELATIVE 2f7d2
|
||||||
|
000000038a08 000000000008 R_X86_64_RELATIVE 2f7e4
|
||||||
|
000000038a10 000000000008 R_X86_64_RELATIVE 2f7f7
|
||||||
|
000000038a18 000000000008 R_X86_64_RELATIVE 2f812
|
||||||
|
000000038a20 000000000008 R_X86_64_RELATIVE 2f822
|
||||||
|
000000038a28 000000000008 R_X86_64_RELATIVE 2f837
|
||||||
|
000000038a30 000000000008 R_X86_64_RELATIVE 2f853
|
||||||
|
000000038a38 000000000008 R_X86_64_RELATIVE 2f85e
|
||||||
|
000000038a40 000000000008 R_X86_64_RELATIVE 32ec0
|
||||||
|
000000038a48 000000000008 R_X86_64_RELATIVE 32ee8
|
||||||
|
000000039e10 000000000008 R_X86_64_RELATIVE fbc0
|
||||||
|
000000039e18 000000000008 R_X86_64_RELATIVE 107b0
|
||||||
|
000000039e20 000000000008 R_X86_64_RELATIVE c0d0
|
||||||
|
000000039e28 000000000008 R_X86_64_RELATIVE e2a0
|
||||||
|
000000039e30 000000000008 R_X86_64_RELATIVE 3230
|
||||||
|
000000039e38 000000000008 R_X86_64_RELATIVE 1d470
|
||||||
|
000000039e40 000000000008 R_X86_64_RELATIVE 4a70
|
||||||
|
000000039e48 000000000008 R_X86_64_RELATIVE 14d80
|
||||||
|
000000039e50 000000000008 R_X86_64_RELATIVE 1e2d0
|
||||||
|
000000039e60 000000000008 R_X86_64_RELATIVE 1fa40
|
||||||
|
000000039ff0 001800000006 R_X86_64_GLOB_DAT 0000000000038ae8 __rseq_offset@@GLIBC_2.35 + 0
|
||||||
|
000000039ff8 001d00000006 R_X86_64_GLOB_DAT 0000000000038af0 __rseq_size@@GLIBC_2.35 + 0
|
||||||
|
000000039a50 000000000025 R_X86_64_IRELATIV 1a780
|
||||||
|
|
||||||
|
Relocation section '.rela.plt' at offset 0x1af0 contains 4 entries:
|
||||||
|
Offset Info Type Sym. Value Sym. Name + Addend
|
||||||
|
00000003a018 001100000007 R_X86_64_JUMP_SLO 000000000001d2e0 _dl_catch_exception@@GLIBC_PRIVATE + 0
|
||||||
|
00000003a020 000f00000007 R_X86_64_JUMP_SLO 000000000001d110 _dl_signal_exception@@GLIBC_PRIVATE + 0
|
||||||
|
00000003a028 001f00000007 R_X86_64_JUMP_SLO 000000000001d160 _dl_signal_error@@GLIBC_PRIVATE + 0
|
||||||
|
00000003a030 002300000007 R_X86_64_JUMP_SLO 000000000001d3d0 _dl_catch_error@@GLIBC_PRIVATE + 0
|
||||||
|
No processor specific unwind information to decode
|
||||||
|
|
||||||
|
Symbol table '.dynsym' contains 40 entries:
|
||||||
|
Num: Value Size Type Bind Vis Ndx Name
|
||||||
|
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
|
||||||
|
1: 000000000000af60 723 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
2: 000000000001b730 449 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
3: 000000000003b1d8 1 OBJECT GLOBAL DEFAULT 23 _[...]@@GLIBC_PRIVATE
|
||||||
|
4: 0000000000000000 0 OBJECT GLOBAL DEFAULT ABS GLIBC_2.2.5
|
||||||
|
5: 0000000000039ae0 928 OBJECT GLOBAL DEFAULT 18 _[...]@@GLIBC_PRIVATE
|
||||||
|
6: 00000000000147a0 711 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
7: 0000000000032fb0 4 OBJECT GLOBAL DEFAULT 14 __rs[...]@@GLIBC_2.35
|
||||||
|
8: 000000000003a040 4304 OBJECT GLOBAL DEFAULT 22 _[...]@@GLIBC_PRIVATE
|
||||||
|
9: 00000000000144f0 673 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
10: 0000000000039a90 8 OBJECT GLOBAL DEFAULT 18 __l[...]@@GLIBC_2.2.5
|
||||||
|
11: 0000000000039a98 4 OBJECT GLOBAL DEFAULT 18 _[...]@@GLIBC_PRIVATE
|
||||||
|
12: 00000000000051b0 59 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
13: 0000000000014a70 131 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
14: 000000000001a7d0 12 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
15: 000000000001d110 72 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
16: 000000000003b118 40 OBJECT GLOBAL DEFAULT 23 _r_debug@@GLIBC_2.2.5
|
||||||
|
17: 000000000001d2e0 227 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
18: 00000000000181d0 65 FUNC GLOBAL DEFAULT 13 __tls[...]@@GLIBC_2.3
|
||||||
|
19: 0000000000005010 35 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
20: 0000000000003300 5 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
21: 00000000000143f0 25 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
22: 000000000000e1d0 196 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
23: 0000000000000000 0 OBJECT GLOBAL DEFAULT ABS GLIBC_PRIVATE
|
||||||
|
24: 0000000000038ae8 8 OBJECT GLOBAL DEFAULT 18 __rs[...]@@GLIBC_2.35
|
||||||
|
25: 000000000002b310 5 FUNC GLOBAL DEFAULT 13 __rtl[...]@GLIBC_2.34
|
||||||
|
26: 000000000000ff20 169 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
27: 0000000000000000 0 OBJECT GLOBAL DEFAULT ABS GLIBC_2.3
|
||||||
|
28: 0000000000000000 0 OBJECT GLOBAL DEFAULT ABS GLIBC_2.4
|
||||||
|
29: 0000000000038af0 4 OBJECT GLOBAL DEFAULT 18 __rs[...]@@GLIBC_2.35
|
||||||
|
30: 0000000000017d70 109 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
31: 000000000001d160 83 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
32: 0000000000004ba0 1132 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
33: 0000000000039ac0 8 OBJECT GLOBAL DEFAULT 18 _[...]@@GLIBC_PRIVATE
|
||||||
|
34: 00000000000107b0 599 FUNC GLOBAL DEFAULT 13 _dl[...]@@GLIBC_2.2.5
|
||||||
|
35: 000000000001d3d0 69 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
36: 0000000000004aa0 244 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
37: 000000000001b660 205 FUNC GLOBAL DEFAULT 13 _[...]@@GLIBC_PRIVATE
|
||||||
|
38: 0000000000000000 0 OBJECT GLOBAL DEFAULT ABS GLIBC_2.34
|
||||||
|
39: 0000000000000000 0 OBJECT GLOBAL DEFAULT ABS GLIBC_2.35
|
||||||
|
|
||||||
|
Histogram for bucket list length (total of 37 buckets):
|
||||||
|
Length Number % of total Coverage
|
||||||
|
0 13 ( 35.1%)
|
||||||
|
1 13 ( 35.1%) 33.3%
|
||||||
|
2 8 ( 21.6%) 74.4%
|
||||||
|
3 2 ( 5.4%) 89.7%
|
||||||
|
4 1 ( 2.7%) 100.0%
|
||||||
|
|
||||||
|
Histogram for `.gnu.hash' bucket list length (total of 37 buckets):
|
||||||
|
Length Number % of total Coverage
|
||||||
|
0 12 ( 32.4%)
|
||||||
|
1 15 ( 40.5%) 38.5%
|
||||||
|
2 7 ( 18.9%) 74.4%
|
||||||
|
3 2 ( 5.4%) 89.7%
|
||||||
|
4 1 ( 2.7%) 100.0%
|
||||||
|
|
||||||
|
Version symbols section '.gnu.version' contains 40 entries:
|
||||||
|
Addr: 0x0000000000000c12 Offset: 0x000c12 Link: 5 (.dynsym)
|
||||||
|
000: 0 (*local*) 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE)
|
||||||
|
004: 2 (GLIBC_2.2.5) 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE) 6 (GLIBC_2.35)
|
||||||
|
008: 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE) 2 (GLIBC_2.2.5) 7 (GLIBC_PRIVATE)
|
||||||
|
00c: 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE)
|
||||||
|
010: 2 (GLIBC_2.2.5) 7 (GLIBC_PRIVATE) 3 (GLIBC_2.3) 7 (GLIBC_PRIVATE)
|
||||||
|
014: 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE)
|
||||||
|
018: 6 (GLIBC_2.35) 5h(GLIBC_2.34) 7 (GLIBC_PRIVATE) 3 (GLIBC_2.3)
|
||||||
|
01c: 4 (GLIBC_2.4) 6 (GLIBC_2.35) 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE)
|
||||||
|
020: 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE) 2 (GLIBC_2.2.5) 7 (GLIBC_PRIVATE)
|
||||||
|
024: 7 (GLIBC_PRIVATE) 7 (GLIBC_PRIVATE) 5 (GLIBC_2.34) 6 (GLIBC_2.35)
|
||||||
|
|
||||||
|
Version definition section '.gnu.version_d' contains 7 entries:
|
||||||
|
Addr: 0x0000000000000c68 Offset: 0x000c68 Link: 6 (.dynstr)
|
||||||
|
000000: Rev: 1 Flags: BASE Index: 1 Cnt: 1 Name: ld-linux-x86-64.so.2
|
||||||
|
0x001c: Rev: 1 Flags: none Index: 2 Cnt: 1 Name: GLIBC_2.2.5
|
||||||
|
0x0038: Rev: 1 Flags: none Index: 3 Cnt: 2 Name: GLIBC_2.3
|
||||||
|
0x0054: Parent 1: GLIBC_2.2.5
|
||||||
|
0x005c: Rev: 1 Flags: none Index: 4 Cnt: 2 Name: GLIBC_2.4
|
||||||
|
0x0078: Parent 1: GLIBC_2.3
|
||||||
|
0x0080: Rev: 1 Flags: none Index: 5 Cnt: 2 Name: GLIBC_2.34
|
||||||
|
0x009c: Parent 1: GLIBC_2.4
|
||||||
|
0x00a4: Rev: 1 Flags: none Index: 6 Cnt: 2 Name: GLIBC_2.35
|
||||||
|
0x00c0: Parent 1: GLIBC_2.34
|
||||||
|
0x00c8: Rev: 1 Flags: none Index: 7 Cnt: 2 Name: GLIBC_PRIVATE
|
||||||
|
0x00e4: Parent 1: GLIBC_2.35
|
||||||
|
|
||||||
|
Displaying notes found in: .note.gnu.property
|
||||||
|
Owner Data size Description
|
||||||
|
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: x86 feature: IBT, SHSTK
|
||||||
|
|
||||||
|
Displaying notes found in: .note.gnu.build-id
|
||||||
|
Owner Data size Description
|
||||||
|
GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
|
||||||
|
Build ID: 4186944c50f8a32b47d74931e3f512b811813b64
|
||||||
|
|
||||||
|
Displaying notes found in: .note.stapsdt
|
||||||
|
Owner Data size Description
|
||||||
|
stapsdt 0x00000038 NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: unmap_start
|
||||||
|
Location: 0x00000000000029ba, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: -8@%r15 8@%r13
|
||||||
|
stapsdt 0x0000003b NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: unmap_complete
|
||||||
|
Location: 0x0000000000002c24, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: -8@%r15 8@%rbx
|
||||||
|
stapsdt 0x0000003a NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: map_start
|
||||||
|
Location: 0x0000000000009add, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: -8@40(%rbp) 8@%rbx
|
||||||
|
stapsdt 0x00000044 NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: map_complete
|
||||||
|
Location: 0x000000000000ea68, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: -8@32(%rbx) 8@%r14 8@%r15
|
||||||
|
stapsdt 0x0000003f NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: reloc_start
|
||||||
|
Location: 0x000000000000eb88, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: -8@32(%rbx) 8@8(%rsp)
|
||||||
|
stapsdt 0x00000049 NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: reloc_complete
|
||||||
|
Location: 0x000000000000ece6, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: -8@32(%rbx) 8@8(%rsp) 8@%r15
|
||||||
|
stapsdt 0x00000035 NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: init_start
|
||||||
|
Location: 0x0000000000023300, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: -4@$0 8@%rbx
|
||||||
|
stapsdt 0x00000038 NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: init_complete
|
||||||
|
Location: 0x0000000000024258, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: -4@$0 8@%rbx
|
||||||
|
stapsdt 0x0000003a NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: lll_lock_wait_private
|
||||||
|
Location: 0x0000000000026d66, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: 8@%rdi
|
||||||
|
stapsdt 0x00000032 NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: lll_lock_wait
|
||||||
|
Location: 0x0000000000026dc9, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: 8@%rdi
|
||||||
|
stapsdt 0x0000003a NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: setjmp
|
||||||
|
Location: 0x0000000000026f31, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: 8@%rdi -4@%esi 8@%rax
|
||||||
|
stapsdt 0x0000003b NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: longjmp
|
||||||
|
Location: 0x0000000000026faf, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: 8@%rdi -4@%esi 8@%rdx
|
||||||
|
stapsdt 0x00000042 NT_STAPSDT (SystemTap probe descriptors)
|
||||||
|
Provider: rtld
|
||||||
|
Name: longjmp_target
|
||||||
|
Location: 0x0000000000026fcb, Base: 0x0000000000032fc0, Semaphore: 0x0000000000000000
|
||||||
|
Arguments: 8@%rdi -4@%eax 8@%rdx
|
||||||
692
doc/ls.txt
Executable file
692
doc/ls.txt
Executable file
@@ -0,0 +1,692 @@
|
|||||||
|
ELF Header:
|
||||||
|
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
|
||||||
|
Class: ELF64
|
||||||
|
Data: 2's complement, little endian
|
||||||
|
Version: 1 (current)
|
||||||
|
OS/ABI: UNIX - System V
|
||||||
|
ABI Version: 0
|
||||||
|
Type: DYN (Position-Independent Executable file)
|
||||||
|
Machine: Advanced Micro Devices X86-64
|
||||||
|
Version: 0x1
|
||||||
|
Entry point address: 0x6aa0
|
||||||
|
Start of program headers: 64 (bytes into file)
|
||||||
|
Start of section headers: 136232 (bytes into file)
|
||||||
|
Flags: 0x0
|
||||||
|
Size of this header: 64 (bytes)
|
||||||
|
Size of program headers: 56 (bytes)
|
||||||
|
Number of program headers: 13
|
||||||
|
Size of section headers: 64 (bytes)
|
||||||
|
Number of section headers: 31
|
||||||
|
Section header string table index: 30
|
||||||
|
|
||||||
|
Section Headers:
|
||||||
|
[Nr] Name Type Address Offset
|
||||||
|
Size EntSize Flags Link Info Align
|
||||||
|
[ 0] NULL 0000000000000000 00000000
|
||||||
|
0000000000000000 0000000000000000 0 0 0
|
||||||
|
[ 1] .interp PROGBITS 0000000000000318 00000318
|
||||||
|
000000000000001c 0000000000000000 A 0 0 1
|
||||||
|
[ 2] .note.gnu.pr[...] NOTE 0000000000000338 00000338
|
||||||
|
0000000000000030 0000000000000000 A 0 0 8
|
||||||
|
[ 3] .note.gnu.bu[...] NOTE 0000000000000368 00000368
|
||||||
|
0000000000000024 0000000000000000 A 0 0 4
|
||||||
|
[ 4] .note.ABI-tag NOTE 000000000000038c 0000038c
|
||||||
|
0000000000000020 0000000000000000 A 0 0 4
|
||||||
|
[ 5] .gnu.hash GNU_HASH 00000000000003b0 000003b0
|
||||||
|
000000000000004c 0000000000000000 A 6 0 8
|
||||||
|
[ 6] .dynsym DYNSYM 0000000000000400 00000400
|
||||||
|
0000000000000b88 0000000000000018 A 7 1 8
|
||||||
|
[ 7] .dynstr STRTAB 0000000000000f88 00000f88
|
||||||
|
00000000000005a6 0000000000000000 A 0 0 1
|
||||||
|
[ 8] .gnu.version VERSYM 000000000000152e 0000152e
|
||||||
|
00000000000000f6 0000000000000002 A 6 0 2
|
||||||
|
[ 9] .gnu.version_r VERNEED 0000000000001628 00001628
|
||||||
|
00000000000000c0 0000000000000000 A 7 2 8
|
||||||
|
[10] .rela.dyn RELA 00000000000016e8 000016e8
|
||||||
|
0000000000001410 0000000000000018 A 6 0 8
|
||||||
|
[11] .rela.plt RELA 0000000000002af8 00002af8
|
||||||
|
0000000000000960 0000000000000018 AI 6 25 8
|
||||||
|
[12] .init PROGBITS 0000000000004000 00004000
|
||||||
|
000000000000001b 0000000000000000 AX 0 0 4
|
||||||
|
[13] .plt PROGBITS 0000000000004020 00004020
|
||||||
|
0000000000000650 0000000000000010 AX 0 0 16
|
||||||
|
[14] .plt.got PROGBITS 0000000000004670 00004670
|
||||||
|
0000000000000030 0000000000000010 AX 0 0 16
|
||||||
|
[15] .plt.sec PROGBITS 00000000000046a0 000046a0
|
||||||
|
0000000000000640 0000000000000010 AX 0 0 16
|
||||||
|
[16] .text PROGBITS 0000000000004ce0 00004ce0
|
||||||
|
00000000000123a2 0000000000000000 AX 0 0 16
|
||||||
|
[17] .fini PROGBITS 0000000000017084 00017084
|
||||||
|
000000000000000d 0000000000000000 AX 0 0 4
|
||||||
|
[18] .rodata PROGBITS 0000000000018000 00018000
|
||||||
|
0000000000004dcc 0000000000000000 A 0 0 32
|
||||||
|
[19] .eh_frame_hdr PROGBITS 000000000001cdcc 0001cdcc
|
||||||
|
000000000000056c 0000000000000000 A 0 0 4
|
||||||
|
[20] .eh_frame PROGBITS 000000000001d338 0001d338
|
||||||
|
0000000000002120 0000000000000000 A 0 0 8
|
||||||
|
[21] .init_array INIT_ARRAY 0000000000020fd0 0001ffd0
|
||||||
|
0000000000000008 0000000000000008 WA 0 0 8
|
||||||
|
[22] .fini_array FINI_ARRAY 0000000000020fd8 0001ffd8
|
||||||
|
0000000000000008 0000000000000008 WA 0 0 8
|
||||||
|
[23] .data.rel.ro PROGBITS 0000000000020fe0 0001ffe0
|
||||||
|
0000000000000a78 0000000000000000 WA 0 0 32
|
||||||
|
[24] .dynamic DYNAMIC 0000000000021a58 00020a58
|
||||||
|
0000000000000200 0000000000000010 WA 7 0 8
|
||||||
|
[25] .got PROGBITS 0000000000021c58 00020c58
|
||||||
|
00000000000003a0 0000000000000008 WA 0 0 8
|
||||||
|
[26] .data PROGBITS 0000000000022000 00021000
|
||||||
|
0000000000000278 0000000000000000 WA 0 0 32
|
||||||
|
[27] .bss NOBITS 0000000000022280 00021278
|
||||||
|
00000000000012c0 0000000000000000 WA 0 0 32
|
||||||
|
[28] .gnu_debugaltlink PROGBITS 0000000000000000 00021278
|
||||||
|
0000000000000049 0000000000000000 0 0 1
|
||||||
|
[29] .gnu_debuglink PROGBITS 0000000000000000 000212c4
|
||||||
|
0000000000000034 0000000000000000 0 0 4
|
||||||
|
[30] .shstrtab STRTAB 0000000000000000 000212f8
|
||||||
|
000000000000012f 0000000000000000 0 0 1
|
||||||
|
Key to Flags:
|
||||||
|
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
|
||||||
|
L (link order), O (extra OS processing required), G (group), T (TLS),
|
||||||
|
C (compressed), x (unknown), o (OS specific), E (exclude),
|
||||||
|
D (mbind), l (large), p (processor specific)
|
||||||
|
|
||||||
|
There are no section groups in this file.
|
||||||
|
|
||||||
|
Program Headers:
|
||||||
|
Type Offset VirtAddr PhysAddr
|
||||||
|
FileSiz MemSiz Flags Align
|
||||||
|
PHDR 0x0000000000000040 0x0000000000000040 0x0000000000000040
|
||||||
|
0x00000000000002d8 0x00000000000002d8 R 0x8
|
||||||
|
INTERP 0x0000000000000318 0x0000000000000318 0x0000000000000318
|
||||||
|
0x000000000000001c 0x000000000000001c R 0x1
|
||||||
|
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
|
||||||
|
LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000
|
||||||
|
0x0000000000003458 0x0000000000003458 R 0x1000
|
||||||
|
LOAD 0x0000000000004000 0x0000000000004000 0x0000000000004000
|
||||||
|
0x0000000000013091 0x0000000000013091 R E 0x1000
|
||||||
|
LOAD 0x0000000000018000 0x0000000000018000 0x0000000000018000
|
||||||
|
0x0000000000007458 0x0000000000007458 R 0x1000
|
||||||
|
LOAD 0x000000000001ffd0 0x0000000000020fd0 0x0000000000020fd0
|
||||||
|
0x00000000000012a8 0x0000000000002570 RW 0x1000
|
||||||
|
DYNAMIC 0x0000000000020a58 0x0000000000021a58 0x0000000000021a58
|
||||||
|
0x0000000000000200 0x0000000000000200 RW 0x8
|
||||||
|
NOTE 0x0000000000000338 0x0000000000000338 0x0000000000000338
|
||||||
|
0x0000000000000030 0x0000000000000030 R 0x8
|
||||||
|
NOTE 0x0000000000000368 0x0000000000000368 0x0000000000000368
|
||||||
|
0x0000000000000044 0x0000000000000044 R 0x4
|
||||||
|
GNU_PROPERTY 0x0000000000000338 0x0000000000000338 0x0000000000000338
|
||||||
|
0x0000000000000030 0x0000000000000030 R 0x8
|
||||||
|
GNU_EH_FRAME 0x000000000001cdcc 0x000000000001cdcc 0x000000000001cdcc
|
||||||
|
0x000000000000056c 0x000000000000056c R 0x4
|
||||||
|
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
|
||||||
|
0x0000000000000000 0x0000000000000000 RW 0x10
|
||||||
|
GNU_RELRO 0x000000000001ffd0 0x0000000000020fd0 0x0000000000020fd0
|
||||||
|
0x0000000000001030 0x0000000000001030 R 0x1
|
||||||
|
|
||||||
|
Section to Segment mapping:
|
||||||
|
Segment Sections...
|
||||||
|
00
|
||||||
|
01 .interp
|
||||||
|
02 .interp .note.gnu.property .note.gnu.build-id .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt
|
||||||
|
03 .init .plt .plt.got .plt.sec .text .fini
|
||||||
|
04 .rodata .eh_frame_hdr .eh_frame
|
||||||
|
05 .init_array .fini_array .data.rel.ro .dynamic .got .data .bss
|
||||||
|
06 .dynamic
|
||||||
|
07 .note.gnu.property
|
||||||
|
08 .note.gnu.build-id .note.ABI-tag
|
||||||
|
09 .note.gnu.property
|
||||||
|
10 .eh_frame_hdr
|
||||||
|
11
|
||||||
|
12 .init_array .fini_array .data.rel.ro .dynamic .got
|
||||||
|
|
||||||
|
Dynamic section at offset 0x20a58 contains 28 entries:
|
||||||
|
Tag Type Name/Value
|
||||||
|
0x0000000000000001 (NEEDED) Shared library: [libselinux.so.1]
|
||||||
|
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
|
||||||
|
0x000000000000000c (INIT) 0x4000
|
||||||
|
0x000000000000000d (FINI) 0x17084
|
||||||
|
0x0000000000000019 (INIT_ARRAY) 0x20fd0
|
||||||
|
0x000000000000001b (INIT_ARRAYSZ) 8 (bytes)
|
||||||
|
0x000000000000001a (FINI_ARRAY) 0x20fd8
|
||||||
|
0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)
|
||||||
|
0x000000006ffffef5 (GNU_HASH) 0x3b0
|
||||||
|
0x0000000000000005 (STRTAB) 0xf88
|
||||||
|
0x0000000000000006 (SYMTAB) 0x400
|
||||||
|
0x000000000000000a (STRSZ) 1446 (bytes)
|
||||||
|
0x000000000000000b (SYMENT) 24 (bytes)
|
||||||
|
0x0000000000000015 (DEBUG) 0x0
|
||||||
|
0x0000000000000003 (PLTGOT) 0x21c58
|
||||||
|
0x0000000000000002 (PLTRELSZ) 2400 (bytes)
|
||||||
|
0x0000000000000014 (PLTREL) RELA
|
||||||
|
0x0000000000000017 (JMPREL) 0x2af8
|
||||||
|
0x0000000000000007 (RELA) 0x16e8
|
||||||
|
0x0000000000000008 (RELASZ) 5136 (bytes)
|
||||||
|
0x0000000000000009 (RELAENT) 24 (bytes)
|
||||||
|
0x000000000000001e (FLAGS) BIND_NOW
|
||||||
|
0x000000006ffffffb (FLAGS_1) Flags: NOW PIE
|
||||||
|
0x000000006ffffffe (VERNEED) 0x1628
|
||||||
|
0x000000006fffffff (VERNEEDNUM) 2
|
||||||
|
0x000000006ffffff0 (VERSYM) 0x152e
|
||||||
|
0x000000006ffffff9 (RELACOUNT) 201
|
||||||
|
0x0000000000000000 (NULL) 0x0
|
||||||
|
|
||||||
|
Relocation section '.rela.dyn' at offset 0x16e8 contains 214 entries:
|
||||||
|
Offset Info Type Sym. Value Sym. Name + Addend
|
||||||
|
000000020fd0 000000000008 R_X86_64_RELATIVE 6b80
|
||||||
|
000000020fd8 000000000008 R_X86_64_RELATIVE 6b40
|
||||||
|
000000020fe0 000000000008 R_X86_64_RELATIVE 19e42
|
||||||
|
000000020fe8 000000000008 R_X86_64_RELATIVE 19e51
|
||||||
|
000000021000 000000000008 R_X86_64_RELATIVE af40
|
||||||
|
000000021008 000000000008 R_X86_64_RELATIVE afa0
|
||||||
|
000000021010 000000000008 R_X86_64_RELATIVE af70
|
||||||
|
000000021018 000000000008 R_X86_64_RELATIVE b060
|
||||||
|
000000021020 000000000008 R_X86_64_RELATIVE 8250
|
||||||
|
000000021028 000000000008 R_X86_64_RELATIVE 8280
|
||||||
|
000000021030 000000000008 R_X86_64_RELATIVE 8260
|
||||||
|
000000021038 000000000008 R_X86_64_RELATIVE 8330
|
||||||
|
000000021040 000000000008 R_X86_64_RELATIVE b120
|
||||||
|
000000021048 000000000008 R_X86_64_RELATIVE b240
|
||||||
|
000000021050 000000000008 R_X86_64_RELATIVE b1b0
|
||||||
|
000000021058 000000000008 R_X86_64_RELATIVE b350
|
||||||
|
000000021060 000000000008 R_X86_64_RELATIVE 9c90
|
||||||
|
000000021068 000000000008 R_X86_64_RELATIVE 9b70
|
||||||
|
000000021070 000000000008 R_X86_64_RELATIVE 9d10
|
||||||
|
000000021078 000000000008 R_X86_64_RELATIVE 9d90
|
||||||
|
000000021080 000000000008 R_X86_64_RELATIVE ad00
|
||||||
|
000000021088 000000000008 R_X86_64_RELATIVE adc0
|
||||||
|
000000021090 000000000008 R_X86_64_RELATIVE ad60
|
||||||
|
000000021098 000000000008 R_X86_64_RELATIVE ae80
|
||||||
|
0000000210a0 000000000008 R_X86_64_RELATIVE 8120
|
||||||
|
0000000210a8 000000000008 R_X86_64_RELATIVE 81a0
|
||||||
|
0000000210b0 000000000008 R_X86_64_RELATIVE 8160
|
||||||
|
0000000210b8 000000000008 R_X86_64_RELATIVE 8070
|
||||||
|
0000000210c0 000000000008 R_X86_64_RELATIVE 87c0
|
||||||
|
0000000210c8 000000000008 R_X86_64_RELATIVE 87f0
|
||||||
|
0000000210d0 000000000008 R_X86_64_RELATIVE 87d0
|
||||||
|
0000000210d8 000000000008 R_X86_64_RELATIVE 88a0
|
||||||
|
000000021100 000000000008 R_X86_64_RELATIVE a700
|
||||||
|
000000021108 000000000008 R_X86_64_RELATIVE ac10
|
||||||
|
000000021110 000000000008 R_X86_64_RELATIVE a770
|
||||||
|
000000021118 000000000008 R_X86_64_RELATIVE acf0
|
||||||
|
000000021120 000000000008 R_X86_64_RELATIVE 8c80
|
||||||
|
000000021128 000000000008 R_X86_64_RELATIVE 8d20
|
||||||
|
000000021130 000000000008 R_X86_64_RELATIVE 8cd0
|
||||||
|
000000021138 000000000008 R_X86_64_RELATIVE 8dd0
|
||||||
|
000000021140 000000000008 R_X86_64_RELATIVE a440
|
||||||
|
000000021148 000000000008 R_X86_64_RELATIVE a540
|
||||||
|
000000021150 000000000008 R_X86_64_RELATIVE a4c0
|
||||||
|
000000021158 000000000008 R_X86_64_RELATIVE a620
|
||||||
|
000000021160 000000000008 R_X86_64_RELATIVE 8a50
|
||||||
|
000000021168 000000000008 R_X86_64_RELATIVE 8990
|
||||||
|
000000021170 000000000008 R_X86_64_RELATIVE 8ab0
|
||||||
|
000000021178 000000000008 R_X86_64_RELATIVE 8b10
|
||||||
|
000000021180 000000000008 R_X86_64_RELATIVE a7e0
|
||||||
|
000000021188 000000000008 R_X86_64_RELATIVE a8c0
|
||||||
|
000000021190 000000000008 R_X86_64_RELATIVE a850
|
||||||
|
000000021198 000000000008 R_X86_64_RELATIVE a990
|
||||||
|
0000000211a0 000000000008 R_X86_64_RELATIVE 8f30
|
||||||
|
0000000211a8 000000000008 R_X86_64_RELATIVE 8e80
|
||||||
|
0000000211b0 000000000008 R_X86_64_RELATIVE 8f80
|
||||||
|
0000000211b8 000000000008 R_X86_64_RELATIVE 8fd0
|
||||||
|
0000000211c0 000000000008 R_X86_64_RELATIVE aa60
|
||||||
|
0000000211c8 000000000008 R_X86_64_RELATIVE ab40
|
||||||
|
0000000211d0 000000000008 R_X86_64_RELATIVE aad0
|
||||||
|
0000000211d8 000000000008 R_X86_64_RELATIVE ac20
|
||||||
|
0000000211e0 000000000008 R_X86_64_RELATIVE 9080
|
||||||
|
0000000211e8 000000000008 R_X86_64_RELATIVE 8bd0
|
||||||
|
0000000211f0 000000000008 R_X86_64_RELATIVE 90d0
|
||||||
|
0000000211f8 000000000008 R_X86_64_RELATIVE 9120
|
||||||
|
000000021200 000000000008 R_X86_64_RELATIVE 19c61
|
||||||
|
000000021208 000000000008 R_X86_64_RELATIVE 19e54
|
||||||
|
000000021210 000000000008 R_X86_64_RELATIVE 19e59
|
||||||
|
000000021218 000000000008 R_X86_64_RELATIVE 19c84
|
||||||
|
000000021240 000000000008 R_X86_64_RELATIVE 19e5d
|
||||||
|
000000021248 000000000008 R_X86_64_RELATIVE 19e62
|
||||||
|
000000021250 000000000008 R_X86_64_RELATIVE 19e68
|
||||||
|
000000021258 000000000008 R_X86_64_RELATIVE 19e72
|
||||||
|
000000021280 000000000008 R_X86_64_RELATIVE 1a08d
|
||||||
|
000000021288 000000000008 R_X86_64_RELATIVE 19e7b
|
||||||
|
000000021290 000000000008 R_X86_64_RELATIVE 19e7f
|
||||||
|
000000021298 000000000008 R_X86_64_RELATIVE 19e85
|
||||||
|
0000000212a0 000000000008 R_X86_64_RELATIVE 19e8b
|
||||||
|
0000000212a8 000000000008 R_X86_64_RELATIVE 19e5d
|
||||||
|
0000000212b0 000000000008 R_X86_64_RELATIVE 19e8e
|
||||||
|
0000000212b8 000000000008 R_X86_64_RELATIVE 19e96
|
||||||
|
0000000212c0 000000000008 R_X86_64_RELATIVE 19e93
|
||||||
|
0000000212e0 000000000008 R_X86_64_RELATIVE 19e9a
|
||||||
|
0000000212e8 000000000008 R_X86_64_RELATIVE 19ea2
|
||||||
|
0000000212f0 000000000008 R_X86_64_RELATIVE 19ea7
|
||||||
|
0000000212f8 000000000008 R_X86_64_RELATIVE 19eae
|
||||||
|
000000021300 000000000008 R_X86_64_RELATIVE 19eb9
|
||||||
|
000000021308 000000000008 R_X86_64_RELATIVE 19ec0
|
||||||
|
000000021310 000000000008 R_X86_64_RELATIVE 19ec9
|
||||||
|
000000021320 000000000008 R_X86_64_RELATIVE 19ed7
|
||||||
|
000000021328 000000000008 R_X86_64_RELATIVE 19b66
|
||||||
|
000000021330 000000000008 R_X86_64_RELATIVE 19edd
|
||||||
|
000000021338 000000000008 R_X86_64_RELATIVE 19ee1
|
||||||
|
000000021340 000000000008 R_X86_64_RELATIVE 19ee7
|
||||||
|
000000021348 000000000008 R_X86_64_RELATIVE 19eee
|
||||||
|
000000021350 000000000008 R_X86_64_RELATIVE 19ef4
|
||||||
|
000000021360 000000000008 R_X86_64_RELATIVE 19e5d
|
||||||
|
000000021368 000000000008 R_X86_64_RELATIVE 19ce1
|
||||||
|
000000021370 000000000008 R_X86_64_RELATIVE 19cd3
|
||||||
|
000000021378 000000000008 R_X86_64_RELATIVE 19efd
|
||||||
|
000000021380 000000000008 R_X86_64_RELATIVE 19b1d
|
||||||
|
0000000213a0 000000000008 R_X86_64_RELATIVE 19f84
|
||||||
|
0000000213c0 000000000008 R_X86_64_RELATIVE 1a079
|
||||||
|
0000000213e0 000000000008 R_X86_64_RELATIVE 19f07
|
||||||
|
000000021400 000000000008 R_X86_64_RELATIVE 19f11
|
||||||
|
000000021420 000000000008 R_X86_64_RELATIVE 19f17
|
||||||
|
000000021440 000000000008 R_X86_64_RELATIVE 19f21
|
||||||
|
000000021460 000000000008 R_X86_64_RELATIVE 19e42
|
||||||
|
000000021480 000000000008 R_X86_64_RELATIVE 19f39
|
||||||
|
0000000214a0 000000000008 R_X86_64_RELATIVE 19f3f
|
||||||
|
0000000214c0 000000000008 R_X86_64_RELATIVE 19f49
|
||||||
|
0000000214e0 000000000008 R_X86_64_RELATIVE 19f59
|
||||||
|
000000021500 000000000008 R_X86_64_RELATIVE 19f62
|
||||||
|
000000021520 000000000008 R_X86_64_RELATIVE 19f75
|
||||||
|
000000021540 000000000008 R_X86_64_RELATIVE 19cd3
|
||||||
|
000000021560 000000000008 R_X86_64_RELATIVE 19cb6
|
||||||
|
000000021580 000000000008 R_X86_64_RELATIVE 19f7d
|
||||||
|
0000000215a0 000000000008 R_X86_64_RELATIVE 19f88
|
||||||
|
0000000215c0 000000000008 R_X86_64_RELATIVE 19e72
|
||||||
|
0000000215e0 000000000008 R_X86_64_RELATIVE 19e68
|
||||||
|
000000021600 000000000008 R_X86_64_RELATIVE 19e51
|
||||||
|
000000021620 000000000008 R_X86_64_RELATIVE 19f97
|
||||||
|
000000021640 000000000008 R_X86_64_RELATIVE 1c4b0
|
||||||
|
000000021660 000000000008 R_X86_64_RELATIVE 19fb0
|
||||||
|
000000021680 000000000008 R_X86_64_RELATIVE 19fb5
|
||||||
|
0000000216a0 000000000008 R_X86_64_RELATIVE 19d05
|
||||||
|
0000000216c0 000000000008 R_X86_64_RELATIVE 19fbc
|
||||||
|
0000000216e0 000000000008 R_X86_64_RELATIVE 19fc8
|
||||||
|
000000021700 000000000008 R_X86_64_RELATIVE 19fd0
|
||||||
|
000000021720 000000000008 R_X86_64_RELATIVE 19d17
|
||||||
|
000000021740 000000000008 R_X86_64_RELATIVE 19fdb
|
||||||
|
000000021760 000000000008 R_X86_64_RELATIVE 19ce8
|
||||||
|
000000021780 000000000008 R_X86_64_RELATIVE 19fe5
|
||||||
|
0000000217a0 000000000008 R_X86_64_RELATIVE 19cda
|
||||||
|
0000000217c0 000000000008 R_X86_64_RELATIVE 19ff8
|
||||||
|
0000000217e0 000000000008 R_X86_64_RELATIVE 19ce1
|
||||||
|
000000021800 000000000008 R_X86_64_RELATIVE 1a000
|
||||||
|
000000021820 000000000008 R_X86_64_RELATIVE 19cf1
|
||||||
|
000000021840 000000000008 R_X86_64_RELATIVE 19cf9
|
||||||
|
000000021860 000000000008 R_X86_64_RELATIVE 1a00b
|
||||||
|
000000021880 000000000008 R_X86_64_RELATIVE 1a016
|
||||||
|
0000000218a0 000000000008 R_X86_64_RELATIVE 1a01e
|
||||||
|
0000000218c0 000000000008 R_X86_64_RELATIVE 1a025
|
||||||
|
0000000218e0 000000000008 R_X86_64_RELATIVE 19b1d
|
||||||
|
000000021920 000000000008 R_X86_64_RELATIVE 19c6a
|
||||||
|
000000021928 000000000008 R_X86_64_RELATIVE 1a02a
|
||||||
|
000000021930 000000000008 R_X86_64_RELATIVE 1a02d
|
||||||
|
000000021938 000000000008 R_X86_64_RELATIVE 19f72
|
||||||
|
000000021940 000000000008 R_X86_64_RELATIVE 19e8b
|
||||||
|
000000021948 000000000008 R_X86_64_RELATIVE 1a030
|
||||||
|
000000021950 000000000008 R_X86_64_RELATIVE 1a033
|
||||||
|
000000021958 000000000008 R_X86_64_RELATIVE 1a036
|
||||||
|
000000021960 000000000008 R_X86_64_RELATIVE 1a039
|
||||||
|
000000021968 000000000008 R_X86_64_RELATIVE 19e5a
|
||||||
|
000000021970 000000000008 R_X86_64_RELATIVE 1a03c
|
||||||
|
000000021978 000000000008 R_X86_64_RELATIVE 1a03f
|
||||||
|
000000021980 000000000008 R_X86_64_RELATIVE 1a042
|
||||||
|
000000021988 000000000008 R_X86_64_RELATIVE 1a022
|
||||||
|
000000021990 000000000008 R_X86_64_RELATIVE 1a045
|
||||||
|
000000021998 000000000008 R_X86_64_RELATIVE 1a048
|
||||||
|
0000000219a0 000000000008 R_X86_64_RELATIVE 1a04b
|
||||||
|
0000000219a8 000000000008 R_X86_64_RELATIVE 1a04e
|
||||||
|
0000000219b0 000000000008 R_X86_64_RELATIVE 19f36
|
||||||
|
0000000219b8 000000000008 R_X86_64_RELATIVE 1a051
|
||||||
|
0000000219c0 000000000008 R_X86_64_RELATIVE 1a054
|
||||||
|
0000000219c8 000000000008 R_X86_64_RELATIVE 1a057
|
||||||
|
0000000219d0 000000000008 R_X86_64_RELATIVE 1a05a
|
||||||
|
0000000219d8 000000000008 R_X86_64_RELATIVE 1a05d
|
||||||
|
000000021a00 000000000008 R_X86_64_RELATIVE 19fc8
|
||||||
|
000000021a08 000000000008 R_X86_64_RELATIVE 1a060
|
||||||
|
000000021a10 000000000008 R_X86_64_RELATIVE 1a066
|
||||||
|
000000021a18 000000000008 R_X86_64_RELATIVE 1a073
|
||||||
|
000000021a20 000000000008 R_X86_64_RELATIVE 1a080
|
||||||
|
000000021a28 000000000008 R_X86_64_RELATIVE 19b09
|
||||||
|
000000021a30 000000000008 R_X86_64_RELATIVE 1a094
|
||||||
|
000000021a38 000000000008 R_X86_64_RELATIVE 1a079
|
||||||
|
000000021a40 000000000008 R_X86_64_RELATIVE 19c84
|
||||||
|
000000021a48 000000000008 R_X86_64_RELATIVE 1a09c
|
||||||
|
000000022008 000000000008 R_X86_64_RELATIVE 22008
|
||||||
|
0000000220a0 000000000008 R_X86_64_RELATIVE 98a0
|
||||||
|
0000000220c8 000000000008 R_X86_64_RELATIVE 1a0a4
|
||||||
|
0000000220d8 000000000008 R_X86_64_RELATIVE 19989
|
||||||
|
0000000220f8 000000000008 R_X86_64_RELATIVE 19b00
|
||||||
|
000000022128 000000000008 R_X86_64_RELATIVE 1a0a7
|
||||||
|
000000022138 000000000008 R_X86_64_RELATIVE 1a0ad
|
||||||
|
000000022148 000000000008 R_X86_64_RELATIVE 1a0bc
|
||||||
|
000000022158 000000000008 R_X86_64_RELATIVE 1a0b3
|
||||||
|
000000022168 000000000008 R_X86_64_RELATIVE 1a0b9
|
||||||
|
000000022178 000000000008 R_X86_64_RELATIVE 1a0b9
|
||||||
|
0000000221a8 000000000008 R_X86_64_RELATIVE 1a0bf
|
||||||
|
0000000221b8 000000000008 R_X86_64_RELATIVE 1a0b3
|
||||||
|
0000000221c8 000000000008 R_X86_64_RELATIVE 1a0c5
|
||||||
|
0000000221d8 000000000008 R_X86_64_RELATIVE 1a0cb
|
||||||
|
0000000221e8 000000000008 R_X86_64_RELATIVE 1a0d1
|
||||||
|
0000000221f8 000000000008 R_X86_64_RELATIVE 1a0d7
|
||||||
|
000000022208 000000000008 R_X86_64_RELATIVE 1a0dd
|
||||||
|
000000022218 000000000008 R_X86_64_RELATIVE 1a0e3
|
||||||
|
000000022238 000000000008 R_X86_64_RELATIVE 1a0e9
|
||||||
|
000000022240 000000000008 R_X86_64_RELATIVE 1a0ed
|
||||||
|
000000022248 000000000008 R_X86_64_RELATIVE 1a0f7
|
||||||
|
000000022268 000000000008 R_X86_64_RELATIVE 23440
|
||||||
|
000000022270 000000000008 R_X86_64_RELATIVE 22260
|
||||||
|
000000021f90 007600000006 R_X86_64_GLOB_DAT 0000000000000000 free@GLIBC_2.2.5 + 0
|
||||||
|
000000021f98 000700000006 R_X86_64_GLOB_DAT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0
|
||||||
|
000000021fa0 000b00000006 R_X86_64_GLOB_DAT 0000000000000000 _ITM_deregisterTM[...] + 0
|
||||||
|
000000021fa8 000c00000006 R_X86_64_GLOB_DAT 0000000000000000 stdout@GLIBC_2.2.5 + 0
|
||||||
|
000000021fb0 001d00000006 R_X86_64_GLOB_DAT 0000000000000000 optind@GLIBC_2.2.5 + 0
|
||||||
|
000000021fb8 003e00000006 R_X86_64_GLOB_DAT 0000000000000000 optarg@GLIBC_2.2.5 + 0
|
||||||
|
000000021fc0 004100000006 R_X86_64_GLOB_DAT 0000000000000000 __gmon_start__ + 0
|
||||||
|
000000021fc8 004300000006 R_X86_64_GLOB_DAT 0000000000000000 program_invocatio[...]@GLIBC_2.2.5 + 0
|
||||||
|
000000021fd0 007800000006 R_X86_64_GLOB_DAT 0000000000000000 malloc@GLIBC_2.2.5 + 0
|
||||||
|
000000021fd8 006500000006 R_X86_64_GLOB_DAT 0000000000000000 _ITM_registerTMCl[...] + 0
|
||||||
|
000000021fe0 006a00000006 R_X86_64_GLOB_DAT 0000000000000000 program_invocatio[...]@GLIBC_2.2.5 + 0
|
||||||
|
000000021fe8 007500000006 R_X86_64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.2.5 + 0
|
||||||
|
000000021ff0 006f00000006 R_X86_64_GLOB_DAT 0000000000000000 stderr@GLIBC_2.2.5 + 0
|
||||||
|
|
||||||
|
Relocation section '.rela.plt' at offset 0x2af8 contains 100 entries:
|
||||||
|
Offset Info Type Sym. Value Sym. Name + Addend
|
||||||
|
000000021c70 000100000007 R_X86_64_JUMP_SLO 0000000000000000 __ctype_toupper_loc@GLIBC_2.3 + 0
|
||||||
|
000000021c78 000200000007 R_X86_64_JUMP_SLO 0000000000000000 getenv@GLIBC_2.2.5 + 0
|
||||||
|
000000021c80 000400000007 R_X86_64_JUMP_SLO 0000000000000000 sigprocmask@GLIBC_2.2.5 + 0
|
||||||
|
000000021c88 000500000007 R_X86_64_JUMP_SLO 0000000000000000 __snprintf_chk@GLIBC_2.3.4 + 0
|
||||||
|
000000021c90 000600000007 R_X86_64_JUMP_SLO 0000000000000000 raise@GLIBC_2.2.5 + 0
|
||||||
|
000000021c98 000800000007 R_X86_64_JUMP_SLO 0000000000000000 abort@GLIBC_2.2.5 + 0
|
||||||
|
000000021ca0 000900000007 R_X86_64_JUMP_SLO 0000000000000000 __errno_location@GLIBC_2.2.5 + 0
|
||||||
|
000000021ca8 000a00000007 R_X86_64_JUMP_SLO 0000000000000000 strncmp@GLIBC_2.2.5 + 0
|
||||||
|
000000021cb0 000d00000007 R_X86_64_JUMP_SLO 0000000000000000 localtime_r@GLIBC_2.2.5 + 0
|
||||||
|
000000021cb8 000e00000007 R_X86_64_JUMP_SLO 0000000000000000 _exit@GLIBC_2.2.5 + 0
|
||||||
|
000000021cc0 000f00000007 R_X86_64_JUMP_SLO 0000000000000000 strcpy@GLIBC_2.2.5 + 0
|
||||||
|
000000021cc8 001000000007 R_X86_64_JUMP_SLO 0000000000000000 __mbstowcs_chk@GLIBC_2.4 + 0
|
||||||
|
000000021cd0 001100000007 R_X86_64_JUMP_SLO 0000000000000000 __fpending@GLIBC_2.2.5 + 0
|
||||||
|
000000021cd8 001200000007 R_X86_64_JUMP_SLO 0000000000000000 isatty@GLIBC_2.2.5 + 0
|
||||||
|
000000021ce0 001300000007 R_X86_64_JUMP_SLO 0000000000000000 sigaction@GLIBC_2.2.5 + 0
|
||||||
|
000000021ce8 001400000007 R_X86_64_JUMP_SLO 0000000000000000 iswcntrl@GLIBC_2.2.5 + 0
|
||||||
|
000000021cf0 001500000007 R_X86_64_JUMP_SLO 0000000000000000 wcswidth@GLIBC_2.2.5 + 0
|
||||||
|
000000021cf8 001600000007 R_X86_64_JUMP_SLO 0000000000000000 localeconv@GLIBC_2.2.5 + 0
|
||||||
|
000000021d00 001700000007 R_X86_64_JUMP_SLO 0000000000000000 mbstowcs@GLIBC_2.2.5 + 0
|
||||||
|
000000021d08 001800000007 R_X86_64_JUMP_SLO 0000000000000000 readlink@GLIBC_2.2.5 + 0
|
||||||
|
000000021d10 001900000007 R_X86_64_JUMP_SLO 0000000000000000 clock_gettime@GLIBC_2.17 + 0
|
||||||
|
000000021d18 001a00000007 R_X86_64_JUMP_SLO 0000000000000000 setenv@GLIBC_2.2.5 + 0
|
||||||
|
000000021d20 001b00000007 R_X86_64_JUMP_SLO 0000000000000000 textdomain@GLIBC_2.2.5 + 0
|
||||||
|
000000021d28 001c00000007 R_X86_64_JUMP_SLO 0000000000000000 fclose@GLIBC_2.2.5 + 0
|
||||||
|
000000021d30 001e00000007 R_X86_64_JUMP_SLO 0000000000000000 opendir@GLIBC_2.2.5 + 0
|
||||||
|
000000021d38 001f00000007 R_X86_64_JUMP_SLO 0000000000000000 getpwuid@GLIBC_2.2.5 + 0
|
||||||
|
000000021d40 002000000007 R_X86_64_JUMP_SLO 0000000000000000 bindtextdomain@GLIBC_2.2.5 + 0
|
||||||
|
000000021d48 002100000007 R_X86_64_JUMP_SLO 0000000000000000 dcgettext@GLIBC_2.2.5 + 0
|
||||||
|
000000021d50 002200000007 R_X86_64_JUMP_SLO 0000000000000000 __ctype_get_mb_cur_max@GLIBC_2.2.5 + 0
|
||||||
|
000000021d58 002300000007 R_X86_64_JUMP_SLO 0000000000000000 strlen@GLIBC_2.2.5 + 0
|
||||||
|
000000021d60 002400000007 R_X86_64_JUMP_SLO 0000000000000000 __stack_chk_fail@GLIBC_2.4 + 0
|
||||||
|
000000021d68 002500000007 R_X86_64_JUMP_SLO 0000000000000000 getopt_long@GLIBC_2.2.5 + 0
|
||||||
|
000000021d70 002600000007 R_X86_64_JUMP_SLO 0000000000000000 mbrtowc@GLIBC_2.2.5 + 0
|
||||||
|
000000021d78 002700000007 R_X86_64_JUMP_SLO 0000000000000000 freecon@LIBSELINUX_1.0 + 0
|
||||||
|
000000021d80 002800000007 R_X86_64_JUMP_SLO 0000000000000000 strchr@GLIBC_2.2.5 + 0
|
||||||
|
000000021d88 002900000007 R_X86_64_JUMP_SLO 0000000000000000 getgrgid@GLIBC_2.2.5 + 0
|
||||||
|
000000021d90 002a00000007 R_X86_64_JUMP_SLO 0000000000000000 snprintf@GLIBC_2.2.5 + 0
|
||||||
|
000000021d98 002b00000007 R_X86_64_JUMP_SLO 0000000000000000 __overflow@GLIBC_2.2.5 + 0
|
||||||
|
000000021da0 002c00000007 R_X86_64_JUMP_SLO 0000000000000000 strrchr@GLIBC_2.2.5 + 0
|
||||||
|
000000021da8 002d00000007 R_X86_64_JUMP_SLO 0000000000000000 gmtime_r@GLIBC_2.2.5 + 0
|
||||||
|
000000021db0 002e00000007 R_X86_64_JUMP_SLO 0000000000000000 lseek@GLIBC_2.2.5 + 0
|
||||||
|
000000021db8 002f00000007 R_X86_64_JUMP_SLO 0000000000000000 __assert_fail@GLIBC_2.2.5 + 0
|
||||||
|
000000021dc0 003000000007 R_X86_64_JUMP_SLO 0000000000000000 fnmatch@GLIBC_2.2.5 + 0
|
||||||
|
000000021dc8 003100000007 R_X86_64_JUMP_SLO 0000000000000000 memset@GLIBC_2.2.5 + 0
|
||||||
|
000000021dd0 003200000007 R_X86_64_JUMP_SLO 0000000000000000 ioctl@GLIBC_2.2.5 + 0
|
||||||
|
000000021dd8 003300000007 R_X86_64_JUMP_SLO 0000000000000000 getcwd@GLIBC_2.2.5 + 0
|
||||||
|
000000021de0 003400000007 R_X86_64_JUMP_SLO 0000000000000000 closedir@GLIBC_2.2.5 + 0
|
||||||
|
000000021de8 003500000007 R_X86_64_JUMP_SLO 0000000000000000 lstat@GLIBC_2.33 + 0
|
||||||
|
000000021df0 003600000007 R_X86_64_JUMP_SLO 0000000000000000 memcmp@GLIBC_2.2.5 + 0
|
||||||
|
000000021df8 003700000007 R_X86_64_JUMP_SLO 0000000000000000 _setjmp@GLIBC_2.2.5 + 0
|
||||||
|
000000021e00 003800000007 R_X86_64_JUMP_SLO 0000000000000000 fputs_unlocked@GLIBC_2.2.5 + 0
|
||||||
|
000000021e08 003900000007 R_X86_64_JUMP_SLO 0000000000000000 calloc@GLIBC_2.2.5 + 0
|
||||||
|
000000021e10 003a00000007 R_X86_64_JUMP_SLO 0000000000000000 strcmp@GLIBC_2.2.5 + 0
|
||||||
|
000000021e18 003b00000007 R_X86_64_JUMP_SLO 0000000000000000 signal@GLIBC_2.2.5 + 0
|
||||||
|
000000021e20 003c00000007 R_X86_64_JUMP_SLO 0000000000000000 dirfd@GLIBC_2.2.5 + 0
|
||||||
|
000000021e28 003d00000007 R_X86_64_JUMP_SLO 0000000000000000 fputc_unlocked@GLIBC_2.2.5 + 0
|
||||||
|
000000021e30 003f00000007 R_X86_64_JUMP_SLO 0000000000000000 __memcpy_chk@GLIBC_2.3.4 + 0
|
||||||
|
000000021e38 004000000007 R_X86_64_JUMP_SLO 0000000000000000 sigemptyset@GLIBC_2.2.5 + 0
|
||||||
|
000000021e40 004200000007 R_X86_64_JUMP_SLO 0000000000000000 memcpy@GLIBC_2.14 + 0
|
||||||
|
000000021e48 004400000007 R_X86_64_JUMP_SLO 0000000000000000 tzset@GLIBC_2.2.5 + 0
|
||||||
|
000000021e50 004500000007 R_X86_64_JUMP_SLO 0000000000000000 fileno@GLIBC_2.2.5 + 0
|
||||||
|
000000021e58 004600000007 R_X86_64_JUMP_SLO 0000000000000000 tcgetpgrp@GLIBC_2.2.5 + 0
|
||||||
|
000000021e60 004700000007 R_X86_64_JUMP_SLO 0000000000000000 readdir@GLIBC_2.2.5 + 0
|
||||||
|
000000021e68 004800000007 R_X86_64_JUMP_SLO 0000000000000000 wcwidth@GLIBC_2.2.5 + 0
|
||||||
|
000000021e70 004900000007 R_X86_64_JUMP_SLO 0000000000000000 fflush@GLIBC_2.2.5 + 0
|
||||||
|
000000021e78 004a00000007 R_X86_64_JUMP_SLO 0000000000000000 nl_langinfo@GLIBC_2.2.5 + 0
|
||||||
|
000000021e80 004b00000007 R_X86_64_JUMP_SLO 0000000000000000 strcoll@GLIBC_2.2.5 + 0
|
||||||
|
000000021e88 004c00000007 R_X86_64_JUMP_SLO 0000000000000000 mktime@GLIBC_2.2.5 + 0
|
||||||
|
000000021e90 004d00000007 R_X86_64_JUMP_SLO 0000000000000000 __freading@GLIBC_2.2.5 + 0
|
||||||
|
000000021e98 004e00000007 R_X86_64_JUMP_SLO 0000000000000000 fwrite_unlocked@GLIBC_2.2.5 + 0
|
||||||
|
000000021ea0 004f00000007 R_X86_64_JUMP_SLO 0000000000000000 realloc@GLIBC_2.2.5 + 0
|
||||||
|
000000021ea8 005000000007 R_X86_64_JUMP_SLO 0000000000000000 stpncpy@GLIBC_2.2.5 + 0
|
||||||
|
000000021eb0 005100000007 R_X86_64_JUMP_SLO 0000000000000000 setlocale@GLIBC_2.2.5 + 0
|
||||||
|
000000021eb8 005200000007 R_X86_64_JUMP_SLO 0000000000000000 __printf_chk@GLIBC_2.3.4 + 0
|
||||||
|
000000021ec0 005300000007 R_X86_64_JUMP_SLO 0000000000000000 statx@GLIBC_2.28 + 0
|
||||||
|
000000021ec8 005400000007 R_X86_64_JUMP_SLO 0000000000000000 timegm@GLIBC_2.2.5 + 0
|
||||||
|
000000021ed0 005500000007 R_X86_64_JUMP_SLO 0000000000000000 strftime@GLIBC_2.2.5 + 0
|
||||||
|
000000021ed8 005600000007 R_X86_64_JUMP_SLO 0000000000000000 mempcpy@GLIBC_2.2.5 + 0
|
||||||
|
000000021ee0 005700000007 R_X86_64_JUMP_SLO 0000000000000000 memmove@GLIBC_2.2.5 + 0
|
||||||
|
000000021ee8 005800000007 R_X86_64_JUMP_SLO 0000000000000000 error@GLIBC_2.2.5 + 0
|
||||||
|
000000021ef0 005a00000007 R_X86_64_JUMP_SLO 0000000000000000 fseeko@GLIBC_2.2.5 + 0
|
||||||
|
000000021ef8 005b00000007 R_X86_64_JUMP_SLO 0000000000000000 strtoumax@GLIBC_2.2.5 + 0
|
||||||
|
000000021f00 005c00000007 R_X86_64_JUMP_SLO 0000000000000000 unsetenv@GLIBC_2.2.5 + 0
|
||||||
|
000000021f08 005d00000007 R_X86_64_JUMP_SLO 0000000000000000 __cxa_atexit@GLIBC_2.2.5 + 0
|
||||||
|
000000021f10 005e00000007 R_X86_64_JUMP_SLO 0000000000000000 wcstombs@GLIBC_2.2.5 + 0
|
||||||
|
000000021f18 005f00000007 R_X86_64_JUMP_SLO 0000000000000000 getxattr@GLIBC_2.3 + 0
|
||||||
|
000000021f20 006000000007 R_X86_64_JUMP_SLO 0000000000000000 gethostname@GLIBC_2.2.5 + 0
|
||||||
|
000000021f28 006100000007 R_X86_64_JUMP_SLO 0000000000000000 sigismember@GLIBC_2.2.5 + 0
|
||||||
|
000000021f30 006200000007 R_X86_64_JUMP_SLO 0000000000000000 exit@GLIBC_2.2.5 + 0
|
||||||
|
000000021f38 006300000007 R_X86_64_JUMP_SLO 0000000000000000 fwrite@GLIBC_2.2.5 + 0
|
||||||
|
000000021f40 006400000007 R_X86_64_JUMP_SLO 0000000000000000 __fprintf_chk@GLIBC_2.3.4 + 0
|
||||||
|
000000021f48 006600000007 R_X86_64_JUMP_SLO 0000000000000000 getfilecon@LIBSELINUX_1.0 + 0
|
||||||
|
000000021f50 006700000007 R_X86_64_JUMP_SLO 0000000000000000 fflush_unlocked@GLIBC_2.2.5 + 0
|
||||||
|
000000021f58 006800000007 R_X86_64_JUMP_SLO 0000000000000000 mbsinit@GLIBC_2.2.5 + 0
|
||||||
|
000000021f60 006900000007 R_X86_64_JUMP_SLO 0000000000000000 lgetfilecon@LIBSELINUX_1.0 + 0
|
||||||
|
000000021f68 006b00000007 R_X86_64_JUMP_SLO 0000000000000000 iswprint@GLIBC_2.2.5 + 0
|
||||||
|
000000021f70 006c00000007 R_X86_64_JUMP_SLO 0000000000000000 sigaddset@GLIBC_2.2.5 + 0
|
||||||
|
000000021f78 006d00000007 R_X86_64_JUMP_SLO 0000000000000000 __ctype_tolower_loc@GLIBC_2.3 + 0
|
||||||
|
000000021f80 006e00000007 R_X86_64_JUMP_SLO 0000000000000000 __ctype_b_loc@GLIBC_2.3 + 0
|
||||||
|
000000021f88 007000000007 R_X86_64_JUMP_SLO 0000000000000000 __sprintf_chk@GLIBC_2.3.4 + 0
|
||||||
|
No processor specific unwind information to decode
|
||||||
|
|
||||||
|
Symbol table '.dynsym' contains 123 entries:
|
||||||
|
Num: Value Size Type Bind Vis Ndx Name
|
||||||
|
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
|
||||||
|
1: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __[...]@GLIBC_2.3 (2)
|
||||||
|
2: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
3: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.3.4 (4)
|
||||||
|
6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND raise@GLIBC_2.2.5 (3)
|
||||||
|
7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _[...]@GLIBC_2.34 (5)
|
||||||
|
8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.2.5 (3)
|
||||||
|
9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
10: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
11: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterT[...]
|
||||||
|
12: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
13: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
14: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _exit@GLIBC_2.2.5 (3)
|
||||||
|
15: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
16: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __[...]@GLIBC_2.4 (6)
|
||||||
|
17: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
18: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
19: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
20: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
21: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
22: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
23: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
24: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
25: 0000000000000000 0 FUNC GLOBAL DEFAULT UND c[...]@GLIBC_2.17 (7)
|
||||||
|
26: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
27: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
28: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
29: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
30: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
31: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
32: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
33: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
34: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
35: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
36: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __[...]@GLIBC_2.4 (6)
|
||||||
|
37: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
38: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
39: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@LIBSELINUX_1.0 (8)
|
||||||
|
40: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
41: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
42: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
43: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
44: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
45: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
46: 0000000000000000 0 FUNC GLOBAL DEFAULT UND lseek@GLIBC_2.2.5 (3)
|
||||||
|
47: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
48: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
49: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
50: 0000000000000000 0 FUNC GLOBAL DEFAULT UND ioctl@GLIBC_2.2.5 (3)
|
||||||
|
51: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
52: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
53: 0000000000000000 0 FUNC GLOBAL DEFAULT UND lstat@GLIBC_2.33 (9)
|
||||||
|
54: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
55: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
56: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
57: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
58: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
59: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
60: 0000000000000000 0 FUNC GLOBAL DEFAULT UND dirfd@GLIBC_2.2.5 (3)
|
||||||
|
61: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
62: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
63: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.3.4 (4)
|
||||||
|
64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
|
||||||
|
66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.14 (10)
|
||||||
|
67: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND tzset@GLIBC_2.2.5 (3)
|
||||||
|
69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
70: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
71: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
72: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
73: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
74: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
75: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.3.4 (4)
|
||||||
|
83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND statx@GLIBC_2.28 (11)
|
||||||
|
84: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
85: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
86: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
87: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
88: 0000000000000000 0 FUNC GLOBAL DEFAULT UND error@GLIBC_2.2.5 (3)
|
||||||
|
89: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
90: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
91: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
92: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
93: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
94: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
95: 0000000000000000 0 FUNC GLOBAL DEFAULT UND ge[...]@GLIBC_2.3 (2)
|
||||||
|
96: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
97: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
98: 0000000000000000 0 FUNC GLOBAL DEFAULT UND exit@GLIBC_2.2.5 (3)
|
||||||
|
99: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
100: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.3.4 (4)
|
||||||
|
101: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMC[...]
|
||||||
|
102: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@LIBSELINUX_1.0 (8)
|
||||||
|
103: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
104: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
105: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@LIBSELINUX_1.0 (8)
|
||||||
|
106: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
107: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
108: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
109: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __[...]@GLIBC_2.3 (2)
|
||||||
|
110: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __[...]@GLIBC_2.3 (2)
|
||||||
|
111: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
112: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.3.4 (4)
|
||||||
|
113: 00000000000220a0 8 OBJECT GLOBAL DEFAULT 26 obstack_alloc_fa[...]
|
||||||
|
114: 000000000000fc60 296 FUNC GLOBAL DEFAULT 16 _obstack_newchunk
|
||||||
|
115: 000000000000fc40 25 FUNC GLOBAL DEFAULT 16 _obstack_begin_1
|
||||||
|
116: 0000000000010680 55 FUNC GLOBAL DEFAULT 16 _obstack_allocated_p
|
||||||
|
117: 0000000000000000 0 FUNC WEAK DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
118: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.2.5 (3)
|
||||||
|
119: 000000000000fc20 21 FUNC GLOBAL DEFAULT 16 _obstack_begin
|
||||||
|
120: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (3)
|
||||||
|
121: 0000000000010750 38 FUNC GLOBAL DEFAULT 16 _obstack_memory_used
|
||||||
|
122: 00000000000106c0 133 FUNC GLOBAL DEFAULT 16 _obstack_free
|
||||||
|
|
||||||
|
Histogram for `.gnu.hash' bucket list length (total of 3 buckets):
|
||||||
|
Length Number % of total Coverage
|
||||||
|
0 0 ( 0.0%)
|
||||||
|
1 1 ( 33.3%) 10.0%
|
||||||
|
2 0 ( 0.0%) 10.0%
|
||||||
|
3 0 ( 0.0%) 10.0%
|
||||||
|
4 1 ( 33.3%) 50.0%
|
||||||
|
5 1 ( 33.3%) 100.0%
|
||||||
|
|
||||||
|
Version symbols section '.gnu.version' contains 123 entries:
|
||||||
|
Addr: 0x000000000000152e Offset: 0x00152e Link: 6 (.dynsym)
|
||||||
|
000: 0 (*local*) 2 (GLIBC_2.3) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
004: 3 (GLIBC_2.2.5) 4 (GLIBC_2.3.4) 3 (GLIBC_2.2.5) 5 (GLIBC_2.34)
|
||||||
|
008: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 1 (*global*)
|
||||||
|
00c: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
010: 6 (GLIBC_2.4) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
014: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
018: 3 (GLIBC_2.2.5) 7 (GLIBC_2.17) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
01c: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
020: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
024: 6 (GLIBC_2.4) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 8 (LIBSELINUX_1.0)
|
||||||
|
028: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
02c: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
030: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
034: 3 (GLIBC_2.2.5) 9 (GLIBC_2.33) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
038: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
03c: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 4 (GLIBC_2.3.4)
|
||||||
|
040: 3 (GLIBC_2.2.5) 1 (*global*) a (GLIBC_2.14) 3 (GLIBC_2.2.5)
|
||||||
|
044: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
048: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
04c: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
050: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 4 (GLIBC_2.3.4) b (GLIBC_2.28)
|
||||||
|
054: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
058: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
05c: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 2 (GLIBC_2.3)
|
||||||
|
060: 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
064: 4 (GLIBC_2.3.4) 1 (*global*) 8 (LIBSELINUX_1.0) 3 (GLIBC_2.2.5)
|
||||||
|
068: 3 (GLIBC_2.2.5) 8 (LIBSELINUX_1.0) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5)
|
||||||
|
06c: 3 (GLIBC_2.2.5) 2 (GLIBC_2.3) 2 (GLIBC_2.3) 3 (GLIBC_2.2.5)
|
||||||
|
070: 4 (GLIBC_2.3.4) 1 (*global*) 1 (*global*) 1 (*global*)
|
||||||
|
074: 1 (*global*) 3 (GLIBC_2.2.5) 3 (GLIBC_2.2.5) 1 (*global*)
|
||||||
|
078: 3 (GLIBC_2.2.5) 1 (*global*) 1 (*global*)
|
||||||
|
|
||||||
|
Version needs section '.gnu.version_r' contains 2 entries:
|
||||||
|
Addr: 0x0000000000001628 Offset: 0x001628 Link: 7 (.dynstr)
|
||||||
|
000000: Version: 1 File: libselinux.so.1 Cnt: 1
|
||||||
|
0x0010: Name: LIBSELINUX_1.0 Flags: none Version: 8
|
||||||
|
0x0020: Version: 1 File: libc.so.6 Cnt: 9
|
||||||
|
0x0030: Name: GLIBC_2.28 Flags: none Version: 11
|
||||||
|
0x0040: Name: GLIBC_2.14 Flags: none Version: 10
|
||||||
|
0x0050: Name: GLIBC_2.33 Flags: none Version: 9
|
||||||
|
0x0060: Name: GLIBC_2.17 Flags: none Version: 7
|
||||||
|
0x0070: Name: GLIBC_2.4 Flags: none Version: 6
|
||||||
|
0x0080: Name: GLIBC_2.34 Flags: none Version: 5
|
||||||
|
0x0090: Name: GLIBC_2.3.4 Flags: none Version: 4
|
||||||
|
0x00a0: Name: GLIBC_2.2.5 Flags: none Version: 3
|
||||||
|
0x00b0: Name: GLIBC_2.3 Flags: none Version: 2
|
||||||
|
|
||||||
|
Displaying notes found in: .note.gnu.property
|
||||||
|
Owner Data size Description
|
||||||
|
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
|
||||||
|
Properties: x86 feature: IBT, SHSTK
|
||||||
|
x86 ISA needed: x86-64-baseline
|
||||||
|
|
||||||
|
Displaying notes found in: .note.gnu.build-id
|
||||||
|
Owner Data size Description
|
||||||
|
GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
|
||||||
|
Build ID: 36b86f957a1be53733633d184c3a3354f3fc7b12
|
||||||
|
|
||||||
|
Displaying notes found in: .note.ABI-tag
|
||||||
|
Owner Data size Description
|
||||||
|
GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag)
|
||||||
|
OS: Linux, ABI: 3.2.0
|
||||||
41
doc/protocols.txt
Executable file
41
doc/protocols.txt
Executable file
@@ -0,0 +1,41 @@
|
|||||||
|
vim: shiftwidth=3
|
||||||
|
|
||||||
|
Rosetta Operating System: Protocols
|
||||||
|
===================================
|
||||||
|
|
||||||
|
1 Introduction
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Due to its nature as a message-passing operating system, a standard
|
||||||
|
"langauge" is needed in order to allow different components of the system
|
||||||
|
to communicate with each other. This document describes the communication
|
||||||
|
layer built on top of kernel IPC primitives to facilitate the fast transfer
|
||||||
|
of structured data between components.
|
||||||
|
|
||||||
|
|
||||||
|
2 Design Goals
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The key consideration for Protocols is low-overhead and speed. All system
|
||||||
|
functionality is accessed via sending messages, so any speed or memory costs
|
||||||
|
incurred will affect the performance of the entire system.
|
||||||
|
|
||||||
|
In addition, Protocols should be language-agnostic. Two components written
|
||||||
|
in two different programming languages should be able to communicate as long
|
||||||
|
as they both understand the same protocol.
|
||||||
|
|
||||||
|
|
||||||
|
3 Overview
|
||||||
|
----------
|
||||||
|
|
||||||
|
Protocols is a very thin layer overtop of Mango ports. It provides a
|
||||||
|
declarative language for describing message layouts in a language-agnostic
|
||||||
|
format, and a tool for generating concrete implementations of protocols in
|
||||||
|
various programming languages.
|
||||||
|
|
||||||
|
Protocols makes heavy use of Mango's I/O vectors facility to avoid performing
|
||||||
|
any dynamic memory allocation or unnecessary copying of data. As often as
|
||||||
|
possible, any parameters you pass to a protocol function will be copied
|
||||||
|
directly into the address space of the recipient. This makes Protocols
|
||||||
|
essentially free to use.
|
||||||
|
|
||||||
16
doc/protocols/rosetta/io/Directory.rp
Executable file
16
doc/protocols/rosetta/io/Directory.rp
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
mod rosetta.io;
|
||||||
|
|
||||||
|
protocol Directory;
|
||||||
|
|
||||||
|
struct Entry {
|
||||||
|
char[64] name;
|
||||||
|
}
|
||||||
|
|
||||||
|
msg Open
|
||||||
|
-> string path, i32 flags;
|
||||||
|
<- i32 status;
|
||||||
|
|
||||||
|
msg GetEntries
|
||||||
|
-> i32 count;
|
||||||
|
<-
|
||||||
12
doc/protocols/rosetta/io/File.rp
Executable file
12
doc/protocols/rosetta/io/File.rp
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
mod rosetta.io;
|
||||||
|
|
||||||
|
protocol File:
|
||||||
|
|
||||||
|
msg Read
|
||||||
|
-> u32 count;
|
||||||
|
<- i32 status, char[] data;
|
||||||
|
|
||||||
|
msg Write
|
||||||
|
-> char[] data;
|
||||||
|
<- i32 status;
|
||||||
0
doc/protocols/rosetta/sys/SecurityManager.proto
Executable file
0
doc/protocols/rosetta/sys/SecurityManager.proto
Executable file
0
doc/protocols/rosetta/sys/SystemManager.proto
Executable file
0
doc/protocols/rosetta/sys/SystemManager.proto
Executable file
9
doc/service-hierarchy.txt
Executable file
9
doc/service-hierarchy.txt
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
systemd
|
||||||
|
+--fsd [fs-ext2.so]
|
||||||
|
+--emdevd
|
||||||
|
+--lockdownd
|
||||||
|
+--seatd
|
||||||
|
+--sessiond
|
||||||
|
| +--bash
|
||||||
|
| +--nano
|
||||||
|
+--airportd
|
||||||
76
doc/simple.elf.dump.txt
Executable file
76
doc/simple.elf.dump.txt
Executable file
@@ -0,0 +1,76 @@
|
|||||||
|
|
||||||
|
simple: file format elf64-x86-64
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
00000000004000b0 <a>:
|
||||||
|
4000b0: 55 push %rbp
|
||||||
|
4000b1: 48 89 e5 mov %rsp,%rbp
|
||||||
|
4000b4: b8 34 12 00 00 mov $0x1234,%eax
|
||||||
|
4000b9: 5d pop %rbp
|
||||||
|
4000ba: c3 ret
|
||||||
|
|
||||||
|
00000000004000bb <b>:
|
||||||
|
4000bb: 55 push %rbp
|
||||||
|
4000bc: 48 89 e5 mov %rsp,%rbp
|
||||||
|
4000bf: b8 00 d0 00 00 mov $0xd000,%eax
|
||||||
|
4000c4: 5d pop %rbp
|
||||||
|
4000c5: c3 ret
|
||||||
|
|
||||||
|
00000000004000c6 <c>:
|
||||||
|
4000c6: 55 push %rbp
|
||||||
|
4000c7: 48 89 e5 mov %rsp,%rbp
|
||||||
|
4000ca: b8 25 00 00 00 mov $0x25,%eax
|
||||||
|
4000cf: 5d pop %rbp
|
||||||
|
4000d0: c3 ret
|
||||||
|
|
||||||
|
00000000004000d1 <_start>:
|
||||||
|
4000d1: 55 push %rbp
|
||||||
|
4000d2: 48 89 e5 mov %rsp,%rbp
|
||||||
|
4000d5: 41 54 push %r12
|
||||||
|
4000d7: 53 push %rbx
|
||||||
|
4000d8: 48 83 ec 10 sub $0x10,%rsp
|
||||||
|
4000dc: b8 00 00 00 00 mov $0x0,%eax
|
||||||
|
4000e1: e8 ca ff ff ff call 4000b0 <a>
|
||||||
|
4000e6: 41 89 c4 mov %eax,%r12d
|
||||||
|
4000e9: b8 00 00 00 00 mov $0x0,%eax
|
||||||
|
4000ee: e8 c8 ff ff ff call 4000bb <b>
|
||||||
|
4000f3: 89 c3 mov %eax,%ebx
|
||||||
|
4000f5: b8 00 00 00 00 mov $0x0,%eax
|
||||||
|
4000fa: e8 c7 ff ff ff call 4000c6 <c>
|
||||||
|
4000ff: 0f af c3 imul %ebx,%eax
|
||||||
|
400102: 44 01 e0 add %r12d,%eax
|
||||||
|
400105: 89 45 e8 mov %eax,-0x18(%rbp)
|
||||||
|
400108: 8b 15 12 11 01 00 mov 0x11112(%rip),%edx # 411220 <result_a>
|
||||||
|
40010e: 8b 45 e8 mov -0x18(%rbp),%eax
|
||||||
|
400111: 01 d0 add %edx,%eax
|
||||||
|
400113: 89 05 07 11 01 00 mov %eax,0x11107(%rip) # 411220 <result_a>
|
||||||
|
400119: 8b 15 fd 10 01 00 mov 0x110fd(%rip),%edx # 41121c <result_b>
|
||||||
|
40011f: 8b 45 e8 mov -0x18(%rbp),%eax
|
||||||
|
400122: 01 d0 add %edx,%eax
|
||||||
|
400124: 89 05 f2 10 01 00 mov %eax,0x110f2(%rip) # 41121c <result_b>
|
||||||
|
40012a: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%rbp)
|
||||||
|
400131: eb 24 jmp 400157 <_start+0x86>
|
||||||
|
400133: 8b 45 ec mov -0x14(%rbp),%eax
|
||||||
|
400136: 48 98 cltq
|
||||||
|
400138: 0f b6 80 80 01 40 00 movzbl 0x400180(%rax),%eax
|
||||||
|
40013f: 89 c2 mov %eax,%edx
|
||||||
|
400141: 8b 45 e8 mov -0x18(%rbp),%eax
|
||||||
|
400144: 01 d0 add %edx,%eax
|
||||||
|
400146: 89 c2 mov %eax,%edx
|
||||||
|
400148: 8b 45 ec mov -0x14(%rbp),%eax
|
||||||
|
40014b: 48 98 cltq
|
||||||
|
40014d: 88 90 40 12 41 00 mov %dl,0x411240(%rax)
|
||||||
|
400153: 83 45 ec 01 addl $0x1,-0x14(%rbp)
|
||||||
|
400157: 8b 45 ec mov -0x14(%rbp),%eax
|
||||||
|
40015a: 3d ff ff 00 00 cmp $0xffff,%eax
|
||||||
|
40015f: 76 d2 jbe 400133 <_start+0x62>
|
||||||
|
400161: 8b 15 b9 10 01 00 mov 0x110b9(%rip),%edx # 411220 <result_a>
|
||||||
|
400167: 8b 05 af 10 01 00 mov 0x110af(%rip),%eax # 41121c <result_b>
|
||||||
|
40016d: 01 d0 add %edx,%eax
|
||||||
|
40016f: 48 83 c4 10 add $0x10,%rsp
|
||||||
|
400173: 5b pop %rbx
|
||||||
|
400174: 41 5c pop %r12
|
||||||
|
400176: 5d pop %rbp
|
||||||
|
400177: c3 ret
|
||||||
87
doc/simple.elf.txt
Executable file
87
doc/simple.elf.txt
Executable file
@@ -0,0 +1,87 @@
|
|||||||
|
ELF Header:
|
||||||
|
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
|
||||||
|
Class: ELF64
|
||||||
|
Data: 2's complement, little endian
|
||||||
|
Version: 1 (current)
|
||||||
|
OS/ABI: UNIX - System V
|
||||||
|
ABI Version: 0
|
||||||
|
Type: EXEC (Executable file)
|
||||||
|
Machine: Advanced Micro Devices X86-64
|
||||||
|
Version: 0x1
|
||||||
|
Entry point address: 0x4000d1
|
||||||
|
Start of program headers: 64 (bytes into file)
|
||||||
|
Start of section headers: 66560 (bytes into file)
|
||||||
|
Flags: 0x0
|
||||||
|
Size of this header: 64 (bytes)
|
||||||
|
Size of program headers: 56 (bytes)
|
||||||
|
Number of program headers: 2
|
||||||
|
Size of section headers: 64 (bytes)
|
||||||
|
Number of section headers: 10
|
||||||
|
Section header string table index: 9
|
||||||
|
|
||||||
|
Section Headers:
|
||||||
|
[Nr] Name Type Address Offset
|
||||||
|
Size EntSize Flags Link Info Align
|
||||||
|
[ 0] NULL 0000000000000000 00000000
|
||||||
|
0000000000000000 0000000000000000 0 0 0
|
||||||
|
[ 1] .text PROGBITS 00000000004000b0 000000b0
|
||||||
|
00000000000000c8 0000000000000000 AX 0 0 1
|
||||||
|
[ 2] .rodata PROGBITS 0000000000400180 00000180
|
||||||
|
0000000000010000 0000000000000000 A 0 0 32
|
||||||
|
[ 3] .eh_frame PROGBITS 0000000000410180 00010180
|
||||||
|
000000000000009c 0000000000000000 A 0 0 8
|
||||||
|
[ 4] .data PROGBITS 000000000041121c 0001021c
|
||||||
|
0000000000000004 0000000000000000 WA 0 0 4
|
||||||
|
[ 5] .bss NOBITS 0000000000411220 00010220
|
||||||
|
0000000000010020 0000000000000000 WA 0 0 32
|
||||||
|
[ 6] .comment PROGBITS 0000000000000000 00010220
|
||||||
|
0000000000000012 0000000000000001 MS 0 0 1
|
||||||
|
[ 7] .symtab SYMTAB 0000000000000000 00010238
|
||||||
|
0000000000000138 0000000000000018 8 2 8
|
||||||
|
[ 8] .strtab STRTAB 0000000000000000 00010370
|
||||||
|
0000000000000043 0000000000000000 0 0 1
|
||||||
|
[ 9] .shstrtab STRTAB 0000000000000000 000103b3
|
||||||
|
0000000000000047 0000000000000000 0 0 1
|
||||||
|
Key to Flags:
|
||||||
|
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
|
||||||
|
L (link order), O (extra OS processing required), G (group), T (TLS),
|
||||||
|
C (compressed), x (unknown), o (OS specific), E (exclude),
|
||||||
|
D (mbind), l (large), p (processor specific)
|
||||||
|
|
||||||
|
There are no section groups in this file.
|
||||||
|
|
||||||
|
Program Headers:
|
||||||
|
Type Offset VirtAddr PhysAddr
|
||||||
|
FileSiz MemSiz Flags Align
|
||||||
|
LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000
|
||||||
|
0x000000000001021c 0x000000000001021c R E 0x1000
|
||||||
|
LOAD 0x000000000001021c 0x000000000041121c 0x000000000041121c
|
||||||
|
0x0000000000000004 0x0000000000010024 RW 0x1000
|
||||||
|
|
||||||
|
Section to Segment mapping:
|
||||||
|
Segment Sections...
|
||||||
|
00 .text .rodata .eh_frame
|
||||||
|
01 .data .bss
|
||||||
|
|
||||||
|
There is no dynamic section in this file.
|
||||||
|
|
||||||
|
There are no relocations in this file.
|
||||||
|
No processor specific unwind information to decode
|
||||||
|
|
||||||
|
Symbol table '.symtab' contains 13 entries:
|
||||||
|
Num: Value Size Type Bind Vis Ndx Name
|
||||||
|
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
|
||||||
|
1: 0000000000000000 0 FILE LOCAL DEFAULT ABS simple.c
|
||||||
|
2: 00000000004000bb 11 FUNC GLOBAL DEFAULT 1 b
|
||||||
|
3: 0000000000411220 4 OBJECT GLOBAL DEFAULT 5 result_a
|
||||||
|
4: 000000000041121c 4 OBJECT GLOBAL DEFAULT 4 result_b
|
||||||
|
5: 0000000000400180 65536 OBJECT GLOBAL DEFAULT 2 buffer2
|
||||||
|
6: 00000000004000d1 167 FUNC GLOBAL DEFAULT 1 _start
|
||||||
|
7: 0000000000411240 65536 OBJECT GLOBAL DEFAULT 5 buffer
|
||||||
|
8: 00000000004000c6 11 FUNC GLOBAL DEFAULT 1 c
|
||||||
|
9: 0000000000411220 0 NOTYPE GLOBAL DEFAULT 5 __bss_start
|
||||||
|
10: 0000000000411220 0 NOTYPE GLOBAL DEFAULT 4 _edata
|
||||||
|
11: 0000000000421240 0 NOTYPE GLOBAL DEFAULT 5 _end
|
||||||
|
12: 00000000004000b0 11 FUNC GLOBAL DEFAULT 1 a
|
||||||
|
|
||||||
|
No version information found in this file.
|
||||||
86
doc/system-services.txt
Executable file
86
doc/system-services.txt
Executable file
@@ -0,0 +1,86 @@
|
|||||||
|
==== SERVICE LIST ==============================================================
|
||||||
|
|
||||||
|
overlordd root process, manages all system-level services
|
||||||
|
launchd launches executables
|
||||||
|
nsd manages the system namespace (aka where all filesystems are
|
||||||
|
mounted)
|
||||||
|
lockdownd implements security and authentication
|
||||||
|
sessiond manager and root process for a user session
|
||||||
|
airportd manages sockets and network communications.
|
||||||
|
emdevd host process for device drivers, one instance per system, hosts
|
||||||
|
*all* devices
|
||||||
|
seatd Manages and controls access to monitor and peripheral devices.
|
||||||
|
fsd host process for filesystem driver, one instance per mounted
|
||||||
|
filesystem
|
||||||
|
|
||||||
|
|
||||||
|
==== TASK HIERARCHY ============================================================
|
||||||
|
|
||||||
|
backboardd
|
||||||
|
+--launchd
|
||||||
|
+--nsd
|
||||||
|
+--lockdownd
|
||||||
|
+--deviced
|
||||||
|
+--airportd
|
||||||
|
+--sysfsd
|
||||||
|
+--seatd
|
||||||
|
+--sessiond
|
||||||
|
| +--window-manager
|
||||||
|
| +--file-browser
|
||||||
|
| +--web-browser
|
||||||
|
+--sessiond
|
||||||
|
| +--fbterm
|
||||||
|
| +--bshell
|
||||||
|
| +--vim
|
||||||
|
+--e2fsd
|
||||||
|
+--fatfsd
|
||||||
|
|
||||||
|
|
||||||
|
==== SERVICE DETAILS ===========================================================
|
||||||
|
|
||||||
|
## BACKBOARDD ####
|
||||||
|
* Root task (ID 1) created by the kernel during boot
|
||||||
|
* manages the startup and lifecycle of all system-level services
|
||||||
|
* Every task is provided with a handle to backboardd as part of the initial
|
||||||
|
task environment
|
||||||
|
* Backboardd can be used to gain access to certain system-level services, such
|
||||||
|
as the namespace and task launcher
|
||||||
|
|
||||||
|
## LAUNCHD ####
|
||||||
|
* Task creation service
|
||||||
|
* Accepts requests from clients to run executable files
|
||||||
|
|
||||||
|
## NSD ####
|
||||||
|
* Manages the system namespace
|
||||||
|
* Filesystems can be mounted in the system namespace to make them visible to
|
||||||
|
clients.
|
||||||
|
|
||||||
|
## LOCKDOWND ####
|
||||||
|
* Manages security and authentication
|
||||||
|
* Provides security tokens that can be associated with privileges and used
|
||||||
|
for authorisation.
|
||||||
|
|
||||||
|
## SESSIOND ####
|
||||||
|
* Root process for user login sessions.
|
||||||
|
* All child tasks receive a connection to the session controller.
|
||||||
|
* Holds session-wide data
|
||||||
|
|
||||||
|
## DEVICED ####
|
||||||
|
* Hosts all device drivers.
|
||||||
|
* Device drivers are implemented as shared libraries that are loaded into
|
||||||
|
the device server at runtime.
|
||||||
|
* Also hosts the device filesystem (usually mounted at /dev)
|
||||||
|
|
||||||
|
## SEATD ####
|
||||||
|
* Manages 'seats'.
|
||||||
|
* A seat is all of the peripherals that a user needs to interact with the
|
||||||
|
system. Includes the monitor, keyboard, and mouse.
|
||||||
|
* Allows multiple tasks to access a single seat at once. The user can use a
|
||||||
|
special keyboard shortcut to switch between tasks.
|
||||||
|
|
||||||
|
## AIRPORTD ####
|
||||||
|
* Manages remote communications.
|
||||||
|
* All open sockets are represented internally as connections to airportd.
|
||||||
|
* Supports loadable modules, which provide support for different network features,
|
||||||
|
such as unix sockets, internet sockets, and passing messages between remote machines.
|
||||||
|
|
||||||
Reference in New Issue
Block a user