Set-версии (Владимир Селезнев, LVEE-2019) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
;{{SpeakerInfo}}: {{Speaker|Владимир Селезнев}}
<blockquote>
Shared libraries are one of the important parts of Linux distribution ecosystems.
One of biggest problem is to guarantee the ABI consistency in the package repository and while system updates as well. Shared library is described by its soname and contains exported symbols. To make a program work, dynamic linker should be able to load all needed shared libraries and resolve symbols used by the program.
RPM packages have dependecies, installed system should have all installed packages with satisfied dependencies (i.e. it should not contain unmets). Same is true for package repositories: consistent one contains no unmets. During the package build rpm-build calculates needed and provided sonames for of \linebreak packaged ELFs and this information is placed in package provided and required dependencies. But originally it did nothing to \linebreak symbols exported or used by ELFs. Provided all this information in package dependencies would be too expensive.
To keep information about ELF symbols in package dependencies, ALT Linux Team introduced new type of RPM dependency: ''set-versions'', based on complementary hashing. It's a way to hash two sets R and P that it is able to check is R a subset of P. It was mainly developed by Alexey Tourbin in 2010.
</blockquote>
{{VideoSection}}
{{vimeoembed|366000958|800|450}}
<!-- {{youtubelink|}} -->
{{SlidesSection}}
[[File:Set-версии (Владимир Селезнев, LVEE-2019).pdf|left|page=-|300px]]
{{----}}
== Thesis ==
{{----}}
[[File:{{#setmainimage:Set-версии (Владимир Селезнев, LVEE-2019)!.jpg}}|center|640px]]
{{LinksSection}}
* [ Talks page]
<!-- <blockquote>[©]</blockquote> -->
<references/>
[[Категория:LVEE-2019]]
[[Категория:Draft]] |
Версия 13:09, 28 октября 2019
- Докладчик
- Владимир Селезнев
Shared libraries are one of the important parts of Linux distribution ecosystems. One of biggest problem is to guarantee the ABI consistency in the package repository and while system updates as well. Shared library is described by its soname and contains exported symbols. To make a program work, dynamic linker should be able to load all needed shared libraries and resolve symbols used by the program.
RPM packages have dependecies, installed system should have all installed packages with satisfied dependencies (i.e. it should not contain unmets). Same is true for package repositories: consistent one contains no unmets. During the package build rpm-build calculates needed and provided sonames for of \linebreak packaged ELFs and this information is placed in package provided and required dependencies. But originally it did nothing to \linebreak symbols exported or used by ELFs. Provided all this information in package dependencies would be too expensive.
To keep information about ELF symbols in package dependencies, ALT Linux Team introduced new type of RPM dependency: set-versions, based on complementary hashing. It's a way to hash two sets R and P that it is able to check is R a subset of P. It was mainly developed by Alexey Tourbin in 2010.
Содержание
Видео
Презентация
Thesis
Примечания и ссылки
- [ Talks page]