Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Первое знакомство с OS Inferno

Софт
Изначально OS Inferno меня заинтересовала лет 5 назад, когда я где-то прочитал фразу «Новая ОС от авторов C и UNIX, результат 30-летних исследований!».
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры4.7K
Комментарии 17

Второе знакомство с OS Inferno

Софт
Когда не работается, многие читают bash.org.ru или anekdot.ru… а я этой зимой полез от скуки перечитывать сайт OS Inferno. Полез с тоской, потому что хотя меня к Inferno давно тянуло, практической пользы я от чтения доки по Inferno ожидал сколько же, сколько и от вышеупомянутых сайтов.

Но произошло нечто неожиданное — в процессе чтения на меня снизошло озарение: я понял, что OS Inferno это не операционная система, а среда разработки!
Читать дальше →
Всего голосов 21: ↑17 и ↓4 +13
Просмотры4.7K
Комментарии 27

Поверхностный обзор OS Inferno

Софт
OS Inferno
Итак, начнём с главного — где же место под Солнцем для Inferno, где и как имеет смысл применять Inferno. Нет, на роль десктопа или сервера я Inferno не предлагаю, эти теплые места в данный момент заняты. :) Но есть минимум три задачи, с которыми Inferno справится лучше других.
Читать дальше →
Всего голосов 26: ↑22 и ↓4 +18
Просмотры5.2K
Комментарии 14

Limbo

Софт
Поскольку меня Inferno привлекает именно как среда разработки, то помимо архитектуры самой системы немалое значение имеет язык программирования.

По большому счёту мне давным давно пофиг, на каком языке писать (я программирую с 1989 года, и за это время перепробовал кучу языков). Но… всё таки на одних языках работать приятнее, чем на других — и здесь дело не в том, что одни языки лучше других, а в том, что для разных стилей мышления лучше подходят разные языки.

Переход от Perl к Limbo — очень контрастный. Языки совершенно разные: Perl — не типизированный вообще, Limbo — сильно типизированный; в Perl нет нормальной поддержки нитей и асинхронности приходится добиваться через мультиплексирование, Limbo — чуть ли не вынуждает писать именно многопоточные программы (если вы смотрели презентацию Роба Пайка, то там был прикольный пример с многопоточным поиском простых чисел); etc. И, тем не менее, Limbo мне очень понравился и писать работающий код я на нём начал практически сразу.

Я уже не очень хорошо помню C, но попробую описать Limbo именно в плане отличий от C — думаю, так будет проще для большей части аудитории (и ни слова про PHP! :)).
Читать дальше →
Всего голосов 32: ↑29 и ↓3 +26
Просмотры2K
Комментарии 31

Syntax Highlight Considered Harmful

Софт
Вы думали, что "настоящие мужчины используют Windows"? Вы крупно ошибались. Они используют IDE Acme. Которую среди прочего отличает отсутствие подсветки синтаксиса.

Причём это не потому, что Acme ещё молода, и просто не успела обзавестись такой, критически важной для IDE, фичей. (Не знаю точно, сколько лет Acme, но Пайк ещё в 1994 выпустил статью "Acme — A User Interface for Programmers".) Нет, дело в другом! Эта «фича» считается ненужной, и даже вредной.
Читать дальше →
Всего голосов 19: ↑8 и ↓11 -3
Просмотры792
Комментарии 21

Подготовка ваших приложений Inferno к standalone установке

Софт
Tutorial
Итак, вы написали некое приложение на Limbo, и хотите установить его на другую машину, или распространять через интернет. Скорее всего, там где будет устанавливаться это приложение OS Inferno не установлена. Это горько, но более чем вероятно. :) Что же делать? Обучать пользователей вашего приложения устанавливать и настраивать у себя OS Inferno? Включать полную инсталляцию Inferno (до 250 MB) в архив с каждым вашим приложением? Нет, всё гораздо проще!

Давайте посмотрим, как можно урезать Inferno до минимума, необходимого для работы вашего приложения. Для этого надо разобраться, что происходит при запуске emu — как загружается OS Inferno.
Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Просмотры1.3K
Комментарии 35

Open Source побеждает на рынке троянского ПО

