Ответы пользователя по тегу Операционные системы
  • Реверс-инжиниринг ОС?

    Наёмные убийцы из Microsoft и Apple найдут тебя. Если решишь этим заняться, то знай тебе, что дизассемблирование не всегда даёт адекватный результат, а многие компоненты ядра как Windows так и iOS написаны обфусцированном коде, посему разобарться в нём очень сложно, тем паче в одиночку. Например, вот обфусцированный код:
    F
    U (Y (t + 28) + 1536) |=
    62 & -n;
    M
    U (d + D) =
    X (D, Y (t + 12) + 26628, 412162) ? X (D, Y (t + 12) + 27653,
                        410112) ? 31 : 0 : U (d + D);
    for (; j < 12800; j += 8)
        P (d + 27653 + Y (t + 12) + ' ' * (j & ~511) + j % 512,
            U (Y (t + 28) + j / 8 + 64 * Y (t + 20)), 0);
    }

    а вот его расшифровка:
    case msg_render:
        /* This code draws content of window (black frame, white area and text) */
        {
            char *dest = (char *)arg;
            if(shell){
                (*content)[(LINES - 1) * COLUMNS] = '>';
            }
            /* Frame */
            draw_rectangle(dest + my_task->begin, TITLE_HEIGHT + 8, 4,            LINES * SYMBOL_HEIGHT + 3, COLUMNS * SYMBOL_WIDTH + 2, BLACK);
            /* Area */
            draw_rectangle(dest + my_task->begin, CONTENT_TOP,      CONTENT_LEFT, LINES * SYMBOL_HEIGHT + 1, COLUMNS * SYMBOL_WIDTH,     WHITE);
            /* Text */
            for(int i = 0; i != LINES; ++i){
                for(int j = 0; j != COLUMNS; ++j){
                    draw_symbol(dest + my_task->begin + (CONTENT_TOP + i * SYMBOL_HEIGHT) * SCREEN_WIDTH + CONTENT_LEFT + j * SYMBOL_WIDTH, (*content)[(*line + i) * COLUMNS + j], BLACK);
                }
            }
        }
        break;

    (источник здесь.
    Проще написать свою ОС, совместимую с какой-то, но это опять же очень долго и успеха не будет.
    Как доказательство - ReactOS.
    Ответ написан