Покретање нова верзија пројекта „Космополитан 2.0“, који развија стандардну Ц библиотеку и универзални формат извршне датотеке који се може користити за дистрибуцију програма за различите оперативне системе без употребе тумача и виртуелних машина.
Контејнер за генерисање универзалних извршних датотека ослања се на комбиновање специфичних сегмената и заглавља из различитих система оперативних система у једну датотеку, комбинујући неколико различитих формата који се користе у Уник-у, Виндовс-у и мацОС-у.
Да се уверимо да један извршни фајл покренути на системима Виндовс и Уник, трик се користи за кодирање Виндовс ПЕ датотека као схелл скрипте, користећи чињеницу да Тхомпсон Схелл не користи маркер скрипте „#!“.
Да бисте креирали програме који укључују више датотека (комбинујући све ресурсе у једну датотеку), подржано је генерисање извршне датотеке у облику посебно направљене ЗИП архиве. Преглед предложеног формата (пример апликације хелло.цом):
Позив кему-к86_64 је обезбеђен ради додатне преносивости и омогућава да код компајлиран за архитектуру к86_64 ради на платформама које нису к86, као што су Распберри Пи плоче и Аппле уређаји опремљени АРМ процесорима. Пројекат се такође може користити за креирање самосталних апликација које раде без оперативног система (голи метал). У таквим апликацијама, покретач је прикачен извршној датотеци, а програм делује као оперативни систем за покретање.
Главне новине Цосмополитан 2.0
У овој новој верзији је истакнуто да промењена је шема за приступ интерним ресурсима Дентро из зип датотеке (када отварате датотеке, сада се користе уобичајене /зип/… путање уместо префикса зип:..). Слично томе, да бисте приступили дисковима у Виндовс-у, могуће је користити путање попут „/ц/…“ уместо „Ц:/…“.
Предложен је нови АПЕ утоваривач (Ацтуалли Портабле Екецутабле), који дефинише формат универзалних извршних датотека. Нови боотлоадер користи ммап за додељивање програма у меморију и више не мења садржај у ходу. Ако је потребно, универзални извршни фајл се може конвертовати у обичне извршне датотеке везане за појединачне платформе.
На Линук-у је могуће користити модул кернела бинфмт_мисц за покретање АПЕ програма. Напомиње се да је употреба бинфмт_мисц најбржи метод покретања, поред Имплементација функционалност системских позива пледге() и унвеил(), које је развио ОпенБСД пројекат, као и пружање АПИ-ја за коришћење података о позивима у Ц, Ц++, Питхон и Редбеан програмима, као и услужни програм са обећања.цом да се изолују произвољни процеси.
То такође можемо наћи за Линук, перформансе позива цлоцк_геттиме и геттимеофдаи су повећане до 10 пута због употребе механизма вДСО (Виртуал Динамиц Схаред Објецт), који омогућава преношење руковаоца системског позива у кориснички простор и заобилажење контекста прекидача.
Изградња користи Ландлоцк Маке, издање ГНУ Маке-а са строжом провером зависности и коришћењем Ландлоцк системског позива за изолацију програма од остатка система и побољшање ефикасности кеширања. Као опција, способност компајлера и уобичајени ГНУ Маке су сачувани.
С друге стране, такође наглашава имплементиране функције за вишенитност: _спавн() и _јоин(), који представљају универзалне везе за специфичне АПИ-је за различите оперативне системе. Такође се ради на имплементацији подршке за ПОСИКС нити.
Од осталих промена које се истичу:
- Додата подршка за опције „–фтраце“ и „–страце“ извршним датотекама за слање информација о свим позивима функција и системским позивима у стдерр.
- Додата подршка за системски позив цлосефром() компатибилан са Линук 5.9+, ФрееБСД 8+ и ОпенБСД.
- Математичке функције за рад са комплексним бројевима премештене су из Мусл библиотеке.
- Многе математичке функције су убрзане.
- Предложена је функција ноинтернет(), која онемогућава мрежне могућности.
- Додате нове функције за ефикасно додавање стрингова: аппендд, аппендф, аппендр, аппендс, аппендв, аппендз, каппендф, кваппендф и ваппендф.
- Додата је заштићена верзија породице функција кпринтф(), дизајнирана да ради са повишеним привилегијама.
- Значајно побољшане перформансе имплементација ССЛ, СХА, цурве25519 и РСА.
Коначно, ако сте заинтересовани да сазнате више о томе, требало би да знате да је код пројектаили се дистрибуира под лиценцом ИСЦ (поједностављена верзија МИТ/БСД).