вівторок, 28 червня 2011 р.

Есе про контролер клавіатури Intel 8042

Фрагмент 5-го уроку захищеного режиму, вартий уваги сам по собі. Інформація місцями не до кінця перевірена, написано несистематично -- тема широка, з захищеним режимом пов'язана слабо :-), але може комусь згодиться.

пʼятницю, 24 червня 2011 р.

Наближаючись до Вести

"Down" повільно (140 м/с станом на 17 червня) наближається до Вести. Цей маленький але гордий світ :-) потроху показує все нові свої подробиці. Пост присвячений власне процесу наближення і буде поповнюватися аж до виходу на орбіту.

понеділок, 20 червня 2011 р.

Космічний апарат Dawn

"Dawn", "Світанок" -- автоматичний (безпілотний) космічний апарат для дослідження астероїдів. Найближча його ціль, до якої залишилося ще зоооовсім трішки -- Веста. Основне завдання -- вивчення відбитки ранніх періодів існування Сонячної системи, що мали б зберегтися на астероїдах.

суботу, 18 червня 2011 р.

Перші результати Dawn з Вести. Остання фото -- 25 км на піксель!

Стаття про сам Dawn теж готова, але так як щойно з'явилися ще новини, вона трішки зачекає. А ми перейдемо до перших його результатів :-)

Веста

Скоро ми матимемо нагоду познайомити зблизька ще з одним крихітним світом, який самотньо подорожує десь між орбітами Марса та Юпітера. Хай це прозвучить надміру пафосно для все-пізнавшої та у-всьому-розчарованої нашої території (це я про територію від Варшави і  мінімум до Байкала), але кожен такий візит -- справжнє чудо. Нагода побачити вперше те, чого ніхто раніше не бачив. Тим більше із сучасною традицією НАСА викладати "сирі" фото майже зразу.  

Звичайно, навряд чи нові враження зможуть зрівнятися із першим поглядом під густу атмосферу Титану. Однак навіть Феба виявився несподіванкою, хоча до "приходу" перших кадрів здавалося - "Ну що я, космічних каменюк не бачив?". А комета Хартлі-2 -- взагалі суцільний сюрприз, (навіть якщо не знаєте англійської, див. фото тут, тут і тут).

Отож Веста. Одне з найбільших тіл поясу астероїдів. До неї повільно (іонні двигуни все ж :) наближається робот, посланець Землі, Dawn, "Світанок". Перш ніж струмочок нових даних переросте у бурхливу річку, підсумуємо що ми знаємо про Весту зараз, до того як його відвідали космічні апарати.

понеділок, 13 червня 2011 р.

IRQ та PIC

Фрагмент 5-го уроку захищеного режиму, вартий уваги сам по собі. Інформація місцями не до кінця перевірена, багато що опущено, так як не має відношення до типової архітектури x86, але може комусь згодиться :-)

вівторок, 7 червня 2011 р.

Уроки захищеного режиму x86. Урок 5

П'ятий урок захищеного режиму. 

Попередні : 

Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.

Урок номер 5
Та ж GDT що і й раніше. Майже та сама IDT, що і в 4-му уроці, лише додано два обробника: IRQ0, таймер та IRQ1, клавіатура. Перепрограмовуємо PIC щоб призначити правильні обробники захищеного режиму для IRQ. Програма завершує свою роботу після натиснення ESC. З клавіатурою працює напряму, через контролер.

Описано:
  • Огляд - що таке IRQ (Interrupt ReQuest) і як з ними боротися.
  • Програмування PIC (Programmable Interrupt Controller).
  • Робота з клавіатурою: контролер клавіатури, скан-коди, трішки про роль BIOS.
  • З приводу контролера клавіатури - керування лінією A20 та кілька слів про програмні затримки при вводі-виводі. 
Нових елементів захищеного режиму не вводилося, хіба практично показано як можна обробляти IRQ. Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.
 
Архів з файлами уроку: pm_05.zip.
Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.

На сьогодні все. Наступний урок буде присвячений типам виключних ситуацій та переривань, і їх обробці. 
 
Дякую за увагу

Якщо є запитання, виправлення, пропозиції - пишіть! Багато часу цьому приділяти, на жаль, не можу, але якщо з того буде комусь користь - спробуємо щось придумати.

четвер, 2 червня 2011 р.

Уроки захищеного режиму x86. Урок 4

Четвертий урок захищеного режиму. 

Попередні : 

Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.

Урок номер 4
Та ж GDT, що і раніше. В IDT -- обробники всіх виключних ситуацій. Реалізовано їх як обгортки, що викликають один і той самий обробник. Обробник виходить з захищеного режиму, виводить тип виключення та його адресу  і закінчує програму. Виділений стек не створюється, тому stack fault (та можливо деякі інші) коректно ним не оброблятимуться. 

Описано:
  • Що таке переривання та виключення (exceptions).
  • Обробники переривань захищеного та реального режиму.
  • Шлюзи пасток, переривань та задач.
  • Спосіб виклик обробника в залежності від причини переривання.
  • Типи виключень -- збої (faults), пастки (traps) та "аварії" (aborts).
  • Дано перелік виключень, що можуть генеруватися процесором.
  • Формат коду помилки для тих виключень, що його генерують. Окремо описано код помилки для Page Fault.

Є як змішана C-asm так і чисто асемблерна реалізації.
Архів з файлами уроку: pm_04.zip. (Updated - 1.)
Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.

На сьогодні все. Наступний урок буде присвячений типам виключних ситуацій та переривань, і їх обробці.
Дякую за увагу

Якщо є запитання, виправлення, пропозиції - пишіть! Багато часу цьому приділяти, на жаль, не можу, але якщо з того буде комусь користь - спробуємо щось придумати.