Open source
По мнению некоторых специалистов по безопасности, на рынке троянов доля Open Source достигла 10% и продолжает расти. Открытый софт имеет преимущество перед закрытым, ибо здесь легче модифицировать программу и добавлять новые фичи, что очень важно в этом специфическом программном обеспечении.

Некоторые троянские программы с открытыми исходниками де-факто превращаются в коллективные проекты: одна хакерская группировка добавит туда модуль криптографии, другая — функционал видеотрансляций с удалённого ПК и т.д. Авторы троянов при этом зарабатывают привычным для Open Source способом — они получают широкую известность за счёт открытия исходников, и делают платную версию программы с расширенным функционалом.
Читать дальше →
Всего голосов 19: ↑12 и ↓7 +5
Просмотры3.3K
Комментарии 3

Deployment вашего софта для OS Inferno

Софт
Tutorial
К сожалению, встроенного механизма для распространения и установки дополнительного софта в OS Inferno нет. Если вы написали модуль для Limbo или полноценное приложение, и хотите им поделиться, то вариантов его распространения немного:
  1. просто выложить ваши файлы на любом сайте, и предоставить пользователям вручную устанавливать их в свою систему куда и как угодно
  2. использовать такие же mkfile/mkconfig файлы какие используются стандартными модулями и приложениями в /appl/

Как вы понимаете, первый вариант — это, фактически, не вариант. :) Это возврат назад, в пещеры. Второй вариант используется, например, для всего софта в репозитории mjl. Но и у этого подхода есть неприятные ограничения, вызванные тем, что ваши файлы в результате просто копируются в системные каталоги /dis/, /module/, etc. (точно так же, как стандартные модули и приложения из /appl/):
  • если используется *nix как host OS, и Inferno установлена общесистемно root-ом или менеджером пакетов вашего дистрибутива, то для установки дополнительных модулей/приложений потребуются права root (либо sudo mk в host OS, либо sudo emu и нативный mk)
  • глобальная установка неудобна, если хочется для своего приложения использовать модифицированную версию этих модулей/приложений
  • глобальная установка неудобна, если разным приложениям нужны разные версии одного и того же модуля (mjl решает эту проблему традиционным для *nix способом добавляя номер major версии к имени модуля, что не очень элегантно и приводит к именам вроде «util0.m»)
  • деинсталляция превращается в нетривиальную операцию, что в конечном итоге приводит к замусориванию системных каталогов
  • имена модулей/приложений разных разработчиков могут конфликтовать (впрочем, эта проблема есть и в *nix/win, и её можно обойти используя подкаталоги в /dis/ и /module/ с именем разработчика или его сайта)

Я хочу предложить альтернативный подход, разработанный по мотивам DJB'шного slashpackage. Update: этот подход был недавно принят разработчиками инферно, так что его уже можно считать не альтернативным, а официальным. :)
Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Просмотры758
Комментарии 1

Async в C# и SynchronizationContext

.NET
Продолжение: часть III.

Прошлая заметка о async (часть I) была введением. В этой я продолжу начатую тему: я расскажу о том, что async взаимодействует с SynchronizationContext, и как это влияет на разработку асинхронных графических приложений.

Тестовым полигоном будет пример DiningPhilosophers, который идет вместе с расширением для асинхронного программирования. Это программа — визуализация знаменитой задачи Дейкстры об обедающих философах (ссылка). Прежде, чем читать дальше, лучше ознакомиться с условиями задачи.

image
Читать дальше →
Всего голосов 58: ↑47 и ↓11 +36
Просмотры40.7K
Комментарии 3

Разработка модулей для Limbo на C (часть 1)

Софт
Tutorial
Модули для Limbo написанные на C так же иногда называют драйверами OS Inferno т.к. они встроены в ядро OS. Необходимость в таких модулях обычно вызвана либо желанием добавить к Limbo отсутствующую в Inferno функциональность (подключить существующие 3rd-party C/C++ библиотеки, дать доступ к специфичным для конкретной host OS syscall-ам) либо желанием выжать максимально возможную производительность (по моим наблюдениям разница в скорости между Limbo с включенным JIT и C примерно 1.3-1.5 раза, но иногда и это может оказаться критичным).
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры1.5K
Комментарии 9

Разработка модулей для Limbo на C (часть 2)

Софт
Tutorial
Часть 1

Содержание



Heap


Чтобы на C корректно создавать и уничтожать сложные структуры, с которыми будет работать код на Limbo, необходимо представлять себе как они хранятся в памяти, т.е. как организован heap в Inferno. Все упомянутые ниже функции для работы с heap описаны в libinterp/heap.c, а структуры в include/interp.h.
Читать дальше →
Всего голосов 13: ↑10 и ↓3 +7
Просмотры1K
Комментарии 0

Введение в теорию взаимодействующих последовательных процессов (Communicating Sequential Processes — CSP)

Облачные вычисления
Из песочницы

Предисловие


Данный текст является переводом и сокращённым пересказом начальных глав книги Чарльза Э. Хоара. Целью является ознакомление русскоязычной аудитории с данной алгеброй исчисления процессов, коя нашла достаточно широкое применение в современной вычислительной науке в связи с большим распространением параллельных систем. Наиболее близкими и понятными практическими применениями CSP, думаю, будут являться следующие языки программирования:

CSP является формальным математическим языком, позволяющим описывать взаимодействие параллельных систем, основным его применением является формальная спецификация параллельной работы систем, например таких как Транспьютер, кроме того он применяется при разработке высоконадёжных площадок электронной торговли.
В данной статье будут рассказаны основы данной алгебры, без которой невозможно её дальнейшее изучение, в основном это базовое описание процесса, что покрывает первую половину первой главы книги.
Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Просмотры11.8K
Комментарии 9

Стартовал Humble Indie Bundle V — заплати столько, сколько хочешь, за инди-игры

Разработка игр
На сайте Humble Indie Bundle началась новая акция. Вы сами определяете цену, которую готовы заплатить за четыре отличных инди-игры:

Заплатившие не менее 1$ получат ключи для активации в Steam. Те, кто заплатил больше средней цены (на данный момент это 7.50$), получат пятую игру — Bastion. Также купленные игры будут доступны через Ubuntu Software Center (на данный момент там доступны Amnesia, Superbrothers и LIMBO — увы, порт выполнен через wine). Для всех купленных игр доступны саундтреки в MP3 и FLAC.
Читать дальше →
Всего голосов 46: ↑40 и ↓6 +34
Просмотры2.2K
Комментарии 41

Каталог статей по OS Inferno

Софт
Практически каждая статья по OS Inferno вызывает вопросы из серии «что это такое и для чего оно нужно». Эти вопросы вполне уместны, но начинать каждую статью с ответа на этот вопрос невозможно — по крайней мере я не готов ответить на этот вопрос одним абзацем, а на развёрнутый ответ и целой статьи мало. Поэтому в данной статье будет поддерживаться полный каталог всех статей об ОС Инферно на хабре, и в новых статьях можно будет просто ссылаться на этот каталог.

Обзоры OS Inferno


Первое знакомство с OS Inferno … закончилось ничем, т.к. сработал стереотип «раз это ОС, значит она должна быть полноценной альтернативой традиционным десктопным или серверным ОС». Стыдно.

Второе знакомство с OS Inferno … прошло намного удачнее — удалось избавиться от стереотипов и понять, как и для чего можно начинать использовать эту ОС.

Поверхностный обзор OS Inferno … ну очень поверхностный, скорее просто список фич а не обзор.

Архитектура OS Inferno — 1,
Архитектура OS Inferno — 2,
Графика в Inferno,
Limbo,
3 сущности! … этот цикл из 5-ти статей и есть обзор системы.
Читать дальше →
Всего голосов 25: ↑18 и ↓7 +11
Просмотры10.7K
Комментарии 11

Удобная разработка для OS Inferno в Vim

VIM
FAQ: Что такое OS Inferno и зачем она нужна?

Под инферно писать софт можно как внутри самой инферно (используя Acme IDE, компилятор limbo и mk для сборки), так и снаружи, в host os (используя любой редактор/IDE, и host os -версии limbo и mk) — при этом запускать инферно понадобится только для запуска тестов или отладки. Я подготовил несколько проектов/скриптов, которые предназначены упростить разработку под инферно вообще, и разработку используя Vim запущенный в host os в частности.
Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры5.1K
Комментарии 2

Limbo подобный пазл платформер — Monochroma

Разработка игр
Всем привет,

Турецкие разработчики делают Limbo подобный пазл платформер с интересным сюжетом и отличной атмосферой.



Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры14.5K
Комментарии 16