The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

91 выпуск новостей проекта ReactOS

02.03.2012 02:34

Доступен перевод 91 выпуска новостей проекта ReactOS, операционной системы с открытым исходным кодом, нацеленной на обеспечение совместимости с программами и драйверами Microsoft Windows семейства NT (XP/2003).

Переписывание диспетчера сеанса ReactOS

Диспетчер сеанса (SMSS) отвечает за инициализацию большей части окружения операционной системы, а также за запуск служб и процессов, необходимых для отображения экрана входа пользователя в систему. В частности, он создает системные переменные окружения, наследуемые другими процессами, загружает подсистему Win32, создаёт страничные файлы для виртуальной памяти, и, наконец, запускает процесс winlogon.exe. Реализация этого компонента, которая ранее использовалась в ReactOS, была крайне упрощенной в части её взаимодействия с компонентами подсистемы, что приводило к тому, что эти компоненты не правильно предоставляли реализации интерфейсов, которые должен был использовать SMSS. Алекс Ионеску (Alex Ionescu) решил исправить эту ситуацию и поочерёдно заменял компоненты SMSS на создаваемые заново.

Первоначально SMSS2 мог всего лишь инициализировать окружение, однако с каждым коммитом Алекса стал принимать на себя всё большее и большее количество обязанностей существующего SMSS, включая создание страничных файлов (pagefiles) и переменных окружения. Алекс одновременно работал над SMSS и компонентами подсистемы Win32 в win32k.sys, а также подсистемой клиент/сервер времени выполнения (CSRSRV), для исправления ошибок в их взаимодействии с SMSS, что в конечном итоге привело к появлению в транке полностью завершённой реализации CSRSRV.

При работе над CSRSRV пришлось также поработать над потоковой моделью, используемой для обработки запросов. Ранее CSRSRV создавал новый поток для каждого запроса, который он получал. Кроме того, в старом коде содержались ошибки, приводившие к массовым утечкам ETHREAD, структур данных, которые и представляют собой потоки. Поскольку экземпляры ETHREAD выделялись из невыгружаемого пула, а CSRSRV порождал несколько тысяч потоков, в каждом из которых происходила утечка приблизительно 300 байт, в конечном итоге система довольно быcтро съедала крайне дефицитные ресурсы, и это не считая других, более мелких утечек, имевшихся в старом CSRSRV. Успешное устранение этой проблемы принесло значительное уменьшение одновременных потоков в CSRSRV и позволило избавиться от довольно большой утечки памяти.

Утечки и неэффективная работа с памятью

Как упоминалось ранее, работа Алекса над SMSS и CSRSRV позволила значительно сократить количество памяти, используемой ReactOS, главным образом благодаря устранению утечек и более эффективному использованию ресурсов. Алекс, однако, был не единственным, кто пытался устранить утечки и повреждения памяти. Жерому Гардо (Jérôme Gardou) удалось найти и исправить ошибку, известную как ошибка 'mshtml' (хотя к самому компоненту mshtml она и не имела никакого отношения).

В ReactOS в настоящее время имеется два диспетчера памяти: первоначальный диспетчер, а также новый диспетчер ARM3 (сокращение от Another Rewrite of the Memory Manager Module), работы над которым были начаты командой портирования на архитектуру ARM. Хотя в ARM3 и содержится значительная часть функциональности, необходимой для замены диспетчера памяти, он еще не может полностью заменить старый диспетчер памяти, поэтому оба они работают параллельно. Проблемы начинаются тогда, когда старый диспетчер и ARM3 начинают работать по-разному.

Далее приводится очень короткое объяснение принципов функционирования виртуальной памяти и структур данных подкачки (те, кто уже знаком с терминологией виртуальной памяти, могут перейти к следующему параграфу). Виртуальная память представляет собой способ для абстрагирования операционной системы от прямого доступа к физической памяти и предоставления программам непрерывного адресного пространства. Для преобразования виртуальных и физических адресов используются таблицы страниц, и для преобразования каждой из страниц в таблице имеется соответствующая запись. Сами по себе таблицы страниц организованы в каталоги страниц, и каждый элемент каталога страниц (PDE) указывает на адреса таблиц страниц и содержит биты информации об их состоянии. Всё это в сумме представляет собой основные структуры данных, которые диспетчер памяти использует для своего функционирования. Ошибки в обработке любой из них, как правило, приводят к множеству ошибок, начиная с небольших повреждений данных и заканчивая критическими сбоями системы.

