Linux 5.7 ядросунун чыгарылышы

эки ай иштеп кийин, Линус Torvalds берилген ядро чыгаруу Linux 5.7. Эң көрүнүктүү өзгөрүүлөрдүн арасында: exFAT файлдык тутумунун жаңы ишке ашырылышы, UDP туннелдерин түзүү үчүн bareudp модулу, ARM64 үчүн көрсөткүчтүн аутентификациясынын негизинде коргоо, BPF программаларын LSM иштетүүчүлөрүнө тиркөө мүмкүнчүлүгү, Curve25519 жаңы ишке ашырылышы, бөлүү. кулпу детектору, PREEMPT_RT менен BPF шайкештиги, коддогу 80 белгиден турган сызык өлчөмүндөгү чектөөнү алып салуу, тапшырма пландаштыргычтагы CPU температурасынын индикаторлорун эске алуу, башка группада процесстерди жаратуу үчүн clone() колдонуу мүмкүнчүлүгү, жазуудан коргоо userfaultfd аркылуу эстутумга.

Жаңы версия 15033 иштеп чыгуучунун 1961 оңдоосун камтыйт,
патчтын көлөмү - 39 МБ (өзгөрүүлөр 11590 файлга таасирин тийгизди, 570560 сап код кошулду,
297401 саптар алынып салынды). Бардык 41% га жакыны 5.7де көрсөтүлгөн
өзгөртүүлөр түзмөк драйверлерине байланыштуу, өзгөрүүлөрдүн болжол менен 16%
Аппараттык архитектураларга мүнөздүү кодду жаңылоого карата мамиле, 13%
тармактык стек менен байланышкан, 4% файлдык системаларга жана 4% ички
ядронун подсистемалары.

