исходники linux 0.01 помогите разобраться с проверкой в keyboard.s

Тема в разделе "WASM.UNIX", создана пользователем tlx, 18 июл 2009.

  1. tlx

    tlx New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2009
    Сообщения:
    5
    В общем строка 206 в файле http://oldlinux.org/lxr/http/source/kernel/keyboard.s?v=0.01. Не могу понять откуда берется значение регистра ecx. Перерыл сто раз весь файл. Такое ощущение, что оно такое же, как у прерванного процесса, хотя в прицепе должна быть проверка места для esc-последовательности соответствующей функциональной клавиши.
    Подскажите кто нибудь.
     
  2. reversecode

    reversecode Guest

    Публикаций:
    0
    http://www.oldlinux.org/oldlinux/archiver/?tid-3180.html
    ответ
    правда немного на странном языке
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    http://translate.google.ru/translate?js=y&prev=_t&hl=ru&ie=UTF-8&u=http%3A%2F%2Fwww.oldlinux.org%2Foldlinux%2Farchiver%2F%3Ftid-3180.html&sl=zh-CN&tl=en&history_state0=
     
  4. tlx

    tlx New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2009
    Сообщения:
    5
    Спасибо конечно, но ситуация не прояснилась. Я понимаю, что там должна быть проверка, но в упор не вижу как она работает. Похоже ecx вообще не модифицируется до вызова процедуры, обрабатывающей сканкод (call key_table(,%eax,4), а значит и самой func). Не хочется думать, что это ошибка. Тоже самое и в версии 0.11. Если кому несложно посмотрите исходник. Может я просто чего-то не понимаю.
     
  5. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
  6. reversecode

    reversecode Guest

    Публикаций:
    0
    1 нужно смотреть состояние задачи в 0x10 дескрипторе (возможно задаеться еще раньше)
    2 (мне лениво) нужно читать о хадварном прерывании и какие параметры в регистрах могут присутсвовать (вариант что ecx приходит месте с прерыванием)

    put_queue хоть и модифицирует ecx но она его потом восстанавливает 92
     
  7. tlx

    tlx New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2009
    Сообщения:
    5
    Поправьте если в чем-то ошибаюсь.

    1) Зачем сохранять и восстанавливать регистр если он модифицируется аппаратным прерыванием еще до входа в его обработчик.
    2) Прерывания клавиатуры не могут происходить одновременно, ведь контроллер инициализирован в режиме с EOI (требуется сигнал конеца прерывания).
    3) Если регистр модифицируется где-то еще, то какая гарантия, что прерывание произойдет после модификации.

    Как то же это все таки работает. Иначе вообще непонятно как обрабатываются нажатия F1-F12. Не может же быть такого, что ядро сравнивает случайное число с 4 и если то меньше отказывается обрабатывать нажатие.

    Короче тут какая-то загогулина. Наверное стоит отнести ее к числу великих тайн мироздания и забыть о ней.

    P.S. Даже если кто-то наткнется на этот топик через месяц или даже позже и будет знать ответ, все равно напишите. Интересно же все таки.
     
  8. reversecode

    reversecode Guest

    Публикаций:
    0
    а кто мешает задать этот вопрос самому линусу?
     
  9. tlx

    tlx New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2009
    Сообщения:
    5
    Ну до Линуса я не добрался, хотя автору linux 0.01 адаптированного под современный gcc я все же написал. Тот не ответил. Даже не знаю на каких еще форумах или кому конкретно написать. Может китайцам каким нибудь. Их много, кто нибудь наверное знает. Например автор книги по исходникам 0.11. Хотя у него в комментариях пара слов есть рядом с этой строкой. Но они как вы сами понимаете на на китайском. Я их даже в переводчике набрать не могу.
     
  10. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    tlx
    http://translate.google.com
    можно копипастить, а можно указать адрес и получить навигируемый перевод
     
  11. tlx

    tlx New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2009
    Сообщения:
    5
    Я бы с радостью, но pdf-ка без вложения текста. Разве что finereader для китайского попробовать (если такой существует). Хотя даже заморачиватся не хочется - там наверное про проверку без всяких объяснений написано (просто комментарий с английского переведен).
     
  12. slauta

    slauta New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2009
    Сообщения:
    4
    Слушай а у тя эти исходники ещё остались??? А то у меня инет не дешёвый, а с нета minix 1.5 надо качать, и то только что бы скомпилировать linux 0.11, 0.01 не компилируется! Люди, хелпми....
     
  13. reversecode

    reversecode Guest

    Публикаций:
    0
    вы что издеваетесь они в нете валяються любой версии
     
  14. slauta

    slauta New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2009
    Сообщения:
    4
    именно переделаные под современную gss!
     
  15. reversecode

    reversecode Guest

    Публикаций:
    0
    брр
    кто кого переделан - ничего не понял
    кто такой gss ?
     
  16. slauta

    slauta New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2009
    Сообщения:
    4
    Я прост думал у вас есть исходники Linux 0.01. Переделаные под современную gss - компилятор такой С вроде, на лине - ото современный gss отличается от старого, что представляет невозможным собрать первый линукс, есть два выхода: найти ту систему на которой этот линь тэстился, или найти переделанные исходники... Вот сча понятно???
     
  17. blackst0ne

    blackst0ne New Member

    Публикаций:
    0
    Регистрация:
    11 авг 2008
    Сообщения:
    10
    Небольшая поправка: GNU Compilers Collection = gcc
     
  18. reversecode

    reversecode Guest

    Публикаций:
    0
    вроде бы linux 0.01 итд собираеться gcc
    а что большая разница?
    вы уже пробовали собирать?
    или токо теория и размышление?
     
  19. slauta

    slauta New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2009
    Сообщения:
    4
    я пробовал! Не пробовал не спрашивал тогда бы... Да эт и понятно, со времени выхода первой версии прошло уж не мало как 19 лет, многое изменилось, от самих систем до кода... Вот и тот случай с gcc.
     
  20. reversecode

    reversecode Guest

    Публикаций:
    0
    что такие большие ошибки что gcc не собирает инельзя ручками поправить?
    не верю