Автомонтирование дополнительного раздела с приложениями

Internal structure and you change requests/suggestions
  • Spoiler:

    Code: Select all

            mov    eax, 30
            mov    ebx, 3 
            mov    ecx, mount_data
            int    64
            or     eax, -1
            int    64
    mount_data:
            db     'sys',0
            resb    64 - 4
            db     'CD0/1',0
            resb    64 - 6
    Само ядро не делает проверок что ли?
    svn3682
  • 0CodErr wrote:
    Spoiler:

    Code: Select all

            mov    eax, 30
            mov    ebx, 3 
            mov    ecx, mount_data
            int    64
            or     eax, -1
            int    64
    mount_data:
            db     'sys',0
            resb    64 - 4
            db     'CD0/1',0
            resb    64 - 6
    Само ядро не делает проверок что ли?
    svn3682
    Не понял сути вопроса.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Монтирование должно либо выполняться корректно, либо не выполняться совсем. В этом случае желательно вернуть код ошибки(сейчас эта SysFn не возвращает ничего).
    Ну а тот код выполняется, то есть, происходит монтирование, и система, вероятно, начинает считать, что "sys" у нас теперь не "/rd/1", а "CD0/1".
  • 0CodErr wrote:Монтирование должно либо выполняться корректно, либо не выполняться совсем. В этом случае желательно вернуть код ошибки(сейчас эта SysFn не возвращает ничего).
    Ну а тот код выполняется, то есть, происходит монтирование, и система, вероятно, начинает считать, что "sys" у нас теперь не "/rd/1", а "CD0/1".
    Ты совершенно не понял кода. Как было смонтировано первичное "sys" = "rd/1", так и остается. В блок данных вставляется вторая строка и указатель количества строк для проверки изменяется к 2. Если добавлять вторичный "sys", то код до него тупо не дойдет, потому что сработает на первичном. Содержимое передаваемого блока контролируется исключительно по размеру и остается на совести прикладного программиста. Кода ошибки нет, потому что функция вызывается однократно, а повторные вызовы невозможны в течение этого сеанса работы ОС.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Я просто скомпилировал этот код:
    Spoiler:

    Code: Select all

    ORG 0
    BITS 32
            db     'MENUET01'
            dd     1
            dd     start_
            dd     end_
            dd     end_
            dd     end_
            dd     0
            dd     0
    start_:
            mov    eax, 30
            mov    ebx, 3 
            mov    ecx, mount_data
            int    64
            or     eax, -1
            int    64
    mount_data:
            db     'sys',0
            resb    64 - 4
            db     'CD0/1',0
            resb    64 - 6
    end_:
    
    И запустил. После этого не запустилась ни одна программа ни с рабочего стола, ни из @RB. При запуске FASM запустилась @notify с сообщением об ошибке.
  • Mario_r4 wrote:а повторные вызовы невозможны в течение этого сеанса работы ОС.
    А если юзер захочет загрузить Колибри в /tmp/ диск и вытащить CD? А если он хочет установить её с CD на жёсткий диск что тогда? Нужен ребут, как в Win95/98? Лучше сделать возможным повторный вызов функции.
    Из хаоса в космос
  • 0CodErr wrote:Я просто скомпилировал этот код:
    Spoiler:

    Code: Select all

    ORG 0
    BITS 32
            db     'MENUET01'
            dd     1
            dd     start_
            dd     end_
            dd     end_
            dd     end_
            dd     0
            dd     0
    start_:
            mov    eax, 30
            mov    ebx, 3 
            mov    ecx, mount_data
            int    64
            or     eax, -1
            int    64
    mount_data:
            db     'sys',0
            resb    64 - 4
            db     'CD0/1',0
            resb    64 - 6
    end_:
    
    И запустил. После этого не запустилась ни одна программа ни с рабочего стола, ни из @RB. При запуске FASM запустилась @notify с сообщением об ошибке.
    Ты вероятно прирожденный тестер - нужно идти работать в Мелкософт. Пусть они там сдохнут исправляя баги. :lol:
    Ситуацию с двумя "sys" действительно не проверял, может оригинальный автор, написавший функцию process_replace_file_name чего-то не учел. Хорошо, буду разбираться.

    З.Ы. На будущее лучше сразу пиши полный багрепорт, а то как я заметил ты любишь информацию порциями выдавать.
    Last edited by Mario_r4 on Tue Jun 18, 2013 11:40 pm, edited 1 time in total.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Leency wrote:А если юзер захочет загрузить Колибри в /tmp/ диск и вытащить CD?
    Вариант с TMP диском я не рассматриваю по причине ненужности для меня лично. Пользователь может много чего захотеть, а у нас нет разделения прав в системе. Возможность какой угодно программе изменять содержимое пути может привести к весьма неожиданным последствиям.
    Leency wrote: А если он хочет установить её с CD на жёсткий диск что тогда? Нужен ребут, как в Win95/98?
    Совершенно верно. Любая система после инсталляции на жесткий диск перезагружается. Это нормальное поведение и в этом нет ничего плохого.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • 0CodErr wrote:Я просто скомпилировал этот код:
    Spoiler:

    Code: Select all

    ORG 0
    BITS 32
            db     'MENUET01'
            dd     1
            dd     start_
            dd     end_
            dd     end_
            dd     end_
            dd     0
            dd     0
    start_:
            mov    eax, 30
            mov    ebx, 3 
            mov    ecx, mount_data
            int    64
            or     eax, -1
            int    64
    mount_data:
            db     'sys',0
            resb    64 - 4
            db     'CD0/1',0
            resb    64 - 6
    end_:
    
    И запустил. После этого не запустилась ни одна программа ни с рабочего стола, ни из @RB. При запуске FASM запустилась @notify с сообщением об ошибке.
    Исправлено в SVN r. 3689. Код process_replace_file_name искал ассоциации от последней к первой, теперь ищет правильно - от первой к последней.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4 wrote:Исправлено в SVN r. 3689.
    Только с "sys"?
  • 0CodErr wrote:
    Mario_r4 wrote:Исправлено в SVN r. 3689.
    Только с "sys"?
    Что значит "Только с "sys"?" Я же написал - там был обратный поиск по списку. Сейчас поиск прямой и до второго "sys" проверка тупо не дойдет - just as planned.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • С поиском понятно. Кроме "sys" можно примонтировать, например, "rd" или "hd0".
  • 0CodErr wrote:С поиском понятно. Кроме "sys" можно примонтировать, например, "rd" или "hd0".
    Я же говорю - на совести прикладного программиста, а то что ты привел с "sys" было действительно багом, но не моим, а предыдущего автора.
    Я не могу ввести 100500 проверок для разных вариантов, учитывающих защиту от дурака во всех случаях, так как это сильно раздует код, а раздутому код в ядре делать нечего.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • SVN r. 3724 - уменьшение эффекта блокировки файловой системы за счет добавления mcall 68,1
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Who is online

    Users browsing this forum: No registered users and 1 guest