Как на самом деле работают компьютеры. Практическое руководство по внутреннему устройству машины

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

В этом руководстве в доступной форме излагаются основы вычислительной техники. Рассматриваются принципы электронных вычислений и использование двоичных чисел; в общих чертах показано, как функционирует аппаратное обеспечение компьютера, для чего нужна операционная система и как передаются данные по интернету. Читатель получит базовое представление о языках программирования, изучая примеры кода на С и Python. Каждая глава содержит упражнения и практические задания (проекты), позволяющие на практике применить полученные знания. Книга будет полезна всем, кто хочет разобраться, как работает компьютер.

Author(s): Мэттью Джастис
Edition: 1
Publisher: ДМК Пресс
Year: 2022

Language: Russian
Commentary: Vector PDF
Pages: 428
City: М.
Tags: Python; Hardware; Assembly Language; Raspberry Pi; C; Do-It-Yourself; Digital Electronics; Elementary

Об авторе
О технических рецензентах
Благодарности
Введение
1. Принципы компьютерных вычислений
Определение компьютера
Аналоговый и цифровой
Аналоговый подход
Переход на цифровые технологии
Системы счисления
Десятичные числа
Двоичные числа
Биты и байты
Префиксы
Шестнадцатеричная система
Выводы
2. Двоичный код в действии
Представление данных в цифровом виде
Цифровой текст
ASCII
Цвета и изображения в цифровом формате
Подходы к представлению цветов и изображений
Интерпретация двоичных данных
Двоичная логика
Выводы
3. Электрические цепи
Определение электрических терминов
Электрический заряд
Электрический ток
Напряжение
Сопротивление
Аналогия с водой
Закон Ома
Схемы электрических цепей
Закон напряжения Кирхгофа
Электрические цепи в реальном мире
Светоизлучающие диоды
Выводы
ПРОЕКТ № 1: Построение электрической цепи и измерения в ней
ПРОЕКТ № 2: Построение простой схемы со светодиодом
4. Цифровые схемы
Что такое цифровая схема?
Логика с помощью механических выключателей
Удивительный транзистор
Логические вентили
Проектирование с помощью логических вентилей
Интегральные схемы
Выводы
ПРОЕКТ № 3: Построение логических операторов (И, ИЛИ) с помощью транзисторов
ПРОЕКТ № 4: Построение схемы с логическими вентилями
5. Математика в цифровых схемах
Двоичное сложение
Полусумматоры
Полные сумматоры
Четырехразрядный сумматор
Знаковые числа
Беззнаковые числа
Выводы
ПРОЕКТ № 5: Построение полусумматора
6. Память и синхросигналы
Последовательные логические схемы и память
SR-защелка
Использование SR-защелки в схеме
Синхросигналы
JK-триггеры
Т-триггеры
Использование синхросигнала в трехбитном счетчике
Выводы
ПРОЕКТ № 6: Построение SR-защелки с использованием вентилей НЕ-ИЛИ
ПРОЕКТ № 7: Построение базовой схемы торгового автомата
ПРОЕКТ № 8: Добавление отложенного сброса в схему торгового автомата
ПРОЕКТ № 9: Использование защелки в качестве ручного синхросигнала
ПРОЕКТ № 10: Тестирование JK-триггера
ПРОЕКТ № 11: Построение трехбитного счетчика
7. Аппаратное обеспечение компьютера
Обзор аппаратного обеспечения компьютера
Оперативная память
Центральный процессор (CPU)
Архитектура набора команд
Внутреннее устройство процессора
Синхросигнал, ядра и кеш
За пределами памяти и процессора
Вторичное хранилище
Устройства ввода/вывода
Связь по шине
8. Машинный код и язык ассемблера
Определение программных терминов
Пример машинной инструкции
Вычисление факториала в машинном коде
Выводы
ПРОЕКТ № 12: Факториал на ассемблере
ПРОЕКТ № 13: Исследование машинного кода
9. Программирование высокого уровня
Обзор программирования высокого уровня
Введение в C и Python
Комментарии
Переменные
Переменные в C
Переменные в Python
Стек и куча
Стек
Куча
Математика
Логика
Побитовые операторы
Булевы операторы
Порядок выполнения программы
Операторы if
Циклы
Функции
Определение функций
Вызов функций
Использование библиотек
Объектно ориентированное программирование
Компилируемый или интерпретируемый
Вычисление факториала в C
Выводы
ПРОЕКТ № 14: Изучение переменных
ПРОЕКТ № 15: Изменение типа значения, на которое ссылается переменная в PYTHON
ПРОЕКТ № 16: Стек или куча
ПРОЕКТ № 17: Напишите игру-угадайку
ПРОЕКТ № 18: Использование класса банковского счета в PYTHON
ПРОЕКТ № 19: Факториал на С
10. Операционные системы
Программирование без операционной системы
Обзор операционных систем
Семейства операционных систем
Режим ядра и режим пользователя
Процессы
Потоки
Виртуальная память
Интерфейс прикладного программирования (API)
Пользовательский режим и системные вызовы
API и системные вызовы
Программные библиотеки операционной системы
Двоичный интерфейс приложений
Драйверы устройств
Файловые системы
Службы и демоны
Безопасность
Выводы
ПРОЕКТ № 20: Исследование запущенных процессов
ПРОЕКТ № 21: Создание потока выполнения и наблюдение за ним
ПРОЕКТ № 22: Исследование виртуальной памяти
ПРОЕКТ № 23: Исследование API операционной системы
ПРОЕКТ № 24: Наблюдение за системными вызовами
ПРОЕКТ № 25: Использование GLIBC
ПРОЕКТ № 26: Просмотр загруженных модулей ядра
ПРОЕКТ № 27: Исследование устройств хранения данных и файловых систем
ПРОЕКТ № 28: Просмотр служб
11. Интернет
Определение сетевых терминов
Набор интернет-протоколов
Канальный уровень
Межсетевой уровень
Транспортный уровень
Прикладной уровень
Путешествие по интернету
Основополагающие возможности интернета
Протокол динамической настройки узла (DHCP)
Частные IP-адреса и преобразование сетевых адресов
Система доменных имен
Сеть – это вычисления
Выводы
ПРОЕКТ № 29: Изучение канального уровня
ПРОЕКТ № 30: Изучение межсетевого уровня
ПРОЕКТ № 31: Изучение использования портов
ПРОЕКТ № 32: Прослеживание маршрута до хоста в интернете
ПРОЕКТ № 33: Узнайте свой арендованный IP-адрес
ПРОЕКТ № 34: Является ли IP вашего устройства публичным или частным?
ПРОЕКТ № 35: Поиск информации в DNS
12. Всемирная паутина
Обзор Всемирной паутины
Распределенная паутина
Адресуемая паутина
Связанная паутина
Веб-протоколы
Поиск в паутине
Языки Всемирной паутины
Структурирование веб с помощью HTML
Стилизация веб-страниц с помощью CSS
Создание скриптов с помощью JavaScript
Структурирование данных в веб с помощью JSON и XML
Веб-браузеры
Визуализация страницы
Строка агента пользователя (User Agent String )
Веб-серверы
Выводы
ПРОЕКТ № 36: Исследование трафика HTTP
ПРОЕКТ № 37: Запуск собственного веб-сервера
ПРОЕКТ № 38: Возврат HTML с вашего веб-сервера
ПРОЕКТ № 39: добавление CSS на ваш сайт
ПРОЕКТ № 40: Добавьте JavaScript на свой сайт
13. Современные вычислительные технологии
Приложения
Нативные приложения
Веб-приложения
Виртуализация и эмуляция
Виртуализация
Эмуляция
Облачные вычисления
История удаленных вычислений
Категории облачных вычислений
Невидимый веб и темный веб
Биткоин
Основы биткоина
Биткоин-кошельки
Биткоин-транзакции
Майнинг биткоинов
Виртуальная и дополненная реальность
Интернет вещей
Выводы
ПРОЕКТ № 41: Использование PYTHON для управления схемой торгового автомата
Приложение А
Ответы на упражнения
1-2: Двоичное в десятичное
1-3: Десятичное в двоичное
1-4: Из двоичной системы в шестнадцатеричную
1-5: Из шестнадцатеричной в двоичную
2-1: Создайте собственную систему представления текста
2-2: Кодировка и декодировка ASCII
2-3: Создание собственной системы представления градации серого
2-4: Создание собственного подхода к представлению простых изображений
2-5: Составление таблицы истинности для логической функции
3-1: Применение закона Ома
3-2: Определите падение напряжения
4-1: Реализация логического ИЛИ (OR) с транзисторами
4-2: Проектирование схемы с логическими вентилями
5-1: Практика двоичного сложения
5-2: Найдите дополнительный код
5-3: Сложите два двоичных числа и их интерпретируйте их как знаковые и беззнаковые
7-1: Вычислите необходимое количество битов
8-1: Используйте свой мозг в качестве процессора
9-1: Побитовые операторы
9-2: Выполните программу на С в уме
11-1: Какие IP находятся в одной подсети?
11-2: Исследование распространенных портов
12-1: Определение частей URL-адреса
Приложение В
Технические средства
Покупка электронных компонентов для проектов
Названия микросхем серии 7400
Покупка
Питание цифровых схем
Зарядное устройство USB
Питание для макетной платы
Питание от Raspberry Pi
Батарейки AA
Поиск и устранение неисправностей в электронных схемах
Raspberry Pi
Почему Raspberry Pi?
Необходимые детали
Настройка Raspberry Pi
Использование Raspberry Pi OS
Работа с файлами и папками