R0 CREW

Подскажите нубу за ОС

В общем сабж такой: решил с головой залезть в иб, выбрал для себя реверс. Понятно, что для начала бы стоило хорошо изучить ОС.
Собственно вот что интересует - сейчас сижу на Windows, продолжать колупать ее и изучать до винтика или перелазить на линукс и делать тоже самое с ней?
заранее спасибо за ответы

ведро OS - путь в никуда. если хочешь расти - изучай unix/linux. другое дело если цель заработать - дырявое ведро к этому пока располагает. но тенденция такова, что уже лет 5 как unix way приносит много больше денег чем печалька msdos вокруг которого надстроена венда.

Eagle что за чушь вы несёте :slight_smile: единственный вывод который можно сделать по вашему посту это то, что вы дилетант из числа сектантов линукса ни знающих ничерта о винде, но активно осуждающих.

shwwart выбирайте то, что нравится и получается. Если брать Windows и Linux, то и там и там есть простор для исследований\реверса\поиска багов, поэтому результаты зависят только от вашего желания тратить время на эти скучные вещи.

JKornev Факты упрямая вещь - поддержка старых приложений, включая 16-bit msdos one до сих пор присутствует во всех 32-битных версиях windoze. То что она отключена в 64-bit вариантах, говорит не о кардинально другой архитектуре ядра, а скорей о маркетинговом шаге или о неспособности m$ написать рабочий ntvdm для этого окружения. последнее более вероятно.

А ядро в венде, как таковое - одно и тоже и написано оно кстати, Девидом Катлером, который в свое время разработал VMS… это - Unix для компов DEC… погуглите

P.S. “одно и тоже” можно читать как один и тот же кусок дерьма

Eagle каким образом компонент ntvdm характеризует ОС в каком-то плохом ключе? Необходимость данного компонента мне кажется продиктована бизнесом и наличием спроса на легаси софт. Т.е. существуют кастомеры, которые к примеру работают с очень старым железом, срок обслуживания которого закончился лет 30 назад. Управляющий софт написан под DOS, разреверсить и переписать по законам штатов нельзя, как решение использовать встроеный эмулятор.

Забавный и в то же время бессмысленный аргумент :slight_smile: наличие эмулятора ntvdm как раз таки наоборот говорит о том, что одна архитектура не совместима с другой, т.е. они кардинально отличаются. Потом, отсутствие эмуляции 8086 в x64 связано с тем, что режим процессора long mode не поддерживает явное выполнение 8086 как это реализованно в x86, плюс есть системные ньюансы. Сложность реализации поддержки DOS на x64 дороже профита.

wacko2 что значит ядро одно и тоже? А в линуксе оно не одно и тоже? Или по вашему оно не менялось с тех пор как Катлер его написал? Если сравнивать системные вещи в Win 10 RS4 и 7 то чуть копнув видны значительные отличия, если брать 10 и XP то это абсолютно разные ОС.

Я пока от вас ни одного аргумента не увидел. Хотел сперва затереть про модель безопасности винды и линукса, или хотябы сравнить технологии exploit mitigations (вы там упоминали про дырявость) но сейчас я вижу что вы не вывезете беседу

Про бизнес я уже написал, но не считаю это основной причиной. Напоминаю тему дискуссии - гавенная архитектура венды. Основная причина ее гавенности состоит в том что m$ пыталась сделать OS совместимой с предыдущими [и будущими] релизами. Мало того, что сделать этого она не шмогла, так еще и начала отказываться от совместимости, отрезая к примеру напрочь DOS приложения в современных релизах. А архитектура-то уже разработана и поменять ее у m$ нет уже ни денег, ни специалистов, ни желания. Даже Джобс был намного умнее m$ - просто взял за основу ядро Unix после многих метаний.

Да ну ? Танцору обычно мешают яйца, а программисту отсутствие поддержки 8086 в long mode и прочие нелепые отмазки. Что-то отстутствие эмуляции не помешало прекрасно реализовать эту же задачу - dosemu в свое время (причем двумя способами) и qemu в наше. К сведению - каждый раз когда ты запускаешь Android emulator - запускается qemu. Причем режим работы KVM позволяет эмулировать окружение нативного кода без никаких проблем с виртуализацией, включая эту больную для m$ 8086 тему. А все потому, что у программистов Linux/Qemu (привет от Bellard’а) был мозг, а не слабые зачатки как у m$ dev стада. Дать линк на docker image с qemu-freedos, который четко работает в 64-bit окружении ? Или сами нагуглите ?

Ну, давайте, затрите. Я пока вижу, что вы вообще не в курсе как устроено ядро венды для начала. А чтобы иметь моральное право сравнивать, так надо еще и Linux знать… Я как бы в том и другом ковыряюсь уже много лет…

А ну ка обьясните (а лучше нарисуйте) мне разницу в архитектурах ядер Win7/WinXP/Win10 !? Чето меня терзают смутные сомнения, но они сразу развеются после вашего ответа на этот вопрос.

Вы везде упрекаете разработчиков m$ в неправильности архитектуры, неумении и т.п., но есть народная мудрость “п*****ь не мешки ворочать”. Ноунейм знающий все лучше всех, увы это признак диванного эксперта (или максимализма), далее будет учтено. Не вижу смысла комментировать весь ваш бред, если есть что по существу - пишите, тратить время на демагогию нет желания. Далее, с каких пор технологии линукса стали лучше во всём чем в Windows? Для примера сравните асинхронность IOCP с тем что предлагает Linux, epoll’ы всякие даже рассматривать не будем. Я не очень силён в документации к линуксу, но если верить гуглу, нормальная ассинхронность вошла в линукс только с версией 2.5 - 2.6, когда в винде в это время уже была IOCP как 5+ лет. При этом я в Linux AIO так и не понял как это всё параллелится, при том, что в IOCP архитектурно расчитан на распараллеливание и поддерживает несколько моделей работы с пулами и без них.

Ну о чём тут можно говорить :slight_smile: Вы выстраиваете разговор не на конструктив, а не пойми на что. Вы же тут кичились что много лет ковыряете и то и то, неижели для вас даже в отладке ничего не поменялось, видимо плаваете не слишком глубоко.

Действительно с вами не очем - ядро венды не менялось начиная с nt 3.1. это вполне кокретно говорит о том, что вы не совсем в курсе как оно вообще устроено. внимательно изучайте на досуге картинку:

А ваш сизый бред об асинхронности, epoll, 2.5/2.6 подверждает, что и о Linux вы знакомы разве что по комиксам или мульту South Park. А вот вам еще напоследок линк на qemu, в котором прекрасно работают в нативном режме dos программы с himem/emm и прочими фишками:

https://github.com/jgoerzen/docker-qemu-dos

Печалька, однако…

Укажите что есть ассинхронность в линуксе, epoll, aio, на чём мне написать высокопроизводительное сетевое приложение? Мне интересно сравнить для себя, а вы как рас эксперт.

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

Прекратите вы уже свой DOS никому не нужный флудить. Относительно 8086 всё это есть в мануале Intel, как именно реализовать софтверно или гипервизором. Реализация ntvdm от Microsoft не использовала ни то, ни то (по крайней мере в чистом виде). Вот http://j00ru.vexillium.org/slides/2013/zeronights.pdf в общих чертах разобрана архитектура.

Так же, как я и говорил помимо проблем с переключением режима проца, есть проблемы и архитектурные. Я где-то смотрел подкаст от Microsoft про изменения в 64-bit винде, там расказывали про это сами инженеры, если найду скину
https://msdn.microsoft.com/en-us/library/windows/desktop/aa384249(v=vs.85).aspx