Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docs:techref:architecture [2018/03/14 07:51] – now relative link bobafetthotmaildocs:techref:architecture [2021/10/15 09:06] (current) – ↷ Links adapted because of a move operation bobafetthotmail
Line 1: Line 1:
 ====== OpenWrt – operating system architecture ====== ====== OpenWrt – operating system architecture ======
-Whereas desktop distributions use [[wp>GLib|glib]]+[[wp>D-Bus|dbus]]+[[wp>udev|udev(part of systemd)]], OpenWrt uses [[docs:techref:libubox]]+[[ubus]]+[[hotplug|hotplug2]].+Whereas desktop distributions use [[wp>GLib|glib]]+[[wp>D-Bus|dbus]]+[[wp>udev|udev(part of systemd)]], OpenWrt uses [[docs:techref:libubox]]+[[ubus]]+[[docs:techref:procd]].
 This provides some pretty awesome functionality without requiring huge libraries with huge dependencies (*cough* glib). This provides some pretty awesome functionality without requiring huge libraries with huge dependencies (*cough* glib).
  
Line 9: Line 9:
 | non-volatile storage space        100 MiB                               ||  8 MiB((yes, 4MiB and 2MiB possible))  ||  150MiB for Android 2.1\\ 512MiB for Android 4.0  ||  ?  | | non-volatile storage space        100 MiB                               ||  8 MiB((yes, 4MiB and 2MiB possible))  ||  150MiB for Android 2.1\\ 512MiB for Android 4.0  ||  ?  |
 | [[wp>Kernel (computing)|kernel]] |  **''[[wp>Linux kernel]]''**  ||||||| | [[wp>Kernel (computing)|kernel]] |  **''[[wp>Linux kernel]]''**  |||||||
-| :::                              | FOSS and binary drivers           || FOSS drivers: e.g. [[wp>Comparison of open-source wireless drivers|802.11]]; [[docs:hardware:internet.access.technologies|Iaccess]] || Android binary drivers |     |+| :::                              | FOSS and binary drivers           || FOSS drivers: e.g. [[wp>Comparison of open-source wireless drivers|802.11]]; [[docs:techref:hardware:internet.access.technologies|Iaccess]] || Android binary drivers |     |
 | [[wp>C standard library]]        | [[wp>GNU C Library|glibc]]        || [[wp>uClibc]], [[wp>musl]]    || [[wp>Bionic (software)|bionic]]         | glibc + [[wp>Hybris (software)|libhybris]] | eglibc 2.15  | | [[wp>C standard library]]        | [[wp>GNU C Library|glibc]]        || [[wp>uClibc]], [[wp>musl]]    || [[wp>Bionic (software)|bionic]]         | glibc + [[wp>Hybris (software)|libhybris]] | eglibc 2.15  |
 | [[wp>init]]                      | [[wp>init]]\\ [[wp>Upstart]]\\  [[wp>Initng]]     | **''[[wp>systemd]]''** | busybox-initd                               | **''[[docs:techref:procd]]''** | Android init-fork | | ''systemd'' | | [[wp>init]]                      | [[wp>init]]\\ [[wp>Upstart]]\\  [[wp>Initng]]     | **''[[wp>systemd]]''** | busybox-initd                               | **''[[docs:techref:procd]]''** | Android init-fork | | ''systemd'' |
 |                                  | [[wp>rsyslog]] / [[wp>syslog-ng]] | :::                    | busybox-klogd, busybox-syslogd              | ::: |  |  | ::: | |                                  | [[wp>rsyslog]] / [[wp>syslog-ng]] | :::                    | busybox-klogd, busybox-syslogd              | ::: |  |  | ::: |
 |                                  | [[wp>watchdog]]                   | :::                    | busybox-watchdog                            | ::: |  |  | ::: | |                                  | [[wp>watchdog]]                   | :::                    | busybox-watchdog                            | ::: |  |  | ::: |
-|                                  | [[wp>udev]]                       | :::                    | [[docs:techref:hotplug|hotplug2]]           | ::: |  |  | ::: |+|                                  | [[wp>udev]]                       | :::                    | [[docs:techref:hotplug_legacy|hotplug2]]           | ::: |  |  | ::: |
 |                                  | [[wp>cron]]                       | :::                    | ''[[docs:guide-user:services:ntp:client-server|busybox-crond]]''       ||  |  | ::: | |                                  | [[wp>cron]]                       | :::                    | ''[[docs:guide-user:services:ntp:client-server|busybox-crond]]''       ||  |  | ::: |
 |                                  | [[wp>at (Unix)|atd]]              | :::                    | //na//                                           ||  |  | ::: | |                                  | [[wp>at (Unix)|atd]]              | :::                    | //na//                                           ||  |  | ::: |
