
- •Оглавление
- •От редактора перевода
- •Модуль 1. Компьютерные системы
- •Обзор компьютерных систем
- •1.1.1. Компоненты компьютерных систем
- •Монитор
- •Эволюция компьютерных систем
- •1.2.1. Краткая историческая справка
- •Каждая из этих косточек представляет число «50»
- •Каждая из этих косточек представляет число «5»
- •Каждая из этих косточек представляет число «10»
- •Каждая из этих косточек представляет число «1»
- •Закон Мура
- •1.2.2. Применение компьютерных систем
- •Представление данных в компьютерных системах
- •1.3.1. Биты и байты
- •1.3.2. Системы счисления
- •Модуль 2. Системы аппаратного обеспечения
- •А. Материнская плата
- •2.1 Процессор и память
- •2.1.1 Процессор. Основы.
- •2.1.2 Типы памяти
- •2.1.3 Лабораторная работа: Эталонное тестирование (необязательная)
- •2.2 Внешние устройства
- •2.2.1 Присоединяемые внешние устройства
- •2.2.2 Шины
- •2.2.3 Входные/выходные устройства
- •2.3 Запоминающие устройства
- •2.3.1 Интерфейсы дисковых контроллеров
- •2.3.2 Накопитель (запоминающее устройство большой ёмкости)
- •2.4 Соединение компонентов аппаратного обеспечения
- •2.4.1 Как компоненты компьютера работают вместе
- •2.4.2 Лабораторная работа: Изучение компьютерных систем
- •2.4.3 Лабораторная работа: Конфигурацияonline
- •2.5 Повышение производительности компьютера
- •2.5.1 Закон Мура
- •2.5.2“Узкие” места (Bottlenecks)
- •2.5.3 Производительность и время ожидания
- •Модуль 1 и Модуль 2 Обзорные материалы
- •Модуль 3. Программное обеспечение операционных систем
- •Структура
- •3.1.1 Уровни программного обеспечения
- •3.1.2 Bios: Жизнь снизу
- •3.1.3 Управление процессами
- •3.1.4 Лабораторная работа: диспетчер задач (Task Manager)
- •3.2 Управление устройствами и конфигурация
- •3.2.1 Управление прерываниями
- •3.2.2 Характеристики аппаратного обеспечения
- •3.2.3 Конфигурация
- •3.2.4 Лабораторная работа: Управлениеустройствами
- •3.3. Распределение ресурсов
- •3.3.1 Виртуальная память
- •3.3.2 Совместное использование файлов и принтеров
- •3.4. Файловые системы
- •3.4.1 Организация файлов
- •3.4.2 Таблица размещения файлов (FileAllocationTable) и файловая системаNt
- •Модуль 4. Прикладное программное обеспечение
- •4.1 Основы программного обеспечения
- •4.2 Использование систем программного обеспечения
- •4.2.1 Лабораторная работа: КомандыDos
- •4.2.2 Лабораторная работа: Макросы
- •4.2.3 Лабораторная работа: Встроенные объект-приложения
- •4.3 Пакетные файлы сценариев
- •4.3.1 Расширенные функции командной строки
- •4.3.2 Команды пакетного файла
- •4.3.3 Лабораторная работа: Создание пакетного файла
- •4.4 Базы данных
- •4.4.1 Лабораторная работа: Поиск в библиотеке Конгресса
- •4.5 Проектирование программного обеспечения
- •4.5.1 Введение в разработку крупномасштабных программных систем (Large-ScaleSoftware).
- •Определе-ние /пересмотр
- •Оценка/ Тестирование
- •Планирование
- •Кодиро-вание
- •4.5.2 Модель открытого кода
- •4.5.3 Средства для создания и управления программным обеспечением
- •Модуль 3 и Модуль 4 - Материалы для проверки
- •Модуль 5. Сетевые системы
- •5.1 Основы Интернета
- •5.1.1 ТипыMime
- •5.1.2 Языки Интернет
- •5.2 Локальные и глобальные сети
- •5.3 Стратегии коммуникации
- •5.3.1 Структура клиент-сервер (Client-ServerFramework)
- •5.3.2 Равноправное соединение
- •5.4 Технологии передачи данных
- •5.5 Архитектура Интернет
- •5.5.1 Роутеры иTcp/ip
- •5.5.2 Сервис доменных имен (DomainNameService)
- •5.5.3 Способность к подключению
- •5.5.4 Провайдеры Интернет-сервиса (InternetServiceProviders)
- •Модуль 6. Безопасность компьютера
- •6.1 Угрозы безопасности
- •6.1.1 Злоумышленники: кто, зачем и как?
- •6.1.2 Кража личности и нарушение конфиденциальности (Identity Theft and Privacy Violation)
- •6.1.3 Вредоносные программные средства
- •6.1.4 Отказ от обслуживания
- •6.2 Технологии безопасности
- •6.2.1 Шифрование
- •6.2.2 Применение шифрования
- •6.2.3 Идентификация
- •6.3 Предотвращение, определение и восстановление
- •6.3.1 Система сетевой защиты (Firewall)
- •6.3.2 Средства определения вторжения
- •6.3.3 Восстановление данных
- •6.3.4 Обзор типов безопасности
- •Модуль 5 и Модуль 6 Обзорный материал
- •Приложение а. Выполнение файлаVisualBasic
- •Приложение в. Загрузка приложенияWinZip
- •Рекомендации по чтениюSsd2
4.5.2 Модель открытого кода
Пока вы работаете с Microsoft, вы не можете читать исходный код операционной системы Windows. Но, вы можете читать исходный код для операционной системы Linux, делать ее копии, даже бесплатно передавать ее. Linux – пример проекта программного обеспечения с открытым кодом (open source).
Концепция открытого кода – путь содействия развитию программного обеспечения для целого ряда независимых программистов. Обычно они – неоплачиваемые добровольцы, тратящие свое личное время. Они получают удовольствие от программирования и испытывают потребность в своем собственном кусочке программы, так что в их интересах помогать улучшать ее, добавляя новые возможности или фиксируя дефекты. Один человек или группа является координатором проекта и поддерживает официальную версию кода. Другие люди исправляют дефекты, представляют новые возможности или улучшают дизайн существующих модулей. Координаторы рассматривают и тестируют эти изменения и решают как интегрировать их в текущий код.
Защитники концепции открытого кода утверждают, что, когда код доступен для чтения то, "все дефекты – мелочь", что означает, они будут быстро кем-нибудь исправлены. Кроме того, некоторые пользователи доверяют системам с открытым кодом, так как в них сложнее скрыть злонамеренные свойства, как например, встроенные дыры в защите или механизмы, которые нарушают конфиденциальность. Когда вы запускаете программное обеспечение, чей исходный код не доступен для просмотра, вы должны надеяться, что авторы сделали ничего нежелательного для вас. Иногда, однако, они это делают.
Большинство программ сегодня все еще используют модель закрытого кода. Компании должны инвестировать большие средства для создания успешного программного продукта. Открытие кода не дало бы им возможность компенсировать затраты путем продаж. Код может также содержать то, что компания расценивает как частную технологию или торговую тайну, как например, способ улучшения работы системы базы данных, который не хотят открыть конкурентам.
Однако есть возможность заработать на программном обеспечении с открытым кодом, продавая услуги поддержки, изданные руководства или частные дополнения, которые являются дополнением продукта с открытым кодом. Несколько компаний сейчас продают Linux таким образом. Другая знаменитая система программного обеспечения с открытым кодом – браузер Mozilla Firefox. Первоначально созданная как программа с закрытым кодом, Mozilla Firefox решили превратить в браузер-систему с открытым кодом и сделать ее бесплатной. Компания зарабатывает, продавая серверное программное обеспечение и другие услуги.
Бесплатное программное обеспечение
Термин бесплатное программное обеспечение (free software)было введено Ричардом Стэллманом (RichardM.Stallman), основателемFree Software Foundation. Стэллман писал:
«Бесплатное программное обеспечение» означает свободу, без оплаты. В этой концепции, «бесплатный» означает — «бесплатное слово», но не «бесплатное пиво».
Термин «открытый код» представили в связи с неправильным пониманием употребления слова «бесплатный» (free). Концепции открытого кода и бесплатного программного обеспечения имеют много общего, но есть несколько философских различий.
Бесплатное программное обеспечение может использоваться для любой цели, копироваться, изменяться и передаваться по желанию. Для того, чтобы гарантировать сохранение всех этих свобод во всех копиях и версиях, программное обеспечение защищено лицензией. Были предложены различные виды бесплатных лицензий на программное обеспечение. Одна из них называется законная левая копия (copy left), в отличие от "авторского права" (copyright). Другая известна как GPL, для Общедоступная лицензия (GeneralPublicLicense). Лицензии отличаются техническими пунктами, но в основном, они предполагают, что люди, делающие копии программного обеспечения, должны сохранить лицензию. Они должны распространять источник наряду с объектным кодом, и они должны позволить другим делать копии. Если они изменяют программное обеспечение, они должны сделать свои изменения общедоступными с теми же ограничениями лицензии. Поэтому, никто не может взять часть бесплатного программного обеспечения и превратить его в программу закрытым кодом, потому что лицензия препятствует этому.