субота, 27 серпня 2011 р.

Уроки захищеного режиму x86. Весь цикл разом

Закінчивши викладати уроки, вирішив зібрати для зручності всіх їх в один пост.

Історію моєї роботи з ними можна почитати тут, дублювати немає сенсу.

Базою для них послужили уроки захищеного режиму Алексея Фрунзе. Офіційна сторінка тих уроків, http://welcome.to/pmode, на жаль більше не доступна, але див. також сюди: http://members.tripod.com/protected_mode/alexfru/pmtuts.html.

Написано сумбурно, безтолково, однак просто так викинути було шкода. Крім вже згаданої сумбурності та безтолковості, до недоліків належать: багатослівність, місцями спроби охопити все-все-все, ніякий переклад термінів (*). Набір інструментів трішки роздутий, хоча в педагогічних цілях це цілком може бути плюсом. Організація текстів програм мені зараз теж не дуже подобається, але переробляти лінь. Може, як буде попит - в наступній версії.

Можуть бути помилки :-) (Впевнений що вони є)

Крім того це все ж уроки (максимум - лабораторні роботи), тому систематичного викладу роботи захищеного режиму немає. Правда, є багато довідкової інформації. 

Отож, поїхали.

пʼятниця, 26 серпня 2011 р.

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

Сімнадцятий і останній урок захищеного режиму. 

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

Урок номер 17
Базується на уроці 7, використовує апаратну багатозадачність. Показано як користуватися шлюзами виклику. Задача на рівні привілей 3 викликає процедуру з рівня 0. Саме так, за допомогою шлюзів виклику, операційна надає доступ задачам користувацького рівня до своїх сервісів.

Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.

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

Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.
Із захищеним режимом (поки? :) все. Закінчилася часточка цієї епопеї тривалістю в 15 років. 


Цікавих тем багато, один тільки 64-бітний режим чого вартий, але ні часу ні особливої зацікавленості поки немає...



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

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

четвер, 25 серпня 2011 р.

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

Уроки захищеного режиму з 13 по 16.

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

Уроки номер 13, 14, 15, 16

Всі ці уроки є вступом у використання режиму віртуального 8086 (v8086). На жаль, вони поки без теоретичного опису, лише код із коментарями. Матеріал там відносно простий, однак доволі плутаний. Коли працював над цими уроками, руки не дійшли, а зараз немає ні зацікавленості, ні часу. Однак, якщо буде попит, щось можна придумати :-)
13:
Багатозадачність, як і в попередньому уроці. Одна з двох задач переходить в режим v8086 -- для неї в TSS встановлено відповідний прапорець у EFLAGS.

14:
Додано код, що насправді реалізує роботу в режимі v8086. Підтримуються програмні переривання для задач v86.
15:
Майже повноцінний v86-монітор. IRQ перенаправляються до задачі v86. Завдяки цьому задачі доступні всі функції DOS, прямо як у вікні MS-DOS "віндовса" :-) Про роботу монітора свідчить зірочка, що мерехтітиме в правому верхньому кутку екрану. Запущено command.com (чи що там у вас було в COMSPEC і можна спробувати виконати команди типу dir, чи навіть запустити програми реального режиму.


16:
Крім описаного в попередньому уроці додано підтримку покрокового зневадження (Int 1). Тепер з-під цього монітору працюватимуть і Turbo Debugger і вбудовані зневаджувачі середовищ Turbo Pascal чи Turbo C.

Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.

Архіви з файлами уроків: pm_13.zip, pm_14.zip, pm_15.zip, pm_16.zip.

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

На сьогодні все. Сімнадцятий, останній, урок показуватиме, як можна користуватися шлюзами виклику.

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

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

понеділок, 22 серпня 2011 р.

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

Дванадцятий урок захищеного режиму. 

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

Урок номер 12

До програми з уроку 11 додано по LDT для кожної задачі рівня привілей 3. Селектори сегментів даних та коду задач тепер знаходяться в їх LDT.

Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.

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

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

На сьогодні все. Наступних чотири уроки, 13, 14, 15, 16, стосуватимуться режиму v8086. Їх буде викладено разом. На жаль, вони поки без теоретичного опису, лише код із коментарями. Матеріал там відносно простий, однак доволі плутаний. Коли працював над цими уроками, руки не дійшли, а зараз немає ні зацікавленості, ні часу. Однак, якщо буде попит, щось можна придумати :-)

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

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

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

Одинадцятий урок захищеного режиму. 

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

Урок номер 11

Майже та сама програма, що і в уроці 7. Основна відмінність --- задачі task1() і task2() тепер 32-бітні і працюють на рівні привілей 3, правда за IOPL=3.

Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.

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

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

На сьогодні все. В наступному уроці кожній задачі додамо свою LDT.

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

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

субота, 20 серпня 2011 р.

Не такі часті питання з приводу Lustre

Такий собі Not so Frequently Asked Questions :-) 
Теми, які замалі для окремого поста, але все ж цікаві.
Оновлюватиметься в процесі появи нових питань-відповідей.

пʼятниця, 19 серпня 2011 р.

Зміна NID серверів Lustre

Іноді Network IDentifier (NID) MGS/MDS/OSS може змінюватися. Наприклад при перенесенні на нову апаратуру, встановленні нової мережевої карти, чи просто присвоєнню нової IP-адреси.

Описано цей процес тут: "14.5 Changing a Server NID" (Lustre 2.0 Operations Manual), хоча деяких деталей там не вказано.

Покажемо його на прикладі зміни NID MGS нашої іграшкової Lustre.