-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Attention on /proc folder and /dev/shm #67
Labels
Comments
What is the use case for shared memory?
how is arch/tmp made?
proc is already mounted; |
Shared memory have several areas of use in Linux programming.
It allow faster data exchange between running processes. The typical use
scenario of shared memory is to allow faster app usability while using
Xserver XSDL and some X11 based apps. Shared memory library from Pelia can
be also used if somebody would want to use vnc protocol and Xorg. Running
xinit and configuring xorg.conf to allow VNC protocol use not by using
Tigervnc so XVNC process but use xinit directly with whole Xorg modules.
Pcman file manager also uses shared memory. Many C and C++ programmers of
Linux apps have incorporated two various programmers approaches for memory
use. So if shared memory is not presented, programmer have defined other way
to manipulate with memory data so app will run. The typical use of those two
various approaches are presented inside source code of Mate-session and in
other Mate desktop environment C source code parts.
The lmimitation of Pelisa library is The fact, that it depend on fila
handles. And RAm chip will be always much more faster than flash chip, which
must be accessed by using kernel driver. I hope, that I have understood
Pelia approach well that his code uses file handels some file to emulate
shared memory.
|
You have done amazing think, that you have added /proc mount to yours
script. Before I have recognized professionaly prepared ArchLinux scripts
from MR Rausty, I have thought that every Linux installation script must be
prepared like scripts for other Termux based tools to install Linux by using
Termux and Proot. But I think, that ArchLinux instalation script from MR
Rausty is The good example of The procedure, which would allow us to install
also other distros like Arch Linux. Including /proc folder, shared memory
support.
Seamonkey Internet suite also uses shared memory. Unfortunately, Debian
packages did not prepared this suite for aarch64. And compiling it from
scratch on Android device is impossible thanks to some tools, which require
direct dbus connection and real Linux kernel.
Gnome-builder will also newer work in chroots executed by Proot and Termux.
It requires dbus. So there will be always some limitations.
But even though those limitations are presented, I AM able to run ArchLinux
with Orca screen reader, Pulseaudio sound support and I can use VNC protocol
by using Tigervnc or by using Xorg and Xinit with full shared memory support
without crashes.
Tigervnc do not support shared memory while using Pelias library.
But Xorg, Xinit and x11vnc if it is started by using -noshm option support
Pelias library.
|
To find which content have tmp file it would be necessary to analyse all
Bash script available by downloading this Github tree.
Git clone https://github.com/SDRausty/termux-archlinux.git
This series of scripts is The example of profesionally prepared tool to
really configure and install Linux distro. Some used routines may be need
adaption according to The Debian specific differences. The same thinks would
had to make all authors of other Bash scripts to install Linux distros by
using Termux including Fedora installaers. Because Fedora do not support
Dbus sessions at all. Debian yes, fortunately, Ubuntu and Arch Linux.
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Yours script is excellent. Unfortunately it do not contain important code, which makes installed Debian system less usable than ArchLinux. I have found very useful line from The startarch script from MR Rausty. The aim of his command is to use /dev/shem to allow used shared memory by special native .so library and by mounting /proc folder on Android 8 and newer.
exec proot --kill-on-exit --link2symlink -0 -r /data/data/com.termux/files/home/arch -b /data/data/com.termux/files/home/arch/tmp:/dev/shm -b /data/data/com.termux/files/home/arch/var/binds/fbindprocstat:/proc/stat -b /proc/self/fd/1:/dev/stdout -b /proc/self/fd/2:/dev/stderr -b "$ANDROID_DATA" -b /dev/ -b "$EXTERNAL_STORAGE" -b "$HOME" -b /proc/ -b /storage/ -b /sys/ -w "$PWD" /usr/bin/env -i HOME=/root TERM=xterm /bin/bash -l ||:
Do you think, that some part of The Archlinux starting command could be incorporated to yours script to allow users to acces /proc folder also on Android 8 and newer and to allow them to use shared memory?
There are currently two libraryes to support shared memory on Android, thus none of them is A full replacement for standard Linux memory sharing. Because if .C code of The library access some files to emulate shared memory, if app calls too many request related to shared memory access, device drivers which acces file storage chip have no chance to have The equal speed like direct memory access.
Gnuroot debian contain compiled .so library for shared memory. Its source code is here.
https://github.com/pelya/android-shmem
Termux programmers have used tis code to develop their own release of Android-shmem.so but their library is only for Termux. It do not use file handles to emulate shared memory, so it is much more faster and much more reliable. Unfortunately, it is compatible only with Termux, so it would very probably crash on Debian.
Android-shmem.so from Pelia can be loaded by adding The following line at The end of /etc/profile Bash script file.
export LD_PRELOAD=/data/data/com.termux/files/home/ubuntu-fs/usr/lib/libandroid-shmem.so
Sure, folder have been assigned for Ubuntu, not for Debian installed by using yorus script.
Shared memory has also last approach for Android.
Approach, which have been used by Userland developers.
They are using memalloc.so and other .so files, I do not know, which .so file emulate shared memory while using their project. But their approach is fast but produces also crashes.
X11vnc and xinit Xorg is incompatible. Very probably, also their .so library uses file handles.
Recoding android-shmem for Termux to be compatible with various Linux distros is very probably heavy task for very experienced C programmers. And I even do not know, if is it possible or no.
The text was updated successfully, but these errors were encountered: