同步操作将从 openEuler/libcareplus 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Welcome to LibCare --- Live Patch Updates for Userspace Processes and Libraries.
LibCare delivers live patches to any of your Linux executables or libraries at the runtime, without the need for restart of your applications. Most frequently it is used to perform critical security updates such as glibc's GHOST (aka CVE-2015-0235, see how we deal with it in GHOST sample) and QEMU's CVE-2017-2615, but can also be used for serious bug fixes on the fly to avoid interruption of service (see server sample).
See https://kernelcare.com for live Linux Kernel updates also.
We use the same code generating procedure we used in production for years in kernelcare.com:
The libcare-patch-make script is a handy script for the patch generation for a makeable project. Just do:
$ src/libcare-patch-make some_serious_bug.patch
And find binary patches for all the deliverables of the project in the
patchroot
directory. See our simple server
for usage sample.
For more details follow to the patch preparation chapter of the internals.
It is a lot like loading a shared library into another process' memory:
Now the patient executes patched versions of the functions.
For more details follow to the Patching chapter of the internals.
Not at the moment. We only track start of the new processes for the tests, see here.
Negligibly. Since code patches simply redirect execution from original code functions to the new ones the overhead is small and comparable to additional “jmp” instruction.
All the Linux-distros with available libunwind
, elfutils
and binutils
packages are supported.
However, the libcare
is only tested on Ubuntu from 12.04 to 16.04 and on
CentOS from 6.8 to 7.x.
To install the dependencies on RHEL/CentOS do the following:
$ sudo yum install -y binutils elfutils elfutils-libelf-devel libunwind-devel
To install the dependencies on Debian/Ubuntu do the following:
$ sudo apt-get install -y binutils elfutils libelf-dev libunwind-dev
libcare
To build libcare
emit at project's root dir:
$ make -C src
...
This should build all the utilities required to produce a patch out of some project's source code.
It is highly recommended to run the tests as well, enabling Doctor
libcare-ctl
to attach ptrace
cles to any of the processes first:
$ sudo setcap cap_sys_ptrace+ep ./src/libcare-ctl
$ make -C tests && echo OK
...
OK
Now all the required tools are built and we can build some patches. Skip to server sample for that.
Internals are quite confusing and are described here.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。