создание Api

Discussion in 'WASM.OS.DEVEL' started by AntiB, Dec 21, 2007.

  1. AntiB

    AntiB New Member

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

    rei3er maxim

    Blog Posts:
    0
    Joined:
    Jan 15, 2007
    Messages:
    917
    Location:
    minsk
    в Linux сделано через CAP_*
    т. е каждый процесс обладает неким набором возможностей (СAPABILITY)
    при попытке выполнить некоторое привилегированное действие проверяются возможность его выполнения
     
  3. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    А где ты нашел юзермодные апи которые юзают привилегированные инструкции?
    В Windows просто нет таких апи в юзермоде.
     
  4. AntiB

    AntiB New Member

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

    Mika0x65 New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2005
    Messages:
    1,384
    AntiB
    Оформить это в виде системных вызовов. Управление передается привилегированному коду, который выполняет требуемое действие и возвращает результат. Управление передавать можно, например, через int gate.

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

    AntiB New Member

    Blog Posts:
    0
    Joined:
    Mar 23, 2007
    Messages:
    393
    Mika0x65
    спасибо - почитаю
     
  7. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    AntiB
    Видимо, тебе нужен прямой ввод-вывод, смотри в сторону giveio.