понеділок, 11 липня 2011 р.

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

Сьомий урок захищеного режиму. 

Попередні : 
  1. "Уроки захищеного режиму x86. Урок 0 та 1". 
  2. "Уроки захищеного режиму x86. Урок 2". 
  3. "Уроки захищеного режиму x86. Урок 3". 
  4. "Уроки захищеного режиму x86. Урок 4".
  5.  "Уроки захищеного режиму x86. Урок 5".
  6.  "Уроки захищеного режиму x86. Урок 6".
Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.

Урок номер 7
Продовження теми багатозадачності. Три задачі рівня привілей 0: main(), task1(), task2(). Переключення здійснює планувальник, який викликається з обробника переривань таймера, IRQ0. Багатозадачність із примусовим виштовхуванням (preemptive multitasking) у всій красі.

Нових елементів захищеного режиму не розглядається, на конкретному прикладі в деталях описано процес переключення задачі.
Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.
 
Архів з файлами уроку: pm_07.zip.

Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.

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

Дякую за увагу

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

середа, 6 липня 2011 р.

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

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

Попередні : 
  1. "Уроки захищеного режиму x86. Урок 0 та 1". 
  2. "Уроки захищеного режиму x86. Урок 2". 
  3. "Уроки захищеного режиму x86. Урок 3". 
  4. "Уроки захищеного режиму x86. Урок 4".
  5.  "Уроки захищеного режиму x86. Урок 5".
Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.

Урок номер 6
Майже те ж, що і в уроці 5. Додано переключення задач. main() переключається на tast(), виконуючи дальній перехід на TSS. Потім task() чекає на клавішу ESC і отримавши її, переключається назад, на main(). Обидві задачі на рівні привілей 0, тому карта дозволу вводу-виводу в TSS не потрібна. Також непотрібними є стеки для міжрівневих переходів --- SS0:ESP0, SS1:ESP1, SS2:ESP2.

Описано:
  • Призначення та формат TSS,
  • Процес апаратного переключення задач,
  • Коротко про нюанси -- ланцюжки задач, шлюзи задач, задачі як обробники переривань, тощо.
Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.

 
Архів з файлами уроку: pm_06.zip.

Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Веста

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

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

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