Сейчас на форуме: zombi-vadim, zds (+4 невидимых)

 [email protected] —› Программирование —› Поддержка V86 в 64-битных ОС
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 50.0 (постоянный), 31thx
Активность: 0.090.1
Статус: Участник

Создано: 26 ноября 2013 20:19
· Личное сообщение · #1

Тема исключительно умозрительная, нежели практическая.
Насколько реально осуществить поддержку выполнения 16-битных программ (ЭТО НОРТОООН!!!!) реального режима в 64-битной ОС? На первый взгляд нереально совсем, в лонгмоде процессор не поддерживает режим V86. Только что мешает перед началом выполнения V86-кода переключиться в обычный защищенный режим? По-моему ничего. Естественно при этом необходимо загрузить "правильные" 32-битные GDT, IDT, LDT, TSS,MSRы для сисентера и таблицы страниц, иначе возврат из V86 в ринг0 закрашит систему. При возврате в ринг0 из V86 (а это: сисколл - хотя встретить его в коде для реалмода почти невероятно, инт, либо эксепшн), 32-битный хэндлер тут же возвращает управление основному 64-битному ядру (с загрузкой 64-битных GDT и пр.). Таким образом для реализации поддержки V86 в 64 битном ядре нужно "всего лишь" добавить 257 32-битных хэндлеров + код для переключения в 32 и обратно + несколько 32-битных табличек. Ну и конечно поддержка NTVDM, которую выпилили к х..ям из винды64 ))



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 29 ноября 2013 05:57 · Поправил: dosprog
· Личное сообщение · #2

[offtop]
Здесь объективно...
[жуткий offtop]
С тегами $,% тоже всё ясно. Сделано для ускорения разбора текста написанным на C транслятором на вялых машинах. Издержки...
[/жуткий offtop]
[/offtop]

| Сообщение посчитали полезным: Dr0p

Ранг: 162.4 (ветеран), 11thx
Активность: 0.060
Статус: Участник

Создано: 29 ноября 2013 14:15
· Личное сообщение · #3

да нормально всё у АТТ.
А вот китайский алфавит это полный пипец.
Да и с колами туго будет.




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 03 декабря 2013 02:10 · Поправил: Dr0p
· Личное сообщение · #4

Code:
  1. movl         %EAX,(sockfd)
  2.                  pushl   $0x10         # addrlen
  3.                  pushl   $sockaddr_in
  4.                  pushl   %EAX            # sockfd
  5.                  movl     %ESP,%ECX
  6.                  movl     $SYS_CONNECT,%EBX
  7.                  movl     $SYS_socketcall,%EAX
  8.                  int       $0x80
  9.                  addl     $0xC,%ESP


Шедеврально, дос отдыхает. У них даже свои какие то корявые мнемоники, наверно процедура косвенно будет вызываться как CALLL

Размер данных определяется сегментом(модом) и префиксами, но никак не опкодом.

И у меня одного глаза режет от бессмысленных $% ?

Видимо надо дополнительно обрабатывать код для удаленья этих мусорных символов.

(sockfd) - это загрузка ссылки, значения по ссылке, размера её етц, что за херня ?

Они говорят про какую то портабельность, а для идентификации сервисов использовали не имена, как всегда и везде, а номера. Пчёлы против мёда




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 03 декабря 2013 07:35 · Поправил: DenCoder
· Личное сообщение · #5

Dr0p пишет:
У них даже свои какие то корявые мнемоники, наверно процедура косвенно будет вызываться как CALLL

Видимо для укорочения записи. movl вместо mov dword ptr. CALL возможно так и будет, но может быть и calln )

Dr0p пишет:
(sockfd) - это загрузка ссылки, значения по ссылке, размера её етц, что за херня ?

sockfd - дескриптор сокета

Dr0p пишет:
И у меня одного глаза режет от бессмысленных $% ?

Определённый смысл есть. Предположу, что % сообщает компилятору, что используется регистр, а $ - переменная или константа.

Dr0p пишет:
Что именно здесь нового и что осваивать ?

Почти ничего.

Dr0p пишет:
Актуальные вещи актуальны, потому что логичны. А треугольная кривейшая система даже не стоит не то что бы это осваивать, но даже внимания.

Осваивая новый проц, приходится привыкать к новому синтаксису. Чем быстрее привыкаешь, тем ты гибче. За всю свою практику не возникало особых проблем со стандартными синтаксисами для x86/x64, Z80, ARM и ColdFire. AT&T так же непривычен, как всё предыдущее и по возможности и не хотелось бы этим пользоваться. Кривейшая система - звучит просто как жалоба Ты - реверсер?