Line 23: Line 23:
 | [[wp>Package management system]] | [[wp>dpkg]]/[[wp>Advanced Packaging Tool|APT]]\\ [[wp>RPM Package Manager|RPM]]/[[wp>Yellowdog Updater, Modified|yum]]\\ [[wp>Portage (software)|portage]]\\ [[wp>pacman (package manager)|pacman]]\\ ...  || ''[[docs:guide-user:additional-software:opkg]]''  || [[wp>APK (file format)|apk]] | ? | [[wp>RPM Package Manager|RPM]] | | [[wp>Package management system]] | [[wp>dpkg]]/[[wp>Advanced Packaging Tool|APT]]\\ [[wp>RPM Package Manager|RPM]]/[[wp>Yellowdog Updater, Modified|yum]]\\ [[wp>Portage (software)|portage]]\\ [[wp>pacman (package manager)|pacman]]\\ ...  || ''[[docs:guide-user:additional-software:opkg]]''  || [[wp>APK (file format)|apk]] | ? | [[wp>RPM Package Manager|RPM]] |
  
-==== Dependencies of LuCI2 ==== 
-The idea for LuCI2 and its different components started a long time ago: [[http://luci.subsignal.org/trac/browser/luci2]]; Code is being developed [[http://nbd.name/gitweb.cgi|here]]; 
  
-  * ''[[docs:techref:libubox]]'' (~ 12KiB) is a general purpose library which provides things like an event loop, binary blob message formatting and handling, the Linux linked list implementation, and some JSON helpers. The functions in ''libubox'' are used to write the other software in LuCI2 +==== What's the difference between ubus vs dbus? ====
-  * ''[[docs:techref:ubus]]'' (~ 13KiB) is an [[wp>Remote_procedure_call|RPC]] daemon similar to D-Bus but with a much friendlier C API +
- +
-  * ''[[docs:techref:ubox]]'' +
-  * ''[[docs:techref:mountd]]'' +
-  * ''[[docs:techref:rpcd]]'' +
- +
- +
-  * [[http://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/#index2h3|PulseAudio does not depend on GLib]] and does not seem to depends on D-Bus neither: [[http://www.linuxfromscratch.org/blfs/view/svn/multimedia/pulseaudio.html|LFS]] +
-  * [[https://archive.fosdem.org/2013/schedule/event/dist_network/|FOSDEM2013: Can Linux network configuration suck less?]] +
- +
-==== What's the difference between ubus and dbus? ====+
 ''dbus'' is bloated, its C API is very annoying to use and requires writing large amounts of boilerplate code. In fact, the pure C API is so annoying that its own API documentation states: "If you use this low-level API directly, you're signing up for some pain." ''dbus'' is bloated, its C API is very annoying to use and requires writing large amounts of boilerplate code. In fact, the pure C API is so annoying that its own API documentation states: "If you use this low-level API directly, you're signing up for some pain."
  
Line 46: Line 33:
  
 ---- ----
-  * →[[docs:guide-developer:build-system:start|OpenWrt Buildroot – About]] +  * →[[docs:guide-developer:toolchain:start|OpenWrt Buildroot – About]] 
-  * →[[docs:guide-developer:build-system:install-buildsystem| OpenWrt Buildroot – Installation]] +  * →[[docs:guide-developer:toolchain:install-buildsystem| OpenWrt Buildroot – Installation]] 
-  * →[[docs:guide-developer:build-system:start|OpenWrt Buildroot – Usage]] +  * →[[docs:guide-developer:toolchain:start|OpenWrt Buildroot – Usage]] 
-  * →[[docs:guide-developer:patches|OpenWrt Buildroot – Patches]]+  * →[[docs:guide-developer:toolchain:use-patches-with-buildsystem|OpenWrt Buildroot – Patches]]
  
 ---- ----
Line 57: Line 44:
  
  
 +  * [[https://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/#index2h3|PulseAudio does not depend on GLib]] and does not seem to depends on D-Bus neither: [[http://www.linuxfromscratch.org/blfs/view/svn/multimedia/pulseaudio.html|LFS]]
 +  * [[https://archive.fosdem.org/2013/schedule/event/dist_network/|FOSDEM2013: Can Linux network configuration suck less?]]
  
  
  • Last modified: 2018/03/14 07:51
  • by bobafetthotmail