Каждый из диспетчеров памяти поддерживает свой собственный набор каталогов страниц и занимается их выделением и освобождением. В ARM3 имеется счётчик ссылок для подсчёта количества присутствовавших в каталоге страниц элементов, что позволяет облегчить принятие решения о возможности удаления конкретного PDE. Старый диспетчер памяти этого не делал и просто отбрасывал PDE всякий раз, когда происходило завершение работы процесса или процессор производил переключение контекста.

В настоящее время ARM3 поддерживает лишь выделение памяти ядра, функционируя совместно со старым диспетчером памяти. Однако это совместное функционирование может привести к очень плохим вещам из-за того, что записи, обрабатываемые старым диспетчером памяти и ARM3, никогда не синхронизировались. Это приводило к потере старым диспетчером памяти слежения за страницами, находящимися в директориях страниц, что в конечном итоге могло привести к повторному их использованию для других целей либо самим старым диспетчером памяти, либо диспетчером ARM3, приводя к повреждениям PDE и полной потере слежения за преобразованием виртуальных и физических адресов между собой.

Жером произвёл соответствующие изменения в коде, результатом которых стало возложение на ARM3 обязанностей по обработке всех содержащих PDE страниц, что позволило использовать механизм подсчёта в ARM3 для слежения за тем, используется ли каждый конкретный каталог страниц. Отчёты тестеров дают понять, что ошибка 'mshtml' была устранена, однако выявились другин проблемы, которые, похоже, были скрыты от глаз тестеров долгим царствованием ошибки 'mshtml'. Работа Жерома и других разработчиков над диспетчером памяти вдохновила Алекса на просмотр своих старых патчей, и он наткнулся на один патч, отправленный им команде ARM на рассмотрение. Просмотрев его, Алекс понял, что этот патч, похоже, мог бы исправить ошибку 'mshtml' ещё несколько месяцев назад и сэкономить время, потраченное на поиск и устранение этой проблемы.

Как и работа Жерома, этот патч был связан с PDE и с правильной очисткой, что позволило бы убедиться в отсутствии утечек в записях, а также устранением некоторых других проблем. Алекс создал обновленный патч с учётом текущего состояния диспетчера памяти и добавил его в кодовую базу, однако Жерому пришлось провести дополнительную доработку кода для исправления освобождения страниц PDE, указывающих на общую память.

Кроме кода обработки PDE, патч команды ARM также касался проблемы удаления данных, которые больше не требуется после инициализации программы. В частности, функции в драйверах могут быть промаркированы макросом INIT_FUNCTION, который сообщает загрузчику о необходимости помещения его в специальный раздел двоичного образа. После того, как загрузчик загрузит образ в память и инициализация драйвера или программы будет завершена, диспетчер памяти может освободить блок памяти, куда ранее были загружены секции. Разумеется это применимо только к функциям, которые необходимы лишь во время инициализации, и в последующем больше не потребуются, но даже это приводит к заметной экономии используемой системой памяти. И последним замечательным нововведением, которое было внесено в систему патчем команды ARM, стало хотя и довольно простое, но тем не менее эффективное изменение, связанное с удалением данных, необходимых для загрузки операционной системы, но абсолютно бесполезных после начала функционирования ядра.

Вполне очевидный вопрос, который многие хотели бы задать: Когда же ARM3 сможет заменить старый диспетчер памяти? Краткий рассказ о нём чуть выше по тексту показал более жёсткий учёт ресурсов системы диспетчером ARM3, а также его превосходство над старым диспетчером памяти. К сожалению, ARM3 пока не подключен к компонентам памяти пользовательского режима, и, скорее всего, потребуется некоторое время, прежде чем эта работа будет завершена, поэтому в краткосрочной перспективе у ReactOS нет иного выбора, кроме как иметь в своём составе два диспетчера памяти.

Объекты Window Station и Desktop

Объекты window station являются неотъемлемой частью целой модели обеспечения безопасности в Windows, и их удручающее состояние в ReactOS означает, что система практически не способна обеспечить безопасную работу. Яннис Адамопулос (Giannis Adamopoulos) усердно старается исправить эту ситуацию, и в ходе своей работы столкнулся с обширным кругом различных проблем. Одной из самых крупных ошибок, препятствующих его корректной реализации, была проблема неправильно спроектированной обработки ввода с клавиатуры и мыши. Рафал Харабиен (Rafał Harabień) исправил эту проблему, после чего Яннис смог удалить несколько хаков.

