Cosmopolitan 2.0 ááá±á¬áá»ááºááᯠáá¯ááºáá±áá²á·ááŒá®ážá á ᶠC á á¬ááŒáá·áºááá¯ááºááŸáá·áº ááœá²ááŒá¬ážáá±á¬áááºáááºááŸá¯á áá áºáá»á¬ážá¡ááœáẠáááá¯ááááºáá»á¬ážááᯠááŒáá·áºáá±áááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á ᶠC á á¬ááŒáá·áºááá¯ááºááᯠáá®ááœááºáá¯ááºáá¯ááºáá¬ážáááºá GCC ááŸáá·áº Clang ááœáẠá á¯á ááºážááŒááºážááŒáá·áº áááŸááá±á¬ááááºááᯠáááºááá·áº Linux ááŒáá·áºááŒá°ážááŸá¯á macOSá Windowsá FreeBSDá OpenBSDá NetBSD ááŸáá·áº BIOS ááŸáááºáá±á«áºááá¯ááá¯ááºááá·áº statically linked universal executable file áá áºáá¯á¡ááŒá Ạá á¯á ááºážáá¬ážáááºá ááá±á¬áá»ááºáá¯ááºááᯠISC ááá¯ááºá áẠ(MIT/BSD á ááá¯ážááŸááºážáá±á¬áá¬ážááŸááºáž) á¡á±á¬ááºááœáẠááŒáá·áºáá±áá¬ážáááºá
Unixá Windows ááŸáá·áº macOS ááá¯á·ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº ááá°áá®áá±á¬ áá±á¬áºáááºáá»á¬ážá áœá¬ááᯠáá±á«ááºážá ááºáá¬ážáá±á¬ universal executable ááá¯ááºáá»á¬ážááᯠáá¯ááºáá±ážáááºá¡ááœáẠááœááºááááºáá¬ááẠááá°áá®áá±á¬ áááºáááºááŸá¯á áá áºáá»á¬áž (PE, ELF, MACHO, OPENBSD) á¡ááœáẠáá®ážááŒá¬áž á¡ááá¯ááºážáá»á¬ážááŸáá·áº áá±á«ááºážá á®ážáá»á¬ážááᯠáá±á«ááºážá ááºáá¬ážáááºá áá áºáá¯áááºážáá±á¬ executable file ááẠWindows ááŸáá·áº Unix á áá áºáá»á¬ážááœáẠrun ááŒá±á¬ááºážáá±áá»á¬á á±áááºá Thompson Shell ááẠ"#!" script marker ááá¯á¡áá¯á¶ážáááŒá¯ááá·áºá¡ááœáẠá¡á¬ážáá¬áá»ááºááá¯áá°ááŒá®áž Windows PE ááá¯ááºáá»á¬ážááᯠshell scripts áá»á¬ážá¡ááŒá Ạencode áá¯ááºáááºááŒá áºáááºá ááá¯ááºáá»á¬ážá áœá¬áá«áááºááá·áº áááá¯ááááºáá»á¬ážáááºáá®ážááẠ(á¡áááºážá¡ááŒá áºá¡á¬ážáá¯á¶ážááᯠááá¯ááºáá áºáá¯ááá¯á· áá»áááºáááºááŒááºáž)á áááºážááẠá¡áá°ážáá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬ ZIP ááŸááºáááºážáá¯á¶á á¶ááŒáá·áº executable ááá¯ááºáá áºáá¯ááœá²á·á ááºážááŒááºážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá á¡ááá¯ááŒá¯áá¬ážáá±á¬ áá±á¬áºáááºá á¡á á®á¡á áẠ(á¥ááᬠhello.com á¡ááá®áá±ážááŸááºáž)á
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 áá±á«ááºážá á®ážáá»á¬ážâŠ áá¯ááºááŸáá·áº áá±áá¬âŠ á á¬ááá¯ááºáááºážááœáŸááºâŠ
ááá¯ááºáá¡á ááœááºá Windows PE áá±á¬áºáááºáá±á«ááºážá á®ážá¡ááŒá Ạáá°ááá¬ážááá·áº âMZqFpDâ á¡ááœáŸááºážááᯠááœáŸááºááŒáá¬ážáááºá á€á¡á á®á¡á ááºááᯠâpop %r10; jno 0x4a ; jo 0x4a" ááŸáá·áº entry point ááá¯á·áá±ážááá¯á·áááºá¡áá¯á¶ážááŒá¯áá±á¬ instruction "jg 177x0" ááá¯á· á á¬ááŒá±á¬ááºáž "\47ELF" á Unix á áá áºáá»á¬ážááẠexec command ááá¯á¡áá¯á¶ážááŒá¯á á¡áááºááá±á¬áºáá±á¬ááá¯ááºááŸáááá·áº exec command ááá¯á¡áá¯á¶ážááŒá¯ááá·áº shell code ááá¯áá¯ááºáá±á¬ááºáááºá á¡ááá¯ááŒá¯áá¬ážáá±á¬áááºážáááºážá ááá·áºáááºáá»ááºááŸá¬ Thompson Shell ááá¯ááºáááºááŸá¯áá¯ááºááᯠáá¶á·ááá¯ážáá±ážááá·áº shells áá»á¬ážááá¯áᬠá¡áá¯á¶ážááŒá¯á Unix áá²á·ááá¯á·áá±á¬ áááºáááºááŸá¯á áá áºáá»á¬ážááœáẠáá¯ááºáá±á¬ááºááá¯ááºááŸá¯ááŒá áºáááºá
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:.. prefix á¡á á¬áž ááá¯á¡áá¯á¶ážááŒá¯áááº)á á¡áá¬ážáá°á Windows ááŸá disks áá»á¬ážááá¯áááºáá±á¬ááºáááºá "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 áá»á¬ážááá¯á· áá±á«ááºážááá·áºáá¬ážáá«áááºá
- Linux 5.9+á FreeBSD 8+ ááŸáá·áº OpenBSD ááœáẠáá¶á·ááá¯ážáá±ážáá¬ážááá·áº closefrom() á áá áºáá±á«áºááá¯ááŸá¯á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºááá·áºáá¬ážáááºá
- Linux ááááºáá±á¬ááºážááœááºá clock_gettime ááŸáá·áº gettimeofday áá±á«áºááá¯ááŸá¯áá»á¬ážáá áœááºážáá±á¬ááºáááºááẠvDSO (virtual dynamic shared object) ááá¹ááá¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº system call handler ááá¯á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááá¯á·ááœáŸá±á·ááá¯ááºááŒá®áž context switches áá»á¬ážááá¯ááŸá±á¬ááºááŸá¬ážááá¯ááºá á±ááá·áº 10 áá¡áá ááá¯ážááŒáŸáá·áºáá¬ážáá«áááºá
- ááŸá¯ááºááœá±ážáá±á¬ ááááºážáá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºáááºá¡ááœáẠáááºá¹áá»á¬áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠMusl á á¬ááŒáá·áºááá¯ááºá០ááœáŸá±á·áá¬ážáááºá áááºá¹áá»á¬ááá¯ááºáᬠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá áœá¬á áá¯ááºáá±á¬ááºááŸá¯ááᯠá¡ááŸáááºááŒáŸáá·áºáá²á·áááºá
- nointernet() áá¯ááºáá±á¬ááºáá»ááºááẠááœááºáááºá áœááºážáá±á¬ááºáááºáá»á¬ážááᯠááááºááẠá¡ááá¯ááŒá¯áá¬ážáááºá
- áá±á¬ááºáááºááœá²á á¬ááŒá±á¬ááºážáá»á¬ážá¡ááœáẠáááá±á¬ááºá áœá¬ááá·áºááœááºážáá¬ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºá¡áá áºáá»á¬áž- áá±á¬ááºáááºááœá²á appendfá appendrá appendsá appendwá appendzá kappendfá kvappendf ááŸáá·áº vappendfá
- ááŒáá·áºáá¬ážáá±á¬á¡ááœáá·áºáá°ážáá»á¬ážááŒáá·áº á¡áá¯ááºáá¯ááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážááá·áº kprintf() áá¯ááºáá±á¬ááºáá»ááºáááá¬ážá á¯á á¡áá¬á¡ááœááºáá¬ážááŸááºážááᯠááá·áºááœááºážáá¬ážáááºá
- SSLá SHAá curve25519 ááŸáá·áº RSA á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážá á áœááºážáá±á¬ááºáááºááᯠáááá¬á áœá¬ ááŒáŸáá·áºáááºáá¬ážáááºá
source: opennet.ru