[Idea] eBPF/Webassembly group programs by processor tasks
I have read the most important problem to solve, when introducing WebAssembly/BPF services into kernel is these programs should be position-dependent. But how achieve this without virtual memory? I do not known, because I am not too good with OS developing (of course, we can use the same way so used or use registers), so I have an idea. Group scripts/programs generated from eBPF or webassembly by task need to communicate with these programs.
For example: we have cat and cat programs connected with pipe. But one loads some program to this pipe, which force to only delivers data to other side, when \n meet in pipe. Why do not compile this program in cat/cat group and load it into memory only if one of this task is loaded?
Another example: we had Firefox and Apache translated to WebAssembly. Each Firefox instance could belongs to the same group as Apache, so we load Apache code only if Firefox need to communicate with it (or Firefox is inside the memory).
I known, that saving eBPF/Webassembly programs to disk could be long, but we can simple move these programs in memory or even compress it and move.
What do you think?
Comments
-
And of course, if Firefox uses Apache module and some other - we compile Apache and other module into Firefox/Apache/Other group, so each module will be in unique address space. No collision, no problem with PE, etc.
0
Categories
- All Categories
- 177 LFX Mentorship
- 177 LFX Mentorship: Linux Kernel
- 768 Linux Foundation IT Professional Programs
- 379 Cloud Engineer IT Professional Program
- 175 Advanced Cloud Engineer IT Professional Program
- 75 DevOps IT Professional Program - Discontinued
- 7 DevOps & GitOps IT Professional Program
- 101 Cloud Native Developer IT Professional Program
- 7.6K Training Courses & Learning Paths
- 4 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 11 Cloud & Containers Training
- 1 Cybersecurity Training
- 2 DevOps & Site-Reliability Training
- 1 Linux Kernel Development Training
- 1 Networking Training
- 2 Open Source Best Practice Training
- 3 System Administration Training
- 1 System Engineering Training
- 1 Web & Application Development Training
- 796 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 95 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 91 Storage
- 771 Linux Distributions
- 81 Debian
- 68 Fedora
- 23 Linux Mint
- 13 Mageia
- 24 openSUSE
- 151 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 465 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 98 Linux Security
- 78 Network Management
- 101 System Management
- 46 Web Management
- 119 Mobile Computing
- 20 Android
- 84 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 395 Off Topic
- 121 Introductions
- 30 Study Material
- 1K Programming and Development
- 310 Kernel Development
- 690 Software Development
- 1K Software
- 399 Applications
- 182 Command Line
- 5 Compiling/Installing
- 69 Games
- 318 Installation
- Archived
- 183 Small Talk
- 2 LFD140 Class Forum
- 1.4K LFS258 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)