так как опять-таки привязана к конкретной платформе (потрудитесь объяснить, почему это «идиотизм»?)
Ну даже если не принимать во внимание тот факт что существуют сторонние реализации COM рантайма под не-Windows платформы, человек должен совершенно ничего не понимать в COM, чтобы говорить, что технология как таковая привязана к конкретной платформе. Присмотритесь к эппловскому CoreFoundation или к мозиловскому nsISupports. Ничего не напоминает? Мне все еще необходимо объяcнять «почему это идиотизм»?
Видимо вы никогда не пытались объектно ориентированную архитектуру экспортировать в ком :)
Вы заблуждаетесь в двух вещах: в том, что считаете, что понимаете что такое «объектно-ориентированная архитектура» и в том, что считаете, догадываетесь что я пытался и чего не пытался делать. «Наследование» интерфейсов — неудачный термин (и деталь реализации в некоторых языках), интерфейсы РЕАЛИЗУЮТСЯ классами. Причем (сюрприз!!!), далеко не только в COM. Еще для меня загадка, с каких пор множественное наследование стало стандартной фичей ООП языков, и с каких пор COM перестал поддерживать реализацию множества интерфейсов (Вы же это имеете в виду?). Полиморфизм — э-э-э Вы точно понимаете, что такое полиморфизм? Что же до перегрузки — действительно перегрузка не поддерживается напрямую (потому что ABI остается одним и тем же и для языков, которые поддерживают перегрузку и для тех, которые не поддерживают — да-да, перегрузка — тоже не такая уж «стандартная фича ООП языков»), с другой стороны поддерживается аннотация [overload] для языков, которые перегрузку поддерживают и хотят спроецировать данный метод под перегруженным именем.
… Единственная претензия к Майкрософту, что они любят проталкивать свои собственные костыли под видом «стандарта»...
Каждый раз когда я вижу подобные утверждения мне хочется научиться бить людей по TCP/IP. Вы, похоже, сами не осознаете, но данным абзацем Вы ПОЛНОСТЬЮ подтвердили мое утверждение о том, что у Вас ABM (пусть даже и в начальной стадии).
На всякий случай поправлюсь, чтоб не придирались к словам.
… это уже COM объект...
Это конечно же класс, а не объект. Объект можно инстанцировать («активировать» в терминах COM) любым понравившимся способом: хоть на стеке, хоть в куче, хоть в data секции и управлять его временем жизни хоть вручную, хоть отдельным самопальным счетчиком ссылок, хоть настоящим сборщиком мусора.
COM — это прежде всего QueryInterface + жесткий ABI, а весь COM рантайм с маршалерами, апартментами, моникерами, регистрацией/активацией — это просто хелперы. Они призваны УПРОЩАТЬ жизнь, если эта функциональность нужна, а не усложнять требованием обязательно реализовывать все известные человечеству интерфейсы. Простейший пример: «классический» COM, Windows Runtime и registration-free COM имеет три совершенно разных способа активации компонентов, но при это все три между собой бинарно совместмы после того, как активация произведена.
Другими словами, Вы сами не знаете что Вам не нравится — лучше уж «тонна других способов» (aka «зоопарк велосипедов»), чем одна стандартная, невероятная гибкая, крайне логичная (если не залазить в дебри, но подобные дебри остались бы дебрями независимо от того, на какой компонентной модели они построены), оттестированная на миллионах сценариев использования и на сотнях миллиардов пользователей (кумулятивно за последние 20 лет). Ах, да, COM кроме масштабирования «вверх» (всякие связывания-с-моникерами-на-удаленной-машине-используя-кастомные-маршалеры-и-кастомные-транстпортные-протоколы), очень хорошо масштабируется «вниз» (graceful degradation): можно сделать
class MyObject: public IUnknown {
//...
}
с пустой реализацией AddRef и Release и это уже COM объект, который можно передавать куда угодно. Никакой регистрации. GUID — это просто 128-битное случайное число, которое гарантированно глобально-уникально. Все. Что Вам не нравится в глобально уникальных случайных идентификаторах? Синтаксис и конвенции — это где? В IDL? Расскажите больше. «Плохо соотетствует и ложится на принципы ООП» — это глупость. А «полностью платформо-зависимая» — так и вообще идиотизм.
А вообще, немного почитав Ваши комментарии/посты, «что-то» мне подсказывает, что дело вовсе даже и не в технологии (у меня есть ОГРОМНЫЕ подозрения, что Вы в ней даже и не пытались разбираться) — дело в производителе. Все, конечно, не так запущено как в случае amarao, но тенденция тоже отлично просматривается.
Хм, вполне осознаю, что «встречное предложение» потребует неоправданно много усилий, так что давайте хотя бы так: Вы СЛОВАМИ обрисовываете план «атаки» и попутно рассказываете, почему дыра такой величины НИ РАЗУ в истории не использовалась злоумышленниками (они, лентяи, все больше на соц инженерию нажимают)?
И, пожалуйста, попробуйте не опозориться. В очередной раз.
Давайте по порядку.
«ТОЛЬКО в IE» — читаем статью: «Встраивание в приложение на Windows.Forms».
«ТОЛЬКО в 32 битах» —
«ТОЛЬКО на Windows» — здесь, как я уже сказал, с некоторыми натяжками можно согласиться. Во первых этих Windows — было три штуки разных Windows NT, Windows 9x и Windows CE (Embedded Compact). На всех трех работал ActiveX — сам по себе он от платформы не зависит. А вот и пример вполне себе ActiveX под «Debian/Hurd с ARM». Вот еще один
Что же до Вашего второго абзаца, у меня есть встречное предложение. Вы создаете простенький ActiveX и даете мне ссылку. Я по ней кликаю, далее происходит следующее: Ваша «программа» запускается без моего согласия, Вы «получаете 100% доступ ко всем моим документам, настройкам, включая пароли куки и прочие приватные вещи», думаю похищения хабракуки и комментария от моего имени «pwned, Windows suxx» будет более чем достаточно, чтоб подвердить Вашу позицию (только, пожалуйста, без мошенничества вроде неизвестной XSS на хабре или типа того — нужно провести все исключительно через ActiveX, устанавливаемый без моего согласия).
Ну раз уж поперли довольно глупые штампы, давайте и я: «А Вы разве не знали, что Windows это всего лишь оболочка над DOS и есть, следовательно любое программирование под Windows это и есть программирование под DOS».
Красноглазые иксперты такие искперты.
В первом же абзаце из трех утверждений — 2 фактических ошибки («ТОЛЬКО в IE и ТОЛЬКО в 32-битах») и одно утверждение верно с большими натяжками («ТОЛЬКО на Windows»). Во втором абзаце неверно вообще все.
Почему бы Вам не перестать позориться и выскакивать с заявлениями о Windows? И ведь это не первый раз, когда Вам демонстрируют, что Ваши знания о Windows… как бы это помягче сказать… далеко не исчерпывающи. Либо Вы в принципе неспособны воспринимать информацию и рефлексировать, либо Вы неспособны воспринимать информацию и рефлексировать только если дело касается Microsoft (а также Apple, Oracle и пр.).
Нет, я серьезно, либо уже перестаньте влазить в посты, посвященные Windows либо таки сделайте усилие и РАЗБЕРИТЕСЬ в вопросах, по которым у Вас уже есть Мнение. Спасибо-пожалуйста-у-меня-все.
Windows Runtime — даже не само новое API, а новый подход к API от Microsoft — это как раз таки COM (с небольшой подтяжкой морщин типа неймспейсов, отсутствия множественного наследования и пр..).
Что до ATL — вполне нормальная библиотека (на чем же еще COM писать?). Ее связь с WRL (новой темплейтной библиотекой для работы с COM/WinRT для тех, кто не хочет использовать C++/CX) значительно менее очевидна, чем между парой COM/WinRT, но все равно чувствуется значительное влияние ATL на WRL.
Ну как так «о существовании аналогов, мне ничего неизвестно»? Это же несерьезно. Уже более пяти лет половина примернов в WDK — на WDF, а в WDK8 — так вообще WDM тостера больше нет. То есть вообще: все новые разработчики драйверов будут начинать исключительно с WDF. При этом WDF избавляет от гораздо большего количества головной боли, чем «отсутствие InterlockedXxx операций в WinNT до версии 4.0».
Что же до UniATA — я так и не понял, на фига здесь уже в который раз появляется статья о нем. Ну был в XP «Generic ATA controller», на который рекомендовалось сменить «специфичный» драйвер при смене материнской платы. В Vista+ даже этого делать не нужно. Чего конкретно дает UniATA?
Ну можно и с другой стороны зайти, WDK (Windows Driver Kit — вполне себе «C/C++ кодинг») ставится только в VS начиная с Professional. Более того, WDK8 не включает в себя тулсет (как все DDK/WDK до него) и может быть использован ТОЛЬКО после интеграции в Visual Studio.
Еще в VS express нет Intellitrace, Concurrency Visualizer и прочих «плюшек» C/C++ кодера. На VS express никогда не было MFC (в пререлизных версиях VS2012 Express не было десктопных приложений в принципе — так что не могу сказать изменилось ли здесь чего нибудь) — предпочитаете писать C++ гуй на «чистом WinAPI» (и да, я не люблю Qt и все windowless фреймворки — вот такие у меня личные предпочтения)?
VS express — отличная штука для обучения, но для профессиональной работы лучше все таки брать профессиональные редакции.
Хм, это какой то баг. В Линуксе у всех процессов свои таблицы дескрипторов, соответственно даже если кто «хапнет» дескриптор с тем же номером — он будет «показывать» на совершенно другой объект. Для передачи дескриптора в другой процесс в Линуксе есть только sendmsg и fork (сотоварищи). И если sendmsg случайно сделать довольно сложно, то вот с форком все несколько запутаннее — здесь дочерний процесс по умолчанию должен позакрывать все ненужные дескрипторы «вручную» и здесь уж легко пропустить чего нибудь.
Процесс — это аппаратно изолированный периметр доверия (trust boundary). Как и в случае аутентикода — наличие процесса вообще не говорит о наличии у него КАКОГО ЛИБО доступа, соответственно принципу минимальных привилегий противоречить не может, ибо совершенно ортогонально. Вот Google Chrome использует brokered доступ к ресурсам: рендер процессы не имеют вообще никакого доступа к системе (либо через seccomp либо через удаление всех SID-ов из токена дочернего процесса), а доступ к файлам проверяется в брокере, который и может открыть файл и передать хэндл открытого файла в дочерний процесс (sendmsg/recvmsg либо DuplicateHandle). В Windows8 в дополнение к restricted token-ам и job object-ам появились AppContainer-ы, которые тоже могут работать с ресурсами исключительно при помощи брокеров.
DeleteFile — это helper функция. Она ОТКРЫВАЕТ файл c FILE_FLAG_DELETE_ON_CLOSE (что в свою очередь приводит к вызову ZwSetInformationFile с классом FileDispositionInformation, что в свою очередь ведет к посылке IRP_MJ_SET_INFORMATION устройству-файловой системе и пр.). Более того, документация и к DeleteFile и к FILE_DISPOSITION_INFORMATION недвусмысленно говорят, что нужны DELETE права, чтобы это сработало.
поэтому в каком-то смысле является ссылкой на файл.
Но в качестве мандатной ссылки его использовать нельзя, потому что знанием процессом пути еще не гарантирует что у процесса есть права для работы с этим файлом.
Спасибо за прояснение — по контексту Вы говорили о ссылках как о мандатных ссылках, поэтому я понял «ссылку на важный системный файл» именно как мандатную ссылку (которой она, как Вы отметили, не является).
Для файловых путей это свойство не выполняется в принципе – достаточно написать в коде “C:\Windows\system32\drivers\etc\hosts” – и вот, у нас уже есть ссылка на важный системный файл.
Тоже нуждается в более глубоком пояснении. После того, как Вы напишете в коде “C:\Windows\system32\drivers\etc\hosts” у вас будет строка “C:\Windows\system32\drivers\etc\hosts” и ничего кроме строки “C:\Windows\system32\drivers\etc\hosts”. Для того, чтобы у Вас появилась «ссылка на важный системный файл» Вам нужно строку “C:\Windows\system32\drivers\etc\hosts” открыть. То есть выполнить CreateFile/OpenFile/etc со строкой “C:\Windows\system32\drivers\etc\hosts” в качестве одного из аргументов. В момент открытия файла, идентифицируемого строкой “C:\Windows\system32\drivers\etc\hosts” будут проверены все необходимые права и привилегии и будет либо возвращена вожделенная «ссылка на важный системный файл» либо будет отказано в доступе (по той или иной причине).
Authenticode assumes that the software developers of the world can be lumped into 2 categories: those whom you trust with your life, and those whom you wouldn't trust for a single minute behind your back.
Вот после того, как натыкаешься на подобные заявления (и да, это не первый подобный случай) — книгу можно закрывать т.к. доверие полностью подорвано. Ни одно упрощение в мире не стоит того, чтобы ПОЛНОСТЬЮ менять смысл технологии (для того, чтобы затем над ней «победно» посмеяться).
Нет, ну серьезно, authenticode — этот тот редкий случай, когда Microsoft выбрал удачное название. Это технология обеспечивающая аутентичность кода. Технология не говорит о том, можно ли полностью доверять или не доверять вообще — повторюсь, ВСЕ, что она делает это подтверждает что данный код пришел от данного издателя. К примеру, Software Restriction Policies и AppLocker используют (в числе прочего) подписи кода для настройки политик для этого самого кода.
Для дескрипторов это свойство неверно в рамках одного процесса: зная принцип формирования кодов дескрипторов можно за приемлемое время сформировать правильный дескриптор.
Не могли бы Вы прояснить данный момент. Все что выполняется в одном адресном пространстве по определению находится на одном уровне доверия (за небольшими курьезными исключениями, да есть еще SIP — но там «адресные пространства» все равно изолированы, пусть и не аппаратно). То есть «агентом» в данном случае и является процесс и для него выполняются все свойства модели:
Objects can interact only by sending messages on references.
A reference can be obtained by:
1.initial conditions: In the initial state of the computational world being described, object A may already have a reference to object B.
2.parenthood: If A creates B, at that moment A obtains the only reference to the newly created B.
3.endowment: If A creates B, B is born with that subset of A's references with which A chose to endow it.
4.introduction: If A has references to both B and C, A can send to B a message containing a reference to C. B can retain that reference for subsequent use.
Да, для работы с ЛЮБЫМ объектом ядра его сначала нужно открыть и получить handle. И да, хендлы могут появляться всеми четырьмя способами и только ими («открытие» объекта по имени можно считать посылкой агентом-ядром сообщения агенту-процессу после выполнения всех необходимых проверок).
Здесь все-таки не про MAC, важность которого для «каждодневной» работы очень сильно переоценена (Bell-LaPadula model призвана обеспечивать конфиденциальность, а не целостность), здесь про «обмен» правами доступа (Mach ports, NT handles и прочее). Принцип настолько очевидный, что непонятно, почему кто-то его все еще не использует.
А bcdboot + dism не подошел? Официальный гайд от MS. Применять (dism /apply-image) нужно sources\install.wim
Делать несколько разделов (System и Recovery) необязательно.
Бла-бла-бла-прощелкали-бла-бла-бла-прощелкали-бла-бла-бла-эппл-рулит. Зачем это здесь?
Не понимаю смысла такой «аналитики» — присутствует не только куча фактических ошибок, но полно даже ТЕРМИНОЛОГИЧЕСКИХ (то есть как бы понятно, что человек слабо понимает чего пытается «анализировать»).
Сенсоры — это устройства, собирающие информацию из окружающией среды. Русский перевод: датчики. Cенсор дальности (proximity), датчики положения (гироскоп), датчики освещения, магнетометры и даже GPS. Теперь, вооруженные этим знанием, попробуем слегка перефразировать Ваше «Metro UI – основа новой ОС, разработанный для сенсора». Получается «Metro UI – основа новой ОС, разработанный для датчика». Э-э-э-э… Чего? Управление датчиками, говорите?
А фраза «заслуживает ли идея коммунизма единого интерфейса на всех устройствах право на жизнь» выглядит чем то вроде этого.
Шаг очень смелый, ведь в прошлый раз, такой перенос «мышечной Windows» в «сенсорно-стилусную Windows», обернулся для Microsoft провалом и выход iPhone ещё раз этот провал доказал.
Вы, конечно же, забыли упомянуть, что «сенсорно-стилусный» Windows Mobile до «выхода iPhone» занимал под 50% рынка смартфонов. Более того, Андроид хоть и пытается копировать интерфейс с айФноа, но вот модель распространения — практически полностью слизана все с того же WM (да, с Platform Builder-ом распространялись «почти все» исходники от WM). И, похоже, с тем же результатом (Андроид постепенно превращается в неуправляемую кашу и ее рано или поздно придется «перезапускать»).
То есть, Metro UI – основа новой ОС, разработанный для сенсора, будет перенесён и на обычные, стационарные, несенсорные ПК.
Интересно, где же Вы нашли такую чушь? Ну ладно, отвлечемся от «датчиков», но кто Вам сказал, что Метро — только для пальцев? Вот уже больше года на всех углах твердят про «touch first — not touch only».
Лично я пользовался Windows 8 около 2 недель, и знаете, все эти недели меня одолевала мысль об очень не рационально потраченном времени. Для управления Metro UI с мышки приходиться делать много ненужных кликов, и вследствие, тратить время на управление системой, а не на работу.
Очень интересно узнать, где же там «много ненужных кликов». Я вот наоборот делаю меньше кликов и провел за Вин8 значительно больше, чем две недели. Более того, когда сажусь за Вин7 — постоянно на полном автомате пытаюсь использовать углы (а иногда еще и пытаюсь пальцами нажимать кнопки на ноуте без «датчика»).
Ну и в остальном ощущение такое, что Вам непременно хотелось ЧТО-НИБУДЬ сказать, а сказать нечего — примерно как сочинение по непрочитанному роману в школе.
Ну даже если не принимать во внимание тот факт что существуют сторонние реализации COM рантайма под не-Windows платформы, человек должен совершенно ничего не понимать в COM, чтобы говорить, что технология как таковая привязана к конкретной платформе. Присмотритесь к эппловскому CoreFoundation или к мозиловскому nsISupports. Ничего не напоминает? Мне все еще необходимо объяcнять «почему это идиотизм»?
Вы заблуждаетесь в двух вещах: в том, что считаете, что понимаете что такое «объектно-ориентированная архитектура» и в том, что считаете, догадываетесь что я пытался и чего не пытался делать. «Наследование» интерфейсов — неудачный термин (и деталь реализации в некоторых языках), интерфейсы РЕАЛИЗУЮТСЯ классами. Причем (сюрприз!!!), далеко не только в COM. Еще для меня загадка, с каких пор множественное наследование стало стандартной фичей ООП языков, и с каких пор COM перестал поддерживать реализацию множества интерфейсов (Вы же это имеете в виду?). Полиморфизм — э-э-э Вы точно понимаете, что такое полиморфизм? Что же до перегрузки — действительно перегрузка не поддерживается напрямую (потому что ABI остается одним и тем же и для языков, которые поддерживают перегрузку и для тех, которые не поддерживают — да-да, перегрузка — тоже не такая уж «стандартная фича ООП языков»), с другой стороны поддерживается аннотация [overload] для языков, которые перегрузку поддерживают и хотят спроецировать данный метод под перегруженным именем.
Каждый раз когда я вижу подобные утверждения мне хочется научиться бить людей по TCP/IP. Вы, похоже, сами не осознаете, но данным абзацем Вы ПОЛНОСТЬЮ подтвердили мое утверждение о том, что у Вас ABM (пусть даже и в начальной стадии).
Это конечно же класс, а не объект. Объект можно инстанцировать («активировать» в терминах COM) любым понравившимся способом: хоть на стеке, хоть в куче, хоть в data секции и управлять его временем жизни хоть вручную, хоть отдельным самопальным счетчиком ссылок, хоть настоящим сборщиком мусора.
COM — это прежде всего QueryInterface + жесткий ABI, а весь COM рантайм с маршалерами, апартментами, моникерами, регистрацией/активацией — это просто хелперы. Они призваны УПРОЩАТЬ жизнь, если эта функциональность нужна, а не усложнять требованием обязательно реализовывать все известные человечеству интерфейсы. Простейший пример: «классический» COM, Windows Runtime и registration-free COM имеет три совершенно разных способа активации компонентов, но при это все три между собой бинарно совместмы после того, как активация произведена.
с пустой реализацией AddRef и Release и это уже COM объект, который можно передавать куда угодно. Никакой регистрации. GUID — это просто 128-битное случайное число, которое гарантированно глобально-уникально. Все. Что Вам не нравится в глобально уникальных случайных идентификаторах? Синтаксис и конвенции — это где? В IDL? Расскажите больше. «Плохо соотетствует и ложится на принципы ООП» — это глупость. А «полностью платформо-зависимая» — так и вообще идиотизм.
А вообще, немного почитав Ваши комментарии/посты, «что-то» мне подсказывает, что дело вовсе даже и не в технологии (у меня есть ОГРОМНЫЕ подозрения, что Вы в ней даже и не пытались разбираться) — дело в производителе. Все, конечно, не так запущено как в случае amarao, но тенденция тоже отлично просматривается.
И, пожалуйста, попробуйте не опозориться. В очередной раз.
Давайте по порядку.
«ТОЛЬКО в IE» — читаем статью: «Встраивание в приложение на Windows.Forms».
«ТОЛЬКО в 32 битах» —
«ТОЛЬКО на Windows» — здесь, как я уже сказал, с некоторыми натяжками можно согласиться. Во первых этих Windows — было три штуки разных Windows NT, Windows 9x и Windows CE (Embedded Compact). На всех трех работал ActiveX — сам по себе он от платформы не зависит. А вот и пример вполне себе ActiveX под «Debian/Hurd с ARM». Вот еще один
Что же до Вашего второго абзаца, у меня есть встречное предложение. Вы создаете простенький ActiveX и даете мне ссылку. Я по ней кликаю, далее происходит следующее: Ваша «программа» запускается без моего согласия, Вы «получаете 100% доступ ко всем моим документам, настройкам, включая пароли куки и прочие приватные вещи», думаю похищения хабракуки и комментария от моего имени «pwned, Windows suxx» будет более чем достаточно, чтоб подвердить Вашу позицию (только, пожалуйста, без мошенничества вроде неизвестной XSS на хабре или типа того — нужно провести все исключительно через ActiveX, устанавливаемый без моего согласия).
В первом же абзаце из трех утверждений — 2 фактических ошибки («ТОЛЬКО в IE и ТОЛЬКО в 32-битах») и одно утверждение верно с большими натяжками («ТОЛЬКО на Windows»). Во втором абзаце неверно вообще все.
Почему бы Вам не перестать позориться и выскакивать с заявлениями о Windows? И ведь это не первый раз, когда Вам демонстрируют, что Ваши знания о Windows… как бы это помягче сказать… далеко не исчерпывающи. Либо Вы в принципе неспособны воспринимать информацию и рефлексировать, либо Вы неспособны воспринимать информацию и рефлексировать только если дело касается Microsoft (а также Apple, Oracle и пр.).
Нет, я серьезно, либо уже перестаньте влазить в посты, посвященные Windows либо таки сделайте усилие и РАЗБЕРИТЕСЬ в вопросах, по которым у Вас уже есть Мнение. Спасибо-пожалуйста-у-меня-все.
Что до ATL — вполне нормальная библиотека (на чем же еще COM писать?). Ее связь с WRL (новой темплейтной библиотекой для работы с COM/WinRT для тех, кто не хочет использовать C++/CX) значительно менее очевидна, чем между парой COM/WinRT, но все равно чувствуется значительное влияние ATL на WRL.
Что же до UniATA — я так и не понял, на фига здесь уже в который раз появляется статья о нем. Ну был в XP «Generic ATA controller», на который рекомендовалось сменить «специфичный» драйвер при смене материнской платы. В Vista+ даже этого делать не нужно. Чего конкретно дает UniATA?
Еще в VS express нет Intellitrace, Concurrency Visualizer и прочих «плюшек» C/C++ кодера. На VS express никогда не было MFC (в пререлизных версиях VS2012 Express не было десктопных приложений в принципе — так что не могу сказать изменилось ли здесь чего нибудь) — предпочитаете писать C++ гуй на «чистом WinAPI» (и да, я не люблю Qt и все windowless фреймворки — вот такие у меня личные предпочтения)?
VS express — отличная штука для обучения, но для профессиональной работы лучше все таки брать профессиональные редакции.
Спасибо за прояснение — по контексту Вы говорили о ссылках как о мандатных ссылках, поэтому я понял «ссылку на важный системный файл» именно как мандатную ссылку (которой она, как Вы отметили, не является).
Тоже нуждается в более глубоком пояснении. После того, как Вы напишете в коде “C:\Windows\system32\drivers\etc\hosts” у вас будет строка “C:\Windows\system32\drivers\etc\hosts” и ничего кроме строки “C:\Windows\system32\drivers\etc\hosts”. Для того, чтобы у Вас появилась «ссылка на важный системный файл» Вам нужно строку “C:\Windows\system32\drivers\etc\hosts” открыть. То есть выполнить CreateFile/OpenFile/etc со строкой “C:\Windows\system32\drivers\etc\hosts” в качестве одного из аргументов. В момент открытия файла, идентифицируемого строкой “C:\Windows\system32\drivers\etc\hosts” будут проверены все необходимые права и привилегии и будет либо возвращена вожделенная «ссылка на важный системный файл» либо будет отказано в доступе (по той или иной причине).
Вот после того, как натыкаешься на подобные заявления (и да, это не первый подобный случай) — книгу можно закрывать т.к. доверие полностью подорвано. Ни одно упрощение в мире не стоит того, чтобы ПОЛНОСТЬЮ менять смысл технологии (для того, чтобы затем над ней «победно» посмеяться).
Нет, ну серьезно, authenticode — этот тот редкий случай, когда Microsoft выбрал удачное название. Это технология обеспечивающая аутентичность кода. Технология не говорит о том, можно ли полностью доверять или не доверять вообще — повторюсь, ВСЕ, что она делает это подтверждает что данный код пришел от данного издателя. К примеру, Software Restriction Policies и AppLocker используют (в числе прочего) подписи кода для настройки политик для этого самого кода.
Не могли бы Вы прояснить данный момент. Все что выполняется в одном адресном пространстве по определению находится на одном уровне доверия (за небольшими курьезными исключениями, да есть еще SIP — но там «адресные пространства» все равно изолированы, пусть и не аппаратно). То есть «агентом» в данном случае и является процесс и для него выполняются все свойства модели:
Objects can interact only by sending messages on references.
A reference can be obtained by:
1.initial conditions: In the initial state of the computational world being described, object A may already have a reference to object B.
2.parenthood: If A creates B, at that moment A obtains the only reference to the newly created B.
3.endowment: If A creates B, B is born with that subset of A's references with which A chose to endow it.
4.introduction: If A has references to both B and C, A can send to B a message containing a reference to C. B can retain that reference for subsequent use.
Да, для работы с ЛЮБЫМ объектом ядра его сначала нужно открыть и получить handle. И да, хендлы могут появляться всеми четырьмя способами и только ими («открытие» объекта по имени можно считать посылкой агентом-ядром сообщения агенту-процессу после выполнения всех необходимых проверок).
Делать несколько разделов (System и Recovery) необязательно.
Не понимаю смысла такой «аналитики» — присутствует не только куча фактических ошибок, но полно даже ТЕРМИНОЛОГИЧЕСКИХ (то есть как бы понятно, что человек слабо понимает чего пытается «анализировать»).
Сенсоры — это устройства, собирающие информацию из окружающией среды. Русский перевод: датчики. Cенсор дальности (proximity), датчики положения (гироскоп), датчики освещения, магнетометры и даже GPS. Теперь, вооруженные этим знанием, попробуем слегка перефразировать Ваше «Metro UI – основа новой ОС, разработанный для сенсора». Получается «Metro UI – основа новой ОС, разработанный для датчика». Э-э-э-э… Чего? Управление датчиками, говорите?
А фраза «заслуживает ли идея коммунизма единого интерфейса на всех устройствах право на жизнь» выглядит чем то вроде этого.
Вы, конечно же, забыли упомянуть, что «сенсорно-стилусный» Windows Mobile до «выхода iPhone» занимал под 50% рынка смартфонов. Более того, Андроид хоть и пытается копировать интерфейс с айФноа, но вот модель распространения — практически полностью слизана все с того же WM (да, с Platform Builder-ом распространялись «почти все» исходники от WM). И, похоже, с тем же результатом (Андроид постепенно превращается в неуправляемую кашу и ее рано или поздно придется «перезапускать»).
Интересно, где же Вы нашли такую чушь? Ну ладно, отвлечемся от «датчиков», но кто Вам сказал, что Метро — только для пальцев? Вот уже больше года на всех углах твердят про «touch first — not touch only».
Очень интересно узнать, где же там «много ненужных кликов». Я вот наоборот делаю меньше кликов и провел за Вин8 значительно больше, чем две недели. Более того, когда сажусь за Вин7 — постоянно на полном автомате пытаюсь использовать углы (а иногда еще и пытаюсь пальцами нажимать кнопки на ноуте без «датчика»).
Ну и в остальном ощущение такое, что Вам непременно хотелось ЧТО-НИБУДЬ сказать, а сказать нечего — примерно как сочинение по непрочитанному роману в школе.