Лучшее Quora: Как компьютер превращает электричество в выполнение программ Статьи редакции

Еженедельный обзор лучших обсуждений на Quorа, временно переформатированный на прошлой неделе в дайджест «Ответов@Mail.ru», возвращается. Но как прежде всё уже не будет. От больших статей с разбором нескольких тредов мы переходим на новую концепцию «один материал — одна тема». Начнём с вопроса о том, как электричество в компьютерах преобразуется в выполнение программ.

Для подавляющего большинства пользователей то, как электрический ток из розетки превращается в компьютере или ноутбуке в реальные вычислительные действия, остаётся большой загадкой. Конечно, для того, чтобы пользоваться той или иной техникой, совершенно не обязательно знать, как она устроена.

Но что если разобраться с чудесным преобразованием всё-таки хочется? Выпускник технологического института в Джорджии Субходжит Чаттопадай (Shubhojit Chattopadhyay), успевший поработать в Oracle, Intel и Qualcomm, попытался объяснить всё «на пальцах».

Материя состоит из атомов, каждый из которых обладает определённым количеством электронов. Во Вселенной существует ещё множество элементарых частиц, но для того, чтобы понять работу компьютера, знаний об атомах и обращающихся вокруг их ядра электронов вполне достаточно, уточняет пользователь Quora.

Электроны являются носителями того, что называется электричеством. Чтобы использовать их, человечество научилось делать транзисторы, способные хранить или, наоборот, высвобождать электричество тогда, когда это необходимо.

Именно с их помощью «кодируются» базовые логические единицы 1 и 0. Например, у микроконтроллеров, предназначенных для управления электронными устройствами, логические уровни для единицы и нуля, например, могут быть пять и ноль вольт соответственно.

Соединив вместе восемь таких транзисторов и поставив первые шесть из них в положение нуля, а последние два в положение единицы, можно закодировать, к примеру, число 3 (в двоичной системе счисления оно запишется как 0000 0011). По числу задействованных транзисторов такая «запись» называется 8-битной.

Из 8 бит состоит одна ячейка памяти комьютера (хотя её длина может быть и 16, и 32, и 64 бита). Совокупность множества блоков, состоящих из ячеек памяти, в итоге образует процессор и оперативную память компьютера.

Процессор (непосредственное переключение транзисторов в ячейках в положение ноль или один) управляется машинным кодом. Для удобства работы с ним был разработан так называемый язык ассемблера — машинно-ориентированный язык низкого уровня, благодаря которому машинный код представляется в удобночитаемом виде.

Так как язык ассемблера также довольно труден для восприятия человеком, для упрощения работы с ним были разработаны языки высокого уровня (С, C++ и другие). Любая программа, написанная на них, всё равно в итоге конвертируется в язык ассемблера, который в реальности и управляет переключением транзисторов в процессоре.

Все комьютерные программы таким образом (от браузеров до тех, что управляют действиями мыши) в целом действуют по одной и той же схеме: преобразуют действия пользователя в конкретные команды на С/С++, которые затем обрабатываются до уровня машинного кода и приводят к действию внутри процессора, то есть фактическому изменению вольт в транзисторах. Так электричество превращается в выполнение программ.

Как отмечает Субходжит Чаттопадай, описанная им система представляет собой очень сильно упрощённую модель, предназначенную в первую очередь для общего понимания.

Хочу заметить, что я «отупил» всё это до самого примитивного уровня. На самом деле я не коснулся в своём ответе и одного процента всех деталей. [...] Но в целом всё так. Это именно то, что вы увидите, когда посмотрите на устройство компьютера со стороны.

Субходжит Чаттопадай, пользователь Quora

Сами компьютеры автор комментария называет настоящим чудом, на создание которого ушло больше 50 лет и силы миллионов умных людей.

0
17 комментариев
Популярные
По порядку
Написать комментарий...
Мутный корабль

Shubhojit Chattopadhyay - чётко же написано Шубходжит Чаттопдхьяй.
Только не надо мне про Ctrl+Enter говорить, я нажимал.
Зачем ТАК торопиться?
вычислетильные
что[,] если
их ядра - ядер!
равны пять и ноль вольт - пяти и нулю вольтам
комьютера
удобночитаемом - удобочитаемом
комьютерные

Ответить
8
Развернуть ветку
Мутный корабль

Степанов, верни Mail.ru!

Ответить
7
Развернуть ветку
Мутный корабль

Комментарий удален по просьбе пользователя

Ответить
1
Развернуть ветку
Мутный корабль

Есть такая замечательная книга Code от Charlez Petzold, которая читается легко как на русском так и на английском:
«Эта книга — азбука компьютерных технологий. Шаг за шагом автор знакомит читателя с сущностью кодирования информации, рассказывает об истории возникновения компьютеров, на практических примерах помогает освоить основные концепции информационных технологий, подробно излагает принципы работы процессора и других устройств компьютера».

http://www.ozon.ru/context/detail/id/125884/ - там же и отзывы можно прочитать
http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319/

Ответить
6
Развернуть ветку
Мутный корабль

Комментарий удален по просьбе пользователя

Ответить
2
Развернуть ветку
Мутный корабль

Комментарий удален по просьбе пользователя

Ответить
1
Развернуть ветку
Мутный корабль

хехе, у меня даже кредитка есть на его имя

Ответить
2
Развернуть ветку
Мутный корабль

Спасибо!

Ответить
0
Развернуть ветку
Мутный корабль

Бля, мы это в 5 классе проходили

Ответить
5
Развернуть ветку
Мутный корабль

Зашёл прочитать, может я чего не знаю, а тут действительно информация с первого урока информатики.

Ответить
0
Развернуть ветку
Мутный корабль

у микроконтроллеров, предназначенных для управления электронными устройствами, логические уровни для единицы и нуля — пять и ноль вольт соответственно.

Лол.

Ответить
0
Развернуть ветку
Мутный корабль

Поясните, пожалуйста.

Ответить
3
Развернуть ветку
Мутный корабль
Ответить
2
Развернуть ветку
Мутный корабль

Некорректное отождествеление типа логики и и типа устройств.

Ответить
1
Развернуть ветку
Мутный корабль

Уже пояснили. Говорить о каких-то мифических логических уровнях вне контекста конкретной логики — довольно неправильно.
Если он хотел "отупляюще просто", достаточно было бы сказать, что булевы 1 и 0 в электроники представляют собой, соответственно, высокий и низкий уровень напряжения.

Ответить
1
Развернуть ветку
Мутный корабль

Познавательно
Субъективно, мне эта мини-статья понравилась больше, чем вся про МэйлОтветы

Ответить
0
Развернуть ветку
Мутный корабль

Комментарий удален по просьбе пользователя

Ответить
1
Развернуть ветку
Читать все 17 комментариев
null