Если резюмировать, то, Dr0p, твои упрёки в адрес AT&T больше похожи на ещё один признак аутизма - неспособность привыкать к чему-то новому. Не знаю даже, хорошо это или плохо. У моего друга, например, коллега на работе - аутист, но он очень быстро на любом языке способен прочитать инструкцию и установить оборудование...
--> приобретенный аутизм <--

-----
IZ.RU





Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 03 декабря 2013 14:56 · Поправил: Модератор
· Личное сообщение · #6

DenCoder

> movl вместо mov dword ptr.

У меня дефейны есть:
Code:
  1. equ BYTE PTR
  2. equ WORD PTR
  3. equ DWORD PTR
  4. equ QWORD PTR


> sockfd - дескриптор сокета

Значит [sockfd] ?
Тогда опять же не стандарт, на всех платформах есчо со времён динозавров адрес указывается в квадратных скобках.

> Предположу, что % сообщает компилятору, что используется регистр, а $ - переменная или константа.

Ну можно и вручную конпилить..

> Если резюмировать, то, Dr0p, твои упрёки в адрес AT&T больше похожи на ещё один признак аутизма - неспособность привыкать к чему-то новому.

Если бы мне надо было юзать то убожество, то я бы юзал. Причём тут способности обучаться. Хорошо, теперь понятно зачем %. Хоть и понятно, но лучше оно от этого не стало.

С вас товарищ ... психолог получается, обьективная критика не есть признак болезни или каких то отклонений, как раз таки наоборот.




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 04 декабря 2013 04:47 · Поправил: DenCoder
· Личное сообщение · #7

Dr0p пишет:
Значит [sockfd] ?
Тогда опять же не стандарт, на всех платформах есчо со времён динозавров адрес указывается в квадратных скобках.

Так он же в комментарии. # - символ не заметил?

Dr0p пишет:
С вас товарищ ... психолог получается

Да, немного есть. Стремление выжить в этом обществе + одна брошюрка + склонность к реверсу дало кое-какие навыки... Тебя можно отнести к 5й группе аутистов, выражена конфликтность, есть свои особенности... Если не хочешь, чтобы на паблик выложил, откуда 10 лет назад у тебя взялись время и причины для реверса WinNT/2000/XP и как это связано с аутизмом и лексиконом (например, еба), то лучше оставь эту тему

Dr0p пишет:
обьективная критика не есть признак болезни или каких то отклонений, как раз таки наоборот.

Как ты можешь говорить, что она объективна, если оцениваешь её сам?

DenCoder пишет:
ещё один признак аутизма - неспособность привыкать к чему-то новому

Dr0p пишет:
Причём тут способности обучаться

Dr0p пишет:
критика не есть признак болезни

Сама по себе не есть, но в целом, по 5% собранного пазла... Ты даёшь как раз те кусочки, как будто просишь, чтобы тебя вылечили

Продолжить дальше по ветке AT&T - все эти необычности синтаксиса(те, что я увидел здесь) просто упрощают реализацию компилятора. Как и у многих, у меня нет желания изучать его пока, как и переходить на никсы, с которыми, похоже, по крайней мере исторически связан AT&T. Не знаю, насколько безошибочно, но в той же олли представлен вариант листинга с этим чудом. А по сабжу - это крайне мало связано с v86, синтаксис тут не причём.

Всё началось, я так понял, с этого:
spinz пишет:
авторов ATT-синтаксиса следовало бы насадить на живительный кол

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

-----
IZ.RU




Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 04 декабря 2013 08:11
· Личное сообщение · #8

Да, господа,
тут тема-то поднята - V86 в 64-bit OS,
нету у меня такой ОС, но интересно, есть ли решения, кроме эмуляции.
Подкинул вопрос о полноэкранном режиме.
А вы всё о психологии... Выгрести бы в русло темы.




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 04 декабря 2013 15:02 · Поправил: Dr0p
· Личное сообщение · #9

DenCoder

> Если не хочешь, чтобы на паблик выложил, откуда 10 лет назад у тебя взялись время и причины для реверса WinNT/2000/XP и как это связано с аутизмом и лексиконом (например, еба), то лучше оставь эту тему

Я не помню что такое аутизм, у меня нет никаких психологических проблем, более того мой рассудок не затуманен никакими глоссами етц, в отличие от всех.

Ну а моя лексика есть результат оптимизации. Я не пишу так, как думаю, ибо это не приемлимо получится. Даже выше - модер поправил предложение.

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

> Ты даёшь как раз те кусочки, как будто просишь, чтобы тебя вылечили

