nexusstc/Тайная жизнь программ. Как создать код, который понравится вашему компьютеру/8f8444adfef42e1c1a3c6230561381e0.pdf
Тайная жизнь программ. Как создать код, который понравится вашему компьютеру 🔍
Джонатан Стейнхарт
Питер, Для профессионалов, 1, 2023
英语 [en] · 俄语 [ru] · PDF · 13.8MB · 2023 · 📘 非小说类图书 · 🚀/lgli/lgrs/nexusstc/zlib · Save
描述
Знакомы ли вы с технологиями, лежащими в основе вашей собственной программы? Почему «правильный» код не хочет работать? Истина проста и банальна — нужно сразу создавать код, который будет работать хорошо и не будет прятать в себе трудноуловимые ошибки.
Для этого Джонатан Стейнхарт исследует фундаментальные концепции, лежащие в основе работы компьютеров. Он рассматривает аппаратное обеспечение, поведение программ на определенных устройствах, чтобы показать, как на самом деле должен работать ваш код.
Узнайте, что на самом деле происходит, когда вы запускаете код на компьютере, и вы научитесь программировать лучше и эффективнее.
Для этого Джонатан Стейнхарт исследует фундаментальные концепции, лежащие в основе работы компьютеров. Он рассматривает аппаратное обеспечение, поведение программ на определенных устройствах, чтобы показать, как на самом деле должен работать ваш код.
Узнайте, что на самом деле происходит, когда вы запускаете код на компьютере, и вы научитесь программировать лучше и эффективнее.
备用文件名
lgli/ТайнаÑ_жизнÑ_пÑогÑамм.pdf
备用文件名
lgrsnf/ТайнаÑ_жизнÑ_пÑогÑамм.pdf
备用文件名
zlib/Computers/Programming/Джонатан Стейнхарт/Тайная жизнь программ. Как создать код, который понравится вашему компьютеру_25340598.pdf
备选标题
The Secret Life of Programs: Understand Computers -- Craft Better Code
备选标题
The Secret Life of Programs : Know the Machine and Write Better Code
备选标题
Foundations of Computer Programming
备选作者
Steinhart, Jonathan E.
备选作者
Jonathan E. Steinhart
备选作者
Стейнхарт Джонатан
备用出版商
No Starch Press, Incorporated
备用出版商
Random House LLC US
备用出版商
Progress kniga
备用版本
United States, United States of America
备用版本
San Francisco, California, 2019
备用版本
Russia, Russian Federation
备用版本
PT, 2019
元数据中的注释
Publisher's PDF
元数据中的注释
{"edition":"1","isbns":["1593279701","544611731X","9781593279707","9785446117314"],"last_page":528,"publisher":"Питер","series":"Для профессионалов"}
备用描述
Об авторе
О научном редакторе
Благодарности
Предисловие
От издательства
Введение
Почему важно программировать хорошо
Научиться писать код — только начало
Низкоуровневые знания важны
Кому стоит прочитать эту книгу?
Что такое компьютеры?
Что такое программирование компьютеров?
Кодинг, программирование, инженерия и сomputer science
Ландшафт
Структура книги
Глава 1. Внутренний язык компьютеров
Что такое язык?
Письменный язык
Бит
Логические операции
Булева алгебра
Закон де Моргана
Представление целых чисел с помощью битов
Представление положительных чисел
Сложение двоичных чисел
Представление отрицательных чисел
Представление действительных чисел
Представление с фиксированной точкой
Представление с плавающей точкой
Стандарт IEEE для чисел с плавающей точкой
Двоично-десятичная система счисления
Более простые способы работы с двоичными числами
Восьмеричное представление
Шестнадцатеричное представление
Представление контекста
Именованные группы битов
Представление текста
Американский стандартный код обмена информацией
Развитие других стандартов
8-битная форма представления Unicode
Использование символов для представления чисел
Кодировка Quoted-Printable
Кодировка Base64
Кодировка URL
Представление цветов
Добавление прозрачности
Кодирование цветов
Выводы
Глава 2. Комбинаторная логика
Задача для цифровых компьютеров
Разница между аналоговым и цифровым представлением
Почему для аппаратного обеспечения размер имеет значение
Цифровые решения для более стабильных устройств
Цифровые устройства в аналоговом мире
Почему вместо цифр используются биты
Знакомство с принципами работы электрического тока
Электрический ток на примере сантехники
Электрические переключатели
Создание аппаратного обеспечения, работающего с битами
Реле
Вакуумные лампы
Транзисторы
Интегральные схемы
Логические вентили
Повышение помехоустойчивости с помощью гистерезиса
Дифференциальная передача сигналов
Задержка распространения
Варианты выходов
Создание более сложных схем
Создание сумматора
Построение дешифраторов
Построение демультиплексоров
Построение селекторов
Выводы
Глава 3. Последовательная логика
Представление времени
Осцилляторы
Генераторы тактовых сигналов
Триггеры-защелки
Синхронный RS-триггер
Триггеры
Счетчики
Регистры
Организация памяти и обращение к памяти
Оперативная память
Постоянное запоминающее устройство
Блочные устройства
Флеш-память и твердотельные диски
Обнаружение и исправление ошибок
Аппаратное и программное обеспечение
Выводы
Глава 4. Анатомия компьютера
Память
Ввод и вывод
Центральный процессор
Арифметико-логическое устройство
Сдвиг
Исполнительное устройство
Набор инструкций
Инструкции
Режимы адресации
Инструкции кода состояния
Ветвление
Итоговый набор инструкций
Окончательный проект
Регистр команд
Передача данных и управляющие сигналы
Управление движением
Наборы команд RISC и CISC
Графические процессоры
Выводы
Глава 5. Архитектура компьютера
Основные архитектурные элементы
Ядра процессора
Микропроцессоры и микрокомпьютеры
Процедуры, подпрограммы и функции
Стеки
Прерывания
Относительная адресация
Блок управления памятью
Виртуальная память
Пространство системы и пользователя
Иерархия памяти и производительность
Сопроцессоры
Организация данных в памяти
Запуск программ
Мощность запоминающих устройств
Выводы
Глава 6. Разбор связей
Низкоуровневый ввод/вывод
Порты ввода/вывода
Нажми на кнопку
Да будет свет
Свет, камера, мотор...
Светлые идеи
2n оттенков серого
Квадратура
Параллельная связь
Последовательная связь
Поймать волну
Универсальная последовательная шина
Сети
Современные локальные сети
Интернет
Аналоговые устройства в цифровом мире
Цифро-аналоговое преобразование
Аналого-цифровое преобразование
Цифровое аудио
Цифровые изображения
Видео
Устройства взаимодействия с человеком
Терминалы
Графические терминалы
Векторная графика
Растровая графика
Клавиатура и мышь
Выводы
Глава 7. Организация данных
Базовые типы данных
Массивы
Битовые матрицы
Строки
Составные типы данных
Односвязные списки
Динамическое выделение памяти
Более эффективное выделение памяти
Сборка мусора
Двусвязные списки
Иерархические структуры данных
Хранение данных на дисковых устройствах
Базы данных
Индексы
Перемещение данных
Векторный ввод/вывод
Подводные камни объектно-ориентированного программирования
Сортировка
Создание хешей
Эффективность и производительность
Выводы
Глава 8. Обработка языка
Язык ассемблера
Языки высокого уровня
Структурное программирование
Лексический анализ
Конечные автоматы
Регулярные выражения
От слов к предложениям
Клуб «Язык дня»
Деревья синтаксического анализа
Интерпретаторы
Компиляторы
Оптимизация
Осторожнее с аппаратной частью!
Выводы
Глава 9. Веб-браузер
Языки разметки
Унифицированные указатели ресурсов
HTML-документы
Объектная модель документа
Словарь древовидных структур данных
Интерпретация модели DOM
Каскадные таблицы стилей
XML и друзья
JavaScript
jQuery
SVG
HTML5
JSON
Выводы
Глава 10. Прикладное и системное программирование
«Угадай животное», версия 1: HTML и JavaScript
Каркас прикладного уровня
Тело веб-страницы
JavaScript
CSS
«Угадай животное», версия 2: С
Терминалы и командная строка
Создание программы
Терминалы и драйверы устройств
Переключение контекста
Стандартный ввод/вывод
Кольцевые буферы
Больше абстракций — лучше код
Важные мелочи
Переполнение буфера
Программа на языке С
Тренировка
Выводы
Глава 11. Сокращения и приближения
Поиск по таблице
Преобразование
Отображение текстур
Классификация символов
Целочисленные методы
Прямые линии
Кривые линии
Многочлены
Рекурсивное деление
Спирали
Конструктивная геометрия
Сдвиг и наложение масок
Еще меньше математики
Приближения степенного ряда
Алгоритм Волдера
Парочка случайностей
Заполняющие пространство кривые
L-системы
Стохастические приемы
Квантование
Выводы
Глава 12. Взаимоблокировки и состояния гонки
Что такое состояние гонки?
Общие ресурсы
Процессы и потоки
Блокировки
Транзакции и детализация
Ожидание захвата ресурсов
Взаимоблокировки
Реализация кратковременного захвата ресурсов
Реализация долговременного захвата ресурсов
JavaScript в браузере
Асинхронные процессы и промисы
Выводы
Глава 13. Безопасность
Обзор безопасности и конфиденциальности
Модель угроз
Доверие
Физическая безопасность
Безопасность связей
Наше время
Метаданные и наблюдение
Социальный контекст
Аутентификация и авторизация
Криптография
Стеганография
Шифры подстановки
Шифры перестановки
Более сложные шифры
Одноразовые блокноты
Проблема обмена ключами
Криптография с открытым ключом
Прямая секретность
Криптографические хеш-функции
Цифровые подписи
Инфраструктура открытых ключей
Блокчейн
Управление паролями
Гигиена ПО
Защищайте только необходимое
Проверьте логику трижды
Поищите ошибки
Сведите к минимуму поверхности атаки
Не выходите за пределы
Генерировать хорошие случайные числа — сложно
Знайте свой код
Чрезвычайная изобретательность — ваш враг
Разберитесь с видимостью
Не переусердствуйте
Не копите
Не полагайтесь на динамическое выделение памяти
Не полагайтесь и на сборку мусора
Данные как код
Выводы
Глава 14. Машинный интеллект
Обзор
Машинное обучение
Байес
Гаусс
Собель
Кэнни
Выделение признаков
Нейронные сети
Использование данных машинного обучения
Искусственный интеллект (ИИ)
Большие данные
Выводы
Глава 15. Влияние реальных условий
Повышение ценности
Как мы до этого дошли
Краткая история
ПО с открытым исходным кодом
Creative Commons
Расцвет переносимости
Управление пакетами
Контейнеры
Java
Node.js
Облачные вычисления
Виртуальные машины
Портативные устройства
Среда разработки
Есть ли у вас опыт?
Учимся оценивать
Планируем проекты
Принимаем решения
Работаем с разными людьми
Создаем культуру поведения на работе
Делаем осознанный выбор
Методологии разработки
Проектирование
Ведение записей
Быстрое прототипирование
Разработка интерфейса
Использовать сторонний код или писать собственный?
Разработка
Серьезный разговор
Переносимый код
Управление версиями
Тестирование
Создание отчетов и отслеживание багов
Рефакторинг
Обслуживание
Позаботьтесь о стиле
Чините, а не создавайте заново
Выводы
О научном редакторе
Благодарности
Предисловие
От издательства
Введение
Почему важно программировать хорошо
Научиться писать код — только начало
Низкоуровневые знания важны
Кому стоит прочитать эту книгу?
Что такое компьютеры?
Что такое программирование компьютеров?
Кодинг, программирование, инженерия и сomputer science
Ландшафт
Структура книги
Глава 1. Внутренний язык компьютеров
Что такое язык?
Письменный язык
Бит
Логические операции
Булева алгебра
Закон де Моргана
Представление целых чисел с помощью битов
Представление положительных чисел
Сложение двоичных чисел
Представление отрицательных чисел
Представление действительных чисел
Представление с фиксированной точкой
Представление с плавающей точкой
Стандарт IEEE для чисел с плавающей точкой
Двоично-десятичная система счисления
Более простые способы работы с двоичными числами
Восьмеричное представление
Шестнадцатеричное представление
Представление контекста
Именованные группы битов
Представление текста
Американский стандартный код обмена информацией
Развитие других стандартов
8-битная форма представления Unicode
Использование символов для представления чисел
Кодировка Quoted-Printable
Кодировка Base64
Кодировка URL
Представление цветов
Добавление прозрачности
Кодирование цветов
Выводы
Глава 2. Комбинаторная логика
Задача для цифровых компьютеров
Разница между аналоговым и цифровым представлением
Почему для аппаратного обеспечения размер имеет значение
Цифровые решения для более стабильных устройств
Цифровые устройства в аналоговом мире
Почему вместо цифр используются биты
Знакомство с принципами работы электрического тока
Электрический ток на примере сантехники
Электрические переключатели
Создание аппаратного обеспечения, работающего с битами
Реле
Вакуумные лампы
Транзисторы
Интегральные схемы
Логические вентили
Повышение помехоустойчивости с помощью гистерезиса
Дифференциальная передача сигналов
Задержка распространения
Варианты выходов
Создание более сложных схем
Создание сумматора
Построение дешифраторов
Построение демультиплексоров
Построение селекторов
Выводы
Глава 3. Последовательная логика
Представление времени
Осцилляторы
Генераторы тактовых сигналов
Триггеры-защелки
Синхронный RS-триггер
Триггеры
Счетчики
Регистры
Организация памяти и обращение к памяти
Оперативная память
Постоянное запоминающее устройство
Блочные устройства
Флеш-память и твердотельные диски
Обнаружение и исправление ошибок
Аппаратное и программное обеспечение
Выводы
Глава 4. Анатомия компьютера
Память
Ввод и вывод
Центральный процессор
Арифметико-логическое устройство
Сдвиг
Исполнительное устройство
Набор инструкций
Инструкции
Режимы адресации
Инструкции кода состояния
Ветвление
Итоговый набор инструкций
Окончательный проект
Регистр команд
Передача данных и управляющие сигналы
Управление движением
Наборы команд RISC и CISC
Графические процессоры
Выводы
Глава 5. Архитектура компьютера
Основные архитектурные элементы
Ядра процессора
Микропроцессоры и микрокомпьютеры
Процедуры, подпрограммы и функции
Стеки
Прерывания
Относительная адресация
Блок управления памятью
Виртуальная память
Пространство системы и пользователя
Иерархия памяти и производительность
Сопроцессоры
Организация данных в памяти
Запуск программ
Мощность запоминающих устройств
Выводы
Глава 6. Разбор связей
Низкоуровневый ввод/вывод
Порты ввода/вывода
Нажми на кнопку
Да будет свет
Свет, камера, мотор...
Светлые идеи
2n оттенков серого
Квадратура
Параллельная связь
Последовательная связь
Поймать волну
Универсальная последовательная шина
Сети
Современные локальные сети
Интернет
Аналоговые устройства в цифровом мире
Цифро-аналоговое преобразование
Аналого-цифровое преобразование
Цифровое аудио
Цифровые изображения
Видео
Устройства взаимодействия с человеком
Терминалы
Графические терминалы
Векторная графика
Растровая графика
Клавиатура и мышь
Выводы
Глава 7. Организация данных
Базовые типы данных
Массивы
Битовые матрицы
Строки
Составные типы данных
Односвязные списки
Динамическое выделение памяти
Более эффективное выделение памяти
Сборка мусора
Двусвязные списки
Иерархические структуры данных
Хранение данных на дисковых устройствах
Базы данных
Индексы
Перемещение данных
Векторный ввод/вывод
Подводные камни объектно-ориентированного программирования
Сортировка
Создание хешей
Эффективность и производительность
Выводы
Глава 8. Обработка языка
Язык ассемблера
Языки высокого уровня
Структурное программирование
Лексический анализ
Конечные автоматы
Регулярные выражения
От слов к предложениям
Клуб «Язык дня»
Деревья синтаксического анализа
Интерпретаторы
Компиляторы
Оптимизация
Осторожнее с аппаратной частью!
Выводы
Глава 9. Веб-браузер
Языки разметки
Унифицированные указатели ресурсов
HTML-документы
Объектная модель документа
Словарь древовидных структур данных
Интерпретация модели DOM
Каскадные таблицы стилей
XML и друзья
JavaScript
jQuery
SVG
HTML5
JSON
Выводы
Глава 10. Прикладное и системное программирование
«Угадай животное», версия 1: HTML и JavaScript
Каркас прикладного уровня
Тело веб-страницы
JavaScript
CSS
«Угадай животное», версия 2: С
Терминалы и командная строка
Создание программы
Терминалы и драйверы устройств
Переключение контекста
Стандартный ввод/вывод
Кольцевые буферы
Больше абстракций — лучше код
Важные мелочи
Переполнение буфера
Программа на языке С
Тренировка
Выводы
Глава 11. Сокращения и приближения
Поиск по таблице
Преобразование
Отображение текстур
Классификация символов
Целочисленные методы
Прямые линии
Кривые линии
Многочлены
Рекурсивное деление
Спирали
Конструктивная геометрия
Сдвиг и наложение масок
Еще меньше математики
Приближения степенного ряда
Алгоритм Волдера
Парочка случайностей
Заполняющие пространство кривые
L-системы
Стохастические приемы
Квантование
Выводы
Глава 12. Взаимоблокировки и состояния гонки
Что такое состояние гонки?
Общие ресурсы
Процессы и потоки
Блокировки
Транзакции и детализация
Ожидание захвата ресурсов
Взаимоблокировки
Реализация кратковременного захвата ресурсов
Реализация долговременного захвата ресурсов
JavaScript в браузере
Асинхронные процессы и промисы
Выводы
Глава 13. Безопасность
Обзор безопасности и конфиденциальности
Модель угроз
Доверие
Физическая безопасность
Безопасность связей
Наше время
Метаданные и наблюдение
Социальный контекст
Аутентификация и авторизация
Криптография
Стеганография
Шифры подстановки
Шифры перестановки
Более сложные шифры
Одноразовые блокноты
Проблема обмена ключами
Криптография с открытым ключом
Прямая секретность
Криптографические хеш-функции
Цифровые подписи
Инфраструктура открытых ключей
Блокчейн
Управление паролями
Гигиена ПО
Защищайте только необходимое
Проверьте логику трижды
Поищите ошибки
Сведите к минимуму поверхности атаки
Не выходите за пределы
Генерировать хорошие случайные числа — сложно
Знайте свой код
Чрезвычайная изобретательность — ваш враг
Разберитесь с видимостью
Не переусердствуйте
Не копите
Не полагайтесь на динамическое выделение памяти
Не полагайтесь и на сборку мусора
Данные как код
Выводы
Глава 14. Машинный интеллект
Обзор
Машинное обучение
Байес
Гаусс
Собель
Кэнни
Выделение признаков
Нейронные сети
Использование данных машинного обучения
Искусственный интеллект (ИИ)
Большие данные
Выводы
Глава 15. Влияние реальных условий
Повышение ценности
Как мы до этого дошли
Краткая история
ПО с открытым исходным кодом
Creative Commons
Расцвет переносимости
Управление пакетами
Контейнеры
Java
Node.js
Облачные вычисления
Виртуальные машины
Портативные устройства
Среда разработки
Есть ли у вас опыт?
Учимся оценивать
Планируем проекты
Принимаем решения
Работаем с разными людьми
Создаем культуру поведения на работе
Делаем осознанный выбор
Методологии разработки
Проектирование
Ведение записей
Быстрое прототипирование
Разработка интерфейса
Использовать сторонний код или писать собственный?
Разработка
Серьезный разговор
Переносимый код
Управление версиями
Тестирование
Создание отчетов и отслеживание багов
Рефакторинг
Обслуживание
Позаботьтесь о стиле
Чините, а не создавайте заново
Выводы
备用描述
A primer on the underlying technologies that allow computer programs to work. Covers topics like computer hardware, combinatorial logic, sequential logic, computer architecture, computer anatomy, and Input/Output. Many coders are unfamiliar with the underlying technologies that make their programs run. But why should you care when your code appears to work? Because you want it to run well and not be riddled with hard-to-find bugs. You don't want to be in the news because your code had a security problem. Lots of technical detail is available online but it's not organized or collected into a convenient place. In The Secret Life of Programs, veteran engineer Jonathan E. Steinhart explores--in depth--the foundational concepts that underlie the machine. Subjects like computer hardware, how software behaves on hardware, as well as how people have solved problems using technology over time. You'll learn: • How the real world is converted into a form that computers understand, like bits, logic, numbers, text, and colors • The fundamental building blocks that make up a computer including logic gates, adders, decoders, registers, and memory • Why designing programs to match computer hardware, especially memory, improves performance • How programs are converted into machine language that computers understand • How software building blocks are combined to create programs like web browsers • Clever tricks for making programs more efficient, like loop invariance, strength reduction, and recursive subdivision • The fundamentals of computer security and machine intelligence • Project design, documentation, scheduling, portability, maintenance, and other practical programming realities. Learn what really happens when your code runs on the machine and you'll learn to craft better, more efficient code.
备用描述
Computer programming is not abstract and programs run on a machine. Knowing how computers work and how programs run on them is essential to becoming a better programmer, and understanding underlying technologies can help you develop a sense of what can go wrong. The Secret Life of Programs (formerly Foundations of Computer Programming ) fills in the gaps in computer education by giving readers a look under the hood of programming, at the machine. Readers learn how software behaves when running on hardware; how programs manipulate data in memory; how computers process languages; and how web browsers work. They'll also learn how to write efficient programs, computer security basics, and real-world considerations to have in mind when writing code
备用描述
Acknowledgments
Preface
Introduction
Chapter 1: The Internal Language of Computers
Chapter 2: Combinatorial Logic
Chapter 3: Sequential Logic
Chapter 4: Computer Anatomy
Chapter 5: Computer Architecture
Chapter 6: Communications Breakdown
Chapter 7: Organizing Data
Chapter 8: Language Processing
Chapter 9: The Web Browser
Chapter 10: Application and System Programming
Chapter 11: Shortcuts and Approximations
Chapter 12: Deadlocks and Race Conditions
Chapter 13: Security
Chapter 14: Machine Intelligence
Chapter 15: Real-World Considerations
Index
Preface
Introduction
Chapter 1: The Internal Language of Computers
Chapter 2: Combinatorial Logic
Chapter 3: Sequential Logic
Chapter 4: Computer Anatomy
Chapter 5: Computer Architecture
Chapter 6: Communications Breakdown
Chapter 7: Organizing Data
Chapter 8: Language Processing
Chapter 9: The Web Browser
Chapter 10: Application and System Programming
Chapter 11: Shortcuts and Approximations
Chapter 12: Deadlocks and Race Conditions
Chapter 13: Security
Chapter 14: Machine Intelligence
Chapter 15: Real-World Considerations
Index
备用描述
"Presents essential information about how computers work, including many broad topics, such as how computers process languages, how programs manipulate data in memory, and how web browsers work"-- Provided by publisher
开源日期
2023-06-29
We strongly recommend that you support the author by buying or donating on their personal website, or borrowing in your local library.
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
如果您在本月捐款,您将获得双倍的快速下载次数。
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.