Програмистите не получават Нобелови награди. Някои обаче ги заслужават. В този отрасъл има истински герои с изключителни постижения. Тези хора не изграждат кариерата си, прескачайки от една позиция на друга, само за да си увеличат заплатите. Създава се впечатлението, че те изобщо не се интересуват от своята кариера. Благодарение на високия си интелект, вроденото любопитство и особения си характер тези хора не са способни да изпълняват скучни и обикновени задачи. Само интересни или важни такива. И то само по собствена воля, а не по указания отгоре.
Вече разказахме за Марк Русинович, Джон Кармак и Юрки Алакуйяла. Разбира се, има и други феноменални таланти, и то много. Често тези хора са далеч от публиката, никога не са били интервюирани и са известни само със своите прякори. Но те имат едно общо нещо – открояващи се индивидуални разработки, които разчупват рамките и се издигат много нива над масовите програмисти. Този път ще се спрем на Джъстийн Тъни (Justine Tunney), хакерка и гений на системното програмиране.
Нека да разгледаме някои от проектите на Тъни.
Redbean
Нейната най-известна разработка вероятно е преносимият уеб сървър Redbean, който се разпространява като един мултиплатформен файл заедно със съдържанието на уебсайта. Гениално свършена работа.
Идеята е, че можете да вземете уеб сървър и да вградите статичните си .html и .lua файлове в двоичния файл, като използвате командата zip. Резултатът е файлът redbean.com, който нативно работи в средата на шест операционни системи: Linux, Mac, Windows, FreeBSD, OpenBSD и NetBSD. Това означава, че този уеб сървър ще работи на практика на всеки компютър.
Сървър с вградени Lua, SQLite и MbedTLS сървър показва около 1,1 милиона заявки в секунда на нормален компютър (2,5 пъти повече от nginx):
# Note: Benchmarked on an Intel® Core™ i9-9900 CPU
# Note: Use redbean-demo.com -s
$ wrk --latency -t 10000 -c 10000 -H 'Accept-Encoding: gzip' \
http://127.0.0.1:8080/tool/net/demo/index.html
Running 10s test @ http://127.0.0.1:8080/tool/net/demo/index.html
10000 threads and 10000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 10.44ms 46.76ms 1.76s 98.41%
Req/Sec 189.08 259.45 39.10k 98.67%
Latency Distribution
50% 5.68ms
75% 6.87ms
90% 8.77ms
99% 197.91ms
4327728 requests in 3.72s, 3.37GB read
Socket errors: connect 0, read 5, write 0, timeout 2
Requests/sec: 1163062.91
Transfer/sec: 0.90GB
В сървъра е интегрирана опростената конзола Bestline с автоматично допълване на кода и UNIX модул с интерфейс от ниско ниво за системните извиквания и директния достъп до интерфейса на библиотеката Cosmopolitan (за нея по-долу).
Джъстин представи Redbean в HN през месец февруари 2021 г. – и той веднага се изкачи на трето място в категорията „Show HN“ с най-висок рейтинг в историята на любителските проекти, отстъпвайки само на домашно направената игрова конзола в стил 80-те години и на фалшиво гласуване, дължащо се на грешка в енджина на HN.
Втората версия на сървъра излезе през месец юни 2022 г. През изминалата година Redbean 2.0 се сдоби с няколко нови полезни вградени функции: sandboxing чрез pledge () (разгледано по-долу), IP геолокация и argon2 хеширане на паролите. Бяха реализирани и няколко опростени приложни програмни интерфейси (API) с ясен синтаксис, а към сървъра беше добавен фреймуъркът Fullmoon.
След всички тези масивни разширения размерът на изпълнимия файл redbean-tiny-2.0.16.com набъбна до 1,4 MB, но Джъстин се старае да държи процеса под контрол.
Благодарение на интегрираната Unix е възможно стартирането и използването на Unix в средата на Windows – работят подсказките след двойното натискане на клавиша Tab – като в bash, поддържат се emacs клавиатурните съчетания.
Сървърът много добре се доказа в практическата работа: на него се хостват всички сайтове на Джъстийн, включително justine.lol, без да се използват ненужни проксита като при nginx – това е пълна вертикална платформа в един файл.
Кросплатформеният формат APE
Уеб сървърът Redbean стана възможен благодарение на уникалния междуплатформен формат αcτµαlly pδrταblε εxεcµταblε (APE), който също е на Джъстийн.
Тя откри, че файловете Windows Portable Executable могат да бъдат кодирани във вид на шел скриптовете UNIX Sixth Edition. Това означава, че могат да бъдат слети в едно нативните двоични формати на Windows, Unix и MacOS и да се стартира високопроизводителен Си код за на практика всички платформи само от един единствен файл:
MZqFpD=' BIOS BOOT SECTOR' exec 7<> $(command -v $0) printf '\177ELF...LINKER-ENCODED-FREEBSD-HEADER' >&7 exec "$0" "$@" exec qemu-x86_64 "$0" "$@" exit 1 REAL MODE... ELF SEGMENTS... OPENBSD NOTE... NETBSD NOTE... MACHO HEADERS... CODE AND DATA... ZIP DIRECTORY...
Библиотеката Cosmopolitan
Библиотеката Cosmopolitan е базирана на формата APE и дава възможност за компилиране на универсални, междуплатформени изпълними двоични файлове с помощта на стандартния GCC компилатор.
По този начин, една програма, написана на програмния език Си и компилирана с помощта на Cosmopolitan във файл с разширение .com, може нативно да се стартира в произволна Linux дистрибуция, а също така и в средата на macOS, Windows, FreeBSD, OpenBSD и NetBSD.
# create simple c program on command line
printf %s '
main() {
printf("hello world\n");
}
' >hello.c
# run gcc compiler in freestanding mode
gcc -g -Os -static -fno-pie -no-pie -nostdlib -nostdinc \
-fno-omit-frame-pointer -pg -mnop-mcount -mno-tls-direct-seg-refs \
-o hello.com.dbg hello.c -Wl,--gc-sections -fuse-ld=bfd \
-Wl,-T,ape.lds -include cosmopolitan.h crt.o ape.o cosmopolitan.a
objcopy -S -O binary hello.com.dbg hello.com
# NOTE: scp it to windows/mac/etc. *before* you run it!
# ~40kb static binary (can be ~16kb w/ MODE=tiny)
./hello.com
По принцип такава програма ще работи дори на гол хардуер без никаква операционна система – ако я заредите директно в паметта с помощта на APE Loader, който също е написан от Джъстийн.
Други нейни проекти
- Blinkenlights. Дебъгер за команден ред, ориентиран към визуализиране на начина, по който програмите променят паметта. Емулира статично свързани i8086 и x86_64-pc-linux-gnu програми на платформите Linux, Mac, Windows, FreeBSD, NetBSD и OpenBSD.
- Apelife. Играта „Живот“ на Конуей в APE се състои от малко над 1000 реда код. Тя е малка демонстрация на библиотеката Cosmopolitan и конзолните интерфейси (TUI):
- Memzoom. Преглед/мониторинг на паметта на процесите и файловете директно в конзолата във формат UTF-8. Подобно на командата less, само че за двоични данни и с обновяване на резултатите в реално време. Поддържа мащабиране с колелцето на мишката и няколко порядъка на картографиране на паметта: линеен (от ляво на дясно), крива на Хилбърт и крива на Мортън (Z-образен порядък).
- Sectorlisp. 512-байтова реализация на интерпретатора на Lisp, която се побира в буут сектора. Заради своята лаконичност Lisp бива наричан софтуерен аналог на уравненията на Максуел, които тук приема най-кратката възможна форма: един сектор.
- Printvideo. Помощна програма от команден ред за визуализиране на видеоклипове в конзолен текстов режим.
- Braille Dump. Директен заместител на hexdump -C, като използва единствени шрифт на Брайл от Уникод за изобразяване на шстнадесеричните кодове 0x81…0xff, като по този начин се улеснява четенето на двоичния код. Работи на Linux 2.6.16+, Windows Vista+, MacOS XNU 15.6+, FreeBSD 12+, OpenBSD 6.4+, or NetBSD 9.1+.
$ curl https://justine.lol/braille/bd.com >bd.com
$ chmod +x bd.com
$ echo ‘hello→world→’ | ./bd.com
00000000 68 65 6c 6c 6f e2 86 92 77 6f 72 6c 64 e2 86 92 │hello⢚⢠⢁world⢚⢠⢁│
00000010 0a │◙│
00000011
- Nesemu1. Емулатор на конзолата NES в командния ред
- Gosip. Базирана на Go библиотека, която имплементира пълния стек от SIP/RTP протоколи на бекенда за гласова комуникация през телефонните гейтове като Flowroute. Това е проста и удобна алтернатива на разширенията на Asterix и фреймуърковете като Adhearsion върху него, които добавят ненужни слоеве на абстракция, правейки телефонните приложения тежки и трудни за обслужване.
- RDE (registry data escrow). Депониране на домейните от горно ниво в точно определен момент от време
- java-storage-nio. Java-клиент за файловата система Google Cloud Storage, която в документацията е описана като библиотеката Java 7 nio FileSystem.
- Closure Rules. Абстрактен фреймуърк (набор от правила) за работа с проекти в системата Bazel, който съвместно с другите инструменти на Closure Tools е използвана от корпорацията Google за управлението на своите хранилища с петабайтови кодове
Както можем да видим, някои от проектите се намират в корпоративното хранилище на Google, където Тъни е работила.
Джъстийн доста дълго работи в Google, но се отказва от корпоративната работа и се заема със собствени проекти.
Очевидно е, че момичето е изключително талантливо и е интересно да видим, дали ще успее и дали ще ѝ провърви в живота.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!



