aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: de4a41628c946af3de04d3476a3fa876d9ce733a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Общие тезисы для понимания работы вычислительной техники
========================================================

Мне давно хотелось написать некое пособие, в котором вкратце рассказывалась
базовая информация об компьютерах в частности и об вычислительной техники в
целом. Таким образом я бы мог ссылаться не на огромные и иногда избыточные тома
Танненбаума или даже Введения в микроЭВМ, а на небольшую методичку, информацию
из которой можно было бы усвоить за один вечер.

Примерный план
--------------

1. История вычислительной техники. Цель создания, исторические катализаторы.

2. Многоуровневая ЭВМ, уровни абстракции: уровень машинных команд, уровень
   микрокоманд, уровень ассемблера, уровень прикладных задач. Интерпретация и
   компиляция. Почему стоит думать об уровнях ниже, даже если инструменты
   позволяют нам это не делать? Положение дел на рынке труда, связанное с
   большим количеством работы Java- и С#-программистов. Разделение
   программирования на разные области.  Системное программирование, олимпиадное
   программирование, программирование бизнес-логики...

3. Общая архитектура ЭВМ: АЛУ, УУ, специализированные регистры (аккумулятор,
   счётчик команд, регистры команд, данных и адреса), память, виды адресации. 

4. БЭВМ без программирования микрокоманд и работы с ВУ.

5. Виды памяти (ПЗУ, ОЗУ, HDD, флеш-память), хранение данных в памяти, наследие
   телеграфа, азбуки Морзе, ASCII.

6. Взаимодействие ЭВМ и ВУ, взаимодействие двух ЭВМ. OSI. Прерывания.
   Параллельная и последовательная передачи данных.

7. Intel-ассемблер, реальный режим, защищённый режим, x64, объектные файлы,
   препроцессинг, линковка (статическая, динамическая), заголовки (PE2, ELF),
   8086, BIOS, таблица векторов прерываний, работа с внешними устройствами,
   цель создания OS, DOS.

8. Зачем нужен Си?  Написание простейших программ, указательная арифметика,
   UNIX-way, работа с памятью, препроцессинг, компиляция, линковка (статическая,
   динамическая), UNIX.