Многие из этих хаков были связаны со структурой данных THREADINFO, которая, как понятно из её названия, используется подсистемой win32k для описания потоков. Самая вопиющая ошибка была связана с обработкой объектов ''Рабочий стол'' (desktop), хотя это и происходило не по вине самой структуры THREADINFO. У объекта desktop имеется своя собственная ассоциированная с ним память кучи, и все потоки, принадлежащие этому рабочему столу, размещают свои данные в этой куче. При вызове функции CreateDesktop для уже существующего объекта desktop, ему передаётся новая куча. Проблема, однако, состояла в том, что все потоки по-прежнему хранят свои данные в старой куче и начинают путаться при внезапном изменении кучи, принадлежащей их объекту desktop.

Разработчики системы Windows часто используют различные средства управления доступом и маски для указания типа выполняемых операций при необходимости создания или открытия объектов и система проверяет эти маски, чтобы убедиться, что вызывающий объект на самом деле имеет разрешение на выполнение требуемой операции. Для объектов, которыми управляет win32k (таких, например, как desktop и window station) такие проверки не производятся. Причина этого напоминает что-то вроде петли отрицательной обратной связи. Во-первых, ReactOS никогда не указывает правильные маски доступа, которые собирается проверять.

Если говорить более конкретно, то это приведёт к тому, что код проверки правильности маски не примет передаваемую ему маску, поскольку не была задана правильная маска. Теоретически, это приведёт к провалу попыток проверки разрешений и безопасности. Во-вторых, ReactOS не устанавливает правильные разрешения для владельца объектов desktop, поэтому в теории ни один компонент системы не сможет сделать что-либо с объектом desktop. И в-третьих, чтобы в ReactOS не возникало проблем с предыдущими двумя проблемами, проверки контроля доступа были отключены почти во всех компонентах системы. Яннис занимался решением первой проблемы, а сейчас работает над второй. После того как обе этих проблемы будут решены, он сможет включить контроль доступа в соответствующих местах кодовой базы, и, надеемся, слово "безопасность" наконец-то будет для ReactOS не пустым звуком.

USB

Как уже было отмечено в совместном с Haiku заявлении, проект ReactOS недавно добился значительного прогресса в разработке стека USB. Во время и после гонки за включение в кодовую базу проекта ветви, в которой происходила разработка поддержки USB, Кэмерон совместно с Йоханнесом Андервальдом (Johannes Anderwald) активно работали над отладкой и исправлением ошибок в USB-стеке для приведения его в более пригодное к использованию состояние. На текущий момент их достижения включают в себя монтирование USB-носителей и значительно улучшенную поддержку устройств ввода для интерфейса USB.

Кэмерон наконец смог избавиться от драйвера USB для NT4, который долгое время использовался в ReactOS как хак для обеспечения крайне ограниченной поддержки интерфейса USB. В этом драйвере весь стек USB объединён воедино, включая драйверы для устройств хранения данных, клавиатур, мышей и даже для различных типов контроллеров, таких, как EHCI, OHCI, и UHCI. Краткую статью, посвящённую рассказу о типах USB-контроллеров, можно прочитать в предыдущем выпуске новостей. Этот драйвер представлял собой один огромный хак, и работа, начатая Михаэлем Мартином (Michael Martin) и продолженная Кэмероном и Йоханнесом позволила отказаться от его дальнейшего использования. Попытки исправления проблем с загрузкой с USB устройств, с которыми столкнулись пользователи, привели разработчиков в HAL, который передавал неправильную нумерацию шин драйверу PCI, из-за чего драйверу не удавалось обнаружить никаких устройств используя эти номера.

Так как драйвер PCI ничего не находил, соответственно он даже не пытался загрузить драйвер USB. Сбросы состояния EHCI и OHCI также были усеяны хаками, при этом OHCI был занят постоянным ожиданием получения бита сброса, а отнюдь не ожиданием прерывания. В обработчике прерывания сброса EHCI находился код, которого там не должно было быть. Помимо этого, EHCI не мог очистить биты изменения состояния, что приводило невозможности использования новых устройств после того, как в порт было установлено, а затем удалено низкоскоростное устройство. И, наконец, проблема с USB-клавиатурами во время первого этапа загрузки заключалась в отсутствии соответствующих данных в реестре. Так как раньше ни один из компонентов не использовал этой информации, то соответственно не было необходимости в исправлении этой проблемы, однако для правильной регистрации интерфейса, необходимой для обеспечения работоспособности USB-устройств, работающих на раннем этапе загрузки системы, эта информация крайне необходима.

