Доступен перевод 93 выпуска (http://www.reactos.org/ru/newsletter_93.html) новостей проекта ReactOS, операционной системы с открытым исходным кодом, нацеленной на обеспечение совместимости с программами и драйверами Microsoft Windows семейства NT (XP/2003).
Окна и Рабочие столыВ операционных системах семейства Windows рабочий стол, который видит пользователь после окончания загрузки компьютера, состоит из трёх составных частей: объект режима ядра, окно пользовательского режима, и поток. В объекте "Desktop" нет ничего особенного, а вот окно и поток представляют куда больший интерес. В Windows, окна рабочего стола создаются несколько иначе, чем обычные окна, и используют единый поток обработки данных. Этот поток обрабатывает системные сообщения, отправленные окну рабочего стола даже в том случае, если оболочка проводника не запущена и пользователи видят лишь пустое окно рабочего стола.
В ReactOS, окна рабочего стола обрабатываются как обычные окна и имеют свои собственные потоки, что приводит к довольно неприятным последствиям. При этом необходимо, чтобы каждый поток ссылался обратно на объект рабочего стола, что приводит к его дублированию и подключению к потоку функцией, которая занимается фактическим созданием рабочего стола. Всё это приводит к созданию большого числа разрозненных копий дескрипторов и ссылок на объект рабочего стола, кроме того, в настоящий момент в системе нет механизма для обнаружения и освобождения дескрипторов и ссылок при уничтожении объекта.
Также, в ReactOS существует ещё одна, куда более серьёзная, проблема с обработкой создания рабочего стола. При создании окна, из нераспределённой памяти текущего рабочего стола выделяется часть памяти для хранения структуры WND, предназначенной для приёма системных сообщений для этого окна. При создании уже существующим окном нового окна рабочего стола, память для структуры WND выделяется из кучи старого окна, а не нового. Если старый объект рабочего стола уничтожается, его куча также изымается диспетчером памяти и впоследствии может быть использована повторно для каких-либо других целей. Однако новый объект рабочего стола всё ещё существует и при приёме сообщений полагается на существование структуры WND, находящейся в этом участке памяти. Это может вызвать повреждение памяти и сбой в работе нового рабочего стола со всеми вытекающими отсюда неприятными последствиями.
Яннис Адамопулос (Giannis Adamopoulos) потратил немало времени переписывая NtUserCreateDesktop, чтобы исправить все описанные выше проблемы. Самым крупным изменением стало объединение всех потоков рабочего стола в единый поток, который избавлял от необходимости многократного дублирования дескрипторов и ссылок на окна рабочего стола для передачи их соответствующим потокам. В теории, он мог бы создать механизм уничтожения потоков рабочего стола для удаления ненужных дескрипторов и ссылок и в старом коде, но объединение всех потоков рабочего стола в один поток устраняет саму необходимость дублирования дескрипторов и ссылок.Теперь единый поток рабочего стола не никому не принадлежит, а в систему был добавлен механизм, по необходимости выдающий временный доступ к дескрипторам и ссылкам объектов рабочего стола. Кроме того, Яннис также добавил в код специальную проверку создания окна рабочего стола, предназначенную для контроля за тем, чтобы все выделения памяти для нового она рабочего стола происходили из новой кучи рабочего стола, тем самым устранив возможное повреждение памяти, о котором говорилось выше. Это исправление, к сожалению, пока не используется в ReactOS из-за проблемы, связанной с поддержкой курсоров в окнах рабочего стола.
Так получилось, что необходимые данные о курсорах находятся в библиотеке user32, а код, отвечающий за обработку сообщений курсора находится в библиотеке win32k. Как только Яннис разберётся в том, как получить необходимую ему информацию, в ReactOS будет устранена ещё одна крупная архитектурная проблема.
Многим было бы интересно, зачем вообще нужно было связываться с этими очистками, ведь создание и уничтожение окна рабочего стола явно далеко не самое частое и обычное явление. В качестве одного из ответов на этот вопрос можно сказать, что ошибки такого рода приводят к утечке ресурсов, и хорошей практикой при программировании является устранение таких проблем, поскольку в непредусмотренной ситуации они могут привести к большим сложностям при отладке. Другим ответом может быть тот факт, что некоторые приложения в целях обеспечения безопасности используют несколько объектов "Window Station", и, следовательно, окон рабочего стола.
Для любопытных можно пояснить, что оболочка, которую пользователи видят в Windows, прежде всего состоит из сеансов, содержащих объекты "Window Station", в которых содержатся рабочие столы. Например, каждое соединение службы терминалов имеет свою собственную сессию, а в NT6 службы Windows выполняются в другом объекте "Window Station", чем рабочий стол пользователя. Это может оказаться полезным при создании изолированной от основной системы среды обработки данных (т.н. песочницы), и применяться в программах, которым необходимо защитить процесс от вмешательства простого пользователя и наоборот. Таким образом, создание и уничтожение окон рабочего стола является не такой уж и редкостью, как можно было бы предположить.PSEH
Портируемая библиотека структурной обработки исключений (Portable Structured Exception Handling, PSEH) изначально была написана KJK::Hyperion, бывшим разработчиком проекта ReactOS, и предназначена для обеспечения структурной обработки исключений в компиляторах, созданных не в Microsoft. Для достижения этой цели, KJK пришлось пользоваться пользоваться недокуменитрованными функциями и особенностями поведения компилятора GCC, что, несомненно, является впечатляющим достижением, однако во многом зависит от прихотей разработчиков GCC, которые легко могут поменять в своём коде что-либо из того, что необходимо PSEH.
Тимо Кройцер (Timo Kreuzer) начал работу над новой версией PSEH, о завершении которой он объявил в прошлом месяце. Если вкратце, Тимо сделал различные изменения для обеспечения лучшей оптимизации и снижения сложности поддержки SEH. Прежде всего, пожалуй стоит объяснить, что собой представляют SEH и PSEH, чтобы облегчить понимание сути следующего абзаца. Обратите внимание на то, что последующий текст предполагает знания о том, какую роль имеют стеки в функциях программы, и общее понимание того, для чего необходимы исключения.
SEH - это функция уровня компилятора, поддерживаемая Microsoft, это означает, что её поддержка должна быть или встроена в компилятор, или же её реализация должна быть написана и размещена поверх него. Компилятор C++, созданный Microsoft, разумеется уже содержит в себе её поддержку, в то время как в GCC и Clang такая поддержка отсутствует. Разработка встроенной поддержки SEH в компиляторе представляет собой далеко не самую тривиальную работу, альтернативой этому является использование PSEH - довольно интересного хака, располагающегося поверх GCC. Поддержка SEH в коде программы обеспечивается посредством расширений языка программирования, в частности при использовании ключевых слов __try, __except, и __finally.
Те, кто знаком с обработкой исключений в C++, заметят отсутствие ключевого слова catch и добавление блока finally. Здесь ключевое слово __except выступает в роли эквивалента catch. Во многих аспектах это значительно усложняет функциональность __except, что, в свою очередь, может усложнить поддержку SEH. Ключевое слово __except позволяет программисту задать фильтр исключений, ответственный за принятие решения касаемо того, должен ли быть выполнен блок кода поддержки исключений, обёрнутый __except, или нет. В обычном C++, ключевое слово catch определяет единственное исключение, которое должно быть обработано соответствующим ему блоком.
В SEH, фильтр исключения может представлять собой свою собственную функцию. Дополнительным преимуществом является то, что любая функция, ука...URL: http://www.reactos.org/ru/newsletter_93.html
Новость: http://www.opennet.me/opennews/art.shtml?num=35130
люди, чтобы этот проект ReactOS развивался быстрее нужно помочь найти спонсоров. не нужно собирать с простых программистов работяг, а может у кого есть знакомый владелец крупной фирмы или губернатор, такой человек, для которого 1000 баксов, как для нас 100 руб. вот таких людей нужно попросить, скинуться хоть чуть-чуть
Лучше пусть богатеи на Пиратскую Партию России скинуться чем на это ОС. Там ни людей, ни денег.
ППР? Нет, спасибо, уж лучше уж ReactOS. Вы их сами видели? Читали их бред? Сама идея без этой партии вполне может существовать, но реализации - это нечто.
А смысл? Политики/олигархи держат денюжку в западных банках, поэтому эта партия нежиснеспособна.
> чтобы этот проект ReactOS развивался быстрее нужно помочь найти спонсоров. <Тогда быстро Microsoft проснется.
То есть? Вайн же живёт себе, МС ничего не делает против него, совсем мелочи некоторые только, которые только Винду затрагивают.
И что? Это все ничтожные доли рынка, меньшее из меньшинства. То, что не заботит их совершенно.
Майкрософт могла бы уже сама давно финансировать или купить и продолжить развивать реактось.
Зачем им это? Если им нужна будет винда с открытыми исходниками под пермиссивной лицензией, они винду и откроют.
Просили ведь уже миллион евро у Медведева. Он обещал подумать, к следующему президентству даст миллион, а может и два.
А спонсоры пусть лучше вкладывают деньги в нормальные проекты, а не в эту яму с недовендой.
+
++
> ReactOS развивался быстрееРебятам надо последовать примеру Томми. Даже машина смогла осознать свою никчемность, я верю в них.
> люди, чтобы этот проект ReactOS развивался быстрее нужно помочь найти спонсоров.А что он может предложить спонсорам? Все кто хотел виндус - давно его уже купили и поюзали. Зачем им виндус отстающий в развитии от оригинала и испытывающий проблемы совместимости?
Ты так говоришь, как будто оригинал не имеет проблемы совместимости самого с собой.
можно подарить проекту лопату
Чтобы он ей урабатывал тупых комментаторов?
WOOS
я листерману писал как-то на офсайт, он не откликнулся.
проект ReactOS не нужен /thread
Зачем? На дворе последний отрезок 2012-го, нормальные люди юзают семерку и кое-кто уже готов переходить/перешел на восьмерку. А чем занимаются эти люди застрявшие в эпохе XP? Не, как энтузиастам респект конечно, главное, чтоб с душей дело велось :) Но говорить о практической стороне (спонсорах и т.д.) смешно.
Нормальные люди в моём окружении пользуются линуксом.
У нас либо окружения несколько не те, либо понятие нормальности иное.
Но нормального лично я в пользовании огороженной системой не вижу.
1С и всякий прочий софт который нужен в госконторах. Зачастую на компьютере нужно 2-3 программы для работы сотрудников и XP хватает.
Нужно.
вот с 1с скоро проблем меньше станет
http://v8.1c.ru/overview/Term_000000666.htm
Зачем они это пилят?
Чтоб утереть нос фридосу.
Чтобы платный офис запускать бесплатно.
Чтобы продолжить традиции DosBox-са очевидно же. Еще пара итераций винды и об играх 90-х, начала 2000 можно будет забыть. Вот народ и пишет запускалку...
Кто будет ставить отдельную ОС для запуска древних игр?
> Зачем они это пилят?...спрашивали всякие обалдуи в своё время про Linux.
>> Зачем они это пилят?
> ...спрашивали всякие обалдуи в своё время про Linux.Кто конкретно про линь спрашивал? Ты ж поди тогда еще под стол пешком ходил если вообще на свете был.
Для многих и сейчас необходимость существования Линукс сомнительна.
Для большинства школьников, - да.
>Для большинства школьников, - да.Для большинства пользователей, которые вообще не разбираются в лицензиях в принципе, и в идеях СПО в частности.
Для совершенствования навыков программирования по винду - FireBall об этом не раз заявлял
Вот доведут интерфейс до уровня "Семёрки" и можно будет честно определить проект, как state of art.
> Вот доведут интерфейс до уровня "Семёрки"...лет через 20. Так, учтя что проекту более десятилетия а до сих пор пилят совсем базовые вещи типа окна десктопа и старта служб.
> ...лет через 20. Так, учтя что проекту более десятилетия а до сихА вы оптимист, уважаю. Через 20 лет у них может получится ХР без драйверов.
> без драйверов.Да, кстати, верно подмечено: они так упирали на существующие драйвера, а в результате они там и не работают. По поводу чего тот же пингвин поддерживает намного больше железа чем эта псевдо-винда.
Какой XP?
Там хорошо если 2000 получится
Ну и гут. 2000 была очень даже неплоха для своего времени. А так получим 2k для ARM
>> ...лет через 20. Так, учтя что проекту более десятилетия а до сих
> А вы оптимист, уважаю. Через 20 лет у них может получится ХР
> без драйверов.
> Да, кстати, верно подмечено: они так упирали на существующие драйвера, а в результате они там и не работают. По поводу чего тот же пингвин поддерживает намного больше железа чем эта псевдо-винда.
> Какой XP?Там хорошо если 2000 получится
Семен Семеныч?
> А вы оптимист, уважаю. Через 20 лет у них может получится ХР
> без драйверов.Драйверов уже куча. Ибо полная совместимость.
>Вот доведут интерфейс до уровня "Семёрки" и можно будет честно определить проект, как state of art.А вот глупостей нам не надо, совсем, сейчас семерка, завтра восьмерка. Вполне достаточно что бы запускался и работал софт которой семерка не переваривает. Сталкивались уже, тогда повезло, софтина завелась на freedos. А вообще это здорово что такой проект живет, этакое "IT эсперанто".
>А вот глупостей нам не надо, совсем, сейчас семерка, завтра восьмеркаОни абсолютно разные, если первая при всех идеологических недостатках действительно весьма удобственна, то вторая - явный крап и по всей видимости ждет её судьба "Висты".
>>А вот глупостей нам не надо, совсем, сейчас семерка, завтра восьмерка
> Они абсолютно разные, если первая при всех идеологических недостатках действительно весьма
> удобственна, то вторая - явный крап и по всей видимости ждет
> её судьба "Висты".нифига не удобственна, хуже даже чем макось
>хуже дажеДаже? И что же тогда лучше макоси по-твоему?
DOS же
> Даже? И что же тогда лучше макоси по-твоему?Тайловые менеджеры очень удобны для машинок без мыши, KDE лучше, чем Mac OSX работает с виртуальными десктопами. Терминалы у Linux, как правило, удобнее, чем в Mac OSX.
>нацеленной на обеспечение совместимости
> Microsoft Windows семейства NT (XP/2003).Еще не вышло, а уже устарело.
Операционка, которая всегда будет работать, как запуск виндовых программ в Вайне и даже хуже, в связи с вылетом в синие экраны (Вайн хоть не вылетает) и куда более сложными задачами?
> даже хуже, в связи с вылетом в синие экраныВ этом самый смак. Увидеть смерть оставаясь живым, почувствовать запах виндовс без установки.
Уже лет 5 не видел синих экранов на Винде, хотя постоянно её юзаю. Семка так совсем стабильна, ХР раз в полгода переустанавливать приходится.
> Семка так совсем стабильна,Я заметил, когда при попытке обновить драйвера видео (ну, апдейтер предложил) - все повисло на"№%!
>> Семка так совсем стабильна,
> Я заметил, когда при попытке обновить драйвера видео (ну, апдейтер предложил) -
> все повисло на"№%!Не замечал. А вот ушарашинг всех драйверов после сек-патча в ядре 2.6 пришлось править руками в исходниках. Стэйбл такой стэйбл.
Всегда обновляю, всегда всё гладко проходит. Пару раз слетала Аэро, то есть тема становилась непрозрачной и появлялся тиринг.
Сразу видно админа локалхоста.
Я даже локалхост не админю, а просто ОС юзаю.
это мы слышим каждый раз, как выходить новая версия винды :))))
> Уже лет 5 не видел синих экранов на Винде, хотя постоянно её
> юзаю. Семка так совсем стабильна, ХР раз в полгода переустанавливать приходится.Помню такое и про 98 и про 95 и про 3.11 копро^w вендо-фаги говорили.
Времена меняются, а уровень интеллекта вантузятников выше не становится
>(Вайн хоть не вылетает)Если бы. Игрушки если гонять то... все виснет часто
Я верю в этих ребят! У людей есть цель, есть мечта и время чтобы её достичь. Я рад за них. Это очень хорошо, полезно и вкусно!
Всё бы хорошо, но вот на счёт достижения никто не уверен.
это бесполезная трата своего личного времени и прожигания жизни без пользы для кого-либо. Даже для себя лично на этом поприще не получишь профита в виде опыта разработки. Их цель гогно и они её никогда не достигнут.Это личное дело каждого как и на что ему прожигать жизнь, но не нужно строить иллюзий на счёт полезности этого мероприятия.
Сдается мне, что альтернатива этому - прожигание всего свободного времени в WoW, танчиках или вконтактике.
> Сдается мне, что альтернатива этому - прожигание всего свободного времени в WoW,
> танчиках или вконтактике.одна из альтернатив.
пока я бы не стал утверждать, что мир делится на две категории по использованию свободного времени: пилящих реактос и играющих в танчики.
> Это очень хорошо, полезно и вкусно!Как если бы в наше время кто-то захотел с нуля разработать паровой двигатель. Причем пройти весь путь от пароатмосферного насоса до двигателя Уатта. Конечно вы сможете его топить вашими любимыми дровами, но на свою сраную калину вы его не установите. А готов он будет в эпоху автомобилей на солнечных батареях. Но зато вы сможете вдоволь понастальгировать, глядя на густой черный дым из трубы.
Нет, не так. Представьте, что кто-то хочет разработать новый двигатель внутреннего сгорания, для этого ему надо повторить все открытия чтоб получить те которые работаю сейчас, а потом и превзойти.Так вот он начинает с нуля, и вдруг! оказывается, что есть уже ребята которые это дело начали, и проект общий и под GPL. и что можно вместе пилить уже далеко не с нуля а с 90%ов
при этом на свои x86 машины можете установить уже сейчас, а остаются только 64битные и армы.
Вот примерно так.
> Нет, не так. Представьте, что кто-то хочет разработать новый двигатель внутреннего сгорания,то есть взять ДВС 10-летней давности, разобрать его и на этой основе самому из куска металлолома болгаркой запилить поршня, дрелью высверлить цилиндры, молотком и плоскогубцами выгнуть трубу для коленвала...
> Вот примерно так.
У reactos кроме всего прочего есть одно очень важное преимущество перед gnu/linux. Он один, а gnu/linuxов как собак нерезанных. И исправить это даже сложнее чем reactos допилить
Из этого вытекает, что БСДюха для десктопа намного пригоднее Линя.
не из этого, но
по аналогии вытекает, что BSD для стабильных и целостных серверов намного пригоднее Линя
И это, кстати, правда. Свалил на FreeBSD и не жалею, потому что нормального source-based линукса как не было так и нет, а то что ненормальное вдобавок сваливает на systemd. Не нужно такого счастья.
"Он один, а gnu/linuxов как собак нерезанных"
Больше смахивает на анекдот про неуловимого Джо =)
Ну дык и Анонимов на опеннете как собак нерезаных, а я - один. Неоспоримое преимущество )
Только где тут логика?
ubuntu - единая ОС, процент велик
>ubuntu - единая ОС, процент великда, ещё тот вЕлик...
Венда №2.
> Он один, а gnu/linuxов как собак нерезанных.Это прекрасно для всех, кроме тех имбецилов, коотрых пугает возможность выбора.
> И исправить это даже сложнее чем reactos допилить
Это точно - таких имбецилов не просто сложно исправить, а даже невозможно
А тебя, имбецила, только бан исправит. И то ненадолго.
операционка без будущего и настоящего
в общем шлак и пустая трата времени
- Малкович, Малкович, Малкович, Малкович, Малкович...
Патенты - те кто в теме сразу поймут о чем я.
Те кто сразу поймут о чём ты - патенты.
Пусть лучше пилят wine, а не изобретают велосипед
не ссы, wine они тоже пилят.
Они его не пилят, а лишь сотрудничают и делятся наработками с разрабами вайна.
Сразу видно в треде все виндузятники опеннета собрались, чтоб постебять реактос =)
1 Виндовс - необходим (печально или нет, но факт)
2 тогда пусть виндовс лучше будет открытым
Угу, а поддержка драйверов от NT/XP позволит на этой системе работать со всякими вундервафлями для производства/полиграфии старыми, но работоспособными и непривередливыми.
> Угу, а поддержка драйверов от NT/XP позволит на этой системе работать со
> всякими вундервафлями для производства/полиграфии старыми, но работоспособными и непривередливыми.лет через 20, как много раз подмечено выше :)
> Сразу видно в треде все виндузятники опеннета собрались, чтоб постебять реактос =)а как невендузятнику нужно относиться к проекту, который копирует окна 10-летней давности?
думаю, что для не-юзеров окон этот проект и так не имеет никакой практической пользы, а для юзеров окон - лучше бы сразу писали Окна9.
Этот проект можно рассматривать в лучшем случае только как искусство подражания, причём чему? - не уверен, что окна любой версии можно рассматривать как достойный объект для подражания.
На сантиметр в год...