DiBR
обычная кошмарная
домашняя страничка
Ежекакполучится околокомпьютерное обозрение
 
  <<<  предыдущий31 марта 02 годаследующий  >>>  
   Последний выпуск      Архив      Ссылки      Полезности      humor.filtered      О сайте   
         Вопросы совместимости - страшная вещь. Они мешают развиваться и тянут назад.Довольно давно кто-то из брэндов (кажется, 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", отщелкать совместно с пленочнойв разнообразных условиях, и сравнить результат в упор.С меня отчет :-)
         Прочитал Тошнит от колец.Если пропустить то, что там до предисловия (подозреваю, чтоэта главка предназначена отпугивать толкинистов допрочтения книги), то вполне читабельно.Стиль - очень похож на "похождения Штирлица или как размножаются ёжики"(в свое время была культовой книжкой) - такой же пошловатый стёб на ровном месте.Приятно, что авторы "тошнит..." придерживаются событий оригинальной книги достаточно точно.Рискну сказать, что чтобы составить представление о сюжете "Властелина колец"необязательно читать полностью самого "властелина" - сойдет и "тошнит..."
         А так - на любителя. От оригинальной книги там процентов десять (по объему).
          P.S: Тима Бензидрина (Тома Бамбадила) в фильме не было. Жаль - персонаж колоритный, в том числе и у Толкиена :-)






Архив dibr