В целом, поддержка USB существенно улучшилась, но стек ещё остаётся чрезвычайно хрупким и незавершенным. Нужно сделать ещё много работы, и Кэмерону и Йоханнесу ещё предстоит справиться с большим количеством ошибок, неправильным поведением некоторых контроллеров и двусмысленностями в документации и спецификациях. Предстоит пройти ещё довольно долгий путь, прежде чем ReactOS наконец получит полную и стабильную поддержку интерфейса USB, но радует то, что начало этому уже положено.

  1. Главная ссылка к новости (http://www.reactos.org/ru/news...)
  2. OpenNews: Проект Haiku помог в создании USB-стека для ReactOS
  3. OpenNews: Релиз открытой операционной системы ReactOS 0.3.14
  4. OpenNews: 90 выпуск новостей проекта ReactOS
  5. OpenNews: 89 выпуск новостей проекта ReactOS
  6. OpenNews: Интервью с Алексеем Брагиным, координатором проекта ReactOS
Автор новости: Z98
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/33240-reactos
Ключевые слова: reactos
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 11:41, 02/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Как-то оживилась в последняя время разработка.
    Имхо не будет-ли это представлено как национальная ось в итоге?
     
     
  • 2.3, jedie (?), 11:45, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А почему бы и нет? Главное пусть заработает наконец.
     
     
  • 3.46, Аноним (-), 07:10, 03/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Главное пусть заработает наконец.

    Вопрос не в том когда оно заработает. _Как-то_ оно работает уже сейчас. Вопрос в том _как_ оно работает. Вы и правда надеетесь дожить до момента когда сие станет юзабельно на вашем десктопе? Оптимизм - это хорошо!

     

  • 1.8, Аноним (-), 12:30, 02/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Такое ощущение, что проект Реактос выпускает только новости.
    Новости Реактос v.91
     
  • 1.10, Аноним (-), 12:53, 02/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В начале 20-го века один аферист проверял в Нью-Йорке теорию о том что "короля играет свита". Он занял денег, на эти деньги снял фешенебельный офис в центре города, нанял эффектную секретаршу, проплатил газетам за освещение "деятельности" его конторы. Он созывал балы, приглашал на них знаменитостей (не бесплатно, разумеется), а пресса всё это печатала. Компания занималась инвестированием и привлекала средства вкладчиков. Успех был колоссальным, пока пирамида не рухнула. Хотя даже когда в прессе появились результаты судебного процесса над аферистом некоторые всё ещё хотели отдать ему свои деньги.

    А теперь сравним это с освещением разработки ReactOS.

     
     
  • 2.12, Аноним (-), 13:01, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    reactos реально функционирует
     
     
  • 3.13, Ваня (??), 13:02, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Да??? Какие компании на него уже перешли?
     
     
  • 4.15, Аноним (-), 13:18, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да??? Какие компании на него уже перешли?

    Если на него никто не перешел, он не может сам по себе на машине разраба функционировать? Трухин, перелогинься уже

     
     
  • 5.18, Ваня (??), 13:23, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Вещь в себе? Ну так я тебе расскажу: ОС существует для пользователей. Нет пользователей - это мёртвая ОС. Также как и язык которым не пользуются - это мёртвый язык, несмотря на то что тысячи археологов и десятки тысяч энтузиастов могут его знать.
     
     
  • 6.24, Влад (??), 13:52, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ванечка, ты не прав. Для пользователей существуют не ОС, а программы. А вот для программ - ОС. Потенциально программ под ReactОС - много. А посему проект имеет перспективу.
     
     
  • 7.26, Ваня (??), 14:14, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Потенциально под любую ОС может быть много программ. ОС нужна чтобы её использовали. И пусть лучше она будет урезана, но работать, чем полнофункциональна (React), но в вечной бете.
     
     
  • 8.47, Аноним (-), 07:12, 03/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пользователям не нужна OS, они обычно вообще не знают что это Им надо чтобы ком... текст свёрнут, показать
     
  • 6.31, Аноним (-), 15:33, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Можно написать ОС для себя и быть ее пользователем. Если кто-то ее пишет - значит кто-то ей пользуется (как минимум, используется ее код для связывания с новым). Ваня, пожалуйста, непиши чаще (твои комментарии уныли задолго до того как ты их написал).
     
  • 6.38, Хвост (?), 20:13, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Нет пользователей - это мёртвая ОС.

    Есть рыночно ориентированные компании, а есть продукт ориентированные. Так вот у последних немножко другие взгляды на "мертвость", у меня лично они вызывают положительные эмоции.

     
  • 6.42, Xasd (ok), 23:20, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вещь в себе? Ну так я тебе расскажу: ОС существует для пользователей.
    > Нет пользователей - это мёртвая ОС. Также как и язык которым
    > не пользуются - это мёртвый язык, несмотря на то что тысячи
    > археологов и десятки тысяч энтузиастов могут его знать.

    Ваня -- ты такой необычный оратор, что стоит только тебе начать обсирать какуюто [и без этого не сильно замечательную] вешь -- то сразу я начинаю думать, что а вешь не такая уж и плохая :-D

     
  • 4.49, alp (?), 21:55, 03/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Видел кассовые аппараты с заставкой реактоси в сети маркетов АТБ(Украина)
     
  • 2.37, Аноним (-), 19:37, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А в середине 19-го века небезызвестный м-р Диккенс описал как раз такого человека в одном из своих романов.
     

  • 1.14, vadiml (ok), 13:18, 02/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда в нём нормально заработает 1C + OOo/LO, можно будет сильно подвинуть win
     
     
  • 2.16, Аноним (-), 13:19, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Когда в нём нормально заработает 1C + OOo/LO, можно будет сильно подвинуть
    > win

    OOo/LO можно на любой ОС запускать

     

  • 1.17, vadiml (ok), 13:22, 02/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я написал 1C + OOo/LO,

    Только OOo/LO кто хотел уже поставил.

     
  • 1.22, axe (??), 13:41, 02/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    для кого пишут эти новости? Я миллионный раз пишу, какого черта на опеннете разжевывается тянучка для дебилов, в частности расписывается, что такое виртуальная память? Кто целевая аудитория для этого шлака? Неужели даже мало-мальски знающие линукс люди это будут читать?
     
     
  • 2.25, xxx (??), 14:13, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Я миллионный раз пишу, какого черта на опеннете разжевывается тянучка для дебилов, в частности расписывается, что такое виртуальная память?

    А что такого? Судя по обсуждению новости о minix 3.2 тут в основном специалисты по лицензиям сидят, им будет полезно.

     
     
  • 3.32, yyy (??), 15:37, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Основная масса пионеры которые смогли поставить линукс и теперь считают себя суперспециалистами в IT. Эти специалисты теперь целыми днями умничают друг перед другом какой крутой Linux. Им не до виртуальной памяти. При этом обязательным пунктом в распорядке дня такого специалиста является поливание грязью всего к чем не прикасалась рука Торвальдса, и что не находится под православным GPL, то бишь ReactOS, BSD, Solaris и т. д. и т. п.
     
     
  • 4.35, Аноним (-), 16:06, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Как вы подробно расписали свой стереотип представления. Вам бы к психологу/психиатру ..
     
  • 4.40, Аноним (-), 20:45, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Реакт под ГПЛ
     
  • 4.48, zzz (??), 07:15, 03/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > чем не прикасалась рука Торвальдса, и что не находится под православным GPL,

    Какой сочный батхерт. Кто ж виноват что за 20 лет линух вырос в многофункциональную систему пригодную и для карманных девайсов и для суперкомпьютеров, а миникс до сих пор shared libs'ы не умеет? Наверное разный подход к делу, да? GPL - удачный выбор для инженеров-практиков, чтобы допинать поделку до состояния когда она катает по дорогам и не ломается. А bsdl - выбор академзануд и любителей бесплатно работать на других ;)

     
  • 2.44, бедный буратино (ok), 05:35, 03/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне интересно.
     

  • 1.28, CSRedRat (ok), 14:52, 02/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    По ссылке опубликован оригинал англоязычной рассылки. Или их позже заменяют на перевод?
     
     
  • 2.29, CSRedRat (ok), 14:54, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И с момент выпуска версии 0.3.13 до 0.3.14 было 10 рассылок новостей. Сейчас сборка стабильных версий и разработка в общем плане ускоряются? Интересна динами проекта, т.к. заметно, что интерес и внимание к проекту повышаются.
     
  • 2.36, evilslon (?), 18:48, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Просто у кого-то чешутся ручонки и не терпится выложить недопереведённый и недовычитанный (и, соответственно, неопубликованный на оффсайте) перевод новостей с translated.by :(
     
     
  • 3.41, Аноним (-), 20:50, 02/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Виноват, наверное.
     

  • 1.33, Аноним (-), 15:41, 02/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Лично я жду с нетерпением ReactOS. Хочется чтобы в виртуалке на какой-либо редкий случай была не хрюша а ReactOS. Ну а закрытые винды нафиг не нужны.
     
  • 1.45, re (?), 06:30, 03/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    хорошо

    еслиб не тут написано http://habrahabr.ru/blogs/os/127493/

    совсем супер, но и так хорошо, нужен он а если установочный образ в итоге не превысит 200 метров то совсем замечатально

     
  • 1.51, arisu (ok), 06:00, 06/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    p.s. «яз. русский» — подлое враньё. во-первых, не русский («эти компоненты не правильно предоставляли», orly!), во-вторых, дубовый канцелярит.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру