ayi For Linux: XDG are environment variables for per-user file paths. This is primarily important to save per-app config in data in .config/* and .cache/*, and not litter the user's home directory with dozens or hundreds of .appname directories. syslog for logging. It can be called from shell scripts with logger(1). Exit codes apply to most operating systems, and are usually compatible between OSes. Except for VMS. Sigh. RPM is technically the standard Linux package format, but the usual practice is to distribute a .deb and a .rpm. Package formats incorporate signatures but executables aren't signed in Linux.