Вывод сделала твоя когнитивная система. В реале мне пофиг на атт, я его не юзал, просто указал на его некоторые кривости.




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 04 декабря 2013 15:57 · Поправил: DenCoder
· Личное сообщение · #10

dosprog пишет:
нету у меня такой ОС

Надо думать, что нет и не нужна? )

dosprog пишет:
интересно, есть ли решения, кроме эмуляции.

hash87szf пишет:
Интересно и у красноглазиков робит. Hardware трюк допускает.http://v86-64.sourceforge.netЯвно с ограничениями того же виртуал 8086...

Не эмуляция, какой-то трюк. Для меня тоже интересно! Но интересный опыт ntldr и Dr0p подсказывает всё же, что это будет отнимать у проца такты и значительно. Вот был бы в достатке, написал бы для себя 64-битную ось, поэкспериментировал бы )

dosprog пишет:
А вы всё о психологии...

Психология как раз тесно связана с программированием. Вот многие начинающие и середнячки порой проклинают компилятор за то, что он бинарник делает с ошибками. Но в 99% и немного больше случаев виноват в этом не компилятор, а программист просто отказывается признавать за собой ошибку. Это - психология!

А уж набодавшись с обычным синтаксисом, привыкнув к порядку приёмника и источника в аргументах, к Little-Endian, возникает барьер перед обратным порядком (ввиду, наверное, малой гибкости). А барьеры могут привести к фрустрациям, оттуда и до депрессии недалеко и пошло оно всё лесом. Наверное, каждый на себе подобное испытывал. Как следствие у столкнувшегося формируется своё понятие барьеров и свой подход к решению проблемы. На практике большинство людей по-разному справляются с барьером (есть 7 способов решения проблемы), только не преодолевая его... Это - тоже психология!

Можно сказать, что 3мя постами заступился за AT&T(хотя давным давно читал это или пролистал мимо, но нашёл у себя в старой книге Зубкова). К тому же(как я уже стал понимать) на нём линукс был написан, и в плане безопасности хвалят его больше, чем винду!

Чтобы понять, в чём причина упрёков - как вариант есть --> игра жанра "поиск предметов" <-- и подобные ей.
Уверен, что даже научившись в одной комнате за 10 секунд отыскивать все 40 предметов, попав в новую, поначалу будет сомневаться на сколько-то, что какой-то искомый предмет там действительно есть.
То есть:
Кто стал экспертом в одной сфере, попав в совершенно иную(другой синтаксис, язык, IDE, ось, ...), поначалу в неудачах будет винить кого и что угодно, только не себя.

Другим ругань в сторону необычного - это как реалистично(не отстранённо) представить, что падаешь из окна 5го(или 25го) этажа. <- Сродни сопереживаниям. Только себе же, в несуществующей реальности и очень возможно никогда в будущем невоплощённой реальности. Третьим - оправдание, почему "оно мне далеко не нужно". И у всех в различных степенях.

Понимал бы каждый это и возможно точнее и глубже - лишних постов было б в десятки раз меньше!

Dr0p пишет:
нлп. Простая психология ничего с этим общего не имеет

20 лет назад в интранете универа увидел надпись в духе "Да здравствуют программисты, которые программируют себя!".

Dr0p пишет:
более того мой рассудок не затуманен никакими глоссами етц, в отличие от всех.

Аххаха, жжёшь

-----
IZ.RU





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 04 декабря 2013 15:59
· Личное сообщение · #11

Давайте всё же уже ближе к теме.



Ранг: 50.0 (постоянный), 31thx
Активность: 0.090.1
Статус: Участник

Создано: 05 декабря 2013 07:04
· Личное сообщение · #12

dosprog пишет:
Подкинул вопрос о полноэкранном режиме.

http://colinxu.wordpress.com/tag/dos-fullscreen/

| Сообщение посчитали полезным: dosprog

Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 05 декабря 2013 11:10 · Поправил: dosprog
· Личное сообщение · #13

DenCoder writes:
>dosprog пишет:
>>нету у меня такой ОС
>Надо думать, что нет и не нужна? )


В общем-то, пока не нужна. Да и устанавливать некуда. Но на чужих машинах она встречается всё чаще, кроме того, новый софт может потребовать именно 64-бит, никуда не денешься.
Что толку, что мне долгое время не нужна была WinNT? - Потребовалось работать с софтом, перешёл на WinXP.
Это объективность, к сожалению...


<< . 1 . 2 .
 [email protected] —› Программирование —› Поддержка V86 в 64-битных ОС
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати