создание Api

Тема в разделе "WASM.OS.DEVEL", создана пользователем AntiB, 21 дек 2007.

  1. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    У меня небольшой вопрос - если в API используется запрещенные инструкции для usermode (например, in/out), как мне сделать чтобы программа работала с API но не нарушала "закон"??? Я так понимаю, что API исполняется под контексте программы что вызвала API, но если чтобы сделать нужную для программы операцию нужно использовать запрещенные инструкции? .... как это сделано в Windows или Linux.
     
  2. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    в Linux сделано через CAP_*
    т. е каждый процесс обладает неким набором возможностей (СAPABILITY)
    при попытке выполнить некоторое привилегированное действие проверяются возможность его выполнения
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А где ты нашел юзермодные апи которые юзают привилегированные инструкции?
    В Windows просто нет таких апи в юзермоде.
     
  4. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    rei3er
    Great
    Я имею виду, что если например мне надо узнать время - надо с cmos считать время и например API - GetTime - то как мне сделать так чтобы программа получила время, если чтобы получить время нужно использовать привелегированые функции - in/out ???
     
  5. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    AntiB
    Оформить это в виде системных вызовов. Управление передается привилегированному коду, который выполняет требуемое действие и возвращает результат. Управление передавать можно, например, через int gate.

    P.s. А. Таненбаум, "Современные операционные системы" в помощь.
     
  6. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Mika0x65
    спасибо - почитаю
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    AntiB
    Видимо, тебе нужен прямой ввод-вывод, смотри в сторону giveio.