негизги инновациялар:

  • Диск подсистемасы, киргизүү/чыгаруу жана файл системалары
    • Жаңы exFAT драйверин ишке ашыруу кошулду, негизделген Samsung тарабынан Android смартфондору үчүн иштелип чыккан учурдагы "sdfat" (2.x) код базасынын негизинде. Ядрого мурда кошулган драйвер эски Samsung кодуна негизделген (1.2.9 версиясы) жана аткаруу боюнча жаңы драйверден болжол менен 10% артта калган. Эске салсак, ядрого exFAT колдоосун кошуу Microsoft корпорациясынан кийин мүмкүн болгон жарыяланган коомдук спецификациялар жана Linux'та роялтисиз колдонуу үчүн exFAT патенттерин жеткиликтүү кылды.
    • Btrfs жаңы ioctl() буйругун ишке ашырат - BTRFS_IOC_SNAP_DESTROY_V2, ал бөлүмдү анын идентификатору боюнча жок кылууга мүмкүндүк берет. Саптык кеңейтүүлөрдү клондоо үчүн толук колдоо көрсөтүлөт. Кайра бөлүштүрүү операциялары үчүн жокко чыгаруу пункттарынын саны кеңейтилди, бул “баланс жокко чыгаруу” буйругун аткарууда көп күтүүлөрдү азайтты. Артка шилтемелерди даражага чейин аныктоо тездетилди (мисалы, тесттик скриптти аткаруу убактысы бир сааттан бир нече мүнөткө чейин кыскарды). Дарактын ар бир инодуна файлдын кеңейтүүлөрүн тиркөө мүмкүнчүлүгү кошулду. Бөлүмчөлөргө жазууда жана NOCOWды кошпогондо колдонулган бөгөттөө схемасы кайра иштелип чыкты. диапазондор үчүн fsync аткаруунун жакшыртылган натыйжалуулугу.
    • XFS метадайындарды текшерүүнү жана жигердүү бөлүмдөр үчүн fsckди жакшыртты. Келечекте xfs_repair кайра иштетүү жана бөлүмдү ажыратпастан калыбына келтирүү мүмкүнчүлүгүн ишке ашыруу үчүн колдонула турган btree структураларын кайра куруу үчүн китепкана сунушталды.
    • SMB3 сактагычтарында своп бөлүмүн жайгаштыруу үчүн эксперименталдык колдоо CIFSге кошулду. SMB3.1.1 спецификациясында аныкталган readdirге POSIX кеңейтүүлөрү ишке ашырылды. Кэш=катуу режим иштетилгенде жана 64+ протокол версиялары колдонулганда 2.1КБ барактар ​​үчүн жакшыртылган жазуу натыйжалуулугу.
    • FS EXT4 bmap жана iopollдан iomapты колдонууга өткөрүлдү.
    • F2FS zstd алгоритмин колдонуу менен маалыматтарды кысуу үчүн кошумча колдоо көрсөтөт. Демейки боюнча, кысуу үчүн LZ4 алгоритми колдонулат. "chattr -c commit" буйругуна колдоо кошулду. Монтаждоо убактысы көрсөтүлөт. Кысылган блоктордун саны жөнүндө маалымат алуу үчүн ioctl F2FS_IOC_GET_COMPRESS_BLOCKS кошулду. statx аркылуу кошумча кысуу маалымат чыгаруу.
    • Ceph файл системасы серверден жооп күтпөстөн (асинхрондук режимде иштөө) файлдарды түзүү жана жок кылуу операцияларын локалдык түрдө аткаруу мүмкүнчүлүгүн кошту. Өзгөртүү, мисалы, rsync утилитасын иштетүүдө иштин натыйжалуулугун бир топ жакшыртат.
    • OVERLAYFSге жогорку деңгээлдеги файл системасы катары virtiofs колдонуу мүмкүнчүлүгү кошулду.
    • Кайра жазылган VFSдеги жолду өтүү коду, символдук шилтемени талдоо коду кайра иштетилди жана монтаждоо чекитинин өтүшү бирдиктүү болду.
    • Scsi подсистемасында артыкчылыксыз колдонуучуларга жол ZBC буйруктарын аткаруу.
    • dm_writecache ичинде ишке ашырылган блоктун максималдуу иштөө мөөнөтүн белгилеген max_age параметринин негизинде кэшти акырындык менен тазалоо мүмкүнчүлүгү.
    • dm_integrity менен кошулду "таштоо" операциясын колдоо.
    • null_blk ичинде кошулду сыноо учурунда каталарды имитациялоо үчүн каталарды алмаштырууну колдоо.
    • Кошулган бөгөттөөчү түзүлүштүн өлчөмүн өзгөртүү жөнүндө udev эскертмелерин жөнөтүү мүмкүнчүлүгү.
  • Тармактык подсистема
    • Netfilter камтылган өзгөрүүлөр, чоң дал келүүчү тизмелерди (nftables топтомдорун) иштеп чыгууну кыйла тездетүү, бул үчүн субсеттердин, тармак портторунун, протоколдорунун жана MAC даректеринин айкалышын текшерүү керек.
      Оптимизациялар тааныштырды nft_set_pipapo (PIle пакеттик саясаттары) модулуна, ал пакеттин мазмунун чыпкалоо эрежелеринде колдонулган ыктыярдуу талаа абалынын диапазондору менен дал келүү маселесин чечет, мисалы, IP жана тармак портунун диапазондору (nft_set_rbtree жана nft_set_hash интервалдык дал келүүнү жана маанилердин түз чагылдырылышын манипуляциялайт. ). AMD Epyc 256 процессору бар системада 2-бит AVX7402 нускамаларын колдонуу менен векторлоштурулган пипапо версиясы порт-протокол айкалыштарын кошкондо 420 миң жазууну талдоодо 30% өндүрүмдүүлүгүн көрсөттү. 1000 жазууну талдоодо подтармактын жана порт номеринин айкалышын салыштырганда өсүш IPv87 үчүн 4% жана IPv128 үчүн 6% түздү.

    • Кошулган bareudp модулу, ал сизге MPLS, IP жана NSH сыяктуу ар кандай L3 протоколдорун UDP туннелине киргизүүгө мүмкүндүк берет.
    • MPTCP (MultiPath TCP) компоненттерин интеграциялоо, ар кандай IP даректерге байланган ар кандай тармак интерфейстери аркылуу бир эле учурда бир нече маршруттар боюнча пакеттерди жеткирүү менен TCP байланышынын иштешин уюштуруу үчүн TCP протоколунун кеңейтилиши улантылды.
    • Кошулган 802.11 (Wi-Fi) ичинде Ethernet алкактарын капсулдаштыруу үчүн аппараттык ылдамдатуу механизмдерин колдоо.
    • Түзмөктү бир тармактын аттар мейкиндигинен экинчисине жылдырганда, sysfs ичиндеги тиешелүү файлдарга кирүү укуктары жана ээликтери жөнгө салынат.
    • Root эмес колдонуучулар үчүн SO_BINDTODEVICE желегин колдонуу мүмкүнчүлүгү кошулду.
    • Патчтардын үчүнчү бөлүгү кабыл алынды, ethtool инструменттери ioctl()дан netlink интерфейсин колдонууга айландырды. Жаңы интерфейс кеңейтүүлөрдү кошууну жеңилдетет, каталарды башкарууну жакшыртат, абал өзгөргөндө эскертмелерди жөнөтүүгө мүмкүндүк берет, ядро ​​менен колдонуучу мейкиндигинин ортосундагы өз ара аракеттенүүнү жөнөкөйлөтөт жана синхрондоштуруу керек болгон аталган тизмелердин санын азайтат.
    • Туташууларды көзөмөлдөө операцияларын аткаруу үчүн атайын аппараттык тездеткичтерди колдонуу мүмкүнчүлүгү кошулду.
    • Нетфильтрде кошулду чыгуучу пакеттердин классификаторлорун туташтыруу үчүн илгич, кирүүчү пакеттер (кирүү) үчүн мурда болгон илгичти толуктаган.
  • Виртуалдаштыруу жана коопсуздук
    • Көрсөткүчтүн аутентификациясынын аппараттык камсыздоосу кошулду (Көрсөткүчтүн аныктыгын текшерүү), кайтарууга багытталган программалоонун (ROP) ыкмаларын колдонуу менен чабуулдардан коргоо үчүн атайын ARM64 CPU инструкцияларын колдонот, мында чабуулчу өзүнүн кодун эстутумга жайгаштырууга аракет кылбайт, бирок жүктөлгөн китепканаларда бар болгон машина нускамаларынын бөлүктөрүндө иштейт. контролдук кайтаруу инструкциясы менен. Коопсуздук ядро ​​деңгээлинде кайтаруу даректерин текшерүү үчүн санариптик кол тамгаларды колдонуудан келип чыгат. Кол коюу көрсөткүчтүн өзүндө колдонулбаган жогорку биттерде сакталат. Программалык камсыздоону ишке ашыруудан айырмаланып, санариптик кол тамгаларды түзүү жана текшерүү процессордун атайын нускамаларын колдонуу менен ишке ашырылат.
    • Кошулган колдонуучу мейкиндигинде барактын каталарын (бөлүнбөгөн эстутум барактарына жетүү) иштетүү үчүн иштелип чыккан userfaultfd() тутумдук чалуу аркылуу эс тутум аймагын жазуудан коргоо мүмкүнчүлүгү. Идея userfaultfd() функциясын жазуудан корголгон деп белгиленген барактарга кирүүнүн бузулушун аныктоо жана мындай жазуу аракеттерине жооп бере ала турган иштеткичти чакыруу үчүн да колдонуу болуп саналат (мисалы, иштеп жаткан процесстердин жандуу сүрөттөрүн түзүү учурундагы өзгөртүүлөрдү иштетүү, абал эстутумдун калдыктарын дискке таштаганда, бөлүшүлгөн эстутумду ишке ашырууда, эстутумдагы өзгөрүүлөргө байкоо жүргүзүү). Функционалдык эквиваленттүү SIGSEGV сигнал иштеткич менен бирге mprotect() колдонуп, бирок ал тезирээк иштейт.
    • SELinux "checkreqprot" параметрин жокко чыгарды, ал эрежелерди иштеп чыгууда эстутумду коргоо текшерүүлөрүн өчүрүүгө мүмкүндүк берет (эрежелерде көрсөтүлгөн эрежелерге карабастан, аткарылуучу эстутум аймактарын колдонууга уруксат берүү). Kernfs символдук шилтемелери алардын негизги каталогдорунун контекстин мурастоого уруксат берилет.
    • түзүлүш күйгүзүлгөн модулу КРСИ, бул BPF программаларын ядродогу каалаган LSM илгичтерине тиркөөгө мүмкүндүк берет. Өзгөртүү LSM модулдарын (Linux Security Module) BPF программалары түрүндө аудит маселелерин чечүү жана кирүү мүмкүнчүлүгүн милдеттүү башкарууну түзүүгө мүмкүндүк берет.
    • Жүргүзүлгөн RNG нускамаларын жекече чакыруунун ордуна CRNG баалуулуктарын топтоо менен /dev/random иштешин оптималдаштырат. RNG инструкциялары менен камсыз кылуучу ARM64 системаларында getrandom жана /dev/random жакшыртылды.
    • Эллиптикалык ийри сызыкты ишке ашыруу Curve25519 алмаштырылды китепканадан тандоо үчүн HACL, бул үчүн берилген формалдуу ишенимдүүлүгүн текшерүүнүн математикалык далили.
    • Кошулган бош эстутум баракчалары жөнүндө маалымат берүү механизми. Бул механизмди колдонуу менен конок системалары хост тутумунда колдонулбай калган баракчалар жөнүндө маалыматты өткөрүп бере алат жана хост барактын маалыматтарын кайра ала алат.
    • vfio/pci ичинде кошулду SR-IOV (Single-Root I/O Virtualization) үчүн колдоо.
  • Эстутум жана система кызматтары
    • 80ден 100 белгиге чейин көбөйдү баштапкы тексттердеги саптардын максималдуу узундугуна чектөө. Ошол эле учурда, иштеп чыгуучулар дагы эле ар бир сапта 80 белгинин чегинде калуу сунушталат, бирок бул мындан ары катуу чек эмес. Кошумчалай кетсек, сызык өлчөмүнүн чегинен ашып кетсе, текшерүү патч утилитасы "--strict" опциясы менен иштетилгенде гана куруу эскертүүсүнө алып келет. Өзгөртүү иштеп чыгуучуларды алаксытпоого мүмкүндүк берет манипуляция боштуктар менен жана кодду тегиздөөдө эркин сезиңиз, ошондой эле алдын алат ашыкча сызыктарды бузуу, тынчсыздандырган кодду түшүнүү жана издөө.
    • Кошулган атайын жүктөгүчтү колдонбостон, 64 биттик процессордо иштеген 32 бит микропрограммасынан 64 биттик ядрону жүктөөгө мүмкүндүк берген EFI аралаш жүктөө режимин колдоо.
    • Камтылган бөлүнгөн кулпуларды аныктоо жана оңдоо системасы ("бөлүү кулпу"), атомдук буйрукту аткарууда маалыматтар эки CPU кэш сызыгын кесип өткөндүгүнө байланыштуу эс тутумдагы теңдештирилбеген маалыматтарга жетүү учурунда пайда болот. Мындай бөгөттөө аткаруунун олуттуу соккусуна алып келет (бир кэш сызыгына түшкөн маалыматтар боюнча атомдук операцияга караганда 1000 цикл жайыраак). "split_lock_detect" жүктөө параметрине жараша, ядро ​​мындай кулпуларды тез эле таап, эскертүүлөрдү бере алат же кулпуга себеп болгон тиркемеге SIGBUS сигналын жөнөтө алат.
    • Тапшырма пландоочу температура сенсорлорун көзөмөлдөөнү камсыз кылат (Жылуулук басымы) жана тапшырмаларды коюуда ысып кетүүнү эске алуу менен ишке ашырылат. Берилген статистиканы колдонуп, жылуулук башкаруучу ашыкча ысып кеткенде CPU максималдуу жыштыгын тууралай алат жана тапшырма пландоочу азыр тапшырмаларды аткарууну пландаштырууда жыштыктын төмөндөшүнөн улам эсептөө кубаттуулугунун кыскарышын эске алат (мурда пландоочу өзгөрүүлөргө жооп берген. белгилүү бир кечигүү менен жыштыкта, бир нече убакытка чейин жеткиликтүү эсептөө ресурстары жөнүндө жогорулатылган божомолдорго негизделген чечимдерди кабыл алуу).
    • тапшырма пландоочу камтыйт инварианттык көрсөткүчтөр учурдагы CPU иш жыштыгына карабастан, жүктү туура баалоого мүмкүндүк берет. Өзгөртүү чыңалуудагы жана CPU жыштыгындагы динамикалык өзгөрүүлөрдүн шарттарында тапшырмалардын жүрүм-турумун такыраак болжолдоого мүмкүндүк берет. Мисалы, 1 МГц процессинде процессордун ресурстарынын 3/1000 бөлүгүн жеген тапшырма жыштык 2 МГцке түшкөндө ресурстардын 3/500 бөлүгүн керектейт, бул мурда ал толук кубаттуулукта иштеп жатат деген жалган божомолду жараткан (б.а. тапшырмалар пайда болгон) жыштыкты азайтуу аркылуу гана пландоочуга чоңураак, бул schedutil cpufreq губернаторунда туура эмес чечимдердин кабыл алынышына алып келди).
    • Иштөө режимдерин тандоо үчүн жооптуу Intel P-state драйвери колдонууга которулду расписание.
    • ядро реалдуу убакыт режиминде иштеп турганда BPF подсистемасын колдонуу мүмкүнчүлүгү ишке ашырылган (PREEMPT_RT). Мурда, PREEMPT_RT иштетилгенде, BPF өчүрүлүшү керек болчу.
    • BPF программасынын жаңы түрү кошулду - BPF_MODIFY_RETURN, ал өзөктөгү функцияга тиркелет жана бул функция тарабынан кайтарылган маанини өзгөртүүгө болот.
    • Кошулган мүмкүнчүлүк Clone3() тутумунун чалуусунун жардамы менен круппада негизги группадан айырмаланган процессти түзүү, ата-энелик процесске чектөөлөрдү колдонууга жана жаңы процессти же жипти чыгаргандан кийин дароо эсепти иштетүүгө мүмкүндүк берет. Мисалы, тейлөө менеджери жаңы кызматтарды өзүнчө топторго түздөн-түз бөлүштүрө алат жана жаңы процесстер "тоңдурулган" топторго жайгаштырылса, дароо токтотулат.
    • Kbuild ичинде кошулду ядрону курууда Clang/LLVM инструменттерине өтүү үчүн "LLVM=1" чөйрө өзгөрмөсүн колдоо. Binutils версиясына талаптар көтөрүлдү (2.23).
    • /sys/kernel/debug/kunit/ бөлүмү күнүт сыноолорунун натыйжалары менен мүчүлүштүктөрдү аныктоого кошулду.
    • Кошулган ядронун жүктөө параметри pm_debug_messages (/sys/power/pm_debug_messages аналогу), ал энергияны башкаруу тутумунун иштеши жөнүндө мүчүлүштүктөрдү оңдоо маалыматын чыгарууга мүмкүндүк берет (күтүү жана күтүү режиминдеги көйгөйлөрдү оңдоодо пайдалуу).
    • Асинхрондук киргизүү/чыгаруу интерфейсине io_uring колдоо кошулду splice() и атомдук буфер тандоо.
    • Perf инструменттер топтомун колдонуу менен жакшыртылган топтун профили. Мурда perf конкреттүү круппада профилдик тапшырмаларды гана аткара алган жана учурдагы үлгү кайсы топко таандык экенин таба алган эмес. perf азыр ар бир үлгү үчүн топтун маалыматын алат, бул сизге бирден ашык топту профилдештирүү жана сорттоо боюнча колдонууга мүмкүндүк берет
      отчеттордо cgroup.

    • cgroupfs, cgroups башкаруу үчүн псевдо-FS, кеңейтилген атрибуттарды (xattrs) колдоону кошту, анын жардамы менен, мисалы, колдонуучу мейкиндигинде иштетүүчүлөр үчүн кошумча маалымат калтырсаңыз болот.
    • Cgroup эстутум контроллерунда кошулдужана топтун мүчөлөрүнө берилген оперативдүү эстутумдун минималдуу көлөмүн жөнгө салган “memory.low” маанисин рекурсивдүү коргоону колдоо. Cgroup иерархиясын "memory_recursiveprot" опциясы менен орнотуп жатканда, төмөнкү түйүндөр үчүн коюлган "memory.low" мааниси бардык бала түйүндөргө автоматтык түрдө бөлүштүрүлөт.
    • Кошулган Uacce (Unified/User-Space-access-intended Accelerator Framework) процессор менен перифериялык түзүлүштөрдүн ортосунда виртуалдык даректерди (SVA, Shared Virtual Addressing) бөлүшүү үчүн фреймворк, аппараттык акселераторлорго негизги CPUдагы маалымат структураларына кирүү мүмкүнчүлүгүн берет.
  • Аппараттык архитектура
    • ARM архитектурасы үчүн эстутумду ысык алуу мүмкүнчүлүгү ишке ашырылат.
    • RISC-V архитектурасы үчүн процессорлорду ысык туташтыруу жана алып салуу (CPU hotplug) кошулду. 32-бит RISC-V үчүн eBPF JIT ишке ашырылат.
    • KVM конок чөйрөлөрүн иштетүү үчүн 32 биттик ARM системаларын колдонуу мүмкүнчүлүгү алынып салынды.
    • s390 архитектурасы үчүн "жаман" NUMA ишке ашыруу алынып салынды, ал үчүн майнаптуулукту жакшыртуу үчүн эч кандай колдонуу учурлары табылган жок.
    • ARM64 үчүн, ARMv8.4-те аныкталган жана тапшырма пландаштыргычтагы жыштык масштабын оңдоо факторлорун эсептөө үчүн колдонулган аткаруу эсептегичтерин камсыз кылуучу AMU (Активдүүлүк Мониторлор Бирдиги) кеңейтүүсү үчүн кошумча колдоо.
  • жабдуулар
    • Кошулган virtio спецификацияларына ылайык келген маалымат алмашуу каналын колдонгон vDPA түзмөктөрүн колдоо. vDPA түзмөктөрү физикалык жактан туташкан жабдуулар же программалык эмуляцияланган виртуалдык түзүлүштөр болушу мүмкүн.
    • GPIO подсистемасында пайда өзгөрүүлөргө мониторинг жүргүзүү үчүн жаңы ioctl() буйругу, ар кандай GPIO линиясынын абалынын өзгөрүшү жөнүндө процесске маалымат берүүгө мүмкүндүк берет. Жаңы буйрукту колдонуунун мисалы катары сунуш gpio-саат утилитасы.
    • Intel видео карталары үчүн i915 DRM драйверинде камтылган Tigerlake («Gen12») чиптерин демейки колдоо жана OLED жарыкты башкаруу үчүн баштапкы колдоону кошту. Ice Lake, Elkhart Lake, Baytrail жана Haswell чиптери үчүн жакшыртылган колдоо.
    • Amdgpu драйверинде кошулду ASIC үчүн USBC чипине микропрограмманы жүктөө мүмкүнчүлүгү. AMD Ryzen 4000 "Renoir" чиптери үчүн жакшыртылган колдоо. Азыр OLED панелдерин башкаруу үчүн колдоо бар. Мүчүлүштүктөрдү оңдоолордо микропрограмманын статусун көрсөтүү камсыздалган.
    • OpenGL 4ти конок системаларында колдонуу мүмкүнчүлүгү VMware виртуалдаштыруу системалары үчүн vmwgfx DRM драйверине кошулган (мурда OpenGL 3.3 колдоого алынган).
    • TI Keystone платформа дисплей системасы үчүн жаңы DRM айдоочу tidss кошулду.
    • LCD панелдер үчүн драйверлер кошулду: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelectronics WJFH116008A, Rocktech F101CT01, F350CT54004DXNUMXri
    • Электр энергиясын башкаруу системасына кошулду Atom негизделген Intel Jasper Lake (JSL) платформасын колдоо.
    • Rockchip RK3399, Pine64 PineTab планшетине жана смартфонуна негизделген Pinebook Pro ноутбукуна колдоо кошулду PinePhone Allwinner A64 негизинде.
    • Жаңы аудио кодектер жана чиптер үчүн колдоо кошулду:
      Amlogic AIU, Amlogic T9015, Texas Instruments TLV320ADCX140, Realtek RT5682, ALC245, Broadcom BCM63XX I2S, Maxim MAX98360A, Presonus Studio 1810c, MOTU MicroBook IIc.

    • ARM такталары жана платформалары үчүн кошумча колдоо Qualcomm Snapdragon 865 (SM8250), IPQ6018, NXP i.MX8M Plus, Kontron “sl28”, 11 i.MX6 TechNexion Pico тактасынын варианттары, үч жаңы Toradex Colibri опциясы, Samsung S7710 Galaxy Xco негизиндеги Samsung S2 -Ericsson u8500, DH Electronics DHCOM SoM жана PDK2, Renesas M3ULCB, Hoperun HiHope, Linutronix Testbox v2, PocketBook Touch Lux 3.

Source: opennet.ru

Комментарий кошуу