Cosmopolitan 2.0 áááąáŹááťááşáááş á áś C library áážááˇáş interpreters áááŻáˇáááŻááş virtual machine ááťáŹá¸ ááááŻáĄááşáᲠááá°ááŽááąáŹ operating system ááťáŹá¸áá˝ááş program ááťáŹá¸ááᯠááźááˇáşááąáááş áĄááŻáśá¸ááźáŻáááŻááşááąáŹ universal executable format áá áşááŻááᯠááŽáá˝ááşááŻááşááŻááşááŹá¸ááźáŽá¸ áá˝ááşáážáááŹááźáŽááźá áşáááşá GCC áážááˇáş Clang ááźááˇáş compile ááŻááşááźááşá¸ááźááˇáş áááşáááˇáş distribution áá˝ááşáááᯠrun áááŻááşááąáŹ statically linked universal executable file áá áşááŻááᯠááážáá áąáááşá Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD áážááˇáş BIOS áááşááąáŹááşáá˝ááˇáşááťáŹá¸áááşá áááąáŹááťááşáááŻááşááᯠISC áááŻááşá ááş (MIT/BSD áááŻááşá ááşá áááŻá¸áážááşá¸ááąáŹááŹá¸áážááşá¸) áĄáąáŹááşáá˝ááş ááźááˇáşááąááŹá¸áááşá
universal executable files ááťáŹá¸áá˝á˛áˇá ááşá¸áááş container áááş Unix áá˝ááşáĄááŻáśá¸ááźáŻááąáŹ format áĄááťááŻá¸ááťááŻá¸ááᯠááąáŤááşá¸á ááşááźááşá¸á operating system áĄááťááŻá¸ááťááŻá¸áĄáá˝ááş ááŽá¸ááźáŹá¸ segment ááťáŹá¸áážááˇáş headers (PE, ELF, MACHO, OPENBSD) ááťáŹá¸ááᯠáááŻááşáá áşááŻáááşá¸áá˝ááş ááąáŤááşá¸á ááşááźááşá¸áĄááąáŤáş áĄááźáąááśáááşá Windows и macOSexecutable file áá áşááŻááᯠá áááşáĄááŻáśá¸ááźáŻáááŻááşá áąáááşáĄáá˝ááş Windows áážááˇáş Unix á áá áşááťáŹá¸áááş áááŻááşááŻááşáážááşááźááşá¸áážááˇáş áááşá ááşááąáŹ áážááˇáşáá˝ááşáá áşááŻááᯠáĄááŻáśá¸ááźáŻááźáááş Windows PE ááᯠshell script áĄááźá áşáĄááŻáśá¸ááźáŻááŹá¸ááźáŽá¸ Thompson Shell áá˝ááş "#!" script marker áááŤáááşááźááşá¸ááᯠáĄáá˝ááˇáşááąáŹááşá¸áá°ááŹá¸áááşá áááŻááşááťáŹá¸á á˝áŹááŤáááşááąáŹ ááááŻááááşááťáŹá¸ááᯠáááşááŽá¸áááşáĄáá˝ááş (áĄáááşá¸áĄááźá áşáĄáŹá¸ááŻáśá¸ááᯠáááŻááşáá áşááŻáááşá¸áĄááźá áş ááąáŤááşá¸á ááşááźááşá¸)á executable áááŻááşááᯠáĄáá°á¸ááąáŹáşáááşááťááŹá¸ááąáŹ ZIP archive áĄááźá áş áááşááŽá¸áááŻááşáááşá áĄáááŻááźáŻááŹá¸ááąáŹ format (áĽáááŹ- hello.com application):
MZqFpD='BIOS BOOT SECTOR' exec 7 $(command -v $0) printf '\177ELF...LINKER-ENCODED-FREEBSD-HEADER' >&7 exec "$0" "$@" exec qemu-x86_64 "$0" "$ @" 1 áĄá á áşáĄáážááşááŻááşáážáá˝ááşááŤâŚ ELF áĄáááŻááşá¸ááťáŹá¸âŚ OPENBSD áážááşááťááşâŚ MACHO ááąáŤááşá¸á áŽá¸ááťáŹá¸âŚ ááŻááşáážááˇáş ááąááŹâŚ á áŹáááŻááşáááşá¸áá˝ážááşâŚ
áááŻááşáá˛áˇáĄá áážáŹ âMZqFpDâ áááŻáá˛áˇ áĄáá˝ážááşá¸ááᯠáá˝ážááşááźááŹá¸ááźáŽá¸ format header áĄááźá áş áá°áááźááŤáááşá Windows PEá á¤áĄá áŽáĄá áĽáşáááş "pop %r10; jno 0x4a; jo 0x4a" áá˝ážááşááźáŹá¸ááťááşáá˛áááŻáˇáááşá¸ decode ááŻááşáᏠ"\177ELF" á áŹááźáąáŹááşá¸ááᯠ"jg 0x47" áá˝ážááşááźáŹá¸ááťááşáá˛áááŻáˇ áááˇáşáá˝ááşá¸ááźáŽá¸ áááşá¸áááŻáˇááᯠentry point áááŻáˇ ááźááşáá˝ážááşá¸áááş áĄááŻáśá¸ááźáŻáááşá Unix á áá áşááťáŹá¸áá˝ááş shell ááŻááşááᯠexec command ááᯠáĄááŻáśá¸ááźáŻá ááŻááşááąáŹááşááźáŽá¸ executable ááŻááşááᯠáĄáááşáááąáŹáşááŹá¸ááąáŹ pipe áážáá áşáááˇáş ááźááşáááşá¸á áąáááşá áĄáááŻááźáŻááŹá¸ááąáŹ áááşá¸áááşá¸á áááˇáşáááşááťááşáá áşááŻáážáŹ Thompson Shell compatibility mode ááᯠááśáˇáááŻá¸ááąá¸ááąáŹ shell ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻá Unix áá˛áˇáááŻáˇááąáŹ operating system ááťáŹá¸áá˝ááşáᏠááŻááşááąáŹááşáááŻááşááźááşá¸ááźá áşáááşá
qemu-x86_64 ááąáŤáşáááŻáážáŻáááş áááşááąáŹááşá¸áááşááąáŹááşááá˝ááşáá°á áąááźáŽá¸ x86_64 ááááŻááŹáĄáá˝ááş á áŻá ááşá¸ááŹá¸ááąáŹááŻááşááťáŹá¸ááᯠRaspberry Pi ááŻááşááťáŹá¸áážááˇáş ARM ááááŻáááşááŹááťáŹá¸áááşáááşááŹá¸ááąáŹ Apple á ááşáá ášá ááşá¸ááťáŹá¸áá˛áˇáááŻáˇááąáŹ x86 ááááşááąáŹááşá¸áááŻááşáááˇáşááááşááąáŹááşá¸ááťáŹá¸áá˝ááş ááŻááşááąáŹááşáááŻááşá áąáááşá áááąáŹááťááşááᯠáááşáááşáážáŻá áá áş (ááášááŻáááŤááąáŹ) áááŤáᲠááŻááşááąáŹááşáááˇáş áááŻááşáááŻááşááŤáážáááąáŹ áĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠáááşááŽá¸áááşáĄáá˝ááşáááşá¸ áĄááŻáśá¸ááźáŻáááŻááşáááşá áááŻáááŻáˇááąáŹáĄáááŽááąá¸áážááşá¸ááťáŹá¸áá˝ááşá bootloader ááᯠexecutable file áážááˇáşáá˝á˛ááŹá¸ááźáŽá¸á ááááŻááááşáááş bootable operating system áá áşááŻáĄááąááźááˇáşááŻááşááąáŹááşáááşá
áááąáŹááťááşáážááŽáá˝ááşááŹá¸ááąáŹ standard C library libc áááş 2024 ááŻááşááąáŹááşááťááşááťáŹá¸áááŻááąá¸ááąáŹááşáááş (áááááŻááşááąáážáŻáá˝ááşááŻááşááąáŹááşááťááşááąáŤááşá¸ 1400 áááˇáşáážááááş)á á á˝ááşá¸ááąáŹááşáááşáĄáá Cosmopolitan áááş glibc áá˛áˇáááŻáˇááźááşáááşá á˝áŹáĄááŻááşááŻááşááźáŽá¸ Cosmopolitan áááş glibc áááş ááŻááşáĄáá˝ááşáĄá áŹá¸ááąá¸áááşááźáŽá¸ áááˇáşáážááşá¸ááźáąáĄáŹá¸ááźááˇáş Musl áážááˇáş Newlib áááŻáˇáážááˇáş áááŻááşááŽáážáŻáážáááąáŹáşáááşá¸ Musl áážááˇáş Newlib áááş ááááááŹáᏠááŹáá˝ááşááąááŤáááşá memcpy áážááˇáş strlen áá˛áˇáááŻáˇááąáŹ áááźáŹááááąáŤáşáááˇáş ááŻááşááąáŹááşááťááşááťáŹá¸ááᯠáĄááąáŹááşá¸ááŻáśá¸ááźá áşáĄáąáŹááş ááŻááşááąáŹááşáááşá ááŻááşááŻááşááąáŹááşáážáŻáá˝ááş ááŤáááşáááˇáş CPU áážááşááŻáśáááşáážáŻááťáŹá¸áĄááźáąáŹááşá¸ áĄááááąá¸áááˇáş macro binding ááᯠáĄááŻáśá¸ááźáŻáááˇáş âtrickle-down performanceâ áááşá¸áááŹááᯠáááşááąáŹááşá¸áĄááŻáśá¸ááźáŻááŹá¸áááşá ááźáąáŹááşá¸áá˛áááŻááşááąáŹ áážááşááŻáśáááşáážáŻááťáŹá¸áááŻáᏠááááşá¸áááşá¸ááźááşá¸ááźááˇáş CPU áĄááźáąáĄááąááᯠááááşá¸áááşá¸áááˇáşáĄá፠áĄáááşá¸áĄááźá áşááťáŹá¸ááᯠááááşá¸áááşá¸ááźááşá¸áĄáŹá¸ áá˝ááˇáşááźáŻáááˇáş ááŻááşáááşá¸á ááşá
áĄáá áşáá˝ááşáážáááŹá¸ááąáŹ áĄááźáąáŹááşá¸áĄáá˛ááťáŹá¸áá˛áá˝ááş-
- áá áşáááŻááşáá áşááŻáĄáá˝ááşá¸áážá áĄáá˝ááşá¸áááŻááşá¸áĄáááşá¸áĄááźá áşááťáŹá¸ááᯠáááşááąáŹááşááźááˇáşáážáŻáááˇáşááŻáśá áśááᯠááźáąáŹááşá¸áá˛áááŻááşááŤááźáŽ (áááŻááşááťáŹá¸áááŻáá˝ááˇáşáááˇáşáĄááŤá zip:.. áážáąáˇáááşááźááˇáş áááşááąáŹááşááźááˇáşáážáŻáááˇáşáĄá áŹá¸ ááŻáśáážááşáááşá¸ááźáąáŹááşá¸ááťáŹá¸ /zip/⌠ááᯠáááŻáĄááŻáśá¸ááźáŻááŤáááş)á áĄááŹá¸áá°áááşá áá áşááşááťáŹá¸áááŻáˇ áááşááąáŹááşáá˝ááˇáş Windows "C:/..." áĄá áŹá¸ "/c/..." áá˛áˇáááŻáˇááąáŹ áááşá¸ááźáąáŹááşá¸ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááŻááşá á˝ááşá¸áááşááᯠááááşáááşááźáŽá¸ááźá áşáááşá
- universal executable files áááąáŹáşáááşááᯠáááşáážááşááąá¸áááˇáş APE (áĄáážááşááááş áĄáááşááąáŹááş áĄááąáŹááşáááşááąáŹáşáááŻááşááąáŹ) loader áĄáá áşááᯠáĄáááŻááźáŻááŹá¸áááşá loader áĄáá áşáááş ááááŻááááşááᯠmemory áá˝ááşááŹá¸áááş mmap áááŻáĄááŻáśá¸ááźáŻááźáŽá¸ áĄááźáąáŹááşá¸áĄááŹááťáŹá¸ááᯠáĄááťáááşáážááˇáşáááźáąá¸áᎠááźáąáŹááşá¸áá˛ááźááşá¸áááźáŻááąáŹáˇááŤá áááŻáĄááşááŤáá universal executable file ááᯠááááşááąáŹááşá¸áá áşááŻááťááşá¸á áŽáážááˇáş ááťáááşáááşááŹá¸ááąáŹ ááŻáśáážááş executable files áĄááźá áşáááŻáˇ ááźáąáŹááşá¸áááŻááşáááşá
- ááááşááąáŹááşá¸ááąáŤáş Linux APE ááááŻááááşááťáŹá¸ááᯠá áááşáááş binfmt_misc kernel module ááᯠáĄááŻáśá¸ááźáŻáááŻááşáááˇáş á á˝ááşá¸áááşááᯠáĄááąáŹááşáĄáááşááąáŹáşááźáŽá¸ááźá áşáááşá binfmt_misc áááŻáĄááŻáśá¸ááźáŻááźááşá¸áááş áĄááźááşááŻáśá¸á áááşáááşá¸áááşá¸ááźá áşááźáąáŹááşá¸ áááááźáŻááááŤáááşá
- áĄáá˝ááş Linux OpenBSD áááąáŹááťááşááž ááŽáá˝ááşááŹá¸ááąáŹ pledge() áážááˇáş unveil() á áá áşááąáŤáşáááŻáážáŻááťáŹá¸ááᯠáĄááąáŹááşáĄáááşááąáŹáşáááş áĄáááŻááźáŻááŹá¸ááŤáááşá Cá C++á Python áážááˇáş Redbean ááááŻááááşááťáŹá¸áá˝ááş á¤ááąáŤáşáááŻáážáŻááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááş API áá áşááŻáĄááźááşá ááááŹááąáŹ ááŻááşáááşá¸á ááşááťáŹá¸ááᯠáá˝á˛ááŻááşáááşáĄáá˝ááş pledge.com utility ááᯠááśáˇáááŻá¸ááąá¸ááŹá¸ááŤáááşá
- áááşááąáŹááşáážáŻáá˝ááş Landlock Make utility áááŻáĄááŻáśá¸ááźáŻáááş - GNU Make áááŻááşááąáážáŻáá˝ááş áááŻáááŻáááşá¸ááťááşááąáŹáážáŽáááŻáĄáŹá¸ááŹá¸áážáŻá á áşááąá¸ááźááşá¸áážááˇáş Landlock á áá áşááąáŤáşáááŻáážáŻáĄááŻáśá¸ááźáŻááźááşá¸áážááˇáşáĄáá° ááááŻááááşáĄáŹá¸ á áá áşáááťááşáážááážáŻáážáá˝á˛ááŻááşááźáŽá¸ áááşááťáážáŻááááąáŹááşáážáŻáááŻá¸áááşá áąááŤáááşá áá˝áąá¸ááťááşá ááŹáá áşááŻáĄááąááźááˇáşá ááŻáśáážááş GNU Make ááźááˇáşáááşááąáŹááşáááŻááşá á˝ááşá¸áááŻáááşáááşááááşá¸ááááşá¸ááŹá¸áááşá
- Multithreading áĄáá˝ááş ááŻááşááąáŹááşááťááşááťáŹá¸ - _spawn() áážááˇáş _join() áááŻáˇáááş ááá°ááŽááąáŹáááşáááşáážáŻá áá áşááťáŹá¸áĄáá˝ááş ááŽá¸ááźáŹá¸ APIs ááťáŹá¸ááąáŤáşáá˝ááş universal bindings ááťáŹá¸ááźá áşáááşá POSIX Threads ááśáˇáááŻá¸áážáŻááᯠáĄááąáŹááşáĄáááşááąáŹáşáááşáááşá¸ ááŻááşááąáŹááşááąááŤáááşá
- á áŹáá˝á˛áá áşááŻá áŽáĄáá˝ááş ááŽá¸ááźáŹá¸áááŻáážáąáŹááşáážáŻ (TLSá Thread-Local Storage) ááᯠáĄááŻáśá¸ááźáŻáááş _Thread_local ááąáŹáˇááťááşá ááŹá¸ááŻáśá¸ááᯠáĄááŻáśá¸ááźáŻáááŻááşáááşá ááŻáśáážááşáĄáŹá¸ááźááˇáşá C runtime áááş áááşáá áŹáá˝á˛áĄáá˝ááş TLS ááᯠáĄá ááźáŻááąá¸áááşá áááşá¸áááş áĄááááˇáşááŻáśá¸ááŻááşááąáŹááşáááŻááşááąáŹáĄáá˝ááşáĄá áŹá¸ááᯠ12 KB ááž 16 KB áĄáááááŻá¸ááŹá áąááŤáááşá
- â--ftraceâ áážááˇáş â--straceâ áááˇáşáááşááąáŹááşááťáŹá¸áĄáá˝ááş ááśáˇáááŻá¸áážáŻááᯠstderr áááŻáˇ function calls ááťáŹá¸áĄáŹá¸ááŻáśá¸áážááˇáş system calls ááťáŹá¸áĄááźáąáŹááşá¸ áĄááťááşáĄáááşááŻááşááąá¸áááşáĄáá˝ááş executable files ááťáŹá¸áááŻáˇ ááąáŤááşá¸áááˇáşááŹá¸ááŤáááşá
- closefrom() á áá áşááąáŤáşáááŻáážáŻáĄáá˝ááş ááśáˇáááŻá¸áážáŻáááˇáşáá˝ááşá¸ááŹá¸áááşá ááśáˇáááŻá¸ááąá¸ááŹá¸áááş Linux 5.9+á FreeBSD 8+ áážááˇáş OpenBSDá
- ááááşááąáŹááşá¸ááąáŤáş Linux vDSO (virtual dynamic shared object) ááášáááŹá¸ááᯠáĄááŻáśá¸ááźáŻááźááşá¸ááźááˇáş clock_gettime áážááˇáş gettimeofday call ááťáŹá¸á á á˝ááşá¸ááąáŹááşáááşááᯠáá ááĄáá ááźážááˇáşáááşááŹá¸ááźáŽá¸ áááşá¸áááş system call handler ááᯠuser space áááŻáˇ áá˝ážáąáˇáááŻááşááźáŽá¸ context switch ááťáŹá¸ááᯠáážáąáŹááşáážáŹá¸áááŻááşáááşá
- áážáŻááşáá˝áąá¸ááąáŹ ááááşá¸ááťáŹá¸ááźááˇáş ááŻááşááąáŹááşáááşáĄáá˝ááş áááşášááťáŹááŻááşááąáŹááşááťááşááťáŹá¸ááᯠMusl á áŹááźááˇáşáááŻááşááž áá˝ážáąáˇááŹá¸áááşá áááşášááťáŹáááŻááşáᏠááŻááşááąáŹááşááťááşááťáŹá¸á á˝áŹá ááŻááşááąáŹááşáážáŻááᯠáĄáážáááşááźážááˇáşáá˛áˇáááşá
- nointernet() ááŻááşááąáŹááşááťááşáááş áá˝ááşáááşá á˝ááşá¸ááąáŹááşáááşááťáŹá¸ááᯠááááşáááş áĄáááŻááźáŻááŹá¸áááşá
- ááąáŹááşáááşáá˝á˛á áŹááźáąáŹááşá¸ááťáŹá¸áĄáá˝ááş ááááąáŹááşá á˝áŹáááˇáşáá˝ááşá¸ááŹá¸ááąáŹ ááŻááşááąáŹááşááťááşáĄáá áşááťáŹá¸- ááąáŹááşáááşáá˝á˛á appendfá appendrá appendsá appendwá appendzá kappendfá kvappendf áážááˇáş vappendfá
- ááźááˇáşááŹá¸ááąáŹáĄáá˝ááˇáşáá°á¸ááťáŹá¸ááźááˇáş áĄááŻááşááŻááşáááş ááŽáááŻááşá¸ááŻááşááŹá¸áááˇáş kprintf() ááŻááşááąáŹááşááťááşááááŹá¸á áŻá áĄááŹáĄáá˝ááşááŹá¸áážááşá¸ááᯠáááˇáşáá˝ááşá¸ááŹá¸áááşá
- áĄááąáŹááşáĄáááşááąáŹáşáážáŻá á á˝ááşá¸ááąáŹááşáááşááᯠááááááŹáᏠááźážááˇáşáááşááąá¸ááźááşá¸ SSL áááŻ, SHA, curve25519 áážááˇáş RSAá
source: opennet.ru
