31 марта 02 года


          вопросы совместимости - страшная вещь. они мешают развиваться и тянут назад.довольно давно кто-то из брэндов (кажется, compaq)попытался выпустить "legacy-free pc", в которой избавлялся от большинстватого,что традиционно торчит в "intel-based pcs" со времен того самого, первого"писюка" - от клавиатурного порта, мышиного порта, огрызка под названием"порт принтера", последовательных портов... клава, мышь, принтер и модем -на usb,isa-слоты отсутствуют как класс... на морде же этого прогрессивногомонстра гордо красовался 3.5" дисковод. не смогли избавиться. крепкодержит.
         ладно периферия - периферия дело наживное, для новой периферии ничего кроменовыхдрайверов как бы и не требуется. возмем что-нибудь более глобальное.ну, там, изменение разрядности - как в свое время тот же intel pcперепрыгнул с "как бы 20" разрядов на нормальные 32 разряда, и как сейчастот же intel продвигает 64-разрядную архитектуру. последнюю я, правда,в глаза не видел (и, думаю, на столе у меня оно окажется не скоро),но, говорят, на ней уже есть вездесущий линукс, и в секретных лабораторияхмикрософтудалось загрузить не менее секретный билд windows.при смене разрядности процессора драйверами уже не отмашешься -чтобы полноценно использовать новые возможности, придется переписатьзаметный кусок операционной системы (а то и всю os - что мы и видим напримеретех же windows), обсмотреть весь оставшийся код на предмет того,не заложились ли мы где-то на разрядность данных или указателей,пересобрать всю эту кучу кода, и потратить уйму времени на отладку.
         переход ia16 - ia32 (грубо говоря, от 286 к 386 процессору)был практически безболезненным, посколькустарые программы продолжали работать в 16-битном режиме 32-битногопроцессора.если бы ia32 принципиально отличалась бы от ia16 - все старые программы,за редким исключением, пошли бы лесом, поскольку почти во всехпрограммах так или иначе закладывались на особенности архитектуры,в частности на разрядность данных. сложно было в те времена "писатьпортабельно"на intel pc, да и смысла особого никто не видел.
         переход ia32 - ia64 пока фактически не состоялся (ждем-с),но в юниксовом мире с этим проще - привычка "писать портабельно"у программистов есть, поскольку портабельность эта востребована -тот зоопарк архитектур, на которых заводится тот же линукс,вызывает умиление и восхищение. тем более, что на пресловутой ia64линукс смогли загрузить раньше винды. что. в принципе, логично.
         но все эти отказы от lpt-портов, придумывания всякихusb, agp и прочих tla, да и даже увеличение разрядности(а также объема памяти, улучшение алгоритмов распараллеливания инструкций впроцессоре,создание новых instruction setов, и что я еще мог забыть) -на революцию не тянет. экстенсивное развитие - отращиваемпамять, разрядность, да гоним гигагерцы - вот всё быстрей и работает.а защита приложений друг от друга по прежнему реализуется черезмеханизм исключений, защита приложения от самого себя - сдвиги есть,но не особо революционные...
         возмем простейшую вещь. "двухголовый" писюк. скажем, популярную вскорепосле появления socket 370 celeronов комбинацию из двух целероновна одной материнской плате abit чего-то-там.
         два процессора - это круто. в два раза. почти.
         запускаем две задачи - и они молотят параллельно, иногда конкурируя за шинуипериферию (шина одна, и периферийные устройства тоже),но ввиду наличия кеша в процессоре - в среднем все получается быстро.
         запускаем одну задачу с двумя нитями - каждая нить вешается на свойпроцессор,и и обе молотят параллельно. обрабатывая, например, данные из одногомассива "в две струи", и обмениваясь друг с другом информацией через...через оперативную память, для скорости - не через сокеты же, в самом деле.и если одна нить на одном процессоре взвела "флажок" в памяти (или записалатуда кусочек данных) - другая нить должна иметь возможность тут же считать.но стоп! ведь процессор же должен по возможности работать с кешем, а негрузитьшину перекачкой данных в память/из памяти? а значит - должен быть механизм,обеспечивающий синхронизацию данных между кешами процессоров, причем чембольше процессоров - тем более накладной становится такая синхронизация.а почему? да потому, что с тех времен, когда многозадачностьделалась многозадачными ос на одном процессоре, подобный метод синхронизациибыл если не поощряем, то хотя бы распространен. а в языке си даже былмодификаторvolatile, предназначенный для подобных целей.
         ...а значит, до тех пор пока есть софт, закладывающийся на подобные методысинхронизации - с революциями есть определнные напряги.напряги, впрочем, решаемые - уже сейчас такого рода синхронизацияне поощряется, плюс наличествует системное api, специально предназначенноедля синхронизации процессов, но - ближайший пример многонитевой программы,синхронизующейся через общие переменные в памяти, я видел не далее чем вчера- счетная задача, занимающаяся обсчетом полей и параметров плазмыв некоей хитрой установке.
         ...когда-то давно dz писал про архитектуру (реально существующую),где задача не может обратиться к не выделенному ей кусочку памятине потому, что схлопочет exception, а потому, что в этой архитектуретехнически невозможно создать указатель на объект, не принадлежащий тебе.идеальная защита, как приложений друг от друга, так и приложенийсамих от себя (выход за границы массива, например, или некорректнаяработа с указателями). одна мелкая проблема - в семантикуязыка си это не ложится никак, да и в семантику большинствадругих языков ложится со скрежетом и скрипом. а значит -всё, начиная от ос, и кончая прикладным софтом, придется писатьс нуля. а значит... а значит, крупный, денежный клиент,которому ведь нужно, чтобы работало, а не чтобы было революционно и встакое,платить не будет. массовый клиент - тем более.значит, революций не будет. будет эволюция, ограниченнаяопределенными рамками.
         когда трансмета анонсировала свой crusoe, первым делом было объявлено, что"на нем идет linux". бабаян со своим "эльбрусом" - анонсироваливозможность выполнения кода intel-процессоров.одна надежда - на новые языки, вроде той же явы или c#, гдеможно надеяться на меньшее количество неявныхзакладок на архитектуру. явных закладок там быть не должно.
         ...подумать только, не так давно язык си считался очень подходящим языкомдлянаписания переносимых программ...
         на работу наконец-то приобрели пленочный сканер. acer scanwit 2720 (2740 не нашли).вчера сидел на работе и проникался преимуществами полуцифровой технологии.
         вообще говоря - я разочарован. главное преимущество пленки - фотоширота -в 90% сюжетов просто не востребована, всё и так укладывалось в стандартные "256 градаций на цвет".сюжеты, где это не так (собственно, только ночные) - ну так, реальные 10 разрядов на цветсейчас уже не редкость среди цифровых камер, и покрутив параметры съемки можно получить всё что требуетсяи из цифровика. зерно пленки (fuji superia 100) вполне соразмеримо с "шумом" цифровых камер.разрешение... в моем случае оно и так и так упирается в объектив, а не в пленку/матрицу.
         остается как обычно - соотношение цен (ящик пленки vs цифровик и большой флэш),соотношение удобств (ящик пленки в отпуске удобней пары флэш-карт и одного ноутбука,хотя бы потому, что ноутбука пока нет), и соотношение ограничений (всегда можно придуматьсюжеты, где цифра или пленка окажется не к месту - цифрой плохо снимать ночью при зажатой диафрагме,пленкой - снимать пару сотен кадров, скажем, детей, чтобы выбрать десяток удачных).
         вывода, собственно, два. к концу года у меня появится цифровик - как раз и подешеветь успеют,и в отпуск летом проще съездить с пленкой чем с цифрой, а второй вывод - надо будет взятьу кого-нибудь "погонять" цифровую камеру класса "за $500-700", отщелкать совместно с пленочнойв разнообразных условиях, и сравнить результат в упор.с меня отчет :-)
         прочитал тошнит от колец [http://www.lib.ru/anekdoty/rings.txt].если пропустить то, что там до предисловия (подозреваю, чтоэта главка предназначена отпугивать толкинистов допрочтения книги), то вполне читабельно.стиль - очень похож на "похождения штирлица или как размножаются ёжики"(в свое время была культовой книжкой) - такой же пошловатый стёб на ровном месте.приятно, что авторы "тошнит..." придерживаются событий оригинальной книги достаточно точно.рискну сказать, что чтобы составить представление о сюжете "властелина колец"необязательно читать полностью самого "властелина" - сойдет и "тошнит..."
         а так - на любителя. от оригинальной книги там процентов десять (по объему).
          p.s: тима бензидрина (тома бамбадила) в фильме не было. жаль - персонаж колоритный, в том числе и у толкиена :-)



оригинал страницы находится на http://dibr.nnov.ru/issue310302.html.(с) dibr
при перепечатке ссылка обязательна.<< * >>