Ninjatrappeur's systemd working tree
Go to file
Michal Schmidt d200735e13 dbus: more efficient implementation of properties
The way the various properties[] arrays are initialized is inefficient:
 - only the .data members change at runtime, yet the whole arrays of
   properties with all the fields are constructed on the stack one by
   one by the code.
 - there's duplication, eg. the properties of "org.freedesktop.systemd1.Unit"
   are repeated in several unit types.

Fix it by moving the information about properties into static const
sections. Instead of storing the .data directly in the property, store
a constant offset from a run-time base.
The small arrays of struct BusBoundProperties bind together the constant
information with the right runtime information (the base pointer).

On my system the code shrinks by 60 KB, data increases by 10 KB.
2012-01-16 13:34:42 +01:00
m4 git: hide more files from git 2011-07-14 23:52:16 +02:00
man core: switch all log targets to go directly to the journal, instead via syslog 2012-01-12 05:09:06 +01:00
po hostnamed, localed: move config files to subdir 2011-12-31 07:23:57 +01:00
src dbus: more efficient implementation of properties 2012-01-16 13:34:42 +01:00
sysctl.d journal: hook up coredumping with journal 2012-01-14 01:54:33 +01:00
test test: rename test directory 2011-12-31 18:06:56 +01:00
tmpfiles.d journal: add preliminary incomplete implementation 2011-10-07 22:02:05 +02:00
units core: switch all log targets to go directly to the journal, instead via syslog 2012-01-12 05:09:06 +01:00
.dir-locals.el Keep emacs configuration in one configuration file. 2011-03-08 01:53:46 +01:00
.gitignore journal: hook up coredumping with journal 2012-01-14 01:54:33 +01:00
.mailmap git: add .mailmap 2011-05-19 14:06:02 +02:00
autogen.sh autogen.sh: diet and sync with udev and kmod 2012-01-09 23:14:03 +01:00
CODING_STYLE Spelling Corrections 2011-02-28 22:47:38 +01:00
configure.ac dbus: more efficient implementation of properties 2012-01-16 13:34:42 +01:00
DISTRO_PORTING main: replace --running-as= by --session and --system do mimic related tools and D-Bus 2010-07-13 18:57:58 +02:00
introspect.awk build-sys: allow cross-compilation 2010-11-23 22:38:55 +01:00
LICENSE license: add GPLv2+ license blurbs everwhere 2010-02-03 13:03:47 +01:00
Makefile.am journal: hook up coredumping with journal 2012-01-14 01:54:33 +01:00
README README: correct license claims 2012-01-05 18:25:36 +01:00
TODO log: make internal log api log directly to the journal 2012-01-12 04:34:31 +01:00

systemd System and Session Manager

DETAILS:
        http://0pointer.de/blog/projects/systemd.html

WEB SITE:
        http://www.freedesktop.org/wiki/Software/systemd

GIT:
        git://anongit.freedesktop.org/systemd
        ssh://git.freedesktop.org/git/systemd

GITWEB:
        http://cgit.freedesktop.org/systemd/

MAILING LIST:
        http://lists.freedesktop.org/mailman/listinfo/systemd-devel
        http://lists.freedesktop.org/mailman/listinfo/systemd-commits

IRC:
        #systemd on irc.freenode.org

BUG REPORTS:
        https://bugs.freedesktop.org/enter_bug.cgi?product=systemd

AUTHOR:
        Lennart Poettering with major support from Kay Sievers

LICENSE:
        GPLv2+ for all code, except sd-daemon.[ch] and
        sd-readahead.[ch] which are MIT

REQUIREMENTS:
        Linux kernel >= 2.6.39
                with devtmpfs
                with cgroups (but it's OK to disable all controllers)
                optional but strongly recommended: autofs4, ipv6
        libudev >= 172
        dbus >= 1.4.0
        libcap
        gtk+ >= 2.20 (optional)
        PAM >= 1.1.2 (optional)
        libcryptsetup (optional)
        libaudit (optional)
        libselinux (optional)
        tcpwrappers (optional)
        libnotify (optional)

        When you build from git you need the following additional dependencies:

        vala >= 0.10
        docbook-xsl
        xsltproc
        automake
        autoconf
        libtool
        gperf
        make, gcc, and similar tools

        During runtime you need the following dependencies:

        util-linux > v2.18 (requires fsck -l, agetty -s)
        sulogin (from sysvinit-tools, optional but recommended)
        plymouth (optional)
        dracut (optional)

        When systemd-hostnamed is used it is strongly recommended to
        install nss-myhostname to ensure that in a world of
        dynamically changing hostnames the hostname stays resolveable
        under all circumstances. In fact, systemd-hostnamed will warn
        if nss-myhostname is not installed. Packagers are encouraged to
        add a dependency on nss-myhostname to the package that
        includes systemd-hostnamed.

        Note that D-Bus can link against libsystemd-login.so, which
        results in a cyclic build dependency. To accomodate for this
        please build D-Bus without systemd first, then build systemd,
        then rebuild D-Bus with systemd support.

WARNINGS:
        systemd will warn you during boot if /etc/mtab is not a
        symlink to /proc/mounts. Please ensure that /etc/mtab is a
        proper symlink.

        systemd will warn you during boot if /usr is on a different
        file system than /. While in systemd itself very little will
        break if /usr is on a separate partition many of its
        dependencies very likely will break sooner or later in one
        form or another. For example udev rules tend to refer to
        binaries in /usr, binaries that link to libraries in /usr or
        binaries that refer to data files in /usr. Since these
        breakages are not always directly visible systemd will warn
        about this, since this kind of file system setup is not really
        supported anymore by the basic set of Linux OS components.

        For more information on this issue consult
        http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken

ENGINEERING AND CONSULTING SERVICES:
        ProFUSION <http://profusion.mobi> offers professional
        engineering and consulting services for systemd for embedded
        and other use. Please contact Gustavo Barbieri
        <barbieri@profusion.mobi> for more information.

        Disclaimer: This notice is not a recommendation or official
        endorsement. However, ProFUSION's upstream work has been very
        beneficial for the systemd project.