суботу, 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.

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

Квоти в Lustre

Аналогічно до попередніх постів:
цей пост не претендує на вичерпність, є спрощеним варіантом HOWTO, та швидше стосується невеликих систем, які при потребі можна відносно безболісно вимкнути як ціле на якийсь час.

Отож, квоти. Річ, яка допомагає адміністраторам не допускати несправедливості, а користувачам контролювати свої пориви :-)

середу, 17 серпня 2011 р.

Перевірка ФС Lustre на цілісність.

Говорячи про цілісність файлової система (ФС) Lustre, слід розділяти дві її складові -- цілісність базових файлових системи (backing file systems), які зберігають всі дані Lustre, та власне логічну цілісність файлової системи, доступної користувачам. Базова ФС є варіантом ext3/ext4, і для ї перевірки використовується спеціальний варіант e2fsck. Перевірка цілісності ФС Lustre як цілого здійснюється спеціалізованою програмою, lfsck.

В нормі потреб для додаткових перевірок базових файлових систем немає. Вона залишається цілісною, завдяки використанню журналювання. Єдиний виняток, коли перевірка e2fsck необхідна -- ситуації, в яких журналювання безпомічне, такі як апаратні збої, помилки вводу-виводу, тощо. Взагалі, згідно документації ("27.1 Recovering from Errors or Corruption on a Backing File System", Lustre 2.0 Operations Manual), Lustre здатна справитися з більшістю неузгодженостей, що можуть виникнути, і потреба користуватися e2fsck/lfsck виникає рідко.

Однак іноді потреба (чи бажання :) виконати перевірку таки є. Як це зробити для невеликих Lustre-систем описано нижче. Чому саме невеликих? Їх простіше вимкнути як ціле, перевірити і запустити знову. З великими системами зробити так важче. Так ось, проблема мінімізації недоступності Lustre чи окремих її частин під час перевірок тут не має особливо високого пріоритету.

неділю, 14 серпня 2011 р.

Іграшкова Lustre.

В попередньому пості описувалося, як розгорталася повноцінна Lustre-система. Однак іноді хочеться поекспериментувати не так монументально. Можливість для цього існує :-)
Lustre чудово працює на loopback-пристроях.

Опишемо як можна створити таку іграшкову (кишенькову)  "люстру". Додатково корисно подивитися "10.1 Configuring a Simple Lustre File System" (Lustre 2.0 Operations Manual) та "Configuring Lustre - Examples" (Lustre 1.8 Operations Manual). (Інструкції до 1.8 хоча і трохи застаріли для 2.0, однак часто більш зрозумілі чи детальні).

Будемо створювати Люстру із своїм MDS,  MDS, та двома OSS.

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

Інсталяція Lustre 2.0

 На прикладі нашого кластера опишу в деталях процес підготовки Lustre до роботи. Короткий огляд "люстри" в попередньому пості. Перш ніж читати далі, варто із ним ознайомитися, інакше вам будуть незрозумілі більшість термінів та причини чому щось робиться саме так а не по іншому. (Тим же, хто досвідчені у роботі з Lustre, навряд чи згодиться що той пост, що цей :)

По структурі текст ближчий до How-to, аж ніяк не є вичерпним описом всіх варіантів. Ну і, навіть в аналогічній конфігурації, ваші результати можуть відрізнятися :-)

За відгуки, виявлені помилки та пропозиції по тексту буду вдячним.

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

Огляд Lustre, кластерної файлової системи

Нещодавно на нашому кластері виникла необхідність оновити систему збереження, Lustre. Щоб спростити собі такі задачі на майбутнє, вирішив написати кілька нотаток, які стосуватимуться різних аспектів роботи з "Люстрою".

Спершу, в ролі огляду, що ж таке Lustre -- моя стаття та презентація з семінару, присвяченому кластеробудуванню в Західній Україні. Зауважу, що відбувся він доволі давно - майже рік тому. З того часу багато що змінилося. Оракл, якому належала Lustre після придбання Sun, повідомив про припинення її розробки. Однак, зразу виникло кілька фірм, що розробляють та підтримують цю, безперечно, перспективну розподілену файлову систему. Серед них слід виділити Whamcloud, куди пішли ключові розробники - Eric Barton і Andreas Dilger, щоб продовжити роботу над Lustre.

Текст нижче стосується, в основному, Lustre 1.8. Надалі описуватиметься Lustre 2.0, яка дуже схожа у всіх аспектах, однак має і суттєві відмінності.

За відгуки, виявлені помилки та пропозиції по тексту буду вдячним :-)

Презентація доступна тут
Система збереження даних Lustre

Система збереження даних Lustre 

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

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

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

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

Урок номер 10

Цього разу -- адресація до 4Гб оперативної пам'яті з реального режиму, використовуючи недокументовані особливості процесорів. Описано недокументований "нереальний" режим.

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

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

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

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

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

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

На орбіті Вести

Прибули! Помилок в Азімова трохи є, але немає на те ради :-) Та й цінимо ми його не тільки за точність вгадування параметрів небесних тіл.

Що ж побачили, прибувши? Для початку -- типове безатмосферне тіло. Кратери, ущелини, реголіт. Не всі світи такі захоплюючі та різноманітні, як наша Земля. Але свій шарм у Вести є.