Это - копия документа, находившегося на http://dz.ru. Авторские права, если не указано иначе, принадлежат Дмитрию Завалишину и/или Евгении Завалишиной. Все изменения, внесенные мной, находятся в этой рамочке.Пожалуйста, прочитайте disclaimer. |
Я, в принципе, изначально был настроен пессиместично в отношении Инферно. Попытка создателей Юникса, гениальных в своё время, породить новое чудо (чудеса, точнее) обломилась. Lucent фактически отказался от этого ребёнка. Это при том, что вообще-то компания с удовольствием ввязывается в игры с новыми технологиями там и тут.
Inferno позиционировалась как альтернатива для Java, в некотором смысле. Ориентация на встроенные применения - карманные телефоны, сет-топ боксы, компьютеры типа network computer... На этом (этих) рынке(-ах) оказалось достаточно сильных игроков и бороться за место под солнцем пришлось не столько с Java, которая плавно перетекает в нишу систем масштаба enterprise и рынок карманников, в общем, упускает, сколько с... Palm OS. Ну и Win CE, конечно.
С точки зрения программиста Inferno есть реинкарнация Plan9, который есть, увы-увы, реинкарнация Unix. Да-да, конечно, в отличие от Unix, последние две системы в принципе распределённые, то есть, по идее, прозрачны для локальной сети почти на 100%. Но, видимо, этого мало. Мало ещё одного шага.
В оригинальном Unix в файловой системе представлены файлы (именованные наборы данных в пределах раздела диска) и устройства (именованные наборы данных, являющие собой весь объём носителя устройства ввода-вывода или его фиксированную часть). В сегодняшнем Unix добавлены псевдо-файловые системы, через которые можно добраться до таблиц ОС (списки процессов или дескрипторов файлов) и, в принципе, до чего угодно - нашёлся бы желающий написать нужный драйвер.
В Inferno доступ к сущностям как к файлам поставлен на широкую ногу. Да, конечно, количество переходит в качество но, видимо, этого недостаточно. Или, может быть, человечество до этого ещё не доросло. Без смеха.
С другой стороны, есть и обратное ощущение. Что мир перерос Ричи и Томпсона. Что Inferno, как и Plan9 - лишь попытка запрыгнуть на давно ушедший поезд. Что затея сложновата для тех, кто (как и сам Ричи) недолюбливает ОО, и уже неинтересна для тех, кто шагнул за. Как Жигули десятой модели - старым русским уже не по карману, а новым такую брать скучно - уж больно беспонтова.
Обосновать? Пожалуйста. Как одно из достоинств системы преподносится, наряду с многопотоковостью, наличие оператора (!!) alt - аналога Юниксовского select. Оба нужны только в случае, когда программист не может или боится использовать нити (потоки). Поскольку авторы изначально предусмотрели в системе нити, то есть "не может" не проходит, то, значит, осталось это самое "боится". Авторы Inferno боятся нитей.
И вообще. Жизнеспособность языка по шкале сложности программы hello world :-) - не ахти. Смотрите сами:
implement Hello; include "sys.m"; sys: Sys; include "draw.m"; Hello: module { init: fn(ctxt: ref Draw->Context, argv: list of string); }; init(ctxt: ref Draw->Context, argv: list of string) { sys = load Sys Sys->PATH; sys->print("hello, world\n"); }
Шутка. Не в этом дело. Дело в "боятся нитей". Нельзя строить будущее, боясь его. Или - или.
Рекламная пауза | |||
|
|
Новогодняя лотерея от Lexmark - отличные подарки к струйным принтерам. Цифровая фотокамера AGFA 1280, фотобумага, термобумага, картриджи и многое другое! Спешите! |
|
Кто видел живую радиолампу? Не видали? Вот, смотрите, справа на фото. Вытащил из найденного на антресолях магнитофона. Крайне полезная штука. Несколько сотен таких ламп, отдельный фидер от ближайшей подстанции, счета за электричество в чемодане и машинный зал - столь мало нужно, чтобы построить на такого рода лампах приблизительный аналог карманного калькулятора. Ой, нет, забыл - ещё обслуживающий персонал - лампы менять. Они ведь регулярно перегорают.
Как работает лампа? Довольно просто. Нить накала греет катод, из которого самым что ни на есть броуновским образом начинают выскакивать электроны. Так, от дури в голове. Скачут недалеко - обратно на катод же падают, ибо, оставшийся без электронов, он становится типом положительным и очень их, электроны, этим привлекает.
Впрочем, это нетрудно исправить. Подключаем к катоду минус источника тока, а плюс к второму электроду в баллоне лампы - аноду. Это лишает катод всей его положительности и электроны начинают покидать его окрестности, мигрируя к аноду. Что мигрируя - просто-таки летя к нему. Благодаря источнику тока он ведь у нас куда положительнее катода.
Ладно. Это пока ещё не достижение. А вот если между катодом и анодом (но поближе к катоду) поставить сетку, то, управляя напряжением на ней, поток электронов можно ослабить, и даже вовсе остановить. Если сетка отрицательна, то электроны будут отталкиваться от неё и не покинут область катода.
Вот и вся несложная подноготная радиолампы. Ну, или почти вся. Остальное не так уж важно. Важно, что из лампы компьютер делается точно так же, как и из транзистора. Только вот лампа большая и ненадёжная. Принципиально ненадёжная. Транзистор может перегореть в результате неправильной эксплуатации, а лампа обязательно перегорит, как её не ублажай. Либо, как и в обычной лампочке, сгорить нить, нагревающая катод, либо сам катод выгорит, потеряет, излучит в колбу слой, щедрый на эмиссию электронов. Лампа, как говорят, сдохнет - летать будет, но низэнько-низэнько.
Да, ну и большая дюже. Конечно, с дискретными транзисторами лампы ещё могли кое-как соперничать размерами - выпускались они одно время совсем крошечными, раз в 5-10 меньше той, что на фото. Но интегральные схемы, в которых транзисторы сидят тысячами и миллионами на одном куске кремния, поставили в споре лампы с транзисторами точку.
А трое учёных из Кембриджа недавно добавили к ней запятую и знак вопроса.
Они научились делать... ламповые интегральные микросхемы! Как часто бывает, эта задача оказалась вовсе не такой уж сложной - сложнее, думается мне, было просто дойти до самой мысли. Ведь это невообразимо - радиолампа внутри микросхемы. Размером в сто нанометров - 0.1 микрона. То есть на кристалле со стороной в 10 мм их, в пределе, можно разместить... десять миллиардов. Радиоламп! В корпусе от 386-го процессора.
Да. И ещё. У этих ламп нет нити накала и нагреваемого катода. А значит - нет ограниченного их жизнью срока службы. И нет дикого энергопотребления.
Вот ведь. Кто бы мог подумать.
Может быть, вы уже слышали про V2 OS. Может быть, вам уже интересно, что это. Приведу несколько цитат с сайта.
Из FAQ:
Q: How do I access V2_FS from WinNT ?
A: Windows NT blocks disk access at sector level(for some stupid security
reasons). So there is no way of copying files to V2_FS floppies from Windows
NT. (if anyone has a sollution / workaround, please let us know !)
Q: Does V2_FS have directories ?
A: Currently, no. We're thinking about adding it, in what way we are
not sure.
"V2_OS was created as our own development platform, and WE don't need multi-tasking."
Из документации на системные вызовы:
ATAPI Function 22 (16h) - Display TOC
Description
Loads the content of the TOC into the DiskBuffer, and sends it to the screen
in a more 'readable' format
Если вы не прониклись, я повторю по-русски - эта функция модуля ОС ОТОБРАЖАЕТ каталог диска на экране. Здравствуй, дедушка Оккам, надеюсь, тебе не сложно вертеться в твоём гробу.
И резюме: безграмотные, но очень активные ассемблерщики написали эмэсдос один точка ноль. Фи.