Купить
 
 
Жанр: Учеба

Информация к размышлению Пособие по освоению компьютерных технол

А. Комарницкий
ИНФОРМАЦИЯ К РАЗМЫШЛЕНИЮ
Пособие по освоению компьютерных технологий
и решению других реабилитационных вопросовОТ АВТОРА
ЧАСТЬ ПЕРВАЯ
В ПОГОНЕ ЗА ИНФОРМАЦИЕЙ

ГЛАВА 1 СПОСОБЫ ХРАНЕНИЯ, ПЕРЕДАЧИ И ОБРАБОТКИ ИНФОРМАЦИИ

1.1. Информация" - что это?
1.2. Как осваивать компьютерные технологии?
1.3. "Грузите апельсины в бочки!"
1.4. Систематизация и техническая обработка информации

ГЛАВА 2 НЕМНОГО О ЧИСЛАХ И ЧИСЛЕННОМ КОДИРОВАНИИ ИНФОРМАЦИИ

2.1. Числа и цифры
2.2. Что такое системы счисления и кому они нужны?
2.3. Кому нужна двоичная система счисления?
2.4. Как измерять размер информации?
2.5. На грани миров

ГЛАВА 3. РАЗМЕЩЕНИЕ ИНФОРМАЦИИ НА КОМПЬЮТЕРЕ (ФАЙЛОВАЯ СИСТЕМА)

3.1. Что такое файл?
3.2. Диск, как максимальный раздел информации
3.3. "Дерева вы мои, дерева..."
3.4. Пути и полные имена
3.5. "Из-под таинственной холодной полумаски..."

ГЛАВА 4 ПРОСТЕЙШИЕ ОПЕРАЦИИ НАД РАЗДЕЛАМИ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ

(КОМАНДЫ DOS)
4.1. "Слушай мою команду!"
4.2. Общие правила отдачи команд DOS
4.3. Работа с экраном
4.4. Работа с каталогами
4.5. Работа с файлами
4.6. Установка системной даты и системного времени

ГЛАВА 5 ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММАХ

5.1. Что такое программа?
5.2. Как работает микропроцессор компьютера?
5.3. Что такое операционная система?
5.4. BIOS ПЗУ и загрузка компьютера

ГЛАВА 6 ПРАКТИЧЕСКИЕ СВЕДЕНИЯ О ПРОГРАММАХ

6.1. Типы прикладных программ
6.2. Запуск программы из командной строки
6.3. Распространение, установка и настройка программ
6.4. Программы, входящие в комплект DOS

ГЛАВА 7 РАЗНОВИДНОСТИ ПРИКЛАДНЫХ ПРОГРАММ

7.1. Драйверы и утилиты
7.2. Текстовые редакторы и текстовые процессоры
7.3. Архиваторы
7.4. Файловые менеджеры
7.5. Вирусы и антивирусные программы
7.6. Прав ли Козьма Прутков?
7.7. Форматы и типы файлов
ОТ АВТОРА
В основу этого пособия легли материалы, излагаемые мною в
школе компьютерной грамотности при компьютерном реабилитационном
центре Одесского учебно-производственного объединения
Украинского общества слепых. Учащимися там являются люди с
проблемами зрения. Однако, материал в этом пособии изложен так,
что он может представлять некоторый интерес и для читателей с
нормальным зрением, желающих осваивать компьютерные технологии
или повысить свои знания в этой области.
Предполагается, что читатель имеет некоторые минимальные
знания о компьютере: есть поверхностное представление о его
устройстве и знакомы самые общие факты из истории его
возникновения и развития. Для приобретения таких знаний можно
прочитать электронную брошюру "Чудо в вашем доме", одним из
соавторов которой я являюсь. Отдельные её разделы, правда, в
данном пособии тоже освещаются, при чём подробнее.
Излагая материал, я пытался помочь читателю лучше понять что
такое компьютер и работающие на нём компьютерные программы,
глубже проникнуть в принципы, заставляющие его выполнять
определённые действия. Ещё я пытался помочь читателю чётче
осознать, какую роль играет информация в нашей жизни, какие
преимущества имеет тот, кто к ней правильно относится и какие
опасности грозят тем, кто недооценивает её роли. Разобраться в
этих вопросах может помочь компьютер, хотя, если о них не
задумываться, он может и усугубить эту опасность.
Много внимания в пособии уделяется работе в операционной
системе DOS и чуть меньше - в операционной системе WINDOWS.
Однако, не нужно воспринимать его, как руководство по работе в
этих операционных системах. Отдельные моменты можно
воспринимать, как иллюстрации каких-то принципов работы
компьютера и компьютерных программ, а некоторые факты могут
оказаться полезными и в практических ситуациях. Не хотелось бы,
чтобы приверженцы операционной системы WINDOWS, считающие, что
DOS - это уже позавчерашний день, сочли пособие для себя
бесполезным. Некоторые разделы они могли бы вообще пропустить,
но и этого я бы им не советовал делать, поскольку знание
досовских команд и некоторых стандартных досовских программ
может сделать их более независимыми в аварийных ситуациях.
Гораздо большее значение я придаю тому, о чём надеюсь ещё
написать во второй части пособия. Здесь предполагается уделить
внимание вопросам социальной и духовной реабилитации как
инвалидов по зрению, так и инвалидов по другим причинам, да и
тех, кто себя инвалидом вообще не считает.
Всвязи с этим, мне бы очень не хотелось, чтобы, если мне
удастся закончить пособие, оставались его незавершённые
варианты. Поэтому убедительно прошу тех, кто получил эту
электронную рукопись не от меня, либо удалить файл после
прочтения, либо сообщить мне электронный адрес, по которому я
смог бы выслать окончательный вариант пособия.
Хочу воспользоваться случаем и поблагодарить бывшего
заведующего вышеупомянутым компьютерным центром К.Г. Федько за
многочисленные полезные консультации по многим описываемым здесь
вопросам.
Буду весьма признателен всем, кто захочет высказать мне свои
замечания, пожелания или просто поделится впечатлениями от
прочитанного.
Алексей Комарницкий, Mailto:alex@altan.ms.odessa.ua
ЧАСТЬ ПЕРВАЯ
В ПОГОНЕ ЗА ИНФОРМАЦИЕЙ

ГЛАВА 1

СПОСОБЫ ХРАНЕНИЯ, ПЕРЕДАЧИ И ОБРАБОТКИ ИНФОРМАЦИИ
1.1. Информация - что это?
С первых дней рождения человек оказывается неразрывно
связанным с тем, что называют "информацией". Хоть люди чаще
всего этого не осознают, но нуждаются они в информации не
меньше, чем в обычном питании. Информация - это тоже пища, но
другой природы. Об этом свидетельствуют такие словосочетания,
как "информационный голод", "пресыщен подобной информацией" и
т.п.
Одно из важнейших предназначений человека заключается в
получении, хранении, обработке и передаче информации. При этом
человек может быть совершенно непричастным ни к шпионажу, ни к
компьютерным технологиям, ни даже к телефонным и почтовым
услугам. Человек не может жить без информации. И не нужно
считать, что этот факт приобрёл силу только в наш информационный
век. Это было истинным с того момента, когда человек появился в
нашем мире. Для нас самое благоразумное осознать этот факт и со
своей стороны выработать более ответственное отношение к
информации.
Что же это всё-таки такое "информация"? Для поиска
исчерпывающего ответа на этот вопрос я обратился к справочной
литературе. Каково было моё удивление, когда ни в словаре Даля,
ни в словаре Брокгауза и Ефрона я этого термина не нашёл. Надо
ли из этого заключить, что раньше информации не было вообще?
Конечно нет. Просто раньше её называли другими словами:
"сведения", " ""знания", "факты", "слово", "духовная пища". И
вот в современном энциклопедическом словаре я всё же нашёл
определение этого понятия.
ИНФОРМАЦИЯ (от латинского informatio - разъяснение,
изложение), первоначально - сведения, передаваемые людьми
устным, письменным или другим способом (с помощью условных
сигналов, технических средств и т.д.); с середины 20 века -
общенаучное понятие, включающее обмен сведениями между людьми,
человеком и автоматом, автоматом и автоматом, обмен сигналами в
животном и растительном мире, передачу признаков от клетки к
клетке, от организма к организму; одно из основных понятий
кибернетики. (Конец цитаты).
Почти дословное определение я нашёл в энциклопедическом
словаре на 75 тысяч слов. Вообще то замена слова "информация"
словом "сведения" хоть и способствует пониманию, но отнюдь не
добавляет строгости. Говоря языком математики, это понятие
следует принять без определения, удовлетворившись его
интуитивным пониманием.
Информация имеет нематериальную природу, хотя сама она во
многих случаях отражает материальный мир. Информацию нельзя
обработать ни при помощи слуха, ни при помощи обоняния и
осязания. В этом не поможет даже зрение, вооружённое самым
мощным микроскопом. Органы чувств человека только способствуют
приёму и передаче информации, а её обработкой занимаются
рефлекторный, чувственно-эмоциональный и мыслительный аппараты.
Информация бывает истинной или ложной. Мы не будем
уподобляться философам, которые на протяжении тысячелетий спорят
о том, что такое истина и есть ли она вообще. Мы удовлетворимся
представлением, что истинная (верная, правдивая) - это та
информация, которая соответствует действительности, а ложная -
та, которая ей противоречит. Часто бывает, что ложная информация
воспринимается человеком, как истинная. Это называется
заблуждением. Очевидная ложь не представляет ни особого
интереса, ни опасности. Куда серьёзнее, когда информация во
многих аспектах близка к действительности, но в чём-то, очень
важном, ей не соответствует. Бывает, что органы чувств
красноречиво свидетельствуют о явной истинности информации, а
она, вместе с тем, является ложной. Например, долгое время люди
не сомневались, что Солнце всходит и заходит над Землёй, хотя
сейчас почти любой дошкольник знает, что это не так.
Передача ложной информации в качестве истинной называется
обманом. Здесь следует разграничить две возможности, когда
передающий сам находится в заблуждении, и когда ему известна
истина, но он заведомо хочет ввести в заблуждение того, кому её
передаёт. В последнем случае говорят, что передаётся
дезинформация.
Для чего нужна информация? Следует прежде всего отметить,
что она принимает важнейшую роль в жизнедеятельности людей.
Верная информация после правильной обработки даёт возможность
человеку или группе людей принять лучшее решение, направленное
на получение блага или на предотвращение неприятностей.
Например, увидев на воротах надпись "Во дворе злая собака!",
человек совсем по-другому зайдёт в этот двор, чем зашёл бы без
подобной надписи. Способностью как-то обрабатывать информацию
обладают и животные. Лёгкий хруст ветки, например, может
заставить лань сорваться с места и унестись прочь.
Сколько страстей разыгралось вокруг информации за время
существования человечества! Наверное не меньше, чем вокруг
золота. Ведь бывает информация, которая могущественнее, чем
золото. Она также даёт власть и материальное благополучие.
Огромное количество человеческой крови было пролито в погоне за
информацией и при стремлении её скрыть.
Нельзя утверждать, что только в облегчении нашей жизни
заключается роль информации. Ведь мы не случайно и не по своей
воле появились в этом мире, и врядли кто-то имеет полное
представление о своём предназначении. Возможно, наша способность
обрабатывать информацию может быть задействована не только для
того, чтобы мы могли лучше прожить отмеренный нам промежуток
времени. Например, экскаватор заправляется горючим не только для
того, чтобы переезжать с места на место. Он использует горючее
ещё и непосредственно по назначению: чтобы копать землю. Или
компьютер... Он создаётся человеком и снабжается нужными
программами не только ДЛЯ того, чтобы мог нормально загружаться
и иметь нормальный взаимообмен информацией со своими
устройствами. Компьютер должен ещё приносить пользу тому, кто
его создал.
Так же, как и мы, компьютер предназначен для переработки
информации, но, в отличии от нас, это единственное его
назначение. Я считаю полезным при знакомстве с компьютерными
технологийями проводить некоторые аналогии и сравнение наших
способов хранения, обработки и передачи информации со способами
компьютера. Я вижу в этом и противоположную пользу: ближе
знакомясь с компьютером и его привычками, мы можем лучше постичь
себя: личностей, тоже предназначенных для переработки
информации.
ВОПРОСЫ И ЗАДАНИЯ
1. Назовите как можно больше синонимов слова "информация".
2. Вспомните: находились ли вы когда-нибудь в заблуждении?
Если да, то были ли у вас тогда сомнения, что информация, на
которую вы опираетесь, является ложной?
3. Вспомните: передавали ли вы когда-нибудь ложную
информацию в качестве истинной? Если да, то была ли это
дезинформация?
1.2. Как осваивать компьютерные технологии?
Хочу сразу предупредить, что компьютер всё понимает
буквально и однозначно и чётко выполняет то, что ему говорят.
Поэтому, если он вдруг делает что-то не то, то виноват не он, а
тот, кто поставил ему задачу. Мы, люди, не можем похвалиться
такой же чёткостью и исполнительностью. Уступаем мы и в
скорости. Однако, мы пока что существенно превышаем компьютер в
интеллекте и имеем ещё что-то, что всегда будет отличать нас от
компьютера, даже если его интеллект значительно возрастёт. Ведь
самая простая клетка нашего организма по своему устройству
значительно сложнее, чем самая сложная электронная микросхема. И
мне почему-то кажется, что это будет всегда.
Мы способны воспринимать всё явление целиком, что зачастую
приводит к интуитивному и даже неосознанному исправлению ошибок.
Один мой коллега часто приводит ученикам следующий пример. Если
компьютеру и паспортистке дать одно и то же задание, составить
список всех Ивановых, которые живут на Варненской и на Комарова,
то они по-разному справятся с этой задачей. Это связанно с тем,
что в само задание вкралась ошибка: здесь нельзя было
использовать союз "и". Компьютер сделает то, что его попросили.
Он будет искать тех Ивановых, которые живя на Варненской, будут
жить и на Комарова. И он окажется прав, потому что именно это
его попросили сделать. Паспортистка же в задании интуитивно
исправит ошибку и сделает не то, что ей было сказано, но то, что
хотел заказчик.
Тем, кто хочет научиться хорошо находить общий язык с
компьютером, я настоятельно советую научиться мыслить буквально
и однозначно, и при общении с компьютером использовать именно
этот способ мышления. Для этого нужно запомнить не очень широкий
запас терминов и стараться использовать их по назначению, не
заменяя теми словами, которые кажутся нам синонимами. Для этого
я вам посоветую сделать вот что. Мысленно выделите в своей
памяти свободную часть пространства. Не переживайте, что там
такой части нет. Где-то я слышал, что самый гениальный человек
использует лишь 5% потенциалов своего головного мозга.
Представьте себе, что это чистый лист бумаги. И вот, при
знакомстве с компьютерными технологиями постепенно заносите в
эту свободную часть памяти новые термины, а также определения и
принципы, устанавливающие связь между ними. Если у вас есть
возможность, то дублируйте это всё на бумаге. Обязательно
пропускайте каждое новое определение через своеобразный фильтр:
если в нём присутствуют термины, которых нет в заполняемой вами
части памяти, то либо замените их синонимами, которые там уже
есть, либо перед тем, как принять фильтруемое определение,
определите сперва незнакомый термин. Конечно должен быть
какой-то первоначальный неопределяемый набор слов, но нужно
постараться чтобы он был минимальным. При использовании таких
слов, у вас должно возникать осознание, что вы имеете дело с
неопределимым понятием, и конечно вы должны быть интуитивно
знакомы со значением этого понятия. Таким, например, как мы уже
видели, является понятие "информация".
ВОПРОСЫ И ЗАДАНИЯ
1. Как нужно было поставить задание об Ивановых, живущих на
Варненской и на Комарова, чтобы компьютер его правильно понял?
2. Ответьте сами для себя: на каких побуждениях основывается
ваше желание освоить компьютерные технологии?
1.3. "Грузите апельсины в бочки!"
Мы хорошо знаем, что продукты питания для хранения и
транспортировки нуждаются в специальных дополнительных
средствах, которые называются тарой, ёмкостями, средствами
упаковки и т.п. Крупу, муку, сахар и картофель хранят в мешках,
растительное масло - в бутылках и канистрах, овощи - в
деревянных ящиках, чай и кофе - в пачках и банках, энное
количество которых помещают в специальные картонные коробки. Эти
все средства уместно было бы назвать "носителями" того, что в
них хранится и переносится. Теперь давайте вспомним, как
собирают овощи на поле. Сборщик собирает их в ведро и затем
высыпает в ящик. Когда накапливается полный ящик, его
откладывают и берут новый. Так что в некоторых случаях для
названия средства хранения и транспортировки уместно слово
"накопитель". Ранее мы уже проводили аналогию между информацией
и обычной пищей. Теперь сравним их способы хранения. Информация
также нуждается в дополнительных средствах для хранения. Их
называют "носителями" или "накопителями" информации. Мы уже
говорили, что информация имеет нематериальную природу, а вот её
носители (накопители) всегда материальны. У человека есть
встроенный носитель информации - головной мозг, который
обеспечивает не только работу памяти, для хранения информации,
но и процесс её дальнейшей обработки. Однако, мозга недостаточно
для хранения всей нужной информации. Поэтому используются
многочисленные и разнообразные внешние носители.
Вспомните, какая информация хранится у вас дома и какие при
этом используются носители? Самое первое, что приходит в голову
- это книги, которые являются бумажными носителями информации.
Затем вспоминаются тетради и записные книжки, которые
естественно назвать бумажными накопителями информации. Потом
вспоминаются аудио и видео кассеты - магнитные носители
информации. А вот в памяти всплывает чеканка, висящая на стене -
металлический носитель информации. Кому-то может быть вспомнятся
надписи на своём или соседском заборе. Это своеобразный
деревянный накопитель информации. Этот список можно продолжить,
и, как видите, мы пока даже не коснулись компьютерных
технологий.
Сейчас рассмотрим в качестве примера один из самых древних
способов хранения информации: наскальный рисунок. Предположим,
что на нём изображён человек, у ног которого лежит убитый им
лев. Теперь представим, что на этой же скале, чуть поодаль,
красуется надпись на русском языке: "Человек убил льва".
Очевидно, что в обоих случаях сохраняется и передаётся одна и та
же информация, но также очевидно, что при этом используются
принципиально различные способы. В чём же их отличие? Носителем
информации и там, и там является скала. И там, и там возможно
использование одного и того же средства письма по камню. В обоих
случаях воспринимается информация человеком оптически, то есть
через зрение. В чём же всё-таки отличие? Если вы ещё не знаете
ответа, то я предлагаю вам прервать чтение и немного подумать
над этим вопросом.
Предполагаю, вы догадались, что в первом случае информация
оформлена в виде образа, который непосредственно воспринимается
мозгом человека. В этом случае информация понятна каждому: и
тому, кто жил тысячи лет назад, и тому, кто живёт в наше время
где-нибудь в джунглях или в Заполярье. Последний, разве что,
может не узнать льва, но всё равно поймёт, что это зверь очень
серьёзный, не хуже белого медведя. Если же пару тысяч лет назад
кто-нибудь увидел бы на скале надпись на русском языке: "Человек
убил льва", то врядли бы воспринял эту информацию. Ничего бы не
понял и современный папуас, да и большую часть членов Палаты
Лордов парламента Великобритании подобная надпись оставила бы
невозмутимыми. В чём же дело? А в том, что в данном случае
информация кодируется или, другими словами, шифруется.
Кодирование информации - это её замена последовательностью
простейших объектов, которые человек может воспринимать
посредством зрения, слуха или осязания. Понять её смогут лишь
те, кто знает шифр. В данном случае это все, кто владеет русской
письменностью.
Если мы немного задумаемся, то заметим, что почти вся
информация, с которой мы имеем дело, кодируется. Усная речь -
это кодирование информации различными звуками, и понять
(раскодировать) её может лишь тот, кто знает данный язык.
Письменность - это кодирование информации условными рисуночками:
буквами, цифрами и знаками препинания. Раскодировать её может
только грамотный человек. Брайлевская письменность для слепых -
это кодирование информации специальными рельефно-точечными
знакоместами. Раскодировать её смогут только те, кто владеет
Брайлем. Магнитофонная запись кодирование информации при помощи
намагничивания отдельных мест магнитной плёнки. Раскодировать её
можно лишь имея специальный дешифратор - магнитофон. Этот список
можно продолжить. Однако, способность людей воспринимать
информацию образно, открывает просторы и для других способов:
живопись,скульптура, фотография, кино. На фото и кино плёнках
информация так и хранится образами - кадрами. Однако, на
современной цифровой технике и на видеомагнитофонной плёнке эта
информация уже тоже кодируется.
Закодированную информацию, для её передачи на расстоянии,
часто перекодируют, используя принципиально другой способ.
Например, усную речь - информацию, закодированную при помощи
последовательности звуков, преобразуют в последовательность
электромагнитных волн, которые передаются по проводам (телефон)
или радиоволнами (радио). Чтобы принимающий информацию мог
нормально её воспринять, необходимо осуществить и обратный
процесс: преобразовать электромагнитные волны в звуковые.
Аналогично, текстовую, т.е. закодированную при помощи букв,
информацию (Штирлиц её ещё дополнительно перекодировал,
используя специальный секретный шифр) преобразуют при помощи
азбуки Морзе в последовательность сигналов двух различных
продолжительностей. Эти сигналы также передают по проводам или
посредством радиоволн.
Теперь перейдём к компьютеру. Он тоже может пользоваться
информацией, которая размещается на различных носителях: в ПЗУ,
в ОЗУ, на жёстком диске, на дискете, на лазерном диске и т.д. В
отличие от нас, компьютер всю, абсолютно всю информацию кодирует
и делает это способами, несколько отличными от наших. Тот факт,
что мы используем для кодирования информации буквы и цифры уже
свидетельствует о нашей хорошей способности восприятия образов.
Ведь буквы и цифры являются своеобразными графическими образами.
Для современного же компьютера восприятие и оформление
графической и звуковой информации является совершенно
неестественным занятием. Он конечно это делает, но только из
уважения и снисхождения к нам, нуждающимся именно в таких
способах. Например, если четырёхлетнему ребёнку достаточно
одного взгляда, чтобы отличить букву "А" от буквы "Ж", то
компьютеру для такой задачи прийдётся разбить изображение каждой
буквы на много-много белых, соответствующих фону, и чёрных,
соответствующих изображению, точек. Затем ему нужно будет
сравнивать отличаются ли соответствующие точки одной и другой
буквы. При чём, если даже какие-то точки не будут совпадать в
цвете, то всё-равно ещё нельзя утверждать, что это разные буквы.
Ведь есть тысячи всевозможных шрифтов, и могут сравниваться две
одинаковые буквы, но чуть отличающиеся по написанию. Поэтому,
чтобы окончательно справиться с данной задачей компьютеру
прийдётся ещё прилично попотеть, проводя дополнительный анализ.
И для того, чтобы писать на экране буквы, цифры, и знаки
препинания, компьютеру тоже приходится делать массу лишних
движений. Ему куда легче иметь дело с числами, поэтому он и
кодирует всю информацию при помощи чисел.
ВОПРОСЫ И ЗАДАНИЯ
1. Сравните носители и способы хранения информации,
используемые в XIX веке и в начале XXI века.
2. Назовите известные вам способы кодирования информации, о
которых не упоминалось выше.
3. Назовите известные вам способы передачи информации, о
которых не упоминалось выше. Как передают информацию животные?
4. При помощи каких объектов кодирует информацию компьютер?
1.4. Систематизация и техническая обработка информации
Как мы уже говорили, любая информация нуждается в обработке.
Как непосредственно осуществляется эта обработка, мы здесь
описать не в состоянии, потому что каждая конкретная информация
специфична и может правильно обрабатываться только теми, кто
посвящён в её специфику. Например, если на листе бумаги будет
описана шахматная партия, то далеко не каждый сможет понять, что
это вообще такое, и только шахматист , глядя на этот лист, будет
в состоянии оценить уровень игроков и сделать какие-то выводы
относительно данной партии.
Мы сейчас уделим немного внимания некоторым общим приёмам,
предназначенным для ускорения и облегчения или ограничения
доступа к нужным частям информации. Для этого информацию нужно
должным образом систематизировать. Во многих фирмах и
учреждениях систематизацией информации занимается многочисленный
штат квалифицированных работников. В основе обычной
систематизации информации лежит очень простой принцип разбиения
на разделы. Весь объём имеющейся информации разбивается по
какому-то признаку на несколько больших разделов, каждый из
которых в свою очередь делится на несколько разделов поменьше, а
те в свою очередь тоже могут делиться на подразделы и т.д.
Признаки, по которым осуществляется разбиение, могут быть очень
разные: по тематике, по отношению информации к разным периодам
времени, по разной степени секретности и т.п. Каждый раздел
пытаются размещать отдельно друг от друга. При этом желательно
составлять перечень всех разделов и их подразделов с указанием
их места размещения. При такой систематизации всегда есть
минимальные разделы, любая часть которых уже не считается
самостоятельным разделом.
Проиллюстрируем подобную систематизацию на примере большой
библиотеки. Предположим, что в ней есть читальный зал, зал
периодической печати, абонементный отдел и несколько хранилищ в
подвале. Зафиксируем какой-то момент рабочего дня библиотеки. Те
объёмы информации, которые в этот момент находились в упомянутых
помещениях, Можно считать отдельными максимальными разделами.
Минимальными разделами здесь будут книги, газеты, журналы,
возможно, древние свитки. Они являются минимальными разделами,
потому что любая их часть на руки не выдаётся никому. Рассмотрим
читальный зал. В нём есть стеллажи с книгами, которые в
хранилище не сдаются. Каждый стелаж относится к отдельному
направлению научной или художественной литературы и является
подразделом читального зала. На его полках размещены книги
отдельных авторов, и каждая полка является подразделом стеллажа.
Подразделами полок могут быть многотомники или отдельные книги,
которые уже являются минимальными разделами. Кроме стеллажей в
читальном зале есть и отдельные книги, которые в данный момент
читают посетители. Мы видим, что в больших разделах могут
находиться как минимальные подразделы, так и разделы, в свою
очередь имеющие подразделы. Подобная картина наблюдается и в
зале периодической печати, где находятся подшивки различных
газет за разные годы, а так же подборки различных журналов. При
этом на столах есть отдельные газеты и журналы. Аналогичная
ситуация возникает и в других помещениях библиотеки. Отметим
ещё, что доступ не ко всем разделам одинаковый. К читальному
залу и к залу периодической печати имеет доступ каждый, у кого
есть читательский билет. Чтобы взять книги в абониментном
отделе, нужно чтобы на читателя был заведен абонемент. К
хранилищам же имеют доступ только работники библиотеки, а
обычный читатель может заказать нужную книгу на читальный зал
или абонемент. Кстати, некоторые хранилища могут быть закрыты
для общего пользования, и доступ к к их книгам имеют только те,
у кого есть специальное разрешение.
Теперь рассмотрим некоторые действия, совершаемые с
информацией, независимо от её специфики.
1. Копирование. Мы уже говорили, что информация имеет
нематериальную природу, но хранится на материальном носителе.
Это позволяет обладателю информации разместить её же на другом,
подобном или существенно отличном носителе. Такое действие
называется копированием информации. Есть очень много
разнообразных способов копирования. Например, школьник переписал
домашнее задание у соседки-отличницы, студия звукозаписи и
печати общества слепых озвучила книгу и записала её на
магнитофонные кассеты. телеоператор записал футбольный матч и
т.д. и т.п. В настоящее время возможностей копировать информацию
становится всё больше и больше. Информация очень часто является
товаром. Когда этот товар поступает в широкую торговлю,
Способность его быть скопированным доставляет хозяину много
дополнительных хлопот. Ведь продаваемая информация может быть
результатом многолетних трудов одного разработчика или целого
колектива. Это может быть книга, фильм, запись музыкального
концерта, компьютерная программа и т.п. Назначается цена одного
экземпляра товара. Но тут несколько покупателей могут
объединиться и купить один экземпляр, а затем размножить его на
всех. Хорошо, если они покупают товар только для себя. А то
бывает ещё, что такие недобросовестные покупатели начинают
продавать копии этого товара по бросовым ценам. А что им? Они
ведь не трудились над его созданием. Им бы получить наибольшую
прибыль с этого, да и с другого подобного товара. Разработчики
пытаются всеми возможными способами защищать информацию от
несанкционированного копирования. Это существенно увеличивает их
затраты. Однако, на любые запоры есть отмычки. Государство
пытается решать эту проблему законодательным путём. В некоторых
странах это удаётся, но не во всех.
2. Удаление. Часто возникает потребность в уничтожении
лишней информации. Есть специальные механизмы, которые режут
бумагу в "лапшу". Да и огонь - неплохой способ для осуществления
этой цели. Магнитные плёнки размагничиваются, а непроявленные
фотоплёнки засвечиваются. Иногда при уничтожении информации
говорят: "Он слишком много знал!" Однако, не всегда вопрос об
удалении информации возникает всвязи с желанием её скрыть. Чаще
всего она удаляется из-за ненадобности, и при этом совсем не
обязательно её уничтожать физически. Для примера вернёмся к той
же библиотеке. Когда-то в ней самое почётное место занимала
Брежневская "Малая Земля". Прошло время, и нужда в ней пропала.
Конечно, большинство многочисленных её экземпляров сдали на
макулатуру, но не исключено, что какой-то томик завалился
куда-то за шкаф или пылится где-то на забытой полке. Реально же
книга была удалена из библиотеки, когда её вычеркнули из всех
каталогов.
3. Перемещение. Часто возникает потребность забрать
информацию из одного места и разместить в другом. В библиотеке,
например, книгу или целый стеллаж можно забрать из одного
помещения и поставить в другое. Однако, случается, что
перемещение осуществляется в два шага: сначала копирование, а
затем удаление. Например, напечатали фотографии и уничтожили
негативы.
Пользователям компьютера постоянно приходится заниматься
систематизацией информации, а также выполнять копирование,
удаление и перемещение информации с одного раздела в другой.
Компьютер под чутким руководством со всем этим хорошо умеет
справляться.
ВОПРОСЫ И ЗАДАНИЯ
1. Как вы систематизируете информацию, находящуюся в вашем
доме? Какими принципами вы руководствуетесь при систематизации?
2. Как часто вы занимаетесь копированием и перемещением
информации? Какие при этом используете средства и носители?
3. Подумайте, как можно удалить информацию, чтобы в течение
некоторого времени её ещё можно было вернуть?

ГЛАВА 2

НЕМНОГО О ЧИСЛАХ И ЧИСЛЕННОМ КОДИРОВАНИИ ИНФОРМАЦИИ
2.1. Числа и цифры
Надеюсь, что вы чётко представляете, чем числа отличаются от
цифр. Числа - это математические объекты. Они используются для
счёта отдельных предметов, измерения расстояний и некоторых
других физических величин. Они имеют нематериальную природу, но
сами по себе, в отрыве от других объектов, ещё не могут
считаться информацией. Так вот, даже очень древние компьютеры
могли с одного своего мимолётного электронного взгляда
воспринять число, находящееся в диАпАзоне от нуля до двухсот
пятидесяти пяти, а двух таких взглядов им было достаточно, чтобы
воспринять число, непревышающее шестидесяти пяти тысяч пятьсот
тридцати пяти. Нам же подобное качество не свойственно. Если
наблюдательному человеку покажут иллюстрацию к известной сказке
Пушкина, на которой изображён дядька Черномор, выходящий на
берег со своей командой, то этот человек сразу оценит
необыкновенную цветовую гамму пенящейся морской волны. Затем по
расположению солнца он поймёт, что уже полдень и должно быть
очень жарко. Клубящиеся белые облака на необычайно лазурном небе
напомнят ему белогривых лошадок, которые легко и весело несутся
по свету. И одновременно со всем этим он увидит много-много
бородатых голов в железных шапках. Если он плохо знает сказку и
захочет узнать их количество, то ему прийдётся считать, а потом
для проверки пересчитывать, а получив разные результаты,
начинать всё сначала. А вот ещё один пример. Человек с первого
взгляда может узнать треугольник, четырёх, пяти и шести
угольник. Если КОЛИЧЕСТВО вершин будет немного больше, то для
того, чтобы его определить, прийдётся мысленно разбивать фигуру
на две части, а при ещё большем количестве вершин, их просто
прийдётся пересчитывать. Таким образом, люди не могут
воспринимать и хранить численную информацию в непосредственном
виде. Для этого приходится числа кодировать специальными
значками, которые называются цифрами. Так что цифры - это
значки, т.е. рисуночки, изображения, и не стоит их путать с
числами, которые имеют совершенно другую природу. Не нужно,
например, путать число "пять" с цифрой "5", которой это число
обозначается при написании.
ВОПРОСЫ И ЗАДАНИЯ
1. Сколько богатырей должно было быть на иллюстрации? Это
число или цифра?
2. Из оболочки головки голландского сыра извлекли
пластмассовую тройку. Это число или цифра?
2.2. Что такое системы счисления и кому они нужны?
Я считаю, что если вы осваиваете компьютерные технологии, то
вам нужно было бы хорошо разобраться с этим вопросом. Это не
значит, что впоследствии, при работе с компьютером, вам
постоянно прийдётся выполнять какие-то расчёты по переходу от
одной системы счисления к другой. Очень даже возможно, что вам
вообще больше не прийдётся возвращаться к этой теме. Однако, на
данном этапе, оторвавшись на какое-то время от привычной для вас
системы счисления и прочувствовав, что эти системы могут быть
очень разные, вы сможете лучше понять компьютер, что поможет вам
вдальнейшем крепче с ним сдружиться. Настоятельно советую читать
этот раздел неспеша, по предложениям, пытаясь во всём
разобраться. Не спешите делать вывод, что всё это слишком сложно
и мутно. Это не так. Просто материал не совсем привычный, что
может вызвать сложности даже у очень толковых учеников. Однако,
немного усердия и всё становится ясным и простым. Вспомните о
совете отложить в сторону ваши знания и выделитьв вашем сознании
чистую страничку. Сейчас можно было бы воспользоваться этим
советом.
Итак, что же всё-таки такое система счисления? Это условный
способ записи чисел при помощи специальных значков, называемых
цифрами. Из средней школы мы знаем, что есть даже разные подходы
к осуществлению данной задачи: римский и арабский. И при одном,
и при другом подходе число для записи раскладывается на
отдельные составляющие, которые в сумме дают наше число. В
римском способе используется и вычитание, если соответствующие
цифры пишутся не справа, а слева. Мы вдальнейшем будем
использовать только арабский способ и увидим, что он тоже не
однозначный, а зависит от того, какое число условились считать
основанием системы счисления.
В наше время во всех странах людьми используется десятичная
система счисления. Это значит, что её основанием является число
десять. В этой системе счисления используются десять цифр: 0, 1,
2, 3, 4, 5, 6, 7, 8, 9. Только десять чисел записываются при
помощи одной цифры, а для представления других чисел уже нужно
две и больше цифр. Основание системы (внашем случае число
десять) определяет последовательность чисел, которые считаются
"круглыми". Первое круглое число при любом основании - это
единица, а каждое следующее круглое число получается из
предыдущего, умножением его на основание системы. Таким образом,
в десятичной системе круглыми считаются следующие числа:
единица, десять, сто, тысяча, десять тысяч, сто тысяч и т.д. Как
видите, мы берём не все числа, которые в народе считаются
круглыми, а кое-что оставляем только для юбилеев и серебряных
свадеб.
Каждому круглому числу в записи любого числа соответствует
своё место, которое называется разрядом и в котором записывается
какая-то цифра по правилу, приведенному чуть ниже. При этом
разряды больших круглых чисел находятся левее разрядов меньших.
Круглых чисел бесконечное число. Поэтому, чтобы запись числа не
была бесконечной, все первые нули в записи ненулевого числа
пропускаются.
Теперь возьмём любое число, например пятнадцать тысяч триста
семьдесят один и на примере увидим, как заполняются
соответствующие разряды. Всем круглым числам, которые больше
нашего числа, ставится в соответствие цифра "0". и так как эти
нули крайние, то они вообще не пишутся. Таким образом, у нас
реально будут заполнены разряды круглых чисел, которые меньше
нашего числа: десять тысяч, тысяча, сто, десять, один. Как
видим, для записи нашего числа нужно пять разрядов. Представьте
себе табло из пяти окошек, в каждом из которых можно зажечь
нужную цифру. Будем постепенно заполнять его слева направо.
Первое окошко - это разряд круглого числа десять тысяч.
Посмотрим, сколько раз число десять тысячь поместится в нашем
числе пятнадцать тысяч триста семьдесят один. Видим, что
поместится оно всего один раз. Ведь два раза по десять тысяч -
это уже будет двадцать тысяч, что больше нашего числа. Теперь
давайте себе представим, что нам нужно погрузить наше число в
поезд из пяти вагонов, в которых возят соответствующие круглые
числа. У кого не хватает воображения грузить в вагоны такой
необычный груз, представьте себе, что вы грузите что-то более
материальное, например, бутылки. При этом в первый вагон
принимают только заполненные контейнеры, вмещающие десять тысяч
бутылок (десятки тысяч), во второй - ёмкости поменьше: всего по
тысяча бутылок (тысячи). В третий вагон грузятся ящики по сто
бутылок (сотни), в четвёртый - по десять (десятки), а в пятый -
отдельные бутылки (единицы). Вот мы подходим с нашим числом к
первому вагону. В него грузят только десятки тысяч. Мы уже
заметили, что у нас только один подобный груз. Мы запихиваем его
в вагон и в первом окошке табло зажигаем цифру "1", которая
свидетельствует, что в первый вагон мы поместили только один
десяток тысяч. Сколько же у нас осталось в наличии? Простейший
арифметический расчёт показывает, что осталось пять тысяч триста
семьдесят один. Это и называется остатком от деления нашего
числа на десять тысяч. Несём мы этот остаток ко второму вагону.
В него грузят тысячи. Сколько у нас в наличии полных тысяч? А их
пять. Грузим их в вагон и во втором окошке табло зажигаем цифру
"5". Какой у нас остаток? А осталось у нас число триста
семьдесят один. Несём его к третьему вагону. В него грузят
сотни. Сколько у нас на руках полных сотен? Всего три. Грузим их
и в третьем окошке табло зажигаем цифру "3". После погрузки
первых трёх вагонов у нас осталось число семьдесят один. Идём к
четвёртому вагону. В него грузят десятки. Видим, что у нас
полных десятков семь. Запихиваем их в вагон и в четвёртом окошке
табло зажигаем цифру "7". После данной операции у нас осталась
только одна единичка. Подходим к пятому вагону, пристраиваем её
там и в пятом окошке табло зажигаем цифру "1". Погрузка
закончена, и теперь мы уже можем вздохнуть с облегчением. А на
табло красуются пять цифр: 1, 5, 3, 7 и 1. Записанные подряд они
и образуют десятичное представление нашего числа 15371.
Предполагаю, что кое-кто может почувствовать себя обманутым.
Что-то вычисляли, что-то куда-то грузили и записывали, и, в
конце концов, получили то, что и так знали ещё с начальных
классов. У меня иногда встречаются ученики, которые в данном
случае утверждают, что это всё они могут сделать намного проще.
Когда я интересуюсь, как именно, то получаю ответ: "Вот так
прямо взять и записать". Когда же я пытаюсь выяснить, почему
вдруг это число можно так записать, то мне объясняют, что знают
это уже давно, да и вообще это любой дурак знает. На самом деле
этот ученик когда-то в своё время просто привык, что числа
записываются именно таким образом, а вот почему это так
делается, никогда не задумывался. Тем, кто плохо понял наши
рассуждения о круглых числах и погрузку их в вагоны, я советую
вернуться и хорошо разобраться с этими манипуляциями. Иначе, при
переходе к системе счисления с другим основанием вы ничего не
поймёте. Мы же пойдём дальше.
То, что люди выбрали в своё время десятичную систему
счисления, не означает, что эта система самая лучшая. В прошлом
использовались системы счисления и с другими основаниями.
Например, от двенадцатиричной системы нам в наследство осталась
дюжина. Давайте попробуем уяснить себе, что собой представляет
эта система счисления. Понятно, что её основанием является число
двенадцать. В двенадцатиричной системе используется двенадцать
цифр и только двенадцать чисел записываются при помощи одной
цифры. Для записи остальных чисел приходится использовать две и
большее количество цифр. Десятичная система счисления
предоставила в наше распоряжение всего десять цифр. Мы их уже
перечисляли. Не хватает ещё двух цифр для обозначения чисел
десять и одиннадцать. Напомню, что цифры - это специальные
значки (рисуночки), применяемые для записи чисел. Чтобы не
придумывать каких-то своих значков, поступим, как принято
поступать в подобных случаях: в качестве цифры, обозначающей
число десять, возьмём английскую букву "A", а буква "B" будет у
нас цифрой одиннадцать. Теперь выясним, какие числа в этой
системе счисления будут круглыми. Вспоминаем, что единица в
любой системе круглое число, а другие круглые числа получаются
умножением предыдущего круглого числа на основание системы, в
данном случае на число двенадцать. Итак, круглыми будут числа:
один, двенадцать, сто сорок четыре, тысяча семьсот двадцать
восемь, двадцать тысяч семьсот тридцать шесть и т.д. Мы
намеренно называем эти числа словами и не записываем в привычном
нам виде, поскольку эти записи будут соответствовать десятичной,
а не двенадцатиричной системе. Здесь тоже каждому круглому числу
соответствует разряд - место, в которое при записи числа
записывается нужная цифра. Если круглые числа превышают
записываемое число, то им соответствует цифра "0", но, чтобы
количество цифр в числе было конечно, первые нули вообще не
записываются, хотя, при необходимости, их можно приписывать
слева в записи числа столько, сколько нужно.
В качестве упражнения представим в двенадцатиричном виде
число пять тысяч сто тридцать четыре. Видим, что круглое число
двадцать тысяч семьсот тридцать шесть уже больше нашего числа.
Ему и тем круглым числам, которые больше его, соответствует
цифра "0". Эти нули можно не писать. Таким образом, реально в
записи нашего числа используется четыре разряда, соответствующих
круглым числам тысяча семьсот двадцать восемь, сто сорок четыре,
двенадцать и один. Опять представим табло из четырёх окошек и
поезд из четырёх вагонов. В первый вагон грузятся круглые числа
тысяча семьсот двадцать восемь. Сколько таких целиком поместятся
в нашем числе пять тысяч сто тридцать четыре? Если тысяча
семьсот двадцать восемь умножить на три, то получим число, чуть
большее нашего. Таким образом у нас есть только два таких
круглых числа, которые мы грузим в первый вагон и в первом
окошке табло записываем цифру "2". У нас останется число тысяча
шестьсот семьдесят восемь. Во второй вагон грузятся числа сто
сорок четыре. Мы таких при себе имеем одиннадцать штук. Грузим
их в вагон и во втором окошке табло зажигаем цифру "B". На руках
у нас осталось число тысяча шестьсот семьдесят восемь минус
одиннадцать умножить на сто сорок четыре, что равняется
девяносто четыре. В третьем вагоне возят дюжины. У нас их всего
семь. Грузим их и в третьем окошке табло зажигаем цифру "7". У
нас осталось число десять. Это и есть количество единиц, которые
мы подсаживаем в четвёртый вагон и в четвёртом окошке табло
зажигаем цифру "A". Готово! Число в поезде, а на табло красуется
его двенадцатиричное представление: 2_B_7_A. Цифры в
недесятичных представлениях чисел мы будем отделять чёрточкой.
Это не является общепринятой нормой. Однако, если этого не
делать, то говорящие программы для незрячих будут их называть
так, как произносятся числа, соответствующие данной записи в
десятичной системе счисления. Например, число двенадцать в
двенадцатиричной системе представляется двумя разрядами: одна
дюжина и ноль единиц. Число запишется при помощи двух цифр: 1_0.
Как видите, число двенадцать в двенадцатиричной системе
записывается так же, как число десять в десятичной. Если не
ставить разделителя между цифрами, то говорящие программы будут
называть единицу с нулём словом "десять", а это будет на самом
деле число двенадцать, но в двенадцатиричной системе. Кстати, в
системе счисления с любым основанием само основание всегда
записывается одинаково: 1_0. Все же остальные круглые числа
всегда представляются в виде единицы с несколькими нулями. Так
число сто сорок четыре в двенадцатиричной системе - это 1_0_0, а
тысяча семьсот двадцать восемь - 1_0_0_0.
Сейчас попробуем перевести в восьмиричную систему число сто
сорок восемь. В восьмиричной системе используется восемь цифр и
только восемь чисел записывается при помощи одной цифры. Для
записи остальных чисел уже нужно больше цифр. Например, число
восемь - основание системы, записывается двумя цифрами: 1_0.
Круглыми в такой системе счисления будут числа один, восемь,
шестдесят четыре, пятьсот двенадцать и т.д. Сами они в этой
системе счисления будут записываться следующим образом: 1, 1_0,
1_0_0, 1_0_0_0 и т.д. Круглое число пятьсот двенадцать уже
больше нашего числа. Поэтому у нас реально будет задействовано
три разряда, соответствующих круглым числам шестдесят четыре,
восемь и один. В числе сто сорок восемь число шестдесят четыре
целиком помещается дважды. Поэтому первая цифра в записи числа
будет "2". Остаётся число сто сорок восемь отнять два раза по
шестдесят четыре, что равно двадцати. Второе круглое число
восемь в этом остатке тоже помещается целиком лишь два раза. Так
что вторая цифра в записи числа тоже "2". Теперь остаток равен
четырём единицам. Поэтому третья цифра в записи - "4". Таким
образом число сто сорок восемь в восьмиричной системе запишется
при помощи трёх цифр: 2_2_4.
Теперь читателю предлагается самостоятельно представить
число сорок пять в шестиричной и в шестнадцатиричной системах
счисления. Как вы понимаете, в последней системе не достаёт уже
не двух, а шести цифр, которые соответствуют числам от десяти до
пятнадцати. В этом случае тоже следует в качестве недостающих
цифр взять первые буквы английского алфавита: "A", "B", "C",
"D", "E", "F".
Сейчас рассмотрим обратную задачу. Требуется назвать число
словами и записать его десятичное представление, если известно,
что в семиричной системе оно представляется тремя цифрами 4_2_5.
В семиричной системе используется семь цифр и только семь чисел
записываются при помощи одной цифры. Для представления остальных
чисел нужно два и больше разрядов. Если бы, например, в
представлении числа оказалась цифра , "7", или "8", или "9", то
можно было бы наверняка утверждать, что используется
несемеричная система.
Круглыми в семеричной системе будут числа один, семь, сорок
девять, триста сорок три и т.д. В нашем числе три разряда. Они
соответствуют круглым числам сорок девять, семь и один. Круглому
числу сорок девять соответствует цифра "4". Это значит, что
сорок девять может целиком поместиться в нашем числе четыре
раза. Другими словами, из первого вагона нам выдадут четыре
контейнера по сорок девять бутылок в каждом. Четыре умножить на
сорок девять равно сто девяносто шесть. Круглому числу семь
соответствует цифра "2". Это значит, что из второго вагона нам
должны выдать два ящика по семь бутылок в каждом. Два умножить
на семь равно четырнадцать. Последняя цифра "5" в семиричном
представлении числа говорит о том, что единиц берётся пять, т.е.
из последнего, третьего, вагона нам выдают пять одиноких
бутылок. Итак, четыре раза по сорок девять прибавить два раза по
семь и ещё прибавить пять раз по одному равно сто девяносто
шесть плюс четырнадцать плюс пять, а это равно двести
пятнадцати. Как мы знаем, в десятичной системе счисления это
число записывается так: 215.
ВОПРОСЫ И ЗАДАНИЯ
1. Что такое система счисления?
2. Назовите систему счисления, в которой число двадцать пять
будет действительно круглым.
3. Можно ли рассмотреть систему счисления с основанием один?
4. Назовите наименьшее основание, по которому можно
построить систему счисления.
5. Переведите число семьсот сорок три в пятиричную,
шестиричную, девятиричную и тринадцатиричную системы.
6. Какое число больше: то, которое в восьмиричной системе
имеет представление 3_1 или то, которое в девятиричной системе
имеет представление 2_8?
2.3. Кому нужна двоичная система счисления?
В предыдущем разделе мы видели, что при переходе к системе
счисления с меньшим основанием разнообразие цифр уменьшается.
При этом количество разрядов, необходимых для записи числа,
может увеличиться. Если вы выполнили самостоятельное задание из
предыдущего раздела по представлению числа сорок пять в
шестиричной и шестнадцатиричной системах, то вы заметили, что
это число в шестиричной системе занимает три разряда, а в
шестнадцатиричной - два. Если мы это число представим в троичной
системе, то оно займёт уже четыре разряда, а в двоичной - шесть.
Двойка - это самое маленькое возможное основание системы
счисления. Возникает вопрос: нужна ли вообще кому-нибудь
двоичная система, в которой представления чисел имеют такие
длинные записи?
Давайте представим себе табло, состоящее из нескольких
окошек, на котором, как в предыдущем разделе, мы будем
изображать записи чисел. Вспомним, что в каждом окошке
зажигается одна цифра, соответствующая определённому разряду.
Для записи представления чисел в системах счисления с небольшими
основаниями нужно иметь табло с большим количеством окошек.
Однако, требования к возможностям самих окошек при этом
уменьшаются. Например, если в окошках могут записываться только
обычные цифры, то на таком табло уже нельзя записывать
представления чисел в системах счисления с основаниями больше
десяти. Если нам нужно изображать числа в системе с основанием
семь, то достаточно потребовать от табло, чтобы у его окошек
была возможность показывать только семь цифр: "0", "1", "2",
"3", "4", "5", "6". Для показа чисел в двоичной системе табло
должно уметь зажигать в своих окошках только две цифры: "0" и
"1". Давайте пофантазируем и попробуем представить устройство
такого табло.
Один из возможных вариантов, когда электрические лампочки
расположены близко друг к другу и заполняют собой каждое окошко
табло. Для получения нужного изображения на некоторые лампочки
подаётся электрический ток, а остальные остаются выключенными.
Для того, чтобы такое изображение было достаточно качественным,
нужно чтобы в каждом окошке было по крайней мере шестдесят
четыре лампочки: восемь рядов по восемь лампочек в ряду.
Примерно таким же образом изображаются символы на экране
компьютерного монитора: на некотором фоне изображаются маленькие
точечки другого цвета, называемые пикселами. Для работы такого
табло нужно ещё одно устройство контроллер, которое, когда
требуется изобразить тот или иной символ, отдаёт команду подать
питание на нужные лампочки и убрать его с остальных. Уменьшение
количества используемых цифр существенно уменьшает требования к
возможностям контроллера.
При использовании системы счисления с основанием восемь и
меньше, довольно эффективным становится принципиально иной
способ устройства подобного табло. Это способ замены цифр чем-то
другим, например цветом. Представим теперь, что в каждом окошке
табло вмонтировано по семь лампочек, раскрашенных в разные цвета
радуги. Заранее можно договориться, что ситуация, когда все
лампочки в окне выключены, соответствует цифре "0". Когда
зажжена красная лампочка, будем считать, что это то же, что в
окне цифра "1", оранжевая - "2", жёлтая - "3" и т.д. Думаю, все
понимают, что устройство такого табло гораздо проще, чем табло с
шестьюдесятью четырьмя лампочками в каждом окне. Можно
представить себе и музыкальное табло, когда в восьмиричном
представлении числа цифры заменяются определёнными нотами. В
этом случае представление числа есть некоторая мелодия, и
человек с абсолютным слухом, немного потренировавшись, вполне
мог бы воспринимать числа на слух и передавать их при помощи
музыкального инструмента.
Мы уделяем столько внимания табло, потому что это
электро-механическое устройство, с помощью которого можно
хранить и передавать информацию, кодируемую при помощи чисел .
Поскольку компьютер сам является техническим изделием, то ему
для приёма, хранения и передачи информации и нужно что-то
подобное. Возникает только вопрос: по какому принципу это табло
строить и в какой системе счисления удобнее всего представлять
на нём числа. Конечно очевидно, что наглядное табло с
шестидесятью четырьмя лампочками в каждом окне здесь будет очень
неудобным. Более приемлемым представляется табло с цветными
лампочками. Для чтения компьютера с такого табло можно было бы
даже использовать фотодиоды, которые вырабатывают электрический
ток только на какой-то конкретный цвет. Тут конечно
предпочтительнее уже не десятичная система, а, по крайней мере,
восьмиричная. Ведь различать разные оттенки одного цвета - это
уже более серьёзная задача, чем просто отличать цвета. Здесь,
кстати, вместо цветных лампочек можно было бы использовать
простые электрические контакты, а специальное устройство,
считывающее информацию с табло, должно только фиксировать, на
каком из контактов, соответствующих данному разряду, появился
электрический ток. Подобное считывающее устройство должно быть
достаточно сложным, чтобы заниматься таким анализом. Ещё при
такой системе трудно себе представить, как можно хранить большие
объёмы информации. Всё существенно упрощается, если уменьшать
количество задействованных цифр, то есть переходить к системам
счисления с меньшим основанием.
Совсем простая ситуация возникает, когда числа на табло
представляются в двоичной системе. Ведь в качестве окошка такого
табло можно рассматривать одну лампочку и не обязательно
цветную. Если лампочка горит, то значит в данном разряде цифра
"1", а выключенная лампочка - это цифра "0". Хотя в двоичной
системе и задействуется большее количество разрядов, зато
наблюдается явная экономия на лампочках. Кстати, сами лампочки
нами привлечены для наглядности, чтобы мы лучше смогли понять
компьютер. Ему лампочки чаще всего не нужны. Достаточно просто
иметь на каждый разряд по электрическому контакту. Если на
контакт подаётся ток, то данному разряду соответствует цифра
"1", А если ток не подаётся, то это цифра "0". Чаще бывает, что
ток подаётся на все контакты, но на одни большего напряжения, а
на другие меньшего.
Были, правда, времена, когда и лампочки активно
использовались в процессе передачи информации компьютеру. В
эпоху больших ЭВМ были широко распространены перфокарты и
перфоленты. Картонная перфокарта вставлялась в специальную щель
считывающего устройства. Внутри устройства её узенькая полоска
освещалась источником света. По другую сторону от карты в этом
же устройстве параллельно освещаемой полоске располагалось
несколько фотодиодов. Таким образом перфокарта разделяла
источник света и фотодиоды, но на ней в нужных местах другим
устройством перфоратором предварительно пробивались отверстия.
Таким образом, свет всё-таки мог проникать по другую сторону от
карты, но только через эти отверстия. На какие-то фотодиоды свет
попадал, а на другие нет. Так что одни фотодиоды передавали
компьютеру электрический ток и это соответствовало цифре "1", а
другие не передавали, что соответствовало цифре "0". Так
компьютером считывалось число в двоичной системе. Затем
перфокарта немного протягивалась, и между источником света и
фотодиодами уже оказывалась другая её полоска, на которой было
записано другое число. Всё происходило значительно быстрее, чем
мы здесь это описываем. Что-то подобное происходило и с
перфолентой.
Двоичная система удобна не только для передачи,но и для
хранения информации. На каком-то носителе размечается доступное
пространство, выделяются места для разрядов и определяется
количество разрядов, выделяемых на запись одного числа. После
этого уже можно записывать информацию. Для этого необходимо в
нужных разрядах что-то разместить. Неважно что: то, что легко
размещается в отдельных точках данного носителя и легко потом
чем-то считывается. Так вот, наличие этого "чего-то" будет
означать, что в данном разряде находится цифра "1", а его
отсутствие показывает, что в разряде находится цифра "0".
Подобная ситуация была в случае с перфокартой. Там этим "что-то"
было отверстие, через которое проникает свет.
Вообще-то носители для такого хранения информации могут быть
очень разные. И они не обязательно по стереотипу с листом писчей
бумаги должны иметь прямоугольную форму. Это может быть,
например, нитка, намотанная на катушку. Каждый миллиметр такой
нитки - это конкретный разряд. Если мы его закрасим краской, то
это будет единица, а если оставим незакрашенным, то ноль.
Договоримся ещё, что на запись одного числа выделяется восемь
разрядов. Таким образом, отмотав восемь миллиметров и считав их,
мы получим первое записанное число. В следующих восьми
миллиметрах будет записано второе число и т.д. Этот пример с
ниткой мы тоже взяли для наглядности. Компьютеру будет гораздо
приятнее работать с магнитной лентой, у которой отдельные
участочки намагничиваются.
Подобные носители информации могут иметь и круглую форму.
Такими являются магнитные диски: винчестеры и дискеты. Для
записи информации их нужно предварительно отформатировать:
разбить на дорожки, ещё называемые треками, и секторы. Дорожки
имеют вид концентрических окружностей разных радиусов, а секторы
- это части диска, заключённые между двумя радиусами. Для
сравнения представим себе стадион. Не будем обращать внимание на
то, что он не совсем круглой формы, а сосредоточимся на местах,
где сидят зрители. Ряды подобны дорожкам на магнитных дисках, а
трибуны - секторам. Дорожки нумеруются, начиная с нулевой, а
секторы - с первого. Нулевой является самая дальняя от центра
дорожка. На дорожках выделяются места для разрядов, подобно
тому, как на рядах стадиона выделяются места для зрителей.
Магнитная головка, передвигаясь параллельно поверхности диска,
намагничивает в нужных местах кусочки дорожек, подобно тому, как
на какие-то места садятся зрители, а какие-то остаются
свободными. Намагниченные части соответствуют единице, а
остальные нулю. Запись информации на магнитный диск начинается с
нулевой дорожки. Сначала записывается та её часть, которая
относится к первому сектору, затем та, что находится во втором и
т.д. Когда нулевая дорожка заполнится, запись продолжается на
первой, опять таки начиная с первого сектора.
Ещё один носитель, имеющий круглую форму - это лазерный
диск. Используются разные способы записи информации на лазерный
диск, но во всех случаях на диске есть спиралевидная дорожка, на
которой в нужных местах наносятся специальные штрихи,
соответствующие единице. При считывании информации специальным
устройством CD-ромом тонкий луч света перемещается вдоль дорожки
и, встретив штрих, отражается от поверхности диска, а не найдя
его, поглощается. Это очень похоже на ту нитку на катушке, на
которой единичкой считался закрашенный миллиметр, а нулём -
незакрашенный.
Сейчас, когда мы прониклись важностью двоичной системы,
давайте поупражняемся в представлении в ней чисел. Круглыми
здесь являются числа: один, два, четыре, восемь, шестнадцать,
тридцать два, шестдесят четыре, сто двадцать восемь, двести
пятдесят шесть, пятсот двенадцать, тысяча двадцать четыре и т.д.
Возьмём любое число, например, сто шестдесят семь. Круглым
числам, начиная с двести пятидесяти шести, соответствует цифра
"0", которую в представлении числа писать не нужно. Поэтому
реально в записи числа будет восемь разрядов. Другими словами,
заданное число бутылок разместится в восьми вагонах. Круглому
числу сто двадцать восемь соответствует цифра "1", поскольку
один контейнер, вмещающий такое количество бутылок заполниться
целиком, а на другой нам их уже не хватит. Остаётся остаток
тридцать девять, с которым мы направимся к следующему вагону. На
нём написано круглое число шестдесят четыре - именно столько
бутылок вмещают контейнеры, загружаемые в этот вагон. Видим, что
наш остаток не может полностью заполнить и этот контейнер.
Поэтому во втором разряде запишется цифра "0". Круглое число
тридцать два уже меньше нашего остатка. Следовательно, ему
соответствует цифра "1". Другими словами, один контейнер с
тридцатью двумя бутылками загрузится в третий вагон. Теперь в
остатке имеем число семь. Так как Круглые числа шестнадцать и
восемь больше семи, то им соответствует цифра "0". Ведь мы не
сможем полностью заполнить не только ящик четвёртого, но и
пятого вагона. Круглое число четыре меньше семи. Поэтому ему
соответствует единица. В остатке будет число три. Круглое число
два меньше трёх. Поэтому ему соответствует цифра "1". Остаётся
единица, которая и занимает последний разряд. Таким образом,
двоичное представление числа сто шестьдесят семь имеет вид:
1_0_1_0_0_1_1_1.
ВОПРОСЫ И ЗАДАНИЯ
1. Попробуйте самостоятельно объяснить кому-нибудь что такое
двоичная система счисления: Какое у неё основание? Сколько
различных цифр в ней используется? Сколько есть чисел, которые в
двоичной системе имеют лишь один разряд? Назовите первых десять
чисел, которые в этой системе являются круглыми.
2. Переведите в двоичную систему числа двадцать пять,
девяносто один, семьсот сорок три.
3. Найдите самое большое число, в двоичном представлении
которого заполнено восемь разрядов. Запишите его представления в
двоичной и десятичной формах.
4. Что нужно для того, чтобы разместить информацию,
закодированную числами, представленными в двоичной системе, на
некоторый носитель? Попробуйте это проиллюстрировать, выделив в
качестве носителя часть вашего стола, заранее отделив на ней
места для разрядов нескольких чисел. Подобную разметку можно
произвести, например, расположив вертикально на одинаковых
расстояниях друг от друга несколько тонких продолговатых
предметов: вязальных спиц, карандашей и т.п. Разместите на этом
носителе один под другим двоичные представления чисел,
полученные в заданиях 2 и 3. В качестве единиц используйте
какие-то небольшие предметы, скажем монетки или пуговицы,
размещая их в соответствующие разряды, а там, где нужно
поставить "0", оставляйте разряд незанятым. Разместите там же
любое другое число и переведите его в десятичную систему.
2.4. Как измерять размер информации?
Вспоминаю далёкое детство, когда учительница задавала нам
выучить наизусть на выбор одно из двух стихотворений. Я тогда
первым делом смотрел, какое из них меньше. Есть ещё одно
воспоминание, примерно той же давности. Мультфильмы шли по
телевидению в те времена не так часто, как сейчас: было всего
две телевизионные программы. Поэтому дети их ждали с
нетерпением. Когда я, читая программу передач, наталкивался на
сборник мультфильмов, тут же смотрел, когда начнётся следующая
передача. Таким образом я выяснял много ли будет мультфильмов. И
в первом и во втором случае я измерял информацию, но делал это
разными способами. В первом случае определял, какое из
стихотворений занимает меньше места на бумажном носителе, а во
втором - как долго осуществляется передача информации. В обоих
случаях я достигал нужного результата. Однако, далеко не всегда
меньшая по размеру информация занимает на носителе меньше места,
и совсем не обязательно, что она быстрее передаётся. Когда мы
говорим, что книга имеет размер около трёхсот страниц, то её
настоящий размер этим передаётся очень приблизительно. Ведь
кроме количества страниц есть ещё такой фактор, как их формат.
Кроме формата страниц есть и размер шрифта, и межстрочный
интервал. Так что в одной книге с тремястами страницами
информации может быть в два, а то и в четыре, раза больше, чем в
другой, с таким же количеством страниц. В начальных классах для
измерения скорости чтения учащихся используется такой
показатель, как количество слов в тексте. Это показатель более
объективный, но всё-равно не очень точный: ведь слова имеют
разную длину. Наверное самым точным показателем является
количество символов в тексте. Однако, далеко не любая информация
имеет этот показатель. Если, например, в книге много картинок,
или графиков и диаграмм, то как измерять их? По геометрическим
размерам, или по количеству цветов, или по времени, которое
нужно, чтобы их рассмотреть? Это всё не то. А как измерять
звуковую информацию? По времени, которое она звучит? Но понятно,
что монотонный свист и красивая мелодия имеют разные размеры,
даже если их время звучания одинаково. Возникает вопрос: как же
всё-таки измерять размеры информации, чтобы была универсальность
и сохранялась объективность?
С появлением компьютерной техники возник совершенно другой
подход к решению этой задачи: вся информация разбивается на
простейшие части, и её размером считается количество таких
частей. Что же в данном случае понимать под такой простейшей
частью?
Говорят, что информация имеет размер один бит, если её можно
передать при помощи наличия или отсутствия одного сигнала.
Иногда мои ученики говорят, что "это информация, которую
можно передать при помощи одного сигнала". Это определение в
такой формулировке ошибочно. Сравните его с правильным. Там есть
слова "передать при помощи наличия или отсутствия одного
сигнала". Вообще сигнал может быть очень сложным, например,
целая мелодия. В этом случае информация будет иметь размер,
больший чем один бит. Когда проверяется наличие или отсутствие
сигнала, то сам сигнал не анализируется, а только выясняется,
есть он или нет. Под сигналом понимается любое событие, которое
может произойти или не произойти в данный момент времени. Между
тем, кто передаёт и тем, кто принимает информацию, должна быть
предварительная договорённость о том, что конкретно означает
наличие сигнала и что - его отсутствие. Часто есть
предварительная, может очень большая, информация, которая была
передана раньше, а информация размером в один бит наполняет её
совершенно другим смыслом. Например, командир военного
подразделения может быть предварительно ознакомлен с планом
военных действий, а появление ракеты в небе сообщает ему, что
действия начинаются и из планируемых становятся реальными. В
качестве другого примера расмотрим печальную судьбу профессора
Плейшнера. Он был предварительно проинструктирован, но пренебрёг
однобитной информацией. Он, всего-навсего, не посмотрел есть
цветок на окне или нет, и это стоило ему жизни. Ещё один пример:
выстрел из стартового пистолета на соревнованиях по бегу. Его
отсутствие говорит спортсменам в момент подготовки, что старта
ещё не было. Если кто-то до того, как он прозвучит, начнёт
бежать, то это будет фальшстарт, не имеющий никакого значения,
если же выстрел раздастся, то нужно бежать.
Вообще-то, сама по себе однобитная информация мало что
может сообщить, если, конечно, она не является командой на
выполнение судьбоносных планов мирового значения. Однако, любую
информацию можно разбить на кусочки, которые уже будут иметь
размер 1 бит. Это легко осуществить, если информацию
предварительно закодировать при помощи чисел и представить числа
в двоичной системе счисления. Тогда каждый разряд числа будет
информацией, имеющей размер один бит. Ведь его всегда можно
передать при помощи наличия или отсутствия любого сигнала:
единица - наличие, а ноль - отсутствие. Мы с этим уже знакомы:
если лампочка горит, то в разряде цифра "1", а в противном
случае -"0". Чтобы передать всё число, уже нужно несколько
сигналов: либо соорудить что-то вроде нашего табло, где одна
лампочка заменяет окошко, либо растянуть передачу числа во
времени, передавая отдельные разряды числа при помощи одной
лампочки, но в разные моменты времени.
Таким образом, любое число, как информация, имеет некоторый
размер в битах. Он равен количеству разрядов в двоичном
представлении этого числа. Числа ноль и один - это однобитная
информация, два и три - двухбитная. Размер чисел от четырёх до
семи равен трём битам, а от восьми до пятнадцати - четырём.
В компьютерных технологиях принято иметь дело с информацией,
величина которой кратна восьми битам: 8 бит, 16 бит, 24 бита и
т.д. Поэтому, если количество разрядов в двоичном представлении
числа не кратно восьми, то это представление дополняется впереди
нужным количеством нулей, что, как мы знаем, не изменяет
значение числа. Кроме бита, для удобства, используются и другие,
более крупные, единицы измерения размера информации: байт,
килобайт, мегабайт и гигабайт.
Один байт равен восьми битам. Это значит, что информацию
размером в один байт можно передать при помощи наличия или
отсутствия восьми сигналов.
Давайте определим, какие числа являются однобайтной
информацией. Другими словами: какие числа в двоичном
представлении имеют не больше восьми разрядов? Чуть подумав,
выясняем, что самое большое число, имеющее в двоичной системе
восемь разрядов - это число двести пятьдесят пять. Во всех
восьми его разрядах находятся единицы. Число двести пятьдесят
шесть в двоичной системе является круглым, отвечает за девятый
разряд и записывается в виде единицы и восьми нулей. Это уже
составляет девять бит, но, поскольку размер информации должен
быть кратным восьми битам, то в этом представлении нужно впереди
приписать ещё семь нулей. Таким образом, двести пятьдесят шесть
чисел (от нуля до двести пятидесяти пяти) занимают один байт, а
число двести пятьдесят шесть - уже два. У программистов есть
единица измерения информации, равная двум байтам. Она называется
"словом". Наибольшее число длиной в слово - шестьдесят пять
тысяч пятьсот тридцать пять.
Один килобайт равен тысяча двадцать четыре байта. Почему не
тысяча, как принято для единиц измерения других величин? Это
связано с тем, что число тысяча двадцать четыре круглое в
двоичной системе, а тысяча - самое заурядное. Таким образом, из
всех чисел, удобных для компьютера, выбрали то, которое ближе
всего к привычной человеческой тысяче. Точно также, один
мегабайт равен тысяча двадцать четыре килобайта, а один гигабайт
- тысяча двадцать четыре мегабайта.
Как-то раз встретились автомобилист и программист. Они долго
не могли найти темы для общения, но потом всё-таки
разговорились. В результате этой беседы автомобилист открыл для
себя очень необычный факт: оказывается в одном килобайте не
тысяча, а тысяча двадцать четыре байта. В свою очередь,
программист был не меньше удивлён тем, что в одном километре
тысяча метров, а не тысяча двадцать четыре.
Я бы очень не хотел, чтобы вы в будущем, сблизившись с
компьютером, стали подобны этому программисту.
ВОПРОСЫ И ЗАДАНИЯ
1. Приведите другие примеры информации размером в один бит.
2. Сколько бит занимает один брайлевский знак?
3. Сколько бит в девяти байтах?
4. Сколько байт в сорока восьми битах?
5. Сколько байт занимают числа 149, 3728, 80942?
6. Сколько байт в одном мегабайте?
2.5. На грани миров
Думаю, не ошибусь, если скажу, что самую важную роль в
компьютерных технологиях играют объекты, называемые символами,
хотя многие, даже очень опытные программисты об этом не
задумываются. Что же это за объекты и в чём их значимость?
Символы имеют двойную природу. С одной стороны, это
некоторые изображения: буквы, цифры, знаки препинания,
специальные значки., С другой стороны, за каждым символом
закреплено некоторое число - код, находящееся в диапазоне от
нуля до двести пятидесяти пяти. Мы помним, что каждое такое
число является информацией размером в один байт. Первая,
наглядная, природа символа делает его удобным для человеческого
восприятия. Именно при помощи таких изображений люди издавна
записывали (кодировали) всевозможную информацию. Другая,
численная, природа символа делает его удобным для компьютерного
восприятия и последующего хранения на магнитном или оптическом
носителе. Итак, символы - это своеобразные пограничные столбы,
находящиеся между миром людей и миром компьютеров. К нам они
повёрнуты привычными для людей изображениями букв, цифр и знаков
препинания. К компьютерам они повёрнуты привычными для них
числами размером в один байт. При этом одна и та же буква, но
заглавная и строчная - это два разных символа. Они имеют разные
коды. В настоящее время, разработана ещё одна система
кодирования символов - система уникодов. В ней код символа
занимает уже не один, а два байта.
Кое-кто ошибочно считает, что коды цифр совпадают с числами,
соответствующими этим цифрам. Это не так. Например, код цифры
"7" равен не семи, а пятидесяти пяти. Отметим ещё один факт,
свидетельствующий об отличии компьютерного и человеческого
способов восприятия информации. Если компьютеру понадобится
запомнить, например, число двести десять, то ему для этого
понадобится всего один байт. Ведь это число меньше двести
пятидесяти пяти. Если же он это сделает, как делают люди, то он
запомнит три символа "2", "1" и "0", для чего понадобится уже
три байта.
На современных персональных компьютерах люди всё меньше
замечают численную природу символов. Во времена древних и очень
больших ЭВМ эта их природа не могла не бросаться в глаза.
Вообще-то процессор компьютера понимает только язык машинных
кодов. Все команды в этом языке отдаются исключительно при
помощи чисел. Что-то вроде того: взять число из ячейки памяти с
одним адресом и добавить его к числу из ячейки с другим адресом,
а потом полученный результат записать в ячейку с третьим
адресом. Первые программисты очень хорошо знали этот язык и
общались с компьютером исключительно на нём. Машины тогда в
основном занимались математическими расчётами, и программисты,
получив результат, сами транслировали его, то есть записывали в
виде, понятном для людей. Затем появились другие языки
программирования, которые стали использовать символы. Теперь уже
нужны были трансляторы по переводу программы с языка
программирования на язык машинных кодов. Поначалу это были
специальные дополнительные устройства, а позднее с этой задачей
стали справляться другие программы, для этого предназначенные.
Давайте опять вспомним перфокарту. Точнее даже не её, а
устройство перфоратор, при помощи которого на перфокарте в
нужных местах пробивались отверстия. На этом устройстве можно с
большой наглядностью наблюдать обе природы символа. Перфоратор
был подобен пишущей машинке. Да он ею одновременно и являлся.
Кроме перфокарты в него заправлялась бумага. Когда перфораторщик
нажимал на клавишу с какой-то буквой, на бумаге отпечатывалось
изображение этой буквы и одновременно на перфокарте выбивалось
двоичное представление числа, которым эта буква кодировалась.
Так в отдельной строке на бумаге печатались символы, численная
природа которых отражалась на перфокарте. Помню, когда я учился
в университете, у нас были специальные читалки - перфокарты, в
которых все отверстия были пробиты. Мы брали другую перфокарту,
с какой-то информацией, накладывали на неё читалку и смотрели на
свет. Так было чётко видно, в каком разряде есть отверстие, а в
каком нет. Таким образом числа, один за другим, выписывались на
бумагу в двоичном представлении, а затем переводились в
восьмиричную систему, к которой из двоичной переходить очень
легко. Потом по специальной таблице числа заменялись
соответствующими символами.
Сейчас всё это более завуалировано, но суть не изменилась.
Пользователь нажимает на клавишу клавиатуры, и в компьютер
передаётся код некоторого символа, который заносится в
определённую ячейку памяти. При этом специальная
программа-драйвер изображает на мониторе соответствующий символ.
Вообще-то для изображения первых ста двадцати восьми
символов драйверы не нужны. Это символы, за которыми коды были
закреплены ещё вначале развития компьютерных технологий и
которые неизменны сейчас во всех компьютерных системах. Коды
таких символов называются ASCII-кодами. Здесь представлены все
буквы английского алфавита, цифры, знаки препинания, пробел,
некоторые другие стандартные значки, такие клавиши, как Enter и
Esc. Другие сто двадцать восемь символов, коды которых заключены
в диапазоне от ста двадцати восьми до двести пятидесяти пяти,
имеют название псевдографики. За ними тоже закрепляются какие-то
рисуночки: уголочки, кусочки линий и т.д. Расположив нужным
образом эти символы на некотором участке экрана, можно получить
какое-то изображение: рамку, график, диаграмму и т.д. Однако,
это далеко не единственный способ применения псевдографических
символов. Дело в том, что компьютеры используются во всех
странах, и очень многие страны имеют свои языки со своими
алфавитами. При помощи специальных программ-драйверов, за
некоторыми псевдографическими символами закрепляются буквы таких
алфавитов. После запуска драйвера, изображение этих символов
заменяется изображениями нужных букв, а коды остаются теми же.
Вот тут-то часто возникают недоразумения. Никак не удаётся
добиться раз и навсегда установленного стандарта. Почему не
удаётся? Причины очень разные. Например, в одних программах за
какими-то псевдографическими символами закреплены важные
функции, а в каких-то странах за ними закрепляются буквы. Чтобы
можно было использовать эти программы, приходится придумывать
другую кодовую таблицу. Однако, есть вероятно и немало других
причин, вызывающих подобное неудобство. Не знаю, как в других
языках, но в русском получили широкое распространение по меньшей
мере три различные кодировки. Если русский текст написан в одной
из них, а программа предназначена для чтения текста в другой, то
пользователь увидит на экране полную бессмыслицу. В украинском
языке на основе только одной из русских кодировок есть два
стандарта кодирования украинских букв, отсутствующих в русском
алфавите. А таких букв всего четыре.
Думаю, для некоторых будет неожиданностью узнать, что
английские и русские буквы, имеющие одинаковое изображение
(например "A" и "А", "B" и "В") - это разные символы. Они имеют
разные коды.
Почему же символы играют такую важную роль? Просто, если бы
их не было, то люди очень мало могли бы найти общего с
компьютером. Скорее всего, компьютерная техника вообще не
получила бы столь мощного развития, как сейчас. Компьютер так и
оставался бы всего-навсего вычислительной машиной, которую
понимали бы только представители очень узкого круга людей.
Компьютер был бы не в состоянии заниматься обработкой и
хранением информации. Ведь фактически вся текстовая информация
формируется в компьютере при помощи символов. Кто-то может
возразить, что если бы не было символов, то тексты всё-равно
можно было бы хранить как картинки в графическом формате. Против
этого у меня есть три серьёзных возражения. Во-первых,
графическая информация занимает намного больше места, чем
записанная при помощи символов. Например, две развёрнутые
книжные страницы в графическом формате TIF занимают около ста
пятидесяти двух килобайт. Этот же текст, записанный при помощи
символов, занимает всего пять килобайт. Как видите, хранить
много текстовой информации в графическом виде не представляется
возможным. Во-вторых, текстовая информация в графическом виде не
поддаётся обработке и анализу программным способом. В-третьих,
без символов не существовало бы других языков программирования,
кроме языка машинных кодов. Поэтому программное обеспечение
врядли бы достигло такого уровня, чтобы можно было вообще
получать подобные компьютерные графические изображения.
Может быть многие об этом не задумывались, но кодирование
букв числами в двоичной системе счисления осуществлялось людьми
ещё задолго до появления первых компьютеров. Один из таких
примеров - это азбука Морзе. Вы помните, что буквы в ней
кодируются различными наборами точек и тире. Информация
передаётся на расстоянии при помощи двух видов сигналов:
короткого и длинного. Точки передаются коротким сигналом, а тире
- длинным. Если в азбуке Морзе заменить точки единицами, а тире
- нулями, то получится, что каждая буква кодируется числом в
двоичной системе счисления.
Ещё один пример - это азбука Брайля для слепых. Буквы здесь
представляются в виде разных наборов выпуклых точек. Для записи
одной буквы точки выкалываются в каких-то из шести,
предназначенных для этого позиций. Если считать выколотую точку
сигналом, тоесть единицей, а невыколотую - его отсутствием, то
есть нулём, то брайлевский знак станет числом в двоичной
системе. Размер такого знака, как информации, равен шести битам.
Жаль, что Луи Брайль выбрал в своё время шеститочие, а не
восьмиточие. А если бы при этом брайлевская кодировка совпадала
с компьютерной, то незрячие, владеющие шрифтом Брайля, понимали
бы компьютер, как никто другой.
Теперь рассмотрим ещё одно понятие, связанное с символами.
Строкой называется упорядоченная последовательность символов,
количество которых не превышает числа ддвести пятьдесят пять.
Слова "упорядоченная последовательность" говорят нам, что
все символы строки строго следуют один за другим и каждый из них
имеет в строке свой порядковый номер - позицию. Не следует
путать два понятия: "численный код символа" и "порядковый номер
символа в строке". И то, и другое есть числом длиной в один
байт, но, как правило, эти числа различны.
Длиной строки называется количество входящих в неё символов.
Длина строки во всех случаях ограничивается числом двести
пятьдесят пять. Однако, очень часто ограничение длины строки ещё
меньше. Например, если мы хотим, чтобы изображение строк
помещалось на экране монитора, то нужно чтобы их длина не
превышала восьмидесяти, а если мы захотим, чтобы строки
выводились при помощи принтера на бумагу с полями, то
ограничитель их длины должен быть ещё меньше.
Любая связная часть строки называется её подстрокой и тоже
является строкой.
Часто используют такое понятие, как "пустая строка" или
"пустое слово". Это строка, вообще не имеющая символов. Её длина
равна нулю. Иногда путают пустую строку со строкой, состоящей из
одних пробелов. Это, повидимому, происходит потому, что обе эти
строки на экране монитора не имеют видимого изображения. Однако,
пробел - это такой же символ, как и все остальные. Ему
соответствует код 32. Поэтому строка, состоящая из пробелов,
имеет ненулевую длину.
А сейчас просто представьте себе какую-то строку. Врядли я
ошибусь, если скажу, что она в вашем воображении расположена
горизонтально, при чём порядковые номера входящих в неё символов
возрастают слева направо. Есть, правда, народы, представители
которых вообразили бы, что порядковые номера возрастают справа
налево, но в их сознании строка всё-равно располагалась бы
горизонтально. Этим качеством мы, люди, всегда наделяем строку.
Но ещё раз прочитайте приведенное выше определение строки. Вы
видите, что в нём ничего не говорится о её расположении в
пространстве. Почему же в этом определении ещё не добавить:
"расположенных горизонтально, слева направо"? А потому, что мы
сейчас рассматриваем понятие, общее для нас и компьютера, а
компьютеру совершенно безразлично, как символы строки
располагаются в пространстве\. Для него главное, чтобы был
установлен строгий порядок следования символов один за другим, и
чтобы количество этих символов не превысило заранее заданного
числа. А сам он хранит численные коды символов строки совершенно
не горизонтально. Если строка хранится на диске, то вы сами
понимаете, что дорожки на нём не прямые. А ещё не исключён
случай, что строка вообще разрывается, и разные её части на
диске физически хранятся в разных местах. Компьютер, конечно, об
этом не забывает, и, при необходимости, без всякого труда
собирает строку в единое целое. А как расположены физически коды
символов строки в оперативной памяти компьютера, я и представить
себе не могу. Словом, для компьютера горизонтальное расположение
строки - это излишняя дурь, но поскольку он пока вынужден с нами
считаться, то ему приходится располагать строки на экране
монитора и выводить их на принтере в таком виде, который
привычен для нас.
ВОПРОСЫ И ЗАДАНИЯ
1. Что такое символ? Является ли дорожный знак символом в
нашем понимании?
2. Какой размер занимает символ в памяти компьютера?
Сколько, всвязи с этим, существует различных символов?
3. Как называется группа из первых ста двадцати восьми
символов? Какие категории символов в неё входят?
4. Как называются символы с кодами, превышающими 127? Какое
их принципиальное отличие от первой группы символов? Какие
пользователи могут без них обойтись? Можете ли вы без них
обойтись, если будете интенсивно использовать компьютер? Сможете
ли вы обойтись без первых ста двадцати восьми символов?
5. Если в строке поменять местами какие-то два символа
(например, второй с пятым), то всегда ли в результате получим
другую строку?
6. Если соединить две строки, то всегда ли в результате
получим строку?

ГЛАВА 3

РАЗМЕЩЕНИЕ ИНФОРМАЦИИ НА КОМПЬЮТЕРЕ
(ФАЙЛОВАЯ СИСТЕМА)
3.1. Что такое файл?
Перед тем, как приступить к изучению этой главы, предлагаю
вам вспомнить то, о чём писалось в пункте 1.4, посвящённом
систематизации и технической обработке информации. Здесь мы
будем рассматривать, как всё это осуществляет компьютер.
Следует отметить, что способы, при помощи которых компьютер
размещает информацию на различных носителях, зависят от того,
какая операционная система установлена на компьютере. С понятием
операционной системы мы ближе познакомимся в следующих главах, а
сейчас отметим, что в этом пособии мы будем ориентироваться
только на две операционные системы: DOS и Windows. Вторая
операционная система была разработана на основе первой. Поэтому
в вопросах размещения информации они мало чем отличаются. Мы
будем рассматривать, как это осуществляется в DOS и отдельно
выделять имеющиеся отличия с Windows.
Так же, как в примере с библиотекой из пункта 1.4,
информация, хранящаяся в компьютере, разбивается на отдельные
разделы. При этом не любая часть информации считается
самостоятельным разделом, так же, как несколько книжных страниц
или несколько книг, взятых наугад с книжной полки в библиотеке,
не являются самостоятельными разделами информации. Отдельные
разделы компьютерной информации могут быть частью других, более
широких разделов. Каждый самостоятельный раздел в компьютере
имеет дату и время создания, а также имя - некоторую,
присвоенную этому разделу строку. Что такое строка, мы выяснили
в п.2.5 и помним, что это понятие в компьютерных технологиях
имеет вполне определённый смысл.
В этом пункте мы рассмотрим понятие, существующее во всех
современных распространённых операционных системах.
Файл - это минимальный самостоятельный раздел информации,
хранящейся на компьютерных носителях.
Слово "минимальный" означает, что всякая часть файла уже не
является самостоятельным разделом.
Запись файла на носитель называется его сохранением. Датой и
временем создания файла считается дата и время его последнего
сохранения. Файл можно изменить: что-то в него добавить или
что-то удалить, а затем сохранить. Понятно, что в этом случае
изменятся дата и время его создания.
Теперь поговорим о том, что значит читать файл. Начинающие
пользователи часто интуитивно считают, что это та ситуация,
когда они сидят перед монитором и читают текст, находящийся в
файле. Однако, здесь интуиция их подводит. Глагол "читать" в
данном случае относится не к ним, а к компьютеру. Это процесс,
когда компьютер считывает информацию с какого-то носителя в
оперативную память.
Имя файла - это непустая строка, состоящая не более, чем из
восьми символов, точки и расширения, имеющего не более трёх
символов. При этом расширение имени файла может вообще
отсутствовать. Тогда отсутствует и точка.
Отметим, что не любые символы могут входить в имя файла.
Например, в имени не допускаются такие символы, как пробел,
знак"+" символ звёздочка "*", такие разделители, как запятая,
двоеточие, точка с запятой, и некоторые другие символы.
Запомним, что в любом случае в имени файла допустимы буквы
английского алфавита, цифры, знаки "$", "~", минус "-",
подчёркивание "_". Если соответствующим образом сконфигурировать
систему, то можно использовать буквы русского и украинского
алфавитов и ещё целый ряд других символов. Советую вам всё-таки
при возможности избегать русских букв в именах файлов. Может
случиться, что на одних компьютерах проблем не будет, но при
переходе на другой компьютер файл не прочитается. В некоторых
операционных системах в именах файлов используются как заглавные
буквы, так и строчные. В DOS они не различаются, точнее сказать,
все буквы автоматически преобразуются в заглавные.
В операционной системе Windows нет столь жёсткого
ограничения на длину имени файла, как на основную его часть, так
и на расширение. Более того, здесь в имени файла могут
использоваться многие символы, которые не допускаются в DOS. В
имя файла могут входить даже пробелы и точки. Наличие точек
иногда вызывает путаницу: возникает впечатление, что у имени
файла несколько расширений. На самом деле расширением считается
только часть имени, отделённая последней точкой. Ещё Windows
запоминает, какие буквы в имени файла пользователь вводил
заглавными, а какие строчными. Они, правда, здесь тоже
принципиально не различаются, то есть, если пользователь один
раз напишет имя файла только строчными буквами, а в другой раз
все или только некоторые сделает заглавными, то система в обоих
случаях будет эту строку считать именем одного и того же файла.
Однако, на экране имя файла изображается точно в таком виде, как
оно было записано пользователем в момент создания или
переименования файла. Это делается для удобства пользователя.
Если файл создавался в операционной системе Windows и имеет
длинное имя, то при обращении к этому файлу в операционной
системе DOS, его имя будет сокращено: расширение обрежется до
первых трёх символов, а основная часть имени, которая находится
до точки, будет содержать только восемь символов. Во избежание
того, что разные файлы с длинными именами, начала имён которых
совпадают, в DOS вдруг окажутся с одинаковыми именами, основная
часть имени не просто обрезается. Первые символы нового имени
берутся из старого имени. Основная часть, хоть и имеет восемь
символов, но не все они берутся из длинного имени. Основная
часть укороченного имени заканчивается символом тильда ("~"), за
которым следует несколько цифр. Если больше нет файлов, которые
имеют такое же начало, то после тильды в укороченном имени будет
лишь одна цифра "1". Если есть ещё один такой файл, то после
тильды окажется цифра "2", и т.д. Таким образом, из длинного
имени в короткое максимум может попасть шесть первых символов.
Рассмотрим пример. Предположим, что когда в операционной системе
Windows создавался файл PARALLELEPIPED.JPG, в том же разделе уже
был файл PARALLELOGRAMM.JPG. Тогда в операционной системе DOS
файл PARALLELOGRAMM.JPG будет иметь имя PARALL~1.JPG, а
создаваемый файл PARALLELEPIPED.JPG - PARALL~2.JPG. При
возвращении в операционную систему Windows, эти файлы опять
будут иметь длинные имена. Однако, если в операционной системе
DOS файлы изменить, то у них так и останутся короткие имена,даже
при возвращении в Windows. Это же касается и копий файлов с
длинными именами, сделанных в DOS.
Теперь вспомните, как вас зовут и попробуйте себе
представить, что с кем-то знакомясь, вы говорите: "Мой заголовок
такой-то" или "Моё название такое-то". Если вам это кажется
неестественным, то постарайтесь и говоря о файле, не
использовать вместо слова "имя" слова "название" и "заголовок".
Теперь поговорим о том, зачем нужно расширение имени файла.
В принципе оно не является чем-то обязательным. Но давайте
вспомним, что люди часто добавляют к своим именам различные
титулы, звания, упоминание о профессиональной принадлежности.
Например: "царь Пётр", "сэр Джон", "доктор Гарвард", "адвокат
Петров", "профессор Степанов", "почтальон Печкин" и т.п. Эти
добавки, хоть и пишутся вначале, а не вконце, но являются чем-то
вроде расширения имени человека. Оно показывает, что данный
человек относится к некоторому кругу людей, имеющих точно такое
же расширение. Этот же смысл носит и расширение имени файла.
Многие файлы имеют одинаковое расширение, которое
свидетельствует, что файлы имеют определённый тип. Какие бывают
типы файлов, мы узнаем позже. Отметим только, что их
насчитывается немалое количество. У пользователя есть
возможность, при желании, присвоить файлу любое имя с любым
расширением, а файл при этом может не иметь к типу,
соответствующему расширению, никакого отношения. Словом, что-то
вроде звания "сын лейтенанта Шмидта". Совсем не обязательно,
чтобы расширение соответствовало какому-то типу файла.
Пользователь может придумывать и свои расширения для личной
классификации файлов.
Кроме имени, даты и времени создания файл ещё имеет размер.
Он, как размер любой другой компьютерной информации, измеряется
в байтах, килобайтах, мегабайтах. Конкретных ограничений на
размер файла нет. Просто при попытке записать файл на носитель
нужно убедиться, что там для этого есть достаточно свободного
места.
У файла есть ещё один численый показатель - атрибут. Его
значение ограничивается тем, что на запись атрибута выделяется
только один байт. На самом деле его реальные значения
существенно меньше, чем допускает данный размер. В зависимости
от значения этого показателя регламентируются доступ к файлу и
возможные операции над ним. Есть несколько стандартных
атрибутов, за которыми закреплены определённые названия. Все они
являются круглыми числами в двоичной системе. Перечислим
некоторые из них.
ReadOnly = 1. Если файл имеет этот атрибут, то доступ к нему
разрешён только по чтению. Его нельзя ни удалить, ни изменить,
пока атрибут не будет снят. Однако, некоторые операции с ним всё
же возможны. Пользователь вполне может его использовать по
назначению.
Следующие два атрибута Hidden = 2 ("скрытый" файл) и }
SysFile = 4; (системный файл) существенно ограничивают возможные
действия с файлом. Самым распространённым является атрибут
Archive = 32 (признак архивизации). Специальные программы
архиваторы, сжимающие файлы для хранения и перемещения с
компьютера на компьютер, имеют возможность при желании включать
в архив только те файлы, которые имеют этот атрибут. Часто
встречаются смешанные атрибуты, которые показывают, что файл
имеет одновременно ограничения, присущие нескольким стандартным
атрибутам. Чтобы определить его численное значение, нужно
попросту сложить соответствующие стандартные атрибуты. С другой
стороны, если нам известен атрибут файла, а мы хотим узнать
какие на него наложены ограничения, то нужно этот атрибут
разложить на отдельные составляющие, которые являются круглыми в
двоичной системе счисления так, как мы это делали при
представлении числа в двоичной системе. Давайте рассмотрим это
на примерах. Предположим, что файл имеет атрибут 5. Так как
5 = 4 + 1 = Sysfile + Readonly, то файл является системным и доступ
к нему разрешён только по чтению. Пусть атрибут файла равен 35.
Так как 35 = 32 + 2 + 1 = Archive + Hidden + Readonly, то файл
имеет признак архивизации, является скрытым, и доступ к нему
разрешён только по чтению. Как
определять и изменять атрибуты файлов мы узнаем позже, когда
будем знакомиться с программой ATTRIB.EXE, входящей в
стандартный комплект операционной системы DOS.
Теперь рассмотрим качество, которым файл может обладать, но
может и не обладать. Любой файл, как мы уже поняли, - это
последовательность чисел, каждое из которых занимает на диске
один байт, т.е. 8 бит информации. При необходимости на эти числа
можно смотреть как на коды соответствующих символов и считать,
что файл - это последовательность этих символов, т.е. почти то
же самое, что в пункте 2.5 мы называли строкой. Там, правда,
было ещё одно условие: длина строки не должна превышать двухсот
пятидесяти пяти символов, а в некоторых случаях ограничения ещё
более строгие. В файле же количество символов ничем не
ограничивается и может быть равное миллиону и даже сотне
миллионов.
Файл называется текстовым, если он разбит на строки парами
символов с кодами 13 и 10. Первый из них (с кодом 13)
соответствует клавише ENTER, а второй (с кодом 10) - комбинации
клавишь CTRL+ENTER. Кроме того, заканчиваться текстовый файл
должен символом с кодом 26.
Итак, если файл текстовый, то пары символов, разделяющие
строки в нём встречаются не реже, чем через двести пятьдесят
пять символов. Это ограничение обуславливается тем, что длина
строки должна занимать 1 байт. Если таких пар символов вообще
нет в файле или расстояние между какими-то из них больше двухсот
пятидесяти шести, то файл не является текстовым. Не будет он
также текстовым, если в нём нет символа с кодом 26 или такой
символ есть, но после него есть ещё другие символы.
Если файл не является текстовым, то он называется бинарным
или двоичным.
Мы познакомились с качеством, которое делит все файлы на две
группы: текстовые и бинарные. Вдальнейшем, при работе с любым из
файлов, мы должны чётко отдавать себе отчёт, какой он: текстовый
или бинарный.
Не совсем правильно считать, что текстовые файлы - это
файлы, которые состоят из строк. Они на самом деле состоят из
байтов информации, но, обратите внимание на глагол, "разбиты" на
строки. Что-то вроде забора-штахетника: состоит он из отдельных
штахетин (байтов), но через какие-то не очень большие промежутки
встречаются столбики (пары символов с кодами 13 и 10), к которым
крепятся блоки штахетника. Пусть эта модель в очередной раз
развеет ваше неправильное представление, что строки должны
обязательно находиться одна под другой. Как они там расположены
на магнитном диске или в оперативной памяти, думаю, вообще никто
не знает.
Для работы с текстовыми файлами: для их создания, изменения
и сохранения на диск, предназначены специальные программы,
называемые текстовыми редакторами. Они-то на экране изображают
строки, сколько их там поместится, в привычном для нас виде:
одна под другой. Зато они не показывают ни символов с кодами 13
и 10, ни символа конца текстового файла с кодом 26. Более
подробно о текстовых редакторах мы поговорим позднее, когда
будем изучать программы и их разновидности.
ВОПРОСЫ И ЗАДАНИЯ
1. Может ли файл быть частью другого, более широкого, файла?
2. Файл был создан пользователем 13 декабря 1999 года. Затем
в него лишь дважды вносились изменения: 11 мая 2000 года и 3
сентября 2002 года. Какую этот файл имеет дату создания?
3. Может ли файл в операционной системе DOS иметь следующие
имена?
KOLOKOL,TXT
LEV TOLSTOY.RAR
SIGNAL:EXE
MIR.TX
SAHAR.html
zakonodatelstvo.zip

0

a*149.com
4. В операционной системе Windows сначала создали файл
VELIKOBRITANIYA.DOC, а затем - файл VELIKOMIHAYLOVKA.DOC. Какие
имена эти файлы будут иметь в операционной системе DOS?
5. Файл MSDOS.SYS имеет ограничения Readonly, Hidden и
Sysfile. Чему равен его атрибут?
6. Какие ограничения имеет файл, если его атрибут равен 33,
34, 36, 37, 38, 39?
7. Что общего у понятий файл и строка и чем они отличаются?
8. Какие файлы называются текстовыми?
9. В каких случаях файл является бинарным? Отличается ли
чем-то двоичный файл от бинарного?
10. Какие программы предназначены для работы с текстовыми
файлами?
3.2. Диск, как максимальный раздел информации
Сокращение "ДОС" расшифровывается как "дисковая операционная
система". Максимальный раздел информации в такой операционной
системе называется диском. Слова "максимальный раздел" не
относятся к размеру разделов информации и не означают, что все
остальные разделы на компьютере имеют меньшие размеры. Смысл
этих слов заключается в том, что диск является разделом
информации, хранящейся на компьютере, но сам он уже не является
частью никакого другого самостоятельного раздела. Таким образом,
на компьютере может быть несколько максимальных в этом смысле
разделов. Это что-то вроде военных округов, которые могут
занимать разные по площади территории и объединять разные
количества военнослужащих, но все они не являются частями
никаких других подразделений, а являются максимальными военными
подразделениями, входящими в вооружённые силы страны.
Следует различать два понятия: диск, как раздел информации,
и диск, как техническое устройство, предназначенное для хранения
информации. Когда-то эти понятия были тождественны. Ведь первые
версии операционной системы DOS создавались для персонального
компьютера, на котором были один или два дисковода для гибких
дисков и ещё не было жёсткого диска. Этим и обуславливается
название максимального раздела информации. Позднее, когда в
персональных компьютерах появились жёсткие диски, которые со
временем стали иметь внушительные размеры, а также с появлением
других запоминающих устройств, эти два понятия разделились.
Во-первых, диск как максимальный раздел информации может быть
совсем не связан ни с магнитным, ни с лазерным диском.
Во-вторых, один жёсткий диск может быть условно разбит на
несколько разделов, каждый из которых воспринимается как
отдельный диск. Такие диски называются логическими.
В качестве примера диска, который не имеет отношения к
механическому диску можно взять виртуальный (по другому
электронный) диск. Это часть оперативной памяти компьютера,
организованная как отдельный диск. Запись и считывание
информации при работе с таким диском осуществляется очень
быстро. Поэтому виртуальный диск можно эффективно использовать
на нискоскоростных компьютерах. Ещё его часто создают в
нестандартных ситуациях, когда компьютер загружают с дискеты, а
потом ряд программ, для ускорения их работы, перебрасывают на
виртуальный диск. Есть у виртуального диска один большой
недостаток: при выключении компьютера, вся информация,
записанная на нём, бесследно исчезает. Поэтому нужно не забывать
предварительно всю полезную информацию с такого диска сохранять
на другом носителе.
На компьютере, который при помощи сетевой карты и кабеля
соединён в сеть с другими компьютерами, часто используются так
называемые сетевые диски. Это разделы информации других
компьютеров (не обязательно максимальные), которые
воспринимаются компьютером как отдельные диски. Диски такого же
типа используются при соединении двух компьютеров посредством
модемов и телефонной линии или просто при их соединении
специальными шнурами через параллельные или коммуникационные
порты.
Именем диска называется строка, состоящая из двух символов.
Первым символом всегда является какая-то буква английского
(латинского) алфавита, а вторым - двоеточие.
Первые две буквы английского алфавита "A" и "B" всегда
закрепляются за гибкими дисками (дискетами). Если в компьютере
есть два дисковода, то имя A: будет иметь дискета, вставленная в
первый дисковод, а B: - во второй. Если у компьютера лишь один
дисковод, то диска B: не будет вообще. В этом случае обращение к
диску B: вызовет обращение к диску A: Если же на компьютере нет
ни одного дисковода, то отсутствует и диск A:, и диск B:. Имя C:
имеет, как правило, жёсткий диск, если он конечно есть в
компьютере. Другие жёсткие диски или логические диски, на
которые разбит жёсткий диск, будут иметь имена D:, E:, F: и т.д.
Когда создаётся виртуальный диск, в его имя автоматически войдёт
буква, которая в английском алфавите следует за буквой, входящей
в имя последнего жёсткого диска.
В имя лазерного диска может входить любая, не занятая
другими дисками, буква английского алфавита. При этом совсем не
обязательно, чтобы все предшествующие ей буквы были
задействованы в именах других дисков. Эта буква выбирается при
настройке системы по желанию пользователя. Таким же образом
устанавливается имя и сетевых дисков.
Кроме имени диск может иметь так называемую метку тома.
Здесь "том" - это не имя марктвеновского хулигана. В данном
случае смысл слова "том" близко к его значению в издательском и
библиотечном деле. Что такое том в собрании сочинений? Это
максимальный самостоятельный раздел в этом собрании - то же
самое, что диск на компьютере. Поэтому слово "том" часто
используется как синоним слова "диск". Слово метка несёт в
данном случае смысл, такой же как слово "название". Метка тома
используется для того, чтобы как-то отметить (выделить) том,
т.е. диск, чтобы отличать его от других томов (дисков). Ещё раз
подчеркнём, что наличие метки тома не является чем-то
обязательным. Пользователь может её вводить по своему
усмотрению. Это строка, к которой предъявляются те же
требования, что и к имени файла. На самом деле, метка тома и
есть имя специально предназначенного для этого файла. Вы
помните, что в предыдущем пункте, когда мы знакомились с
атрибутами файлов, не все круглые числа двоичной системы были
упомянуты, как стандартные атрибуты файлов? Был рассмотрен
атрибут SysFile=4, а сразу за ним Archive=32. Ничего не
говорилось о числах 8 и 16, а они тоже круглые в двоичной
системе счисления. Так вот, метка тома - это имя файла, атрибут
которого обозначается словом VolumeID и равен 8.
Таким образом, диск имеет имя, но может иметь и метку тома,
которой пользователь придаёт определённую смысловую нагрузку,
связанную с размещённой на диске информацией. Мы помним, что имя
диска включает лишь одну букву английского алфавита и смысловой
нагрузки не несёт. Что-то подобное тому, что тома в собрании
сочинений нумеруются, но вдобавок могут как-то называться,
например, "Стихотворения", "Поэмы", "Проза" и т.п.
Диск имеет две числовые характеристики: размер и количество
свободного места. Здесь, конечно, имеется в виду не
геометрический размер, а объём информации, которая может
поместиться на диске. Поэтому размер диска измеряется не в
сантиметрах, а в единицах измерения количества информации: в
килобайтах, мегабайтах и гигабайтах. В этих же единицах
измеряется и количество свободного места на диске. Очевидно, что
если вычесть из размера диска количество свободного места на
нём, то получится размер информации, размещённой на диске.
В любой момент времени работы компьютера, операционная
система из всего количества дисков выделяет один, который
называется текущим диском. Это не какой-то один, раз и на всегда
выбранный, диск. Текущий диск может меняться. Изменить текущий
диск может пользователь при помощи специальной команды, а также
работающие в этот момент программы. Доступ к информации,
размещённой на текущем диске всегда несколько проще, чем к
информации, хранящейся на других дисках.
Гибкие, жёсткие и логические диски предварительно
форматируются. Они разбиваются на дорожки (треки) и секторы, как
уже упоминалось в п. 2.3. В расматриваемых нами операционных
системах стандартный размер одного сектора дорожки равен 512
байт. Кроме того, при форматировании диск разбивается на две
части: системную область и область данных. Системная область,
находится в начале диска и в свою очередь, состоит из трёх
частей: загрузочный сектор, таблица размещения файлов
(по-английски file allocation table), что сокращается тремя
буквами FAT, а также root-каталог (по-русски корневой каталог).
Загрузочный сектор - это первый сектор нулевой дорожки. Если
диск загрузочный, то в нём записана программа загрузчик. Ещё в
этом секторе находится информация о размере FAT-таблицы и
root-каталога - второй и третьей части системной области. Таким
образом, можно легко установить размер системной области и
узнать, с какого сектора начинается область данных. FAT состоит
из двух частей: FAT1 и его резервная копия FAT2.
Область данных разбивается на множество небольших частей -
кластеров, каждая из которых имеет свой порядковый номер -
адрес. На гибком диске размер кластера совпадает с размером
сектора, т.е. равен 512 байт. На жёстком диске размер кластера
зависит от размера самого диска и может быть значительно больше.
Вся записываемая на диск информация попадает в область данных, а
в системную область записывается служебная информация, которая
позволяет обеспечить корректный и быстрый доступ к области
данных. Мы помним, что вся пользовательская информация
размещается в файлах. Каждый файл записывается в отдельный
кластер. Если же он не помещается, то его следующая часть
записывается в другой кластер и т.д. Совсем не обязательно, что
разные части файла попадают в соседние кластеры. Может
оказаться, что следующий кластер, после заполненного, уже занят
другим файлом. Тогда находится первый свободный кластер, и
продолжение файла пишется в него. Если последний кластер
заполняется не полностью, то оставшееся место так и остаётся
незанятым. Таким образом, кластер - это минимальное
пространство, выделяемое для файла. Как же узнать, в каком
кластере файл начинается и где искать его продолжение? Вот для
этого и нужен root-каталог и FAT. FAT состоит из пронумерованных
ячеек, каждая из которых соответствует какому-то кластеру. К
настоящему времени использовалось три стандарта FAT-а: FAT12,
FAT16 и FAT32. FAT12 используется на гибких и небольших жёстких
дисках. Здесь в одну ячейку FAT-а записывается 12 бит
информации, т.е. полтора байта. У двух других стандартов FAT-а
эта величина соответственно равна 16 бит (2 байта) и 32 бита (4
байта). Что записывается в ячейки этой таблицы мы расскажем чуть
позже. А сейчас поговорим о том, что записывается в root-каталог
- третью часть системной области диска.
Каждый файл,находящийся на диске, имеет дескриптор. Это так
называемая запись - порция информации строго отмеренного
размера, в которую входит имя файла, его атрибут, дата и время
создания, размер файла и адрес первого кластера, в который он
записывается. Дескриптор файла занимает 32 байта. Так вот, в
root-каталог записываются дескрипторы некоторых файлов. Сейчас
скажем только, что это файлы, относящиеся к корневому каталогу
диска, а что это такое, мы узнаем в следующем пункте. Когда
создаётся новый файл, то в FAT-таблице определяется первая
свободная ячейка. То, что она свободна, означает, что свободен
кластер с таким же порядковым номером. Именно в этот кластер и
записывается первая часть файла. Адрес этого кластера как раз и
попадаетт в дескриптор файла. Если файл небольшой и целиком
помещается в один кластер, то в соответствующей ячейке
FAT-таблицы, которая как раз и была найдена чуть раньше,
ставится пометка EOF, что расшифровывается "end of file"
(по-русски конец файла). Когда файл в один кластер не
помещается, в эту ячейку записывается адрес следующего кластера,
в который продолжает записываться файл. Этот кластер тоже
находится по FAT-таблице: он соответствует следующей свободной
ячейке. В эту ячейку в свою очередь записывается либо пометка
EOF, либо адрес следующего кластера. Это всё повторяется до тех
пор, пока файл полностью не запишется на диск. Файл далеко не
всегда занимает кластеры, следующие друг за другом, и может
возникнуть ситуация, когда отдельные его части будут разбросаны
по всему диску. Почему это происходит? Если бы информация на
диск только записывалась, то этого не было бы. Но информация ещё
иногда удаляется. В этом случае занимаемые ею кластеры
высвобождаются вместе с соответствующими ячейками FAT-таблицы.
Происходит так называемая фрагментация диска: за свободными
кластерами следуют занятые. Вновь создаваемый файл будет
записываться в эти пустые кластеры, но их может не хватить. Вот
и приходится разрывать файл. Пользователь этого фактически не
замечает. Разве что на медленных машинах при сильной
фрагментации диска чуть замедляется считывание файла. Ведь для
того, чтобы прочитать файл, сначала по его имени находится его
дескриптор. Затем из дескриптора узнаётся адрес первого
кластера, откуда считывается первая порция информации. После
этого, в FAT-таблице в соответствующей ячейке узнаётся адрес
следующего кластера и т.д. Жёсткие диски хоть и вращаются
довольно быстро, но всё же являются механическими устройствами.
При сильной фрагментации происходит не только потеря времени, но
и дополнительный износ устройства. Поэтому существуют
специальные программы-дефрагментаторы. Они перезаписывают всю
информацию на диске так, чтобы она сплошь заполняла пространство
диска и отдельные части одного файла попадали в соседние
кластеры.
ВОПРОСЫ И ЗАДАНИЯ
1. Как называются диски, на которые разбивается жёсткий
диск?
2. Какой диск быстрее вращается: гибкий или виртуальный?
3. Может ли диск иметь следующие имена?
VASYA.TXT
C;
*.*
Z:
МОИДОКУМЕНТЫ
4. В каких единицах измеряется размер диска?
5. Входит ли в адрес кластера название страны, в которой
находится компьютер.
6. Могут ли файл и диск иметь одинаковые имена?
3.3. "Дерева вы мои, дерева..."
В предыдущих двух пунктах мы познакомились с двумя видами
разделов информации, размещаемой на компьютере. Это были
минимальный раздел - файл и максимальный раздел - диск.
Вспомним, что слово "минимальный" в данном случае означает не
"самый маленький по размеру", а то, что любая часть файла уже не
является самостоятельным разделом информации. Слово
"максимальный", в свою очередь, означает не "самый большой по
размеру", а то, что диск не является частью никакого другого
самостоятельного раздела. Возникает вопрос: есть ли ещё какие-то
разделы, промежуточные между файлами и дисками? Есть ли что-то
подобное полкам и стеллажам в библиотечном зале?
Когда-то, в первых версиях операционной системы DOS, когда
на персональном компьютере IBM PC ещё не было жёстких дисков,
были максимальные разделы информации диски, размещаемые на
дискетах, в которых находились минимальные разделы информации
файлы, и никаких промежуточных разделов не было. Такая структура
была вполне приемлема, поскольку размеры дисков были небольшие,
и несвязанную друг с другом информацию можно было без особых
затрат размещать на разных дисках. Был, правда, у такой системы
один недостаток. Вы помните, что в системной области диска,
кроме FAT-таблицы, хранятся дескрипторы файлов, размещённых на
диске. Дескриптор - это что-то вроде карточки с информацией о
книге в библиотечном каталоге, в которой хранится информация о
книге: название, год издания, количество страниц, номер, по
которому библиотекарь знает, где книгу искать. Размер системной
области заранее определён при форматировании диска. Поэтому в
неё можно записать ограниченное количество дескрипторов, так же,
как количество карточек в библиотечном каталоге ограничено
размером ящичка, в который эти карточки помещаются. Например, на
дискете 3.5 дюйма в системную область можно поместить не больше
224 дескрипторов. Когда на диске записано несколько больших
файлов, проблемы не возникает. Когда же файлов много, и все они
маленькие, например, 512 байт, то, записав 224 файла, мы займём
лишь 112 килобайт. Однако, больше мы на диск не сможем записать
ни одного файла, поскольку не где будет размещать их
дескрипторы.
Как видно, возникали сложности ещё когда компьютеры работали
только с гибкими дисками. При появлении жёстких дисков стало
ясно, что подобная система явно не годится. Поначалу у
разработчиков операционной системы DOS были мысли разбивать
винчестер на несколько равных частей, чтобы с каждой из них
можно было работать, как с отдельной дискетой. Однако, фирма
MicroSoft остановилась на более гибкой системе использования
промежуточных разделов, которая уже ранее применялась в
некоторых других операционных системах. Это система разбиения
всей компьютерной информации на каталоги - разделы, размеры
которых регламентируются только наличием свободного места на
диске. Они создаются пользователями в том количестве, в котором
возникает потребность, и, при желании, ненужные каталоги можно
удалить. При этом одни каталоги могут быть вложены в другие, а
те, в свою очередь, в третьи и т.д.
Разбиение компьютерной информации на каталоги осуществляется
по следующим двум принципам:
1. Любой диск одновременно является каталогом, который
называется корневым каталогом данного диска.
2. В любом каталоге (в том числе и в корневом) могут быть
файлы и другие каталоги, которые называются подкаталогами
данного каталога.
Обратите внимание на то, что каталог - это не просто
перечень чего-то, как может неоправдано подсказать нам интуиция,
а самостоятельный раздел информации, который может объединять в
единое целое множество файлов и других каталогов. В компьютерных
технологиях у слова "каталог" есть два синонима: "директория" и
"папка". Эти три названия настолько равноправны, что один и тот
же пользователь может в разговоре в одной фразе сказать
"каталог", в другой - "папка", в третьей - "директория", говоря
при этом об одном и том же объекте.
Второй принцип утверждает, что в любом каталоге могут быть
файлы и другие каталоги. Словосочитание "могут быть"
предполагает, что "могут и не быть". Таким образом, возможны
четыре ситуации: 1) в каталоге есть и файлы, и другие каталоги
(подкаталоги); 2) в каталоге есть файлы, но нет подкаталогов; 3)
в каталоге нет файлов, но есть подкаталоги; 4) в каталоге нет ни
файлов, ни подкаталогов. В последнем случае каталог называется
пустым.
Говорят, что система всех каталогов на одном диске образует
так называемое дерево каталогов. В самом деле, обычное дерево
может послужить очень наглядным макетом для иллюстрации этой
системы. Представим, что каталоги - это что-то вроде ветвей, а
файлы - листья. Корневой каталог диска подобен стволу дерева,
исходящего из его корней. Прямо на стволе дерева могут расти
листья, и от ствола могут отходить ветви так же, как в корневом
каталоге могут находиться файлы и подкаталоги корневого
каталога. На ветвях, отходящих от ствола в свою очередь могут
расти листья и другие ветви и т.д. Единственное серьёзное
отличие дерева каталогов от природного дерева - это то, что оно
"растёт" корнем вверх и ветвями вниз, так как считается, что
корневой каталог находится на самом верхнем уровне, его
подкаталоги - на уровень ниже (глубже), их подкаталоги - ещё
ниже (глубже) и т.д.
Каталог, в котором находится данный файл или каталог,
называется родительским для данного файла или каталога. Те, в
свою очередь, называются дочерними для родительского каталога.
Отметим, что в одном каталоге, не может быть двух разных
файлов или подкаталогов с одинаковыми именами, что вполне
допускается, если они имеют разные родительские каталоги. Это
похоже на то, что в одной семье не называют двух сыновей или
дочерей одним именем, хотя ваш сын может иметь такое же имя, как
сын соседей.
Если файл или каталог находится в данном каталоге, или в его
подкаталоге, или в подкаталоге его подкаталога, или ещё глубже,
то будем говорить, что этот файл или каталог находится в
структуре данного каталога.
Любой каталог имеет имя. Это строка, удовлетворяющая
следующим требованиям:
1. Если каталог корневой, то его имя состоит из имени диска,
т.е. из английской буквы и двоеточия, а также символа "\",
который называется "бэк слэж" или по-русски - "обратная
наклонная". Визуально это черта, наклонённая слева направо и
сверху вниз.
2. Если каталог некорневой, то его имя - это строка, которая
строится по тем же правилам, что и имя файла (п. 3.1). Вспомним,
что в DOS это строка, которая состоит из основной части, имеющей
не более восьми символов, и может иметь расширение, не длинее
трёх символов, которое отделяется от основной части точкой.
Заметим, что расширение в имени каталога хоть и допустимо,
но используется крайне редко. В Windows каталоги тоже могут
иметь длинные имена, строящиеся на более широком запасе
символов.
Любой каталог имеет дату и время создания. Однако, в отличие
от файлов, эти характеристики каталога не изменяются если в него
что-то добавляется или из него что-то удаляется.
Ещё каталоги имеют размеры двух видов. Первый - это обычный
размер каталога. Он равен сумме размеров всех его дочерних
файлов. Второй размер каталога - полный или суммарный. Он
включает в себя не только размеры файлов, непосредственно
размещённых в этом каталоге, но и размеры файлов, находящихся в
его подкаталогах, подкаталогах его подкаталогов и т.д. Словом,
это сумма размеров всех файлов, находящихся в структуре данного
каталога.
Теперь поговорим немного о том, как технически
осуществляется организация системы каталогов на магнитных
дисках.
Когда создаётся новый некорневой каталог, тогда же создаётся
и специальный файл, имеющий то же имя, дату и время создания.
Атрибут этого файла именуется Directory и равен 16. Вспомним,
что когда мы ранее говорили о рразличных атрибутах файлов, это
круглое в двоичной системе число было пропущено. Такой файл
отождествляется с соответствующим каталогом, поскольку он
содержит полную информацию об этом каталоге. По сути он и есть
каталог, но не как раздел информации, о котором мы говорим в
этом пункте, а как перечень содержимого такого раздела. Этот
файл мы будем называть файлом-каталогом. В него записываются
дескрипторы всех дочерних файлов и каталогов, т.е. тех, которые
непосредственно расположены в данном каталоге. Мы помним, что в
дескрипторе файла содержится его имя, атрибут, дата и время
создания, размер и адрес первого кластера, в который этот файл
записывается. Под дескриптором каталога мы будем понимать
дескриптор соответствующего файла-каталога.
Мы помним, что в системной области диска, наряду с
FAT-таблицей, есть раздел, называемый Root-каталогом. Он тоже
предназначен для записи дескрипторов, но сюда попадают
дескрипторы лишь тех файлов и каталогов, для которых
родительским является корневой каталог диска. Как мы помним,
место в системной области для записи этих дескрипторов
ограничено. Таким образом, ограничено и количество файлов и
каталогов, находящихся в корневом каталоге. Например, на дискете
три с половиной дюйма в корневом каталоге не может быть больше
двухсот двадцати четырёх файлов и каталогов.
Когда создаётся новый некорневой каталог, его файлкаталог
размещается уже не в системную область, а в область данных.
Здесь же есть единственное ограничение - наличие свободного
места на диске. Файл-каталог, как и любой другой файл, заполнив
один кластер, начинает заполнять следующий свободный и т.д.
Таким образом, в некорневом каталоге количество файлов и
подкаталогов фактически неограничено.
Когда создаётся новый каталог, он первоначально оказывается
пустым, что нельзя сказать о соответствующем файле-каталоге, в
который автоматически записывается два дескриптора. Их атрибуты
указывают на то, что это дескрипторы каталогов. Имя первого
такого каталога состоит из одной точки ".", а второго - из двух
точек ".." (не следует путать с двоеточием ":". Не нужно
ошибочно думать, что во вновь созданном каталоге реально
появляются эти подкаталоги. На самом деле, в файл-каталог под
такими именами записываются вспомогательные дескрипторы. В
дескрипторе с именем точка "." указывается адрес кластера,
соответствующего самому, только что созданному каталогу,
настоящий дескриптор которого под реальным именем записался в
файл-каталог родительского каталога или в системную область
(если вновь созданный каталог - подкаталог корневого каталога).
Второй дескриптор, с именем из двух точек ".." указывает, на
адрес кластера, соответствующего родительскому каталогу вновь
созданного каталога.
Когда в каталог добавляются файлы или подкаталоги, в
соответствующий файл-каталог заносятся их дескрипторы. При этом,
дата и время создания у этого файла-каталога не изменяется.
Таким образом, для того, чтобы в пределах одного диска
переместить файл или каталог из одного каталога в другой,
совершенно не нужно перемещать этот файл или каталог с одного
участка диска на другой. Для этого достаточно из одного
файла-каталога удалить, а в другой записать дескриптор
перемещаемого файла или каталога.
В любой момент времени работы компьютера, операционная
система на каждом диске выделяет какой-то один каталог, который
называется текущим каталогом соответствующего диска. Это не
обязательно корневой каталог диска, а может быть каталог любого
уровня. Таким образом, на каждом диске есть свой текущий
каталог. Это не какие-то, раз и на всегда установленные,
каталоги. Они могут многократно меняться в течение короткого
промежутка времени. Изменить текущие каталоги на дисках могут
пользователь при помощи специальной команды, а также работающие
в этот момент программы. Из п. 3.2 мы помним, что операционная
система выделяет ещё и диск, который называется текущим диском.
Текущий каталог текущего диска имеет отдельный статус. Он
называется текущим каталогом системы или просто текущим
каталогом. Доступ к информации, хранящейся в этом каталоге
гораздо проще, чем к информации, размещённой в других каталогах,
даже если эти каталоги тоже находятся на текущем диске. Если
сменить диск, т.е. сделать текущим другой диск, то текущим
каталогом системы сразу становится текущий каталог нового диска.
ВОПРОСЫ И ЗАДАНИЯ
1. Может ли каталог быть частью другого, более широкого,
каталога?
2. Каталог был создан пользователем 13 декабря 1999 года.
Затем в него лишь дважды вносились изменения: 11 мая 2000 года
был добавлен файл, а 3 сентября 2002 года этот файл был изменён.
Какую этот каталог имеет дату создания?
3. Может ли в DOS в имя каталога входить запятая, двоеточие,
точка с запятой?
4. Может ли каталог не иметь родительского каталога? Если
может, то в каком случае?
5. Почему в корневом каталоге магнитного диска ограничено
количество файлов и подкаталогов?
3.4. Пути и полные имена
Кроме обычных имён, файлы и каталоги имеют полные имена.
Начнём с полного имени каталога.
Полное имя каталога - это строка, которая составляется по
следующим правилам:
1. Если каталог корневой, то его полное имя совпадает с
обычным его именем, что в данном случае есть имя диска с
присоединённым к нему символом "\" ("бэк слэж").
2. Если каталог - подкаталог корневого каталога, то его
полное имя состоит из имени корневого каталога (т.е. имя диска и
символ "\" ("бэк слэж") и имени самого этого каталога.
3. Во всех остальных случаях полное имя каталога состоит из
полного имени его родительского каталога, символа "\" ("бэк
слэж" и имени самого этого каталога.
Проиллюстрируем это определение на примере. Предположим, что
в корневом каталоге диска D: есть подкаталог KNIGI, а в нём есть
подкаталог PUSHKIN, в котором, в свою очередь, находится
подкаталог POEZIYA, содержащий в себе подкаталог STIHI. Таким
образом, мы имеем цепочку вложенных друг в друга каталогов -
что-то вроде матрёшек.
Полным именем корневого каталога диска D:, согласно с первым
пунктом данного определения, является его обычное имя D:\. Это
единственный случай, когда обычное и полное имя заканчиваются
символом "\" ("бэк слэж"). Каталог KNIGI является подкаталогом
корневого каталога. Поэтому на него распространяется второй
пункт определения. В соответствии с этим случаем, его полное имя
состоит из имени диска, символа "\" (бэк слэж) и самого его
имени. Это будет строка:
D:\KNIGI
Каталог PUSHKIN не является ни корневым каталогом, ни его
подкаталогом. Поэтому на него распространяется третий пункт
определения. Согласно с ним, его полное имя состоит из его
обычного имени PUSHKIN, к которому слева присоединяется полное
имя родительского каталога KNIGI и символ "\" (бэк слэж) Это
будет строка:
D:\KNIGI\PUSHKIN
Зная это полное имя, легко написать полное имя дочернего
каталога POEZIYA. Это будет строка:
D:\KNIGI\PUSHKIN\POEZIYA
Это есть полное имя родительского каталога для каталога
STIHI. Поэтому его полное имя записывается так:
D:\KNIGI\PUSHKIN\POEZIYA\STIHI
Теперь перейдём к определению полного пути к файлу или к
каталогу. Это не улица, и не шоссе, и не траектория движения.
Это тоже строка.
Полным путём к файлу или каталогу называется строка, которая
составляется по следующим правилам:
1. Если данный файл или каталог находится в корневом
каталоге, то полным путём к нему является имя этого корневого
каталога, т.е. имя диска и символ "\" (бэк слэж).
2. В остальных случаях полный путь к файлу или каталогу
состоит из полного имени родительского каталога и символа "\"
(бэк слэж).
Теперь, зная определение полного пути, мы можем перейти к
определению полного имени файла.
Полным именем файла называется строка, состоящая из полного
пути к этому файлу и обычного имени этого файла.
Например, если в рассмотренном выше каталоге STIHI находится
файл UZNIK.TXT, то его полное имя - это следующая строка:
D:\KNIGI\PUSHKIN\POEZIYA\STIHI\UZNIK.TXT
Если же в корневом каталоге диска C: находится файл
COMMAND.COM, то его полное имя имеет вид:
C:\COMMAND.COM
Теперь поговорим ещё об одном пути. Он зависит не только от
того, где находится файл или каталог, но ещё и от того, какой
каталог в данный момент времени текущий.
Путём к данному файлу или каталогу из текущего каталога
называется строка, которая составляется по следующим правилам:
1. Если данный файл или каталог находится в текущем
каталоге, то путь к нему из текущего каталога - это пустая
строка, т.е. строка, не имеющая ни одного символа.
2. Если данный файл или каталог не находится в текущем
каталоге, но находится в его структуре (т.е. в его подкаталоге,
или в подкаталоге его подкаталога и т.д.) то путь к нему из
текущего каталога - это то, что останется от полного пути, если
от него слева отрезать полное имя текущего каталога и символ "\"
("бэк слэж"). Другими словами, это строка, состоящая из
последовательности имён вложенных друг в друга каталогов,
разделённых символом "\" (бэк слэж), которая заканчивается
символом "\" (бэк слэж). При чём первое из имён этой
последовательности - это имя соответствующего подкаталога
текущего каталога, а последнее из имён - это имя родительского
каталога данного файла или подкаталога.
3. Если данный файл или каталог не находится ни в текущем
каталоге, ни в его структуре, то путь к нему из текущего
каталога - это полный путь к этому файлу или каталогу.
Заметим, что в нескольких ситуациях путь к файлу или
каталогу из текущего каталога может быть записан несколько
иначе. Первый случай, когда файл или каталог находится в текущем
каталоге. Тогда, вместо пустой строки, в качестве пути к файлу
или каталогу из текущего каталога можно использовать строку из
двух символов: ".\" (точка и бэк слэж). Ясно, что подобным
образом в данной ситуации путь только осложняется. Однако, в
другом случае преимущество подобной альтернативы очевидно. Если
файл или каталог находится в родительском каталоге текущего
каталога, то в качестве пути к нему из текущего каталога (что по
определению в данном случае есть полным путём) можно
использовать строку из трёх символов: "..\" (две точки и бэк
слэж, не следует путать две точки с двоеточием).
Третий случай, когда файл или каталог находится на текущем
диске, но не в текущем каталоге и не в его структуре. Тогда, по
определению, путь к нему из текущего каталога - это полный путь.
Однако, тот факт, что он находится на текущем диске позволяет в
полном пути не указывать имя самого диска и начинать путь с
символа "\" ("бэк слэж"). Например, если диск D: является
текущим, а ни один из каталогов, рассмотренного выше примера не
является текущим каталогом системы, то путём к файлу UZNIK.TXT
из текущего каталога может считаться и строка:
\KNIGI\PUSHKIN\POEZIYA\STIHI\
Четвёртый случай, допускающий сокращение пути к файлу или
каталогу из текущего каталога, это когда файл или каталог
находится в текущем каталоге, но не системы, а какого-то другого
диска. Тогда путём к нему можно считать не только полный путь,
но и просто имя диска, на котором он находится, т.е. английскую
букву и ":" (двоеточие).
Теперь рассмотрим понятие, которое чаще всех других понятий
из этого раздела используется на практике. Это не значит, что
остальные понятия вам не нужны, и возможная активизация вашей
мыслительной деятельности, связанная с желанием разобраться с их
определениями, создала вам напрасные дополнительные сложности.
Нет, вы потрудились не напрасно. Иначе к следующему понятию
переходить не было бы никакого смысла.
Именем файла или каталога с путём к нему называется строка,
состоящая из пути к этому файлу или каталогу из текущего
каталога и обычного имени этого файла или каталога.
Мы видим, что это понятие существенно зависит от того, какой
каталог в данный момент времени является текущим, в отличие от
полного имени, которое зависит только от раздела, в котором
данный файл или каталог находится.
Имя файла с путём, так же, как и полное его имя, уникально,
т.е. на одном компьютере не может быть двух разных файлов с
одинаковыми полными именами или с одинаковыми именами с путём.
Вообще-то, файлов с одинаковыми именами на компьютере может быть
много, но все они должны находиться в различных каталогах.
Проиллюстрируем это понятие на примере. Пусть в
рассмотренном выше каталоге KNIGI кроме подкаталога PUSHKIN есть
ещё файл SPISOK.TXT. Далее предположим, что в каталоге PUSHKIN
кроме подкаталога POEZIYA есть ещё подкаталог PROZA и файл
BIOGRAF.TXT, а в каталоге POEZIYA кроме подкаталога STIHI есть
ещё файл ONEGIN.TXT. Теперь для дальнейшей иллюстрации нужно
указать каталог, который в данный момент является текущим. Пусть
это будет каталог PUSHKIN. Путём из текущего каталога к файлам и
каталогам, находящимся в текущем каталоге является пустая
строка. Поэтому имена с путём каталогов POEZIYA и PROZA и файла
BIOGRAF.TXT совпадают с их обычными именами. Каталог STIHI и
файлы ONEGIN.TXT и UZNIK.TXT находятся в структуре текущего
каталога. Поэтому они соответствуют п. 2 определения пути из
текущего каталога. Следовательно, их имена с путём будут короче
их полных имён. Перечислим их:
POEZIYA\STIHI
POEZIYA\ONEGIN.TXT
POEZIYA\STIHI\UZNIK.TXT
Файл COMMAND.COM, находящийся в корневом каталоге диска C:,
не находится ни в текущем каталоге, ни в структуре текущего
каталога. Поэтому его имя с путём совпадает с его полным именем.
Это будет строка
C:\COMMAND.COM
Это же относится и к каталогу KNIGI. Хоть он и находится на
текущем диске, но он не принадлежит структуре текущего каталога.
Наоборот: текущий каталог находится в его структуре. Поэтому на
каталог KNIGI тоже распространяется п. 3 определения пути из
текущего каталога. Следовательно, его имя с путём тоже совпадает
с его полным именем:
D:\KNIGI
Однако, тот факт, что этот каталог принадлежит текущему диску
позволяет в пути к нему не указывать имени диска и сократить его
до строки
\KNIGI
Точно так же, не принадлежат структуре текущего каталога ни
каталог PUSHKIN (ведь он сам является текущим), ни файл
SPISOK.TXT. Так что их имена с путём совпадают с полными именами
и имеют вид:
D:\KNIGI\PUSHKIN
D:\KNIGI\SPISOK.TXT
или
\KNIGI\PUSHKIN
\KNIGI\SPISOK.TXT
Однако, и каталог, и файл являются разделами из
родительского каталога текущего каталога. Поэтому в качестве
пути к ним можно использовать упрощённый вариант "..\" (две
точки и символ бэк слэж). Так что имена с путём каталога PUSHKIN
и файла SPISOK.TXT можно записать ещё короче:
..\PUSHKIN
..\SPISOK.TXT
Теперь изменим текущий диск, скажем на диск C:. Текущим
каталогом диска D: так и остался каталог PUSHKIN, а текущим
каталогом системы стал тот каталог, который был текущим на диске
C:. Мы помним, что путём из текущего каталога к подкаталогам и
файлам текущего каталога другого диска можно считать также лишь
одно имя того диска. Поэтому именем с путём каталогов POEZIYA и
PROZA и файла BIOGRAF.TXT из каталога PUSHKIN считаются не
только полные имена но и строки:
D:POEZIYA
D:PPROZA
D:BIOGRAF.TXT
ВОПРОСЫ И ЗАДАНИЯ
1. В каких случаях имя файла или каталога с путём отличается
от его полного имени?
2. Что может означать отличие в записи следующих имён файлов
с путём: A:\KAKTUS.TXT и A:KAKTUS.TXT? Может ли здесь
подразумеваться один и тот же файл?
3. Предположим, что в корневом каталоге диска D: есть
каталог FAUNA, а в корневом каталоге диска E: - каталог FLORA.
Пусть ещё в корневом каталоге диска D: есть файлы D1.EXE и
D2.TXT, а в корневом каталоге диска E: - файлы E1.EXE и E2.TXT.
Далее предположим, что в каталоге FAUNA находится энциклопедия
животных, размещённая в файле ENCIK.TXT, а в каталоге FLORA есть
энциклопедия растений, содержащаяся в файле с таким же именем -
ENCIK.TXT. Пусть в каталоге FAUNA есть ещё каталоги: PTITSA
RYBA, ZVER, а в каталоге FLORA - каталоги TRAVA, KUST, DEREVO.
Пусть в каждом из этих каталогов есть файл, основная часть имени
которого состоит из первых трёх символов имени каталога, в
котором файл находится, а расширение имён всех шести файлов
одинаковое - TXT. Далее, особо настойчивые читатели могут
продолжить предположения, поместив в каждый из вышеупомянутых
шести каталогов ещё какие-то каталоги, а в них файлы. Те же,
кому терпения едва-едва хватило, чтобы дочитать задание до этого
места, пусть ограничатся предложенной структурой. К остальным
категориям читателей взывать уже нет смысла - они в лучшем
случае сейчас читают следующий раздел. Теперь перейдём
собственно к самому заданию. Поочерёдно назначайте текущим
различные каталоги, начиная с корневых каталогов дисков D: и E:.
Каждый раз, зафиксировав конкретный текущий каталог, составляйте
имена с путём всех других каталогов и файлов. Проследите, как
эти имена будут меняться при изменении текущего каталога и
текущего диска.
3.5. "Из-под таинственной холодной полумаски..."
В этом разделе мы будем говорить о масках. Какие ассоциации
возникают у людей, когда они слышат слово "маска"? Любители
романтической литературы и таких же кинофильмов наверняка сразу
вспомнят Чёрного Тюльпана и Зорро. Ценителям опереты безусловно
прийдут в голову таинственный Мистер X и герои "Летучей мыши".
Те, кто увлекаются авантюрными кинокомедиями, конечно вспомнят
злого гения Фантомаса. Медики прежде всего представят себе белую
марлевую маску, обильно пропитанную специфически пахнущими
антисептиками. Очень возможно, что очаровательные женщины,
желающие выглядеть лучше, чем они есть на самом деле, вспомнят о
косметической маске, которую они частенько накладывают себе на
лицо, щедро смазывая его вязкой массой, пахнущей свежими
огурцами. Подобная же ассоциация возникнет у патологоанатомов,
но это будет несколько иная маска, о которой здесь и вспоминать
не хочется. Она гораздо хуже, чем та, которую надевают больным
перед операцией под общим наркозом анестезиологи. Ещё приятнее
иметь дело с той маской, которую надевают водолазы, опускаясь
под воду. Наверное самой искусстносработанной маской будет та,
которую надевают на себя талантливые последователи Деила Корнеги
и подобных мастеров искусства преображения. Ведь когда процесс
надевания таких масок доходит до автоматизма, они сами перестают
его замечать.
Все эти аналогии имеют малое сходство с теми масками, о
которых пойдёт речь в нашем пособии. Наверное самая близкая к
нужному нам понятию ассоциация возникнет в сознании маленького
ребёнка, который не успел ещё впитать в себя все прелести
современной мультипликации и киноискусства. Такой малыш вспомнит
об обычной детской маске лисички, зайчика или клоуна. Когда-то
эти маски делались из папье-маше, а теперь из каких-то
синтетических материалов. Давайте представим себе новогодний
утренник-маскарад. Все детки в масках, кто в какой, стали в
большой круг и танцуют. И вот Дед Мороз, стоящий в центре, вдруг
громко говорит: "А ну, поросята, выходите сюда!" Тут же
несколько ребятишек выбегают в середину. Почему они вышли?
Неужели они в самом деле являются поросятами, а праздник
проходит на животноводческой ферме? Нет, у них просто такая
маска. Через какое-то время Дед Мороз опять обращается к
танцующим: "А теперь выходят все зверюшки!" И вот в круг
выбежало значительно больше детей, чем раньше. Почему они вышли?
Неужели они не дети, а в самом деле зверюшки? Нет, просто у них
такая маска. А почему же вышли не все? Почему остались гномики,
снежинки, клоуны и даже Буратино? А потому, что у них не такая
маска.
Маска, в данном случае, это то, что объединяет в одну группу
несколько различных объектов и позволяет при помощи одной
команды выполнить одно и то же действие над всеми этими
объектами. Эта же идея сохраняется, когда мы говорим о маске при
работе с файловой системой компьютера. Объектами здесь являются
файлы и каталоги, а маской - некоторая строка, обобщающая их
имена. В этой строке, помимо символов, допустимых в именах
файлов и каталогов, могут использоваться ещё два символа: "*"
(звёздочка) и "?" (вопросительный знак. Они могут использоваться
как в основной части маски, так и в расширении, которое
отделяется точкой. Считается, что файл или каталог имеет
заданную маску, если в его имени присутствуют все символы,
(кроме звёздочек и вопросительных знаков), при чём в том же
порядке которые есть в маске. При этом, в имени файла или
каталога на месте, где в маске находится звёздочка, может быть
любое допустимое количество символов, не зафиксированных в
маске, а на месте, где в маске находится вопросительный знак, в
имени может находиться не более одного такого символа (т.е либо
один, либо ни одного). Когда в имени файла или каталога на
месте, где в маске находится звёздочка, вообще ничего лишнего
нет, а выполнены все остальные требования, касающиеся
зафиксированных символов, других звёздочек и вопросительных
знаков, то этот файл или каталог тоже имеет данную маску.
Понятно, что одну и ту же маску могут иметь несколько различных
файлов или каталогов.
Проиллюстрируем это понятие на примере.
Рассмотрим маску: KO*KO*.*. В этой маске три звёздочки: две
в основной части и одна в расширении. О чём говорят эти
звёздочки? Вспоминается одна история, в которой был задан такой
же вопрос.
Шерлок Холмс и доктор Ватсон пошли в поход. Они шли целый
день, а вечером, сильно устав, разбили палатку и легли спать.
Посреди ночи Шерлок холмс разбудил доктора Ватсона и, указав
рукой в небо, спросил:
- О чём вам говорят эти звёзды?
- Они мне говорят, что завтра будет хорошая погода.
- А мне они говорят, что у нас украли палатку.
Вернёмся к звёздочкам в маске KO*KO*.*. Звёздочка в
расширении, при отсутствии в расширении других символов, говорит
о том, что имя файла может иметь любое расширение и, даже, не
иметь его вовсе. Первые два символа в маске зафиксированы.
Поэтому имя любого файла, имеющего эту маску, должно начинаться
на английскую букву "K", а за ней должна следовать английская
буква "O". Затем в маске стоит звёздочка. Это означает, что в
имени файла после буквы "O" могут находиться любые символы,
незафиксированные в маске. При этом, количество таких символов
не может быть больше четырёх, так как основная часть имени не
может содержать больше восьми символов, а четыре символа в маске
уже зафиксировано. Поскольку после звёздочки в маске находятся
два конкретных символа, а это снова "K" и "O", то после
неопределённой части имени, которой, кстати, может вообще не
быть, снова должны присутствовать символы "K" и "O". Затем в
маске опять стоит звёздочка. Она говорит, что основная часть
имени файла может заканчиваться как угодно. Легко видеть, что
эту маску имеют, например, файлы с именами KOKAKOLA.DOC,
KOLOKOL.WAV и KOKON.EXE.
Различные маски могут быть равносильными. Это значит, что
каждую из них имеет один и тот же набор файлов. Например, для
приведенной выше маски равносильной будет маска, где вместо
первой или второй (или вместо той и другой) звёздочки стоит
четыре вопросительных знака, а вместо последней - три. Однако,
если количество вопросительных знаков будет другим, то
равносильности может и не быть. Если, скажем, вместо первой
звёздочки будет стоять только один вопросительный знак, то ни
файл KOKAKOLA.DOC, ни KOLOKOL.WAV не будут иметь эту маску, а
файл KOKON.EXE - будет. Так что у первой маски и у последней,
хоть они и не равносильны, всё же есть что-то общее. А общее -
то, что каждый файл, имеющий последнюю маску, имеет и первую, но
не каждый файл, имеющий первую, имеет последнюю. В этом случае
говорят, что первая маска более широкая или, что последняя маска
подчиняется первой. Это как ребёнок, имеющий маску медвежёнка,
имеет одновременно маску зверюшки, но не любой ребёнок с маской
зверюшки, имеет маску медвежёнка. Так что, если Дед Мороз
позовёт в круг медвежат, выйдет намного меньше детей, чем когда
он позовёт зверюшек, но медвежата выйдут в обоих случаях. Так же
и с файлами: если первая маска более широкая, чем вторая, и
будет дана команда выполнить какое-то действие над файлами,
имеющими первую маску, то это же действие выполнится и над
файлами, имеющими вторую маску. Однако, если команда касалась
файлов со второй маской, то она может не коснуться некоторых
файлов с первой.
Самая широкая маска - это *.* (звёздочка, точка, звёздочка).
Любой файл имеет такую маску. Если маска состоит только из одной
звёздочки, то она распространяется на все файлы, имена которых
не имеют расширения. Эта маска равносильна маске из восьми
вопросительных знаков. Она будет более широкой, чем маска из
трёх вопросительных знаков. Последнюю будут иметь файлы, имена
которых состоят из одного, двух и трёх символов. К сожалению,
нельзя построить маску, которую имеют файлы с именами только из
трёх символов, а иметь такую возможность тоже было бы полезно.
Маску *.TXT имеют все файлы с расширением имени TXT, а маску
KNIGA.* имеют все файлы, основная часть имени которых - KNIGA и
расширение имени которых может быть любым. Обе последние маски
одновременно имеет только один файл с именем KNIGA.TXT. Как мы
видим, из двух масок не обязательно одна является шире другой.
Отметим ещё один момент. С масками и имеющими их файлами
работают конкретные программы, и далеко не все они умеют
коректно работать со слишком разнообразными масками. Некоторые
из них накладывают значительные ограничения на правила
составления маски. Например, операционная система MS DOS,
выполняя команды над файлами, правильно понимает только те
маски, у которых в основной части и в расширении может быть
только по одной звёздочке. При этом, фиксированные символы,
стоящие в маске после звёздочки, в расчёт не принимаются. Здесь
не имеются в виду случаи, когда звёздочка в основной части, а
фиксированные символы в расширении. Речь идёт о символах,
находящихся в той же части маски, что и звёздочка. Так что,
работая с группами файлов, нужно быть осторожным при составлении
маски. Не было бы большой беды, если бы операционная система
просто игнорировала слишком разнообразные маски, но она
выполняет действия, не учитывая некоторые символы маски.
Поэтому, при удалении группы файлов, можно, не желая того,
удалить и нужные файлы. Однако, разобравшись, какие маски всё же
допустимы в тех или других программах, мы можем не бояться таких
последствий, а использование маски нам поможет существенно
сэкономить наше время и силы.
ВОПРОСЫ И ЗАДАНИЯ
1. Означает ли звёздочка в маске файла то же самое, что
звёздочка на лбу маски Царевны-Лебедь или на будёновке
красноармейца? Если нет, то что всё же означает первая
звёздочка?
2. Что означает вопросительный знак в маске файла или
каталога?
3. Из приведенного ниже списка имён файлов, выберите те,
которые имеют маску AT*.T? (буквы A, T, звёздочка, точка, буква
T и вопросительный знак).
ATLET.TXT
ATOM.TS
ARKA.TX
ATAKA.T
ATLAS
AT.TA
4. Укажите маску, которую имеют все вышеперечисленные файлы.

ГЛАВА 4

ПРОСТЕЙШИЕ ОПЕРАЦИИ НАД РАЗДЕЛАМИ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ
(КОМАНДЫ DOS)
4.1. "Слушай мою команду!"
В этом разделе мы поговорим о том, что такое команда.
Попробуйте сейчас, прервав чтение, ответить сами себе, какой
смысл вы вкладываете в это понятие. Здесь безусловно не имеется
в виду ни футбольная команда, ни команда парнишки с комиссарской
закалкой из повести Аркадия Гайдара. Попробуйте вспомнить
примеры из жизни, где используются команды. Кто-то вспомнит
армию, а кто-то - дрессировку собак. Наверное у каждого
сформулируется что-то подобное сказанному ниже.
Команда - это порция информации, как правило, заранее
обусловленная, которая, будучи передана одному или нескольким
субъектам, вызывает с их стороны некоторое действие,
соответствующее этой команде.
Таким образом, о команде может идти речь только тогда, когда
присутствует один субъект, отдающий команду и один или несколько
субъектов её исполняющих. При этом, команда, как порция
информации, должна быть заранее знакома всем этим субъектам. Не
правильно думать, что сама команда выполняет действие. Нет, она
только вызывает его. Выполняют же действие те субъекты, для
которых команда предназначена. Они к моменту получения команды
обязательно должны иметь умение, навык и, возможно, какую-то,
совсем другую информацию, необходимую для исполнения нужного
действия.
Любая команда имеет две части: содержательную и
исполнительную. Содержательная часть несёт информацию о
действии, которое нужно выполнить, а исполнительная - это
собственно команда в команде, сигнал, утверждающий, что команду
уже нужно исполнять. Иногда эти две части разрываются во
времени: сначала передаётся содержательная часть, а потом, может
даже через значительный промежуток времени, исполнительная.
Рассмотрим армейский пример. Офицер командует "Нале!"
Содержательная часть передана. Солдаты уже знают, что нужно
будет выполнять поворот налево. Через какое-то время раздаётся:
"Во!" Это исполнительная часть. Услышав её, солдаты выполняют
команду. Он мог вместо "Во!" сказать: "Отставить!" Это означало
бы снятие команды. Аналогичная ситуация возникает и с некоторыми
другими армейскими командами.
Однако, бывают команды, в которых исполнительная часть
совпадает с содержательной. Команда должна исполняться сразу же,
как только субъект, которому она предназначена, получит её и
идентифицирует, т.е. попросту поймёт, что от него требуется. В
армии такой командой, например, является команда "Смирно!", а в
кинологии все имеющиеся команды именно такие. Это "Ко мне!",
"Сидеть!", "Лежать", "Рядом!", "Фас!" и т.д. Подобный же принцип
отдачи команд используется в мореплавании: "Отдать швартовы!",
"Лево руля!", "Полный вперёд!" и т.д.
Всегда ли отданные команды исполняются? Конечно нет. Почему
же команда может оказаться бездейственной? Это возможно по
разным причинам. Есть ряд условий, необходимых для корректности
команды. Несоблюдение их приводит к невыполнению команды.
1. Отсутствие полномочий (неуместность команды). Отдающий
команду должен иметь право в данной ситуации её отдавать, т.е.
иметь необходимые полномочия. Например, если лейтенант на
минутку отлучится, а его место перед взводом солдат вдруг займёт
резвый мальчуган и звонким голосом закричит: "Шагом марш! ", то
вряд ли взвод тронется с места. А вот лейтенант пришёл, сказал
то же самое, даже чуть тише, и солдаты пошли.у дрессированной
собаки команда тоже не должна вызывать никаких действий, если
она отдана не хозяином. Полномочия нашего лейтенанта
распространяются не на всех людей. Другими словами, его команды
уместны только в среде подчинённых ему солдат. Если ему
вздумается прийти на митинг пацефистов и отдавать привычные
армейские команды его участникам, то вряд ли эти команды найдут
отклик и воплотятся в соответствующих действиях. Они здесь будут
попросту неуместными. Возможна ещё ситуация, когда команда не
выполняется из-за недостатка полномочий. Если солдат выполняет
задание майора, а лейтенант, встретив его, отдаёт команду,
противоречащую этому заданию, то команда останется не
выполненой. Таким образом, у субъектов, отдающих команды могут
быть разные полномочия.
2. Несвоевременность. Если знакомый нам лейтенант лет через
пять, уже будучи капитаном, на том же месте, где была
проигнорирована команда мальчугана и оказалась действенной его
команда, вдруг встретит кого-нибудь из тех солдат и повторит те
же два слова, то они вряд ли вызовут что-нибудь, кроме удивления
или негодования. Команда будет несвоевременной.
3. Неправильность или нечёткость. Даже когда субъект,
отдающий команду, имеет нужные полномочия, этого ещё не
достаточно для корректности команды. Она должна быть известна
для того, кто должен её выполнять. Если прапорщик, после
чрезмерного злоупотребления спиртным, начнёт перед строем солдат
издавать невразумительные звукосочетания, предполагая при этом,
что солдаты должны сделать какое-то конкретное действие, то ни
крики, ни угрозы, ни мордобой не помогут ему добиться желаемого.
Солдаты просто не будут понимать, чего он от них хочет. Ведь
подобная команда не предусматривается ни одним из военных
уставов. Та же ситуация возникнет, если стандартная команда
будет отдана очень тихо или нечётко, с проглатыванием отдельных
звуков. И хорошо, если в этом случае команда будет просто
проигнорирована. А то можно добиться результатов, прямо
противоположных желаемым.
4. Отсутствие реальных возможностей для выполнения. Может
так случиться, что и полномочия у отдающего команду есть, и
команда понятная, и отдана чётко, но необходимое действие
останется невыполненным из-за отсутствия реальных возможностей у
субъекта, который должен выполнять команду. Например, если
солдаты стоят прямо перед глухой стеной и им была дана команда
"Шагом марш!", то эта команда не будет выполнена. Если офицер
скомандует: "Рядовой Степанов! Выйти из строя!", а рядового с
такой фамилией в строю нет вообще, то и эта команда окажется
невыполненной.
5. Неумение и своеволие. Бывает, что команда не исполняется
или исполняется плохо из-за неумения и отсутствия навыков у
субъекта, которому она предназначена. Если новобранец ещё не
обучен, то он может перепутать одну команду с другой или
растеряться и невыполнить команду вообще.
А кто из вас не был свидетелем ситуации, когда хозяин,
выходя из себя, с очевидным бессилием в голосе кричит своему
чаду: "Лорд! Ко мне! Ко мне, я сказал!", а здоровенная псина
продолжает носиться взад-вперёд где-то ддали? Хозяин понимает,
что ещё немного, и он опоздает на работу. Это осознание придаёт
его голосу интонации просительности, перемешанные с нотками
минутной ненависти. Он начинает выдавливать из себя тексты,
которые не найдёшь ни в одном перечне собачих команд ни в каких
справочниках по кинологии. Он кричит что-то вроде: "Лорд! Иди
сюда! Кому я сказал?! Лордик, быстро иди сюда!" Однако Лордик
обращает на своего хозяина не больше внимания, чем это сделал бы
одноимённый представитель высокой палаты Английского Парламента.
Что же происходит? Это что, тоже неумение? Но нет, пёс умело
выполнял все команды на нескольких занятиях с дрессировщиком. Он
хорошо понимает, чего хозяин от него хочет. Он потом даже примет
виноватый вид и склонит перед хозяином голову, размягчая таким
образом его сердце и получая лакомство вместо заслуженного
наказания. Но в данный момент пёс проявляет своеволие, т.е.
противопоставляет свою волю воле хозяина. Такая собака не
закончила своего обучения, вернее, с самого начала неправильно
воспитывалась. И если она вдобавок свирепая, то представляет
большую опасность не только для окружающих людей, но и для
самого хозяина и членов его семьи. К сожалению, таких собак
становится всё больше и больше.
Некоторые команды, кроме стандартной части, предусматривают
возможность использования параметров. Это дополнительная
информация, которая указывает к кому конкретно данная команда
обращена или уточняет в каком режиме она должна быть исполнена.
Как мы видели в одном из примеров, стандартная команда "Выйти из
строя!" была адресована не ко всем, а к рядовому Степанову.
Слова "Рядовой Степанов!" и являются в данном случае параметром.
Если его заменить на другие слова, например, "Сержант Петров!",
то команда останется той же, но будет предназначена уже сержанту
Петрову. Легко видеть, что команды "Шагом марш!", "Бегом марш!"
и "На месте шагом марш!" - это одна и та же команда, но с
разными параметрами, определяющими режим исполнения команды.
ВОПРОСЫ И ЗАДАНИЯ
1. Приведите примеры других команд, используемых в
спортивных соревнованиях, при подъёме грузов и т.п.
2. В каких ситуациях отданная команда может оказаться не
выполненной?
3. Что такое параметры команды? Всегда ли они присутствуют в
команде?
4.2. Общие правила отдачи команд DOS
Прежде всего отметим, что субъектом, отдающим команды DOS
является пользователь, а субъектом, их исполняющим, - компьютер.
В основном посредством этих команд компьютер выполняет некоторые
действия с объектами своей файловой системы. Сразу отметим, что
есть целый ряд компьютерных программ, которые тоже могут
выполнять все эти действия, и, зачастую, пользователю работать с
ними бывает гораздо комфортнее, чем с командами DOS. Однако,
такие программы не всегда могут быть на компьютере или, после
некоторых сбоев, могут отказаться выполнять те или иные
действия. К тому же эти программы нужно как-то первоначально
установить на компьютер. Команды DOS - это минимальный арсенал,
который всегда находится у пользователя под рукой, даже если на
компьютере загружена одна система, и нет никаких других
программ. А ещё бывают ситуации, с которыми команды DOS
справляются проще и быстрее, чем дополнительные программы. Так
что пользователю желательно хорошо освоить эти команды, даже
если впоследствии к ним прийдётся прибегать лишь в отдельных
случаях.
Теперь выясним, когда команды DOS являются уместными и
своевременными.
Прежде всего, компьютер должен быть включен и на нём должна
быть загружена операционная система DOS или WINDOWS. Однако,
этого ещё не достаточно. Команды DOS отдаются в письменном виде,
но пишутся они не ЧЕРНИЛЬНОЙ ручкой на специальном бланке и не
гвоздиком на экране монитора. Команды записываются пользователем
с клавиатуры компьютера в так называемой командной строке.
Поэтому в момент отдачи команды должна работать программа,
предоставляющая возможность пользования командной строкой. Хоть
таких программ есть и немало, но далеко не любая программа имеет
такое качество. В самом простом случае командная строка
открывается в так называемом окне DOS или, попросту, в досовском
окне. Это окно откроется само по себе при загрузке операционной
системы DOS, если заранее не будет предусмотрена автоматическая
передача управления какой-то другой программе. Чтобы это окно
открылось в операционной системе WINDOWS, нужно открыть
приложение "Сеанс MS DOS".
Визуально досовское окно представляет собой чёрный экран, на
котором белыми символами отображаются определённые записи.
Записи могут занимать одну или несколько строк (максимум 25).
Командной строкой является последняя из этих строк. В ней
записано полное имя текущего каталога и символ """, за которым
мерцает курсор, приглашая пользователя записывать команду. Таким
образом, видя досовское окно, пользователь всегда знает какой
каталог, а значит и какой диск, является текущим в данный
момент. Содержательная часть команды DOS записывается справа от
символа """, а в качестве исполнительной части нажимается
клавиша ENTER. Компьютер может выполнить команду или по каким-то
причинам отказаться это сделать. Поэтому в следующих строках
досовского окна может появиться отчёт о выполнении или сообщение
о невозможности выполнения команды. При получении некоторых
команд компьютер может потребовать подтверждение. Оно тоже
записывается в свободных строках досовского окна. Пользователь,
для того чтобы подтвердить команду, в этом случае должен ввести
строчную или заглавную английскую букву "Y". Это первая буква
слова "Yes", что по-русски означает "Да". При нежелании
подтвердить команду, пользователь может ввести английскую букву
"N", тоже заглавную или строчную. Это первая буква английского
слова "No", что означает "Нет". После выполнения команды или
сообщения о невозможности её выполнить, в следующей строке опять
открывается командная строка с полным именем текущего каталога,
символом """ и призывным мерцанием курсора. Система вновь готова
принимать команду, и, при этом, на экране виден отчёт о
выполнении одной или нескольких предыдущих команд и, конечно,
строки с самими этими командами. Когда экран оказывается
заполненным, строки начинают перемещаться вверх, вытесняя с
экрана те, что находятся в самом верху. Иногда отчёт о
выполнении одной команды оказывается столь содержательным, что
заполняет весь экран, а то и не помещается на нём.
Ещё раз подчеркнём, что пользование командной строкой могут
предоставлять и некоторые другие программы. Там всё визуально
может выглядеть немного иначе - не так, как в досовском окне.
Однако, синтаксические правила записи содержательной части
команды DOS всегда одни и те же. О них мы сейчас и поговорим.
Все команды DOS, кроме одной, имеют имя, состоящее из
английских букв, не важно, заглавных или строчных. Это имя
всегда записывается вначале содержательной части команды, а
затем, могут быть записаны параметры команды, если они
предусмотрены её синтаксисом. Параметры отделяются от имени
команды и друг от друга пробелами. Параметры команды - это
объекты строковой природы, например, имена файлов или каталогов.
Они указывают, к каким разделам файловой системы относится
команда. В случае, когда команда может быть применена сразу к
группе файлов, то часто в качестве соответствующего параметра
используют маску.
Ещё есть параметры, называемые ключами. Они начинаются с
косой черты дроби "/" или минуса "-". Как правило, кроме этих
знаков в ключ входит ещё один или два символа. Наличие
определённого ключа в содержательной части команды означает, что
команда должна исполняться в соответствующем этому ключу режиме.
Команда может отдаваться одновременно с несколькими ключами.
Это, правда, возможно только если они накладывают или снимают
ограничения, различные по характеру.
Все параметры, записываемые в содержательной части команды,
имеют свой порядковый номер, и часто бывает существенным, какой
параметр стоит на первом месте, а какой - на втором, третьем и
т.д.
Все команды, кроме одной, предусматривают возможность
использования в содержательной части ключа, состоящего из черты
дроби и вопросительного знака "/?". Если записать в командной
строке имя команды, а затем этот ключ, то на экран будет
выведена информация о данной команде, с указанием её функций и
предусмотренных ключей. Это бывает весьма полезно: не нужно
держать в голове многочисленные ключи команды, а достаточно
знать только её имя. Всю остальную информацию можно легко
получить при помощи ключа, состоящего из черты дроби и
вопросительного знака. В эту информацию обязательно будут
входить синтаксические правила записи содержательной части
конкретной команды в командной строке. Если при этом какой-то
фрагмент заключён в квадратные скобки, то эти скобки в командной
строке записывать не нужно. Они означают, что заключённый в них
фрагмент не обязателен при отдаче команды. Если какие-то
параметры в синтаксической схеме отдачи команды разделены
вертикальной чертой "|", то в командной строке эту черту
записывать тоже не надо. Она означает, что разделяемые ею
параметры взаимоисключают друг друга.
Все команды, кроме одной, имеют полезную возможность
выводить информацию об исполнении команды не на экран, а в
отдельный текстовый файл. Для этого, отдавая команду, необходимо
в качестве самого последнего параметра указать символ """ и имя
файла, в который нужно вывести информацию. Если такого файла не
было, то он создастся. Имя файла можно указать с путём. Тогда он
создастся не в текущем каталоге, а где-то в другом месте. Выводя
отчёт о выполнении команды в файл, пользователь имеет
возможность хранить эту информацию в течение необходимого
времени. На экране же эта информация хранится, пока её не
вытеснит другая информация.
Приведём пример вывода отчёта о выполнении команды в файл и
заодно познакомимся с первой из команд DOS.
Команда VER позволяет получить сведения о версии
операционной системы, установленной на компьютере. Если в
командной строке записать VER и нажать клавишу ENTER, то на
экран выведется эта информация. Если же в командной строке
записать VER "A.TXT и нажать ENTER, то информация попадёт не на
экран, а в файл с именем A.TXT, который, если его не было,
создастся в текущем каталоге. Однако, если текущий диск защищён
от записи или если файл A.TXT в текущем каталоге есть и имеет
атрибут ReadOnly (Только для чтения), то команда вывести
информацию в файл A.TXT не сможет. Это касается и всех других
команд.
Рассмотрим ещё один пример команды DOS, являющейся
исключением из всего выше сказанного. Это именно та команда,
которая не имеет имени и возможности получить о себе справку и
вывести информацию в файл. Зато эта команда имеет один параметр.
Она осуществляет смену текущего диска. Для того, чтобы отдать
эту команду, нужно в командной строке записать имя нового диска,
а мы помним, что оно состоит из английской буквы и двоеточия, а
затем нажать ENTER. Всегда ли эта команда выполнится?
Предположим, что выполнены условия своевременности и уместности:
компьютер включён, операционная система загружена и командная
строка открыта. Мы записали в ней имя диска и нажали ENTER.
Может ли команда остаться проигнорированной, и если может, то в
каких случаях?
Подобная ситуация действительно может возникнуть, при чём в
двух случаях. Во-первых, диска с указанным именем может вообще
не быть на данном компьютере. Тогда команда безусловно не
выполнится, и на экране досовского окна об этом появится
сообщение. Во втором случае диск может оказаться не готовым.
Например, когда в дисковод не вставлена дискета. Тогда на экране
появится сообщение о неготовности диска, а пользователю будет
предложено три варианта: нажать на A (стоп), на R (повтор) или
на F (сброс). Подобная альтернатива, кстати, возникает и при
недоразумениях с другими командами.
Есть ещё случай, когда команда смены диска может быть
бездейственной. Если мы будем отдавать команду не в досовском
окне, а воспользуемся командной строкой, предоставленной
какой-то другой программой, то может оказаться, что эта
программа запоминает текущий каталог до выполнения команды и
возвращает его после её выполнения. Тогда текущий диск на
какое-то мгновение сменится, но после возвращения в программу,
предоставившую командную строку, всё останется попрежнему.
ВОПРОСЫ И ЗАДАНИЯ
1. Установите, какие из следующих утверждений верны, а какие
нет.
Любая компьютерная программа предоставляет возможность
пользования командной строкой.
Некоторые компьютерные программы предоставляют возможность
пользования командной строкой.
/Командная строка имеется только в досовском окне.
2. Какую информацию пользователь всегда может получить,
работая с досовским окном и не задействуя ни одной из команд
DOS?
3. Могут ли в записи команды DOS в командной строке какие-то
параметры предшествовать имени команды?
4. Какие параметры команды называются ключами?
5. Как вывести информацию о выполнении команды не на экран,
а в отдельный файл?
6. Для чего предназначена команда VER?
7. Как при помощи команды изменить текущий диск?
8. Какая альтернатива предлагается пользователю, когда
технические устройства не готовы для выполнения команды?
4.3. Работа с экраном
В этом разделе мы рассмотрим три команды, которые позволяют
пользователю выполнять некоторые действия с экраном досовского
окна.
Имя первой команды CLS является сокращением двух английских
слов "CLEANER SCREEN", что по-русски означает "очистить экран".
Именно этим команда CLS и занимается. Запускается она без
параметров: просто в командной строке пишется CLS и нажимается
ENTER. Если перед этим экран досовского окна был испещрён
следами предыдущих команд, то данная команда очистит эти следы,
сделает экран опять чёрным, и только в первой строке запишется
полное имя текущего каталога, символ """ и призывно замерцает
курсор в ожидании новой команды.
Возможен, правда, случай, когда эта команда отдаётся с
параметром. Как вы думаете: что произойдёт, если команду CLS
переадресовать с экрана в файл? Да, совершенно верно... Если в
нормальном случае эта команда очищает экран, то при
переадресации в файл (а делать это мы научились в предыдущем
пункте), очистится не экран, а этот самый файл. Во избежании
того, что при этом в файл попадут какие-то служебные записи
команды, можно ещё использовать ключ "/Y". Это подтверждение
того, что мы действительно хотим очистить этот файл. Таким
образом, если в командной строке будет записано
CLS /Y "A.TXT
, то файл A.TXT из текущего каталога очистится, т.е. станет
занимать 0 байт.
Следующая команда, которой мы уделим внимание в настоящем
пункте, - это команда ECHO, что по-русски означает "эхо".
Досовское окно может работать в двух режимах. В первом из
них на экран досовского окна выводится вся предусмотренная
информация о выполнении команд. Во втором режиме информации на
экран попадает гораздо меньше. Безусловно, если команда
предназначена для получения информации (а такие команды есть,
например, команда VER), то эта информация будет выводиться на
экран. Попадёт на экран информация о выполнении некоторых других
команд, но в более скупом виде, чем в первом режиме. Всё это
касается и случая, когда информация выводится не на экран, а в
файл.
Так вот, когда команда ECHO отдаётся без параметров, она
выдаёт информацию о том, в каком экранном режиме в данный момент
времени находится досовское окно.
Если команда ECHO отдаётся с параметром ON, т.е. в командной
строке записывается
ECHO ON
, то включается полноценный режим вывода команд на экран. Если
команда отдаётся с параметром OFF, то этот режим отключается.
Команда ECHO имеет ещё одну возможность. Если в качестве
параметров рядом с командой будет записано несколько слов
образующих некоторое предложение, то это предложение появится на
экране. Такое употребление команды ECHO фактически бесполезно,
если её отдавать в командной строке досовского окна, и окажется
весьма эффективным, когда мы научимся составлять целую
последовательность из нескольких команд DOS - так называемый
пакетный файл. Тогда команда ECHO может в нужный момент выдавать
на экран или в файл заранее предусмотренные сообщения.
Если в качестве параметра команды ECHO указать символ с
кодом 7, то команда выдаст на внутренний динамик звуковой
сигнал. Продолжительность этого сигнала можно увеличить,
добавляя к параметру несколько символов с кодом 7.
Следующая команда PAUSE отдаётся без всяких параметров. Её
цель - остановить выполнение всяких действий в досовском окне,
пока пользователь не нажмёт любую клавишу. При этом на экран
выдаётся сообщение о том, что для продолжения нужно нажать любую
клавишу.
Команда тоже приобретает смысл только при использовании
пакетного файла - последовательности из нескольких команд.
ВОПРОСЫ И ЗАДАНИЯ
1. Как очистить экран досовского окна? Что будет, если эту
команду переадресовать в файл с плодом ваших многолетних трудов?
2. В каких двух экранных режимах может работать досовское
окно? Как эти режимы переключаются и как узнать какой режим
установлен в данный момент времени?
3. Что будет, если команду ECHO отдать с каким-то не
предусмотренным параметром?
4. Для чего предназначена команда PAUSE?
4.4. Работа с каталогами
В этом разделе мы познакомимся с четырьмя командами,
которые, как видно из названия, выполняют некоторые действия над
каталогами или позволяют получить о них определённую информацию.
Имя команды DIR является сокращением от английского слова
"DIRECTORY", что, как мы помним, есть в нашей области знаний
синонимом слов "каталог" и "папка".
Если команду DIR отдавать без параметров, записав в
командной строке её имя и нажав ENTER, то на экране появится
информация о содержимом текущего каталога. Каждая строка этой
сводки будет начинаться с имени файла или подкаталога из
текущего каталога. Расширение имени, если оно есть, записывается
чуть поодаль. Если строка соответствует подкаталогу, то этот
факт в ней отражается одним из слов "DIR", "КАТАЛОГ" или "ПАПКА"
(какое именно из этих слов будет записано, зависит от версии
операционной системы). В строке, соответствующей файлу,
указывается его размер. Ещё в каждой строке указываются дата и
время создания соответствующего файла или каталога.
Заметим, что если в текущем каталоге имеются скрытые или
системные файлы, т.е. файлы с атрибутами Hidden = 2 и SysFile =
4, то при такой отдаче команды DIR, информация о них не попадёт
на экран. Её тоже можно получить, но при использовании
специального параметра - ключа, о котором скажем чуть позже.
Завершается сводка команды DIR указанием количества файлов в
текущем каталоге и их суммарного размера, а также указывается
количество подкаталогов текущего каталога и размер свободного
места на диске.
Если в команде DIR в качестве параметра указать имя
какого-то другого каталога с путём, то такая же информация будет
выдана о содержимом этого каталога. Здесь уже может возникнуть
ситуация, когда команда окажется невыполненной, даже если
компьютер включен, операционная система загружена, команда
записана в командной строке и нажат ENTER. Это случится, когда
указанного каталога не существует. Тут может либо имя каталога
быть записано неверно, либо допущена ошибка в записи пути,
например, пропущено одно звено.
Ещё в качестве параметра можно указать некоторую маску с
путём. Тогда сводка будет содержать информацию только о файлах и
каталогах, имеющих такую маску.
Команду DIR можно отдавать и с определёнными ключами, каждый
из которых начинается с наклонной черты дроби и записывается как
параметр уже после имени каталога или маски. Набор ключей для
этой команды достаточно широкий. Его с описанием назначения
каждого ключа всегда можно получить, отдав команду DIR с ключём,
состоящим из черты дроби и вопросительного знака "/?". Мы здесь
рассмотрим только некоторые из них.
Ключ /A позволяет получить информацию о всех файлах
соответствующего каталога, не зависимо от их атрибутов. Если к
ключу /A присоединить справа двоеточие и определённую английскую
букву, то в сводку попадёт только информация о файлах, имеющих
атрибут, соответствующий указанной букве. Здесь можно
использовать следующие буквы: "R" (только для чтения), "H"
(скрытые файлы), "S" (системные файлы), "A" (файлы,
предназначенные для архивации). При указании после двоеточия
буквы "D" будет выведена информация только о подкаталогах
соответствующего каталога. Ещё после двоеточия и перед
соответствующей буквой можно указать минус "-". Это приведёт к
тому, что информация о соответствующих данной букве объектах не
попадёт в сводку.
Ключ "/O" отвечает за способ сортировки информации.
Используется он аналогично ключу "/A": после него ставится
двоеточие и определённая английская буква. Здесь буква как раз и
определяет характер сортировки. Буква "N" устанавливает
сортировку по алфавиту. Буква "E" тоже определяет алфавитную
сортировку, но тут в рассмотрение берутся не имена файлов и
каталогов, а их расширения. Буква "S" соответствует сортировке
файлов по их размеру, начиная с меньших. Буква "D" осуществляет
сортировку по дате создания, начиная с более старых. Буква "A" -
тоже сортировка по дате, но не создания, а помещения файлов и
каталогов в данный каталог. Указав после двоеточия букву "G" мы
получим список, который начинается с информации о каталогах, а
затем идёт информация о файлах. Заметим, что перед каждой из
перечисленных букв сразу же после двоеточия можно поставить
минус "-". Тогда список будет отсортирован в обратном порядке.
Теперь кратко охарактеризуем ещё три ключа команды DIR. Если
использовать ключ "/S", то в список попадут не только файлы и
подкаталоги из указанного каталога, но и из его структуры - его
подкаталогов, подкаталогов его подкаталогов и т.д. Использование
ключа "/N" приведёт к тому, что в список попадут только имена
файлов и подкаталогов, а ключ "/V" наоборот принудит команду DIR
выдать более подробную, чем обычно, информацию о файлах и
подкаталогах.
Рассмотрим пример. Если в командной строке записать
DIR D:\KNIGI\PUSHKIN /A:-R /O:D /N "A.TXT
и нажать ENTER, то команда выдаст информацию о файлах и
подкаталогах каталога PUSHKIN из каталога KNIGI, находящегося на
диске D:. При чём в этом списке будут пропущены не только
скрытые и системные файлы, но и файлы с атрибутом "только для
чтения". Сортировка будет проведена по дате создания, начиная с
самых старых файлов и каталогов. Информация окажется предельно
краткой: в список попадут только имена файлов и каталогов, а
попадёт эта информация не на экран, а в файл с именем A.TXT,
который создастся, если его там ещё небыло, в текущем каталоге.
Этот файл потом можно будет просмотреть при помощи специальной
программы и хранить столько, сколько это будет необходимо.
Следует успокоить тех читателей, которые уже начали
волноваться из-за столь обширной информации, касающейся этой
команды. Не беда, что не всё запомнилось. Главное запомнить имя
команды и то, что, имея под рукой командную строку, её всегда
можно отдать с вопросительным ключём.
Теперь познакомимся с командой MD. Её имя является
сокращением английских слов "MAKE DIRECTORY", что по-русски
означает "создать каталог". Этим данная команда и занимается.
Без параметра она вообще не используется. При записи команды в
командной строке необходимо после её имени MD поставить пробел и
записать имя создаваемого каталога с путём. Вспомним, что путём
к объектам текущего каталога является пустая строка. Поэтому,
если каталог создаётся в текущем каталоге, то после имени
команды следует записать только имя создаваемого каталога. Даже
если соблюдены условия уместности и своевременности (включен
компьютер, загружена операционная система, открыта командная
строка), команда MD может всё-равно не выполниться. Это возможно
по следующим причинам:
1. Неправильно записано имя команды, например, вместо
английской буквы "M" набрана русская буква "М", которая имеет
схожий внешний вид.
2. Указанный каталог уже существует.
3. Неправильно записан путь, например, пропущено одно звено.
Теперь познакомимся с командой противоположного назначения.
Её имя RD. Это сокращение двух английских слов "REMOVE
DIRECTORY", что по-русски означает "удалить каталог". Команда
удаляет пустой каталог, имя которого с путём указано в качестве
параметра. Без параметров команда не используется. Команда тоже
может оказаться бездейственной. Ошибка в имени команды здесь
маловероятна: обе английские буквы не похожи ни на какие русские
буквы. Однако, может быть допущена ошибка в написании имени
удаляемого каталога. Может так же быть неправильно записан путь.
Словом, если у команды MD была причина невыполнения в том, что
каталог уже существует, то у команды RD обратная причина:
указанного каталога не существует. Ещё команда RD останется
бездейственной, если указанный каталог непустой.
Последней в этом разделе мы рассмотрим команду CD. Это
сокращение двух английских слов "CHANGE DIRECTORY" что по-русски
означает "сменить каталог". Из третьей главы мы помним, что в
любой момент времени на каждом диске выделяется один какой-то
каталог, который называется текущим каталогом данного диска, а
из всех этих текущих каталогов дисков выделяется один каталог,
который называется текущим каталогом системы или просто текущим
каталогом, без упоминания диска. Это текущий каталог текущего
диска.
Команда CD без параметров сообщает имя текущего каталога.
Если же в качестве единственного параметра команды указать имя
другого каталога с путём, то на соответствующем этому пути диске
текущим каталогом станет указанный каталог. Обратите внимание на
то, что команда CD в общем случае меняет текущий каталог на
соответствующем диске, а не текущий каталог системы. Однако,
если новый каталог находится на текущем диске, то изменится
текущий каталог текущего диска, т.е. текущий каталог системы.
Если в качестве параметра команды CD указано полное имя
каталога, находящегося не на текущем диске, то он ещё не станет
текущим каталогом системы. Для этого нужно применить ещё одну
команду - сменить диск, указав в командной строке имя того
другого диска и нажав ENTER. Такого же результата можно было бы
добиться, изменив порядок выполнения этих двух команд: сначала
сменить диск, а потом текущий каталог на новом текущем диске.
В качестве параметра команды CD можно ещё использовать две
точки ".." (не следует путать с двоеточием ":"). При таком
применении команды текущим каталогом системы станет родительский
каталог теперешнего текущего каталога, если конечно он не был
корневым. Другими словами, мы поднимемся на один уровень вверх.
Теперь подумаем о том, когда команда CD не будет
выполняться. Во-первых, вместо английской буквы "C" пользователь
может нечаянно записать совпадающую по внешнему виду русскую
букву "С". Тогда команда окажется неправильной и не выполнится.
Ещё может быть ситуация, когда указанного каталога не
существует: либо имя указано неверно, либо ошибка в пути. Во
всех этих случаях команда сообщит об ошибке. Если в команде
будет указано имя каталога, который и так является текущим на
соответствующем диске, то никаких действий тоже не последует, но
не будет и сообщений об ошибке.
ВОПРОСЫ И ЗАДАНИЯ
1. Как получить список в алфавитном порядке всех скрытых
файлов текущего каталога и узнать их суммарный размер?
2. Как получить полный список имён файлов из структуры
текущего каталога, не содержащий имён подкаталогов?
3. Когда команда DIR не выполняется?
4. Как можно создать новый каталог и как можно убедиться,
что он действительно создался?
5. Когда команда MD не выполняется?
6. Как можно удалить пустой каталог и как можно убедиться,
что он действительно удалился?
7. Когда команда RD не выполняется?
8. Как сделать текущим каталогом корневой каталог диска C:,
если текущим является каталог C:\ARC? Укажите два способа.
9. Как сделать текущим каталогом каталог D:\KNIGI\PUSHKIN,
если текущим является корневой каталог диска C:? Укажите два
способа.
10. Когда команда CD не выполняется?
4.5. Работа с файлами
Перед тем, как перейти к изучению команд, предназначенных
для работы с файлами, познакомимся с некоторыми непривычными
взглядами на внешние устройства компьютера.
Операционная система DOS некоторые внешние устройства вводавывода
рассматривает, как отдельные файлы и закрепляет за ними
определённые имена. Принтер считается файлом с именем PRN. В
этот файл операционная система может только записывать
информацию, но не может её считывать. Вся информация,
записываемая в файл PRN поступает на принтер и распечатывается
на бумаге, если конечно он готов к работе. Можно было бы
сказать, что это файл с атрибутом "только для записи", если бы
такой атрибут имел смысл для обычных файлов, хранящихся на
дисках. Таким же качеством обладает монитор, который
операционная система воспринимает как файл с именем CON.
Компьютер не в состоянии ничего прочитать с экрана монитора, в
отличие от пользователя, для которогоэта информация как раз и
предназначена. Зато он может в этот условный файл что-то
записать, и это что-то сразу появится на экране в виде,
привычном для пользователя.. А если посмотреть на клавиатуру,
как на файл, то в него как раз компьютер ничего не сможет
записать, но зато сможет прочитать из него. А что прочитать? То,
что пользователь будет набирать на клавиатуре. Как ни странно,
операционная система и этот условный файл воспринимает под
именем CON, и при этом не возникает никаких недоразумений. Если
компьютеру указывают что-то записать в файл CON, то он выводит
эту информацию на монитор, а если требуют от него что-то
прочитать из этого файла, то он читает с клавиатуры.
Объединённые в такую систему устройства монитор и клавиатура
называются консолью. Этим и обуславливается имя файла CON.
Есть ещё ряд устройств, за которыми операционная система DOS
закрепляет определённые имена.Перечислим их:
LPT1 - LPT3 - устройства, присоединяемые к параллельным
портам 1 - 3; AUX - дополнительное устройство, присоединяемое к
асинхронному последовательному порту 1; COM1 - COM3 -
устройства, присоединяемые к асинхронным последовательным портам
1 - 3; NUL - "пустое" устройство. Все операции с устройством NUL
осуществляются так, словно это обычный файл, но он при этом так
и остаётся пустым. О пользе, которую можно получить от этого
устройства мы поговорим немного позднее.
Операционная система предполагает, что в каждом каталоге,
который есть в файловой системе компьютера, имеются файлы с
вышеперечисленными именами. Поэтому использовать эти имена для
других файлов нельзя, даже если давать им расширения.
Сообщения о выполнении команды DOS можно переадресовывать с
экрана на эти устройства. Например, если команду DIR
переадресовать в файл PRN, то отчёт о содержимом каталога
поступит не на экран и не в какой-то реальный файл, а на
принтер. Если отчёт о какой-то команде переадресовать с экрана в
файл CON, то он на самом деле никуда не переадресуется, а
попадёт именно на экран. При переадресации отчёта в файл NUL, он
вообще никуда не попадёт. Вот, кстати, и первая польза: если мы
не хотим, чтобы отчёт о команде хоть куда-нибудь поступал, то
можно смело переадресовывать его в файл NUL.
Теперь приступим к изучению команд DOS, предназначенных для
работы с файлами. Мы рассмотрим три таких команды: TYPE, DEL и
COPY.
Команда TYPE предназначена для просмотра текстового файла на
экране монитора. Из третьей главы мы помним, что текстовый файл
- это файл, разбитый на строки парами символов с кодами 13 и 10.
При этом, поскольку длина строки не может превышать двухсот
пятидесяти пяти символов, расстояние между двумя соседними
такими парами не должно превышать 255. Реально эти расстояния,
как правило, значительно меньше. На экране может целиком
поместиться строка, размер которой не больше восьмидесяти
символов. Ещё текстовый файл должен заканчиваться символом с
кодом26, что на клавиатуре соответствует нажатию сочетания
клавишь "CTRL+Z".
В качестве единственного параметра команды TYPE указывается
имя нужного текстового файла с путём. После нажатия клавиши
ENTER, на экране появится содержимое указанного файла, при этом,
строки файла будут размещаться горизонтально в строках экрана.
Давайте подумаем: а что произойдёт, если команду TYPE
переадресовать в другой файл, записав вторым параметром символ
""" и имя этого файла? Совершенно верно: содержимое исходного
файла попадёт не на экран, а во второй файл. Произойдёт
копирование первого файла под именем второго. При этом, правда,
копирование будет не совсем полным: некоторые характеристики
файла, такие как дата и время создания, у оригинала и копии
будут отличаться. А что же случится, если команду переадресовать
в файл PRN? Понятно, что в этом случае при готовом к работе
принтере мы получим копию файла в печатном виде.
А вот ещё вопрос: можно ли в качестве первого параметра
команды TYPE использовать имя PRN? Понятно, что нет, так как для
того, чтобы отобразить содержимое файла на экране, компьютеру
его нужно сначала прочитать с диска, а из файла PRN компьютер
прочитать ничего не может. А вот к устройству CON команда TYPE
вполне применима. Она тогда будет записывать на экране то, что
пользователь пишет на клавиатуре. Клавише ENTER соответствует
символ с кодом 13, Поэтому при её нажатии строка заканчивается и
начинается новая. Чтобы завершить работу команды TYPE,
применённой к устройству CON, нужно ввести символ конца
текстового файла. Здесь для этого можно нажать клавишу F6, или
комбинацию клавишь "CTRL+Z" , или нажать клавишу ALT и, не
отпуская её, набрать на вспомогательной цифровой клавиатуре код
соответствующего символа 26. Затем нужно нажать ENTER, и команда
завершит своё выполнение. Очевидно, что в таком употреблении
команды нет особого смысла, а вот если её при этом
переадресовать в некоторый файл, то всё набранное на клавиатуре
запишется в этот файл. Мы получим что-то вроде примитивного
текстового редактора. Если же в командной строке записать
TYPE CON "PRN
и нажать ENTER, то получим что-то вроде обычной пишущей машинки.
Кстати, один из переводов слова TYPE - "писать на машинке".
Имя команды DEL является сокращением от английского слова
DELETE, что по-русски означает "уничтожать". Эта команда служит
для удаления одного или нескольких файлов. В командной строке
записывается имя команды DEL, а потом в качестве параметра через
пробел указывается имя удаляемого файла с путём или маска с
путём. При таком способе отдачи команды удалится указанный файл
или все файлы имеющие заданную маску. Однако, здесь есть одно
ограничение: удаляемые файлы должны иметь атрибут Archive = 32.
Такой атрибут имеют самые обычные файлы. Если нам нужно удалить
скрытый, системный или предназначенный только для чтения файл,
то сперва нужно изменить его атрибут, что мы делать пока не
умеем.
Если удаляемые файлы находятся в текущем каталоге, то, как
мы помним, путём к ним является пустая строка, т.е|. в качестве
параметра команды DEL можно указывать обычное имя файла или
маску. Однако, если указать полное имя, то ошибки не произойдёт.
В команде DEL можно использовать и второй параметр - ключ
"/P". В этом случае, перед удалением каждого файла будет
запрашиваться подтверждение пользователя. Для подтверждения
следует вводить символ "Y", а для отказа - "N", а затем нажимать
ENTER. Когда в качестве параметра команды DEL указывается маска
*.* (с путём или без пути) , обязательно следует запрос о
подтверждении, даже при отсутствии ключа "/P". Однако, в таком
случае достаточно одного подтверждения, и будут удалены все
файлы из соответствующего каталога.
Команда DEL может не выполниться по следующим причинам: если
имя команды записано не верно, если указанный файл не существует
(ошибка в имени или пути) или если этот файл имеет атрибут,
отличный от Archive.
Теперь перейдём к одной очень полезной команде DOS. Это
команда COPY, что по-русски означает "копировать". Этим она и
занимается: создаёт копии одного или нескольких файлов. Эта
команда имеет много различных способов применения, и желательно
в них всех разобраться.
В самом простом случае синтаксическая схема отдачи этой
команды имеет вид:
COPY "источник" ["приёмник"]
Здесь "источник" и "приёмник" - два параметра. В самом простом
случае первый параметр "источник" - это имя с путём файла,
который копируется, а второй параметр "приёмник" - имя с путём
создаваемого файла-копии. Мы помним, что если файлы находятся в
текущем каталоге, то их имена с путём - это их обычные имена.
Впрочем, имя файла полным путём не испортишь. Имя
файла-приёмника может отличаться от имени файла-источника, а
если оба они относятся к одному каталогу, то это отличие должно
быть непременно. А вот дата и время создания у файла-приёмника
будут такими же, как у файла-источника. Для успешного
копирования необходимо, чтобы файл-источник имел атрибут
ReadOnly = 1 или Archive = 32. Чтобы скопировать скрытый или
системный файл, нужно сперва изменить его атрибут.
Если файл копируется под тем же именем, то не обязательно в
качестве параметра "приёмник" указывать имя этого файла с путём,
а можно указать имя с путём каталога, в который этот файл
копируется. Если это текущий каталог какого-то другого,
нетекущего, диска, то достаточно в качестве параметра "приёмник"
взять имя этого диска. Например, для того, чтобы скопировать
файл SPISOK.TXT из каталога KNIGI текущего диска в текущий
каталог диска D:, достаточно отдать команду:
COPY \KNIGI\SPISOK.TXT D:
Ещё обратите внимание на то, что в синтаксической схеме
отдачи команды COPY параметр "приёмник" заключён в квадратные
скобки. Это означает, что он не обязателен, т.е. возможны
ситуации, когда он отсутствует. Такое случается, когда нужно
скопировать файл из какого-то каталога в текущий каталог под тем
же именем. Тогда в качестве единственного параметра команды COPY
нужно указать имя файла-источника с путём. Например, если нужно
скопировать файл MUZYKA.MP3 из текущего каталога диска E: в
текущий каталог, достаточно отдать команду:
COPY E:MUZYKA.MP3
В качестве параметров "источник" и "приёмник" можно
использовать и маски с путём. Тогда будет копироваться целая
группа файлов, имеющих маску источника, и имя их может
измениться согласно маске приёмника. Например, для копирования
из каталога REFERAT, находящегося на дискете, в текущий каталог
всех файлов с расширением TXT, достаточно отдать команду:
COPY A:\REFERAT\*.TXT
Если же от дать команду
COPY \KNIGI\*.DOC A:\*.TXT
, то произойдёт копирование из каталога KNIGI из текущего диска
в корневой каталог диска A: всех файлов с расширением DOC. При
этом расширения у новых файлов изменятся на TXT. Обратите
внимание на то, что если бы во втором параметре между именем
диска A: и маской *.TXT не было символа "\" ("бэк слэж"), то
копирование осуществлялось бы не в корневой, а в текущий каталог
диска A:.
При копировании может случиться, что в соответствующем
каталоге уже есть файл с таким же именем, которое должно
присвоиться файлу- копии. Тогда старый файл заменится новым.
Однако, эта замена произойдёт только, если у старого файла будет
атрибут Archive = 32. Во избежание случайных потерь информации в
команде COPY можно использовать ещё один параметр. Это ключ,
состоящий из наклонной черты дроби, минуса и английской буквы Y
"/-Y". При использовании его, если файл с таким же именем, как
файл копия уже существует, то будет запрашиваться подтверждение
на копирование. Добавляется этот ключ к указанной выше
синтаксической схеме справа через пробел, и, поскольку он не
обязателен, то заключается в квадратные скобки. Так что эта
схема может быть обобщена следующим образом:
COPY "источник" ["приёмник"] [/-Y]
Команда COPY имеет ещё одно очень полезное применение: её
можно использовать для объединения двух или нескольких файлов.
Для этого нужно вместо параметра "источник" указать несколько
параметров. Это имена объединяемых файлов, записанные в том же
порядке, в котором их нужно объединять. Отделяться друг от друга
эти имена должны тройкой символов: пробел, "+" и пробел.
Указание параметра "приёмник" в таком случае обязательно. Иначе
под именем какого из файлов-источников нужно было бы создавать
копию? Отметим, что такой способ распространяется только на
текстовые файлы. Предположим, что мы сканировали и вычитывали
книгу по-частям, и у нас в текущем каталоге возникло десять
текстовых файлов с именами 01, 02, ..., 10. Тогда для их
объединения в один файл с именем KNIGA.TXT можно отдать команду:
COPY 01 + 02 + 03 + 04 + 05 + 06 + 07 + 08 + 09 + 10 KNIGA.TXT
Отметим, что если какие-то из этих файлов отсутствуют, то не
беда: объединяться те, которые реально существуют.
При помощи команды COPY можно объединять не только текстовые
файлы, но и бинарные. В этом случае нужно использовать тот же
принцип, но перед именем первого файла-источника следует указать
ещё один параметр. Это ключ "/B". Как и все параметры команды,
он должен от имени команды и другого параметра отделяться
пробелами.
Итак, синтаксическая схема отдачи команды COPY в самом общем
случае имеет вид:
COPY [/B] "ист1" [+ "ист2" + ... + "истN"] ["приёмник" ] [/-Y]
Здесь "ист1", "ист2", ..., "истN" имена с путём объединяемых
файлов-источников.
Теперь подумаем, могут ли файлы-устройства PRN, CON и NUL
быть параметрами команды COPY? Поскольку из файла-источника
компьютер для копирования должен читать информацию, то файл PRN
им быть не может. Файл CON вполне может быть источником: при его
копировании компьютер реально будет считывать всё, что
набирается на клавиатуре и записывать в файл-приёмник. Файл NUL
тоже может быть источником, но при его копировании получится
пустой файл. В роли файла-приёмника может быть каждый из этих
файлов-устройств. Если это будет файл PRN, то копирование одного
или нескольких объединяемых файлов будет осуществляться на
принтер. Это один из самых простых способов распечатки
информации. Если в роли приёмника будет CON, то содержимое
источника попадёт на экран, а при копировании в NUL, считывание
источника произойдёт, но его содержимое никуда не запишется.
Иногда бывает, что записанный на дискету файл, из-за повреждения
магнитной поверхности не может потом нормально считаться с
дискеты. Поэтому, чтобы наверняка убедиться, что записанная на
дискету информация впоследствии нормально считается, можно
скопировать её при помощи команды COPY в файл NUL. Если операция
завершится успешно, тоинформация с дискеты считывается
нормально. Использование файла CON в качестве приёмника команды
COPY идентично команде TYPE, применённой к файлу- источнику. CON
- это единственный файл, который может одновременно быть и
источником, и приёмником, и, при этом, сохранится какой-то
смысл. Тогда всё, что набирается на клавиатуре, будет попадать
на экран. Чтобы в этом случае завершить работу, нужно ввести
символ конца текстового файла так же, как это делалось для
команды TYPE, применённой к файлу CON.Если CON будет источником,
а PRN - приёмником, то команда COPY будет иммитировать пишущую
машинку.
Напоследок перечислим ситуации, когда команда COPY не
выполнится. Это прежде всего случится, если файла-источника не
существует (ошибка в имени файла или в пути). Может быть также
ошибка в пути файла-приёмника: каталога, куда осуществляется
копирование, может не быть вообще. Ещё команда будет
безуспешной, если файл-источник является скрытым или системным
файлом или меткой тома. Копирование также не состоится, если уже
существует файл с именем файла-приёмника, при чём он имеет
атрибут, отличный от Archive = 32. Во всех этих случаях команда
COPY молча завершит работу, так ничего и не сделав. Но есть ещё
два случая, когда она не справится с задачей: если на диске, на
который выполняется копирование, не хватает свободного места или
имеются сбойные кластеры. Однако, в этих случаях, так же, как
при переходе на неготовый к работе диск, будет предложен выбор:
нажать на A (стоп), на R (повтор) или на F (сброс).
ВОПРОСЫ И ЗАДАНИЯ
1. Что вы знаете о файлах с именами PRN, CON, NUL? Какие ещё
есть файлы подобного назначения? Можно ли какому-то создаваемому
файлу дать имя COM2.txt?
2. Для чего нужна команда TYPE? Можно ли её применить к
несуществующему файлу?
3. Можно ли команду TYPE переадресовать в файлы PRN, CON,
NUL? Можно ли её применить к этим файлам?
4. Какая команда служит для удаления файлов? Сколько нужно
команд, чтобы удалить каталог, в котором пять файлов и нет
подкаталогов? Какие это команды?
5. можно ли команду DEL применить к файлам PRN, CON и NUL?
6. Когда команда DEL не выполняется?
7. Как скопировать все файлы из текущего каталога на
дискету? Как скопировать все файлы с дискеты в текущий каталог?
8. Сколько нужно команд, чтобы вместо двух текстовых файлов,
появился один, объединяющий в себе их содержимое? Какие это
команды? Что нужно изменить, чтобы это же осуществить с
бинарными файлами?
9. Можно ли в команде COPY вместо параметров "источник" и
"приёмник" указывать имена PRN, CON и NUL?
10. Когда команда COPY не выполняется?
4.6. Установка системной даты и системного времени
Как мы знаем, в компьютере есть электронные часы, которые
работают даже, когда он выключен. Дата и время, которые на них
установлены, называются системной датой и системным временем.
Как правило, эти величины совпадают с календарной датой и
соответствующим данному часовому поясу временем. Однако, при
необходимости их можно установить как угодно. Кстати, дата и
время создания файла совпадают с системной датой и системным
временем компьютера в момент последнего сохранения файла. Так
что настоящая дата и время создания файла могут значительно
отличаться от тех, что отражены в его дескрипторе.
Когда батарейка на материнской плате немного разряжается,
часы начинают работать весьма нестабильно, и приходится либо
менять батарейку, либо постоянно подправлять системную дату и
системное время. Для установки этих величин служат команды DATE
и TIME.
Если команду DATE отдавать без параметров, на экран будет
выведена действующая в данный момент системная дата и
пользователю будет предложено ввести новое её значение. Затем
нужно подтвердить новое значение системной даты вводом символа
"Y" и нажатием клавиши ENTER.
Для незрячих пользователей более удобный другой способ
изменения системной даты. Он заключается в том, что при отдаче
команды DATE новая дата указывается в командной строке в
качестве параметра. Формат записи даты следующий: два символа
занимает число, затем идёт точка ".", затем в двух позициях
записывается месяц, потом ставится ещё одна точка ".", а за ней
год, который можно задавать либо двумя, либо четырьмя цифрами.
Если число записывается при помощи одной цифры, то к нему
впереди нужно приписать один ноль. Это же касается и месяца.
Например, если в качестве системной даты нужно установить 23 мая
2003 года, то следует отдать команду:
DATE 23.05.03
Заметим, что в различных версиях операционной системы формат
записи даты может отличаться от вышеуказанного. Например, двух
символов для указания года может быть не достаточно, а нужно
указывать год полностью. Кроме того, в качестве разделителя
между числом, месяцем и годом может использоваться не точка ".",
а другой символ, например, минус "-" или двоеточие ":".
Пользователь об этом может узнать, отдав команду DATE с
вопросительным ключём "/?". Однако, автор сталкивался с
ситуациями, когда справка о команде не соответствовала
действительности. Повидимому она была автоматически перенесена
программистами из предыдущей версии операционной системы, а
формат записи даты в новой версии уже отличался от старой. В
этом случае нужно реальнодействующий формат устанавливать
экспериментально. /Автор даже сталкивался с ситуацией, когда на
первом месте даты записывался месяц, а на втором число.
Теперь перейдём к команде TIME. Если её отдавать без
параметров, то на экран выведется системное время и будет
предложено ввести новое его значение. Всё очень похоже на то,
что было с командой DATE. Если мы не хотим никакого диалога, то
можно новое время указать команде в качестве параметра: часы и
минуты, разделённые точкой ".". При необходимости можно указать
секунды и миллисекунды, тоже отделяемые точкой ".". Все эти
величины должны занимать две позиции и, при необходимости,
дополняться недостающим нулём. Например, если мы хотим
установить системное время 8 часов, 15 минут и 6 секунд, то
нужно отдать команду:
TIME 08.15.06
Выясним теперь, когда команды DATE и TIME будут
бездейственными. Если соблюдены условия своевременности и
уместности, то это может случиться только, когда какие-то из
величин (число, месяц, часы, минуты, секунды) находятся вне
соответствующих диапазонов. Например, число больше тридцати
одного, месяц - двенадцати, часы - двадцати четырёх, минуты и
секунды - шестидесяти.
ВОПРОСЫ И ЗАДАНИЯ
1. Как можно узнать системную дату и системное время,
установленные на компьютере?
2. Как установить новую системную дату без диалога с
компьютером?
3. Как установить новое системное время без диалога с
компьютером?
4. Когда команды DATE и TIME не выполняются?

ГЛАВА 5

ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММАХ
5.1. Что такое программа?
В предыдущих разделах мы неоднократно встречались со словом
"программа" и теперь вплотную приступим к изучению этого
понятия.
Вообще-то мы встречались с этим словом и раньше, и оно не
всегда было связано с компьютерными технологиями. Например, люди
среднего возраста и постарше цепко держат в закромах своей
памяти намертво въевшиеся словосочетания:Программа минимум",
"Программа максимум", "Программа КПСС", "Продовольственная
программа" и т.п. Но зачем вспоминать о грустном? Нет чтобы
поговорить, например, о школьной программе или о чём-то ещё
более весёлом, например о цирке или о театре. Ведь там же тоже
есть программы. Их называют ласково программками. Да, театр...
Как это было давно! Бинокли, седые старушки в служебных одеждах
провожают на места и продают эти самые программки. С появлением
этих сериалов вроде как и надобность в театрах пропала. Включил
себе телевизор - вот тебе и театр. Вовремя только включить
нужно. Лучше заранее в газете с программой отметить, когда что
идёт. О! И здесь программа! А вообще-то сейчас телевизор можно
смотреть и без всяких программ, благо техника шагнула вперёд
очень далеко. Сидишь себе с пультом в руках и пощёлкиваешь
кннопочками. А на экране картинки одна другой занятнее. Вот
передача, где обстоятельно рассказывают, как лучше всего
обманывать своих мужей и жён. А вот солидный учёный очень
убедительно заверяет, что для хорошего пищеварения начинать
вступать в интимные отношения с противоположным полом лучше
пораньше: ещё на школьной скамье. Да и нет особой беды, если не
с противоположным. Говорит, что сейчас это считается вполне
нормальным явлением. Вспоминается, что где-то когда-то это тоже
считалось вполне нормальным явлением, только где сейчас это
где-то? А вот стрельба. Да такая стрельба, что самому невольно
хочется вжаться в диван. А как это щекочет нервы! Вон человека
разорвало на куски, а в это время обнажённая пара делает своё
дело, не смотря ни на что. Это, правда, совсем на другом канале.
А вот страшное чудище то же самое делает с девушкой, похожей на
Золушку из старого доброго мультфильма. Чудище при этом дико
орёт и пожирает младенцев. Тфу! Лучше бы оно сожрало того
депутата, который на соседнем канале рассказывает свою
предвыборную программу, согласно которой мы скоро перестанем
плеваться от предыдущих кадров и будем считать это нормальным
явлением. О! И тут программа! А может то, что кадры до чудища
уже считаются вполне нормальным явлением - это тоже результат
какой-то завершившейся программы? А может и все эти программы -
лишь часть какой-то более обширной программы?
Надо же! Эти программы оказывается окружают нас со всех
сторон. И пока нет ни слова о компьютере. А вот компьютерная
передача. Здесь слово "программа" не сходит с уст участников.
Что же всё-таки такое программа?
Попробуем определить это понятие, придав ему смысл, который
будем в него вкладывать на страницах этого пособия.
Программа - это упорядоченный набор команд,
исполнение которых может ставиться в зависимость от выполнения
некоторых условий.
Под командами здесь понимаются не только команды DOS, хотя
вчастности это касается и их.
Из ппункта 4.1 мы помним, что в нашем понимании команда -
это порция информации, которая будучи правильно передана от
одного субъекта другому, вызывает со стороны второго субъекта
некоторое действие. Здесь же идёт речь об упорядоченном наборе
таких команд. Это значит, что есть первая команда, есть вторая,
есть третья и т.д. Словом, все команды пронумерованы и, при
необходимости, их можно выстроить в очередь. При этом, совсем не
обязательно, что все эти команды предназначены для одного и того
же субъекта. В роли субъектов здесь могут выступать различные
устройства компьютера, и одни команды могут быть предназначены
для одних устройств, а другие - для других. Эти все устройства
должны образовывать систему: иметь взаимосвязь и находиться друг
с другом во взаимодействии.
Рассмотрим в качестве иллюстрации пример. Мальчик утром
просыпается, родители уже на работе, а на столе рядом с кроватью
записка от мамы. В ней написано следующее: "Добавь своё
постельное бельё к тому, которое уже лежит в стиральной машине и
включи её; застели свою кровать; умойся и почисть зубы; закипяти
чайник; в холодильнике возьми масло, намажь бутерброды; сделай
чай; позавтракай; когда машина достирает, если не будет дождя,
то повесь бельё сушиться".
Вот пример короткой программы. В её реализации должно
участвовать сразу несколько субъектов: сам мальчик, кран в
ванной комнате, кран на кухне, чайник, газовая плита,
холодильник, стиральная машина (повидимому автомат), бельевая
верёвка и прищепки. Обратите внимание, что из всех команд этой
программы к выполнению условия привязана только одна -
последняя. Все остальные команды безусловны. Вешать же бельё
нужно, когда выполнится сложное условие: во-первых, машина
достирает, а во-вторых, если на улице не будет дождя. Если
машина не достирала, а погода ясная, то вешать бельё нельзя.
Нельзя это делать и если машина уже достирала, но идёт дождь.
Ещё раз обратим наше внимание на определение понятия
команды, которое мы давали в пункте 4.1 и уже совсем недавно
вспоминали. Команда, как порция информации, передаётся
некоторому субъекту и вызывает с его стороны определённое
действие. Здесь понятие "действие" имеет весьма широкую
возможность толкования. Это может быть очень простой поступок,
занимающий совсем мало времени и сил, а может быть целый ряд
таких поступков, т.е. действие может заключаться в определённой
последовательности других действий. В последнем случае для
исполнения команды может понадобиться целая программа, состоящая
из более детальных команд. Например, команду "закипяти чайник"
можно было бы детализировать: "сними крышку чайника; если в
чайнике нет воды, то открой кран, налей воды в чайник и закрой
кран; закрой чайник; достань спичку; зажги её; открой регулятор
подачи газа; поднеси спичку к газовой горелке; если конфорка
загорится, то поставь на неё чайник, а если нет, то закрой
регулятор подачи газа и вернись от этой команды на 4 команды
назад; когда вода закипит, закрой регулятор подачи газа". Вот
видите: эта программа ещё посложнее, чем та, которую мама
написала сыну. В ней уже несколько команд привязаны к выполнению
каких-то условий и есть фрагмент, который называется циклом. Это
когда в случае неудачного зажигания конфорки приходится
возвращаться на несколько команд назад и повторять их. Если в
этой программе случайно пропустить команду по зажиганию спички и
предположить, что мальчик не будет проявлять своеволия,
самостоятельно изменяя программу, то программа просто-напросто
зациклится или, как это ещё называют, зависнет. Мальчик будет
брать спичку и подносить её к горелке. Та не будет зажигаться и
мальчик будет брать другую спичку и... Словом, "У попа была
собака". Не пойдёт дело и если пропустить команду "открой кран".
Обратите внимание, что мама сыну таких подробных инструкций
не писала, поскольку знала, что сын с программой по реализации
команды " закипяти чайник" уже хорошо знаком. Кстати, эту
программу можно было бы назвать подпрограммой той программы,
которую написала мама. Очевидно, что и для исполнения других
команд маминой программы, которые сын исполняет лично, требуются
отдельные подпрограммы, с которыми сын был хорошо знаком.
А теперь давайте обратим внимание на стиральную машину. Она
тоже работает по определённой программе. У неё даже есть так
называемый программатор. Однако, эту программу нельзя считать
подпрограммой маминой программы, поскольку стиральная машина -
это устройство, которое после того, как ему правильно передадут
команду стирать, дальше всё делает само и не требует участия
того, кому программа предназначалась. Подобная же ситуация в
определённой мере складывается и с водопроводным краном, и с
газовой плитой. Мальчику нужно было всего-навсего правильно
передать им команду и время от времени обращать внимание на то,
закончили ли они задание или нет. Кстати, во всё остальное время
мальчик мог бы заниматься выполнением других команд. Например,
пока набирается вода в чайник, - зажигать газ, а пока закипает
вода на плите, - готовить бутерброд. Ещё заметим, что
холодильник в данной программе не является устройством,
предназначенным для выполнения команд, а используется как
хранилище. Однако, в другой программе, например, по
приготовлению мороженого, он уже будет выполнять определённое
действие по своей собственной программе охлаждения.
Отметим, что все команды DOS, расмотренные в предыдущей
главе, для своей реализации тоже требуют специальных программ,
которые по размеру намного больше, чем то, что пишется в
командной строке при отдаче команды.
В предыдущих примерах мы вплотную подошли к понятию, которое
называется процессором.
Среди субъектов системы, выполняющей программу, выделяется
один субъект, который какие-то её команды выполняет сам, а
остальные переадресовывает другим субъектам и только следит за
выполнением ими соответствующих действий. Это и есть процессор.
Он обрабатывает программу команда за командой, проверяет
условия, к которым команды привязаны (если они есть) и, когда
нужно, выполняет команды или отдаёт их соответствующим
субъектам. Процессор - это что-то вроде мажордома во дворце или
метрдотеля в ресторане. Он имеет власть над другими работниками,
но всё, что делает сам и всё, что поручает другим, берёт
исключительно из программы, составленной хозяином.
Передача программы в распоряжение процессора и команда
процессору на её выполнение называется запуском программы.
Далеко не всегда процессором является микропроцессор
компьютера. В примере с "маминой программой" им был мальчик.
Роль процессора может играть даже программа, запускающая одну за
одной другие программы.
В самом названии заложен тот факт, что процессор управляет
процессом: рядом событий, следующих одно за другим. Если
устройство выполняет команду процессора по своей собственной
программе, как это было со стиральной машиной, то оно для этого
должно иметь свой процессор. Бывает, программы, по которым
работает такое устройство, не отличаются большим разнообразием.
Возможно даже, что устройство выполняет команду по одной
единственной программе. Поэтому процессор у таких устройств
может быть гораздо проще, чем у системы, которая выполняет
основную программу. Программа, по которой работает устройство,
может быть раз и навсегда заложена в конструкции процессора. В
самом простом случае роль процессора могут даже играть
геометрические формы устройства. Например, песочные часы. Они
состоят из двух прозрачных камер. Узкий проход между камерами
ограничивает количество песчинок, которые могут пройти через
него за единицу времени. Конусные формы камер не дают песчинкам
задерживаться на стенках. Осталось добавить неизменную силу
тяжести, которая заставляет песчинки из верхней камеры падать в
нижнюю, и, как говорится, процесс пошёл. Процессором здесь
является корпус часов.
В тех случаях, когда программы, по которым работают
устройства неразрывно связаны с конструкцией процессора,
процессор называется контроллером, так как он не столько
управляет процессом, сколько его контролирует. Многие устройства
компьютера имеют такие контроллеры. Например, монитор
подключается к видеоадаптеру (его ещё называют видеокартой),
который, в свою очередь, подключается к материнской плате. Это и
есть упомянутый выше контроллер. У видеоадаптера есть своя
собственная память, в которую микропроцессор компьютера,
реализуя порученную ему программу, помещает в двоичных кодах
задание, а видеоадаптер, пользуясь заложенной в него программой,
управляет процессом воплощения этого задания на экране. Такую же
роль играет звуковая карта при выводе звуковой информации.
Подобный же контроллер находится в принтере. Всё это процессоры,
контролирующие процессы вывода информации.
Ещё раз обратим внимание на то, что процессор имеет
безраздельную власть над устройствами управляемой им системы.
Однако, в нормально работающей системе властелином его назвать
никак нельзя, поскольку он не имеет своей воли и только
исполняет команды программы. Стало быть, запущенной программе
принадлежит власть над процессором, а, следовательно, и над всем
процессом.
Для некоторых читателей будет неожиданным осознание факта,
что информация, которая, как мы помним, имеет нематериальную
природу, будучи правильно оформлена и правильно передана,
приобретает огромную власть над высоко организованными
материальными объектами. Здесь может быть не только один
компьютер с его микропроцессором и различными устройствами, но и
целая компьютерная сеть, к которой могут быть подключены и
станки с числовым программным управлением, и даже механизмы,
огромных размеров и силы выполняющие какие-то действия под
управлением радиосигналов в различных концах Земного Шара.
Кто-то возразит, что это не программа, а программист имеет
власть, поскольку он разработал программу, и пользователь имеет
власть, поскольку владеет этой программой и хочет - запускает
её, а не хочет - нет. А вы задумайтесь: является ли их власть
над программой такой уж совершенной? Безусловно, программист,
разработавший программу, знает о ней очень много, знает сильные
и слабые места, дополнительные возможности, знает, как в случае
необходимости лучше всего остановить её работу. Однако,
полноценной назвать его власть над программой можно не всегда.
Реализация многих программ при конкретном их запуске зависит от
большого количества случайных факторов: даты, времени, значений
каких-то других параметров. Бывает, что способности программы
зависят от содержимого определённых баз данных, которые, кстати,
могут формироваться не только пользователями, но и другими
программами или даже самой этой программой. Эдакое формирование
"жизненных принципов". Поэтому программист, наблюдая за работой
своей программы на каком-то компьютере, не всегда знает, что она
в данный момент делает и на что способна. Он, конечно, при
желании может в этом разобраться, но для этого понадобится
некоторое время. Многие же большие программы вообще
разрабатывают огромные колективы программистов, каждый из
которых знаком только с отдельным фрагментом программы. Тогда
нет никого, кто бы знал программу в совершенстве целиком. Ещё
меньше власти над программой у её пользователя. Если
программист, столкнувшись с недостатками своей программы, может
её как-то изменить, то обычному пользователю это не доступно. Он
даже не всегда знает, что в данный момент на его компьютере
запущена эта программа, потому что запустить её могла какая-то
другая программа. Слабость программы заключается в том, что она
нуждается в размещении на каком-то материальном носителе и
длясвоего воплощения должна быть запущена со стороны. Однако,
будучи запущенными и при наличии постоянного питания, многие
программы становятся независимыми от посторонней помощи и могут
работать безостановочно годы. Для остановки же программы у
пользователя в руках иногда остаётся единственная возможность:
выключить компьютер. Хорошо, что она пока ещё остаётся.
Здесь обо всём этом говорится не для того, чтобы убедить
читателя, что время ужасных "Терминаторов" уже приближается или
что страшная и вездесущая программа "Матрица" вот-вот незаметно
для нас целиком завладеет всеми нами. Нет, человеческие
технологии пока что такой силы не имеют. Они, правда, уже сейчас
посредством других сил завладевают отдельными людьми, делая их
зависимыми от компьютера, вернее, от работающих на нём программ,
но это уже является предметом отдельного разговора. Сейчас же
ещё раз хочется подчеркнуть, что человек над программой хоть и
имеет определённую власть, но менее совершенную, чем программа
над компьютером. Это делает программы в какой-то мере
самостоятельными реально существующими объектами нематериальной
природы. Они в основном приносят людям неоценимую пользу, но
есть и такие, которые причиняют невозместимый материальный и
моральный ущерб.
Из всего вышесказанного следует, что все компьютерные
технологии делятся на две различные группы.
Первая группа состоит из всевозможных технических устройств
компьютера. Свойство материальности объектов этой группы принято
выражать одним английским словом "hard", что по-русски означает
"твёрдый" "жёсткий". В русскоязычном простонародье всё, что
относится к этой группе, принято называть "железом", хотя
настоящего железа в этих технических изделиях немного.
Ко второй группе относятся программы. Их свойство
нематериальности выражают английским словом "soft", что
по-русски означает "мягкий". Ещё используется такой английский
термин, как "software", что по-русски, не совсем дословно,
означает "программное обеспечение".
Теперь сформулируем один из самых главных законов мира
компьютерных технологий. Назовём его законом о поступках
компьютера. Он гласит:
Компьютер без программы не может сделать ничего!
Здесь под словом "ничего" не имеется в виду, что он
может, например, упасть со стола и задавить ползающего по полу
таракана. Это может сделать и заснувший читатель данного
пособия. Здесь имеется в виду, что компьютер без программы не
может сделать ничего, присущего компьютеру. Вроде закон очень
простой. Все, кто постигает азы компьютерных технологий, когда
его впервые слышат, сразу утверждают, что тут всё просто и
понятно. Однако, через очень короткое время становится ясно, что
этот закон некоторые всё-таки не усвоили. Они начинают примерно
следующий диалог:
- Он мне сказал, что не может чего-то прочитать. Подскажите,
что мне делать!
- А кто "он"?
Как кто? Компьютер конечно.
А что, компьютер сам может говорить?
- Ну не сам он сказал, а колонка сказала. Ну чего вы к
словам придираетесь?! Скажите лучше, что делать.
- Подождите секунду, а что разве колонка может сама
говорить?
- Ну не сама, а через звуковую карту, но главное, что он это
сказал, а я не знаю что делать. Подскажите, пожалуйста.
Как-то сразу и не знаешь, что на это сказать. Вроде всё
правильно: говорила колонка, подключённая к звуковой карте,
которая находится в компьютере. Но такой пользователь
самостоятельно так и не сможет выяснить, что ему делать дальше.
Если ему подсказать, то он сделает то, что нужно, но через очень
короткое время подойдёт с подобным же вопросом. Если же вместо
подсказки просишь, чтобы он повторил недавно выученный закон, он
сначала раздражается, а потом без запинки повторяет его,
совершенно не понимая, причём этот закон к данной ситуации. Нет,
пока пользователь не научится пользоваться этим законом, дело у
него как следует не пойдёт. Он должен сообразить, что если
компьютер без программы не может делать ничего и при этом что-то
сказал, то сказал на самом деле не он, а сказала какая-то
программа, а он только за ней повторил, как попугай. Следующим
шагом нужно ответить самому себе на вопрос: "Какая именно
программа это сделала?" Выяснив это, уже можно разбираться,
когда эта программа говорит подобные вещи и зачем. Для этого
можно обратиться к справочной системе программы, или к её
описанию, или к другой документации. Кстати, начинающему
пользователю бывает довольно-таки трудно выяснить, какая именно
программа сделала то, что поставило его в тупик. Здесь ему нужно
прежде всего вспомнить, что он работает всего скажем с пятью
программами. Говорить умеют три. Из них две никогда раньше не
говорили, что не могут что-то прочитать. Значит, скорее всего,
это сказала третья говорящая программа. Здесь опять следует
обратиться к документации программы.
Итак, тот, кто по-настоящему усвоил закон о поступках
компьютера, старается запоминать, что это, это и это делает
такая-то программа, а то, то и то - такая-то. Если такому
пользователю станет радостно, от того, что компьютер сказал ему
доброе слово, или грустно, от того, что компьютер обозвал его
последними словами, то он не станет считать компьютер добряком
или хамом. Он будет относить эти качества к соответствующим
программам.
ВОПРОСЫ И ЗАДАНИЯ
1. Приведите другие примеры использования понятия
"программа" не в компьютерных технологиях.
2. Что называется программой? Приведите примеры, аналогичные
той, что мама написала своему сыну.
3. Составьте подпрограммы "намазывания бутерброда" и
"вешанья белья" из "маминой программы".
4. Что такое процессор и какую роль он играет при выполнении
программы? Когда процессор называют контроллером? Что играет
роль процессоров при набирании воды в чайник и при её кипячении,
когда чайник уже находится на горящей конфорке?
5. Что значит запустить программу?
6. Может ли программа быть процессором?
7. Кто кому подчиняется: программа компьютеру или компьютер
программе?
8. Что такое hard и soft? Что у них общего и чем они
отличаются?
9. Сформулируйте закон о поступках компьютера. Как его
следует использовать на практике?
5.2. Как работает микропроцессор компьютера?
Теперь поговорим о том, как работает микропроцессор
компьютера. Он для этого, как и любой другой процессор,
обязательно нуждается в программе. Закон о поступках компьютера
(см. п. 5.1) для микропроцессора принимает частные формы и
звучит примерно так: микропроцессор компьютера без программы не
может сделать ничего, путного разумеется. А вот какого вида
программы он способен выполнять? Из каких команд должны состоять
эти программы? Каким образом эти команды должны отдаваться
процессору?
Отметим сразу, что ни команды "Нале! - Во!", ни команды
"вскипяти чайник", ни даже команды "COPY" микропроцессор не
понимает. Все доступные для него команды обозначаются некоторыми
числами размером в один байт и поступают на него в двоичном виде
при помощи электрических сигналов. Получив команду в виде числа,
микропроцессор начинает её выполнять, реализуя соответствующую
этому числу подпрограмму, которая заложена в нём конструктивно.
Каким же образом электрические сигналы поступают на процессор?
Когда-то, во времена первых компьютеров, программист мог
потратить несколько недель на подготовку программы к запуску,
припаивая для этого специальным образом многочисленные
электрические контакты. Сейчас всё обстоит гораздо проще, хотя
на деле всё осуществляется значительно сложнее. Однако, ни
программисты, ни тем более пользователи, при запуске и
выполнении программ в суть этих сложностей не углубляются и в их
преодолении участия не принимают. Они не смогли бы этого
сделать, если бы даже захотели, поскольку там всё настолько
миниатюрно, что никаким паяльником туда не подлезешь.
От первых до последних мгновений работы компьютера,
микропроцессор выполняет программу, которая находится в памяти
компьютера. Эта программа не является неизменной в процессе
работы. Она претерпевает динамические изменения: какие-то её
фрагменты (модули) удаляются из памяти, а какие-то туда
помещаются. Чтобы наглядно представить себе те события, которые
происходят при выполнении микропроцессором такой программы, мы
рассмотрим более понятную для нас модель.
Представьте себе, что вы и есть микропроцессор, и что
находитесь вы в помещении автоматической камеры хранения. Перед
вами ряды ящичков с металлическими дверцами. Пусть для простоты
ситуации этих ящичков всего 256, и все они нумеруются, начиная с
нулевого, а заканчивая двести пятьдесят пятым. Эти номера будем
называть адресами ящичков. Ещё представим, что в эти ящички вы
можете помещать не что иное, как числа размером в один байт,
т.е. от нуля до двухсот пятидесяти пяти. Тем, кто когда-то
помещал числа в вагоны, представить это будет совсем нетрудно.
Кто же так и не научился делать подобные вещи, может
представлять, что набирает эти числа вместо шифра, не обращая
при этом внимания на буквенную его составляющую.
Если в ящичке, куда вы помещаете число, уже есть какое-то
другое число, то оно автоматически затрётся новым числом. При
необходимости вы можете заглянуть в любой ящичек и посмотреть,
какое число там помещено.
Итак, находящиеся перед вами стеллажи из ящиков - это и есть
память компьютера, а сами ящички - это её ячейки. В современных
компьютерах, правда, размер памяти, т.е. количество подобных
ячеек, в сотни тысяч, а то и в миллионы, раз больше, но ведь мы
рассматриваем только модель. Теперь предположим, что часть ячеек
заполнена какими-то числами. Это и есть программа, по которой вы
сейчас работаете. Не нужно думать, что все эти числа являются
какими-то командами процессору. Среди них есть и данные:
значения каких-то численных величин, адреса таких же ячеек, коды
символов и т.п.
Теперь предположим, что вы, как микропроцессор, уже
некоторое время проработали по этой программе, и в данный
момент, закончив предыдущую команду, знаете, что следующую вам
нужно искать, скажем, в ячейке с номером 78. Вы обращаетесь к
этой ячейке и считываете лежащее в ней число. Вы точно знаете,
что оно является командой, а не относится к данным, так как
выполнение предыдущей команды вы завершили полностью. Итак, вы
обращаетесь к своим внутренним знаниям микропроцессора и
понимаете, что прочитанное число обозначает команду, согласно
которой вам нужно уйти с данной ячейки, но не куда вам будет
угодно, а на ячейку, адрес которой содержится в следующей, т.е.
в семьдесят девятой, ячейке. Хранящееся в ней число уже не
является командой, а относится к данным. Оно в этом случае
является параметром команды. Очень похоже на то, что было с
командами DOS. Мы помним, что команды DOS могут содержать один,
два и большее число параметров, в зависимости от команды.
Похожая ситуация возникает и для команд процессора. Данная
команда имеет лишь один параметр - адрес ячейки, на которую
нужно переходить. Вы заглядываете в ячейку с номером 79 и видите
там число 53. Содержательная часть команды принята, а в
исполнительной команды процессора не нуждаются. Вы исполняете
команду, переходя к ячейке 53 и заглядывая в неё. Поскольку
команда завершилась, то в ней должна быть следующая команда. Вы
смотрите, что содержащееся там число обозначает команду
сложения, и складывать нужно числа, находящиеся в ячейках,
адреса которых записаны в следующих двух ячейках с номерами 54 и
55. При этом результат записывается в ту ячейку, где находится
первое из этих чисел. Здесь команда имеет два параметра.
Предположим, что в ячейке 54 записано число 181, а в ячейке 55 -
число 93. Тогда вы спешите к ячейке 93, считываете оттуда число,
переходите к ячейке 181, к её содержимому добавляете число из
ячейки 93 и результат записываете в ячейку 181. Будем считать,
что складываемые числа не очень большие: такие, что их сумма
тоже занимает один байт. Иначе для записи результата нам
пришлось бы задействовать ещё одну ячейку, что бы усложнило и
так довольно непривычную для многих модель. Словом, считаем, что
лишних осложнений не произошло, команда выполнена, и так как она
не требовала перехода, а все ваши движения были связаны с
поиском чисел, которые нужно было складывать, то вы должны
сейчас вернуться туда, откуда убегали на эти поиски. Вернее, вы
должны направиться к следующей ячейке, после тех, в которых
находились параметры команды, т.е. к ячейке 56. А в ней
оказывается число, обозначающее команду проверки условия. Это
значит, что прежде всего, вы должны сравнить два числа,
находящихся в ячейках, адреса которых записаны в следующих двух
ячейках после команды. Итак, вы находите числа, по адресам,
записанным в ячейках 57 и 58 и сравниваете их. Если первое из
них окажется больше второго, то вам следует перейти к ячейке 59
и там прочитать адрес ячейки со следующей командой.Если же
второе число больше первого, то вам следует пропустить ячейку 59
и для определения адреса следующей команды заглянуть в ячейку
60. Если числа окажутся равными, то нужно пропустить не только
ячейку 59, но и 60, а заглянуть в ячейку 61 и там узнать, где
искать следующую команду. Как вы видите, в данной команде
присутствуют пять параметров: два адреса сравниваемых чисел и
три адреса следующей команды, и какой из них реализуется,
зависит от результата сравнения.
Итак, считаем, что первое число было больше второго, и вы
ушли на ячейку 213, номер которой был записан в ячейке 59.
Прочитав записанное в ней число, вы соображаете, что оно
обозначает команду записи в одну ячейку содержимого другой.
Исполняя эту команду, вы должны заглянуть в следующую ячейку
214. Там записан адрес. Направившись по этому адресу вы
считываете находящееся там число, а затем помещаете его по
адресу, записанному в ячейке 215 . Команда выполнена. Она
содержит два параметра: адрес ячейки-источника и адрес
ячейки-приёмника. Мы видим, что эта команда похожа на команду
COPY, только там копировался файл или группа файлов, а здесь
всего-навсего содержимое ячейки. Кстати, эта команда вполне
могла изменить содержимое ранее участвовавшей в деле ячейки,
например, одной из тех, где хранились адреса сравниваемых чисел,
скажем большего. Тогда следующей командой можно было бы заменить
и содержимое ячейки 59, где хранится адрес команды, которую
нужно исполнять, когда первое число окажется больше второго. Мы
помним, что там до этого хранилось число 213. Теперь при помощи
команды перехода можно смело возвращаться в знакомые нам места
по адресу 56, где находится команда проверки условия. Таким
образом, после повторного выполнения этой команды, мы найдём
меньшее уже не из двух, а из трёх чисел. Ведь мы заменили адрес
числа, которое в первый раз оказалось большим, адресом третьего
числа.
Если вам не всё здесь понятно и нет особого желания в этом
всём разбираться, то не нужно отчаиваться. В конце-концов вы в
данный момент процессор, а процессору совсем не обязательно
понимать, что происходит. Для него главное всё добросовестно
исполнять.
Давайте теперь представим, что согласно следующей команде
вам нужно содержимое ячейки 135 записать в ячейку 10. Вы всё
делаете, как и раньше, даже не подозревая, что у десятой ячейки
совсем другой статус, чем у ранее используемых ячеек.
Представьте себе, что ящичек номер 10 не имеет задней стенки, а
вместо неё там находится точно такая же дверца, которая
открывается из соседней комнаты. Ещё представьте, что с той
стороны, прямо перед открытой дверцей стоит и терпеливо ждёт
паренёк по имени Вася. Он ваш коллега, но занимает не столь
высокий пост в данном заведении. Он работает контроллером,
скажем, видеоадаптером. Как только вы поместили в десятый ящик
число из указанной вам ячейки, Вася со своей стороны это число
прочитал. Для вас это число относилось к данным, но для Васи оно
может быть командой, например, очистить экран, или переместить
курсор в строку, номер которой последует сразу же за командой,
или писать на экране все символы, коды которых будут
передаваться в данную ячейку в следующие мгновения. И вот вы,
работая далее по указанной вам программе, помещаете в ячейку 10
одно за одним какие-то числа из других ячеек. Вася их оттуда
выуживает и перебрасывает в ячейки своей памяти, расположенные в
соседней комнате. Затем он, отрабатывая по своей собственной
программе, вынуждает монитор изображать пикселами на экране
нужные символы. Вы же в это время, продолжая выполнять свою
программу, делаете что-то, может быть уже совсем не связанное, с
управлением экраном.
Не нужно считать, что десятый номер ячейки - это какой-то
стандарт, относящийся к видеокарте. В данном случае это
условность, действующая только в нашей модели. Кстати, среди
расположенных перед вами ячеек, есть ещё несколько с такими же
особенностями, как и десятая ячейка. Одно только различие, что с
другой стороны перед ними дежурят контроллеры других устройств
компьютера: принтера, жёсткого диска, дисковода, звукового
вывода информации и т.п.
Предположим, например, что ячейка номер 5 напрямую связывает
вас с контроллером клавиатуры, и вы, работая по своей программе,
то и дело заглядываете в неё, проверяя, нет ли там чего-то
новенького. Когда пользователь нажимает какую-то клавишу,
контроллер клавиатуры помещает в пятую ячейку со своей стороны
код этой клавиши , и вы, заметив это, сразу перебрасываете его
куда-то дальше. Это будет либо добавление к вашей программе,
либо какие-то новые данные. Возможно, что через несколько шагов
вашей программы, эти данные будут попадать через десятую ячейку
к Васе, а затем от него на экран монитора.
За рассмотренный нами промежуток времени вашей работы в
должности процессора, вы выполнили всего несколько команд, но,
при этом, вам пришлось прилично поноситься взад-вперёд вдоль
пронумерованных ящичков камеры хранения. А если бы вы ещё смогли
представить себе, с какой скоростью вы носились! Если бы вас
увидел при исполнении самый выдающийся за все времена
представитель восточных единоборств, он бы понял, что зря
потратил тьму времени на тренировки, что вас ему не одолеть
никогда. Однако, он бы вас не смог бы увидеть, поскольку
перемещения с такой скоростью человеческим глазом просто не
фиксировались бы.
Может кто-то подумал, что настоящий микропроцессор в самом
деле носится с бешенной скоростью по материнской плате вдоль
ячеек памяти? Но это не так. Он сидит себе на своём рабочем
месте, протянув свои многочисленные конечности к электрическим
контактам памяти и контроллерам устройств. И когда
микропроцессору нужно прочитать содержимое какой-то ячейки
памяти, он на одни контакты подаёт адрес этой ячейки, а с других
считывает её содержимое. Всё выполняется, разумеется, в двоичной
системе счисления. Примерно так же осуществляется и запись в
ячейку. Таким образом, чтобы нашу модель сделать ближе к
реальности, вам не нужно вообще перемещаться в пространстве.
Сидите себе за столом перед вентилятором и вышеупомянутыми
ячейками, сообщаете только адреса нужных ячеек, и они сами
подкатывают к вам, ппредоставляя в ваше распоряжение своё нутро.
Всё это тоже происходит с молниеносной скоростью, и для того,
чтобы у вас не случались умопомрачения от перегрева, и нужен
вентилятор.
Вот вы немного побывали в шкуре микропроцессора. Как видите,
в этом нет ничего увлекательного. Команды программы до предела
примитивные. Вы конечно познакомились не со всеми, но остальные
ничуть не интереснее. Даже мало верится, что при помощи таких
простых команд можно делать то, что способны совершать в
настоящее время компьютеры, но на самом деле всё очень похоже на
нашу модель. Есть некоторые отличия, связанные с адресацией.
Ведь ячеек в памяти компьютера гораздо больше, чемв нашей
модели. Здесь одной, и даже двух, ячеек для записи адреса бывает
не достаточно. Ещё автор не ручается, что в отдаче
проиллюстрированных команд у нашей модели и у настоящего
компьютера присутствует буквальное сходство. Однако, основные
принципы работы микропроцессора наша модель всё-таки передаёт.
ВОПРОСЫ И ЗАДАНИЯ
1. Что из себя представляет программа, по которой работает
микропроцессор компьютера? Где эта программа должна находиться
при её выполнении?
2. В каком виде записываются команды процессора?
3. Может ли программа, по которой работает микропроцессор,
изменяться в процессе её выполнения?
5.3.Что такое операционная система?
Компьютерные технологии в настоящее время способны
справляться с огромным количеством различных задач, которые
ранее решали сами люди, или которые были вообще человеку не под
силу. Задачи эти очень разнообразны и по своей направленности, и
по способам реализации. Компьютеру для их решения конечно нужны
программы, ведь, как мы помним, без программ он не может делать
ничего. Совершенно невозможно, да и не нужно создавать одну
большую программу, способную выполнять всё, что подвластно
компьютеру. Для решения разных задач разрабатываются отдельные
программы, которые запускаются тогда, когда это нужно. Они
называются прикладными программами. Один и тот же пользователь
напротяжении дня может использовать десятки различных прикладных
программ.
Мы помним, что для запуска программа должна оказаться в
памяти компьютера в виде, понятном для его микропроцессора, т.е.
в виде упорядоченного набора чисел, заполняющих какие-то ячейки
памяти. Одни из этих чисел являются командами процессора, а
другие относятся к данным. И этого ещё не достаточно: нужно
отдать микропроцессору команду перейти на ячейку с первой
командой запускаемой программы. Программа, как мы помним,
является информацией, и до своего запуска она должна храниться
на каком-нибудь носителе компьютерной информации, например, на
жёстком диске. Возникает вопрос: каким образом прикладная
программа с диска попадает в память и захватывает управление
компьютером? Вряд ли это способен сделать пользователь,
"перегружая" информацию байт за байтом с диска в память. Значит
это делает сам компьютер. Но ведь компьютер без программы не
может делать ничего. Значит это должна делать другая программа,
которая к моменту запуска прикладной программы уже находится в
памяти и управляет компьютером. Она и занимается запуском
прикладной программы, перемещая её в память и передавая ей
управление. Кроме того, когда запущенная программа завершит свою
работу, желательно управление у неё забрать обратно и освободить
занимаемую ею часть памяти, чтобы можно было запускать следующую
прикладную программу. Этим всем и занимается программа, а
точнее, комплекс программ под названием операционная система.
С детства мы знаем, что рыбы для жизни должны находиться в
воде. Они конечно могут находиться и в каком-то другом месте,
например, на сковородке, но жить там они не могут. При чём
морские рыбы не могут полноценно жить в пресной воде, а
пресноводные - в морской. Такова их среда обитания. Мы знаем
также, что птицы не могут летать без воздуха. Если даже убрать
вопрос о необходимости дыхания, скажем, одеть орлу что-то вроде
птичьего акваланга, и отпустить его в помещении без воздуха, он
не взлетит ни на метр. Воздух - это среда обитания птиц. Своя
среда обитания есть у растений, у животных и у человека.
Средой обитания прикладных программ является операционная
система. Без неё прикладная программа мертва. Она не имеет
никакой связи с процессором и не может заставить его даже к
одному прибавить один.Прикладные программы всегда
разрабатываются под конкретную операционную систему и, как
правило, в других операционных системах не работают.
Операционная система умеет интерпретировать предназначеные для
работы в ней программы, т.е. выражать их в виде, понятном для
микропроцессора.
Некоторые программы, завершив свою работу, не выгружаются из
памяти, а остаются там до поры до времени. В операционной
системе DOS они называются резидентными программами. Находясь в
памяти, они большую часть времени в управлении компьютером не
участвуют, но постоянно следят не произошло ли какое-то
известное им событие. Когда это событие происходит, резидентная
программа на время захватывает управление, выполняет
соответствующие событию действия и отправляет микропроцессор на
ту ячейку памяти, на которой она завладела его вниманием. В
качестве примера такой программы рассмотрим программу,
переключающую режимы работы клавиатуры. Предположим, что в одном
режиме при нажатии клавишь вводятся английские буквы, в другом -
русские, а в третьем - украинские. Эта программа ничего не
делает, пока пользователь не нажмёт определённую комбинацию
клавишь, предназначенную для переключения режима. Когда же это
событие произойдёт, программа захватит управление, заменит в
определённом месте памяти таблицу соответствий между клавишами и
кодами символов, возможно, вызовет соответствующий этому
изменению звуковой сигнал и отдаст управление.
В течение всего времени работы компьютера операционная
система занимается управлением памятью. Она выделяет прикладным
программам соответствующее пространство в памяти для размещения
самих этих программ и для их работы с данными.
Не нужно думать, что деятельность операционной системы
ограничивается одним только запуском прикладных программ. Нет,
она ещё и постоянно участвует в их работе. Поместив прикладную
программу в память в виде, понятном для микропроцессора и
передав ей управление, операционная система сама из памяти
полностью не выгружается, а на время работы прикладной программы
оставляет там свою часть и составляет с этой программой и
резидентными программами единую цельную программу, понятную для
микропроцессора. Если прикладная программа в процессе своей
работы захочет обменяться информацией с какими-то устройствами
компьютера, то она это делает через операционную систему или
резидентные программы. Поэтому программе не нужно вникать в
специфику общения с устройствами, что сокращает её размеры и
облегчает работу программистам. Именно операционная система
организует функционирование файловой системы, т.е. разбиение
компьютерной информации на разделы: диски, каталоги, файлы.
Программе достаточно указать имя файла с путём и дать команду
операционной системе записать в него определённую информацию, а
та уже будет сама обращаться к диску, находить дескриптор
нужного файла, заглядывать в FAT-таблицу, и заполнять свободные
кластеры указанной информацией. То же происходит, когда
программа считывает информацию из файла.
Кроме обеспечивания связи прикладных программ с различными
устройствами компьютера, операционная система иногда играет роль
полицейского. Она внимательно следит за тем, чтобы прикладные
программы не превышали предоставленных им полномочий и не
пытались самостоятельно делать то, что надлежит делать только
через неё. Ещё операционная система не должна допускать
несанкционированных проникновений к компьютерной информации с
других компьютеров через интернет, или через локальную сеть, или
посредством других коммуникационных соединений. Однако, это ей,
к сожалению, удаётся не всегда.
Теперь поговорим о некоторых конкретных операционных
системах. Это будут упоминаемые ранее DOS и WINDOWS. Мы больше
уделим внимания первой из них, но все эти сведения будут весьма
полезны для глубокого изучения второй. Есть несколько версий
этих операционных систем. Поэтому при упоминании о WINDOWS мы
будем подразумевать операционные системы WINDOWS-95 и
WINDOWS-98. Между прочим, если в названиях программ всё
совпадает кроме одного-двух символов, то их принято объединять
под одним названием, заменяя эти символы переменной X. Таким
образом, мы будем говорить об операционных системах WINDOWS-9X.
Здесь буква X заменяет пятёрку и восьмёрку в числах 95 и 98.
Операционная система DOS состоит из пяти компонентов: это
программа-загрузчик, ядро операционной системы, хранящееся в
файле MSDOS.SYS, BIOS операционной системы, размещённый в файле
IO.SYS, командный процессор COMMAND.COM и комплекс стандартных
программ, входящих в досовский комплект. О этих программах мы
поговорим чуть позже, а сейчас охарактеризуем первые четыре
части.
Программа-загрузчик - это коротенькая программка, которая
находится не в файле, поскольку в момент её работы файловой
системы ещё нет. Она находится в загрузочном секторе диска, с
которого осуществляется загрузка системы. Мы помним, что
загрузочный сектор - это первый сектор нулевой дорожки диска.
Такая программа есть далеко не навсех дисках, а только на
системных - тех, на которых есть операционная система и с
которого осуществляется загрузка компьютера. В корневом каталоге
этого же диска, в первых кластерах его области данных, находятся
файлы MSDOS.SYS, IO.SYS И COMMAND.COM. После загрузки содержимое
этих файлов оказывается в памяти и управление переходит к
программе COMMAND.COM.
Мы не будем здесь особо глубоко вникать в описание функций
ядра и BIOSа. Отметим, что BIOS - это сокращение четырёх
английских слов "Basic input output system", что по-русски
означает: "Основная система ввода-вывода". Не следует BIOS
операционной системы путать с BIOS ПЗУ, о котором мы поговорим
позднее. прикладные программы обращаются к ядру, а оно, когда
считает это возможным, задействует силы BIOS, посредством
которых осуществляется связь с устройствами ввода-вывода. Ещё
отметим, что именно ядро определяет работу файловой системы, а в
недрах BIOSа скрывается тайна работы загадочных то ли файлов, то
ли устройств с именами PRN, LPT1, AUX, CON и т.д.
Кроме упомянутых выше файлов, в загрузке компьютера
участвуют ещё два файла-программы. Это CONFIG.SYS и
AUTOEXEC.BAT. Обе эти программы обеспечивают запуск целого ряда
других программ, одни из которых остаются в памяти резидентными,
а другие, отработав, из памяти выгружаются.
Уделим немного внимания командному процессору COMMAND.COM.
Может вы и удивитесь, но с определённой сферой его деятельности
вы уже хорошо знакомы по предыдущей главе. Он по своей природе
является программой, т.е. относится к софту, а не к харду, но,
при этом, он и в самом деле является процессором. Он управляет
процессом отдачи команд DOS и запуска прикладных программ. Он
даже может работать по заранее составленным программам,
предусматривающим последовательное выполнение подобных действий.
Командный процессор COMMAND.COM состоит из трёх частей, и в
разное время разные из них присутствуют в памяти. Первая часть -
резидентная. Она в памяти находится всегда. Вторая отвечает за
выполнение хорошо нам известных команд DOS. Когда такая команда
поступает, эта часть командного процессора загружается в память,
выполняет команду и выгружается. Третья часть отвечает за запуск
прикладных программ. Когда поступает команда запустить какую-то
из них, эта часть командного процессора находит файл с нужной
программой, загружает её в память, предварительно согласовав с
ядром, в какую именно её часть. Затем командный процессор
выгружает эту свою часть из памяти, оставляя лишь резидентную
часть, и передаёт управление запущенной программе. Когда та
закончит работу, резидентная часть командного процессора
перехватывает управление и загружает свою третью часть. Кстати,
именно COMMAND.COM, а точнее третья его часть, обеспечивает
работу досовского окна (см. гл. 4).
Как видите, работа у командного процессора COMMAND.COM
гораздо интеллектуальнее, чем у микропроцессора компьютера.
Командный процессор передаёт микропроцессору программу и
заставляет его по ней работать. Однако, несмотря на свою власть
над микропроцессором, командный процессор тоже особа
подневольная. Во-первых, он зависит от пользователя, который
даёт ему задание. Во-вторых, он подчинён ядру операционной
системы, которое может не разрешить запустить программу,
например, из-за её большого размера. Тогда командный процессор
не подчинится даже пользователю.
Пользователь может передать роль командного процессора
другой программе, работа которой в каких-то деталях будет
отличаться от COMMAND.COM. Это можно сделать как в процессе
загрузки компьютера, так и уже во время работы, при помощи
специальной команды DOS, которую в гл. 4 мы не рассматривали.
В операционных системах WINDOWS-9X присутствуют те же файлы,
о которых мы говорили выше. И начало загрузки осуществляется
точно так же. Однако, и ядро, и BIOS здесь объединяются в файле
IO.SYS, а файл MSDOS.SYS хоть и присутствует, но играет уже
несколько другую роль. Он является текстовым и в нём содержатся
параметры, связанные с дальнейшей загрузкой. Оба этих файла, как
и в операционной системе DOS, имеют составной атрибут ReadOnly +
Hidden + SysFile = 7. Поэтому для изменения текстового файла
MSDOS.SYS нужно предварительно эти атрибуты снять.
В нормальной ситуации загрузка операционной системы
WINDOWS-9X не завершается передачей управления командному
процессору COMMAND.COM и отработкой программы AUTOEXEC.BAT.
Дальше начинает загружаться защищённый графический режим. По
сути, всё, что загружается дальше - это и есть то, что отличает
соответствующую версию WINDOWS от DOS. В чём же заключаются эти
различия?
1. Графическая природа и большая самостоятельность. Любая из
версий операционной системы WINDOWS является графической. У
пользователя в руках оказываются очень наглядные и простые
инструменты для выполнения операций с файловой системой и для
запуска прикладных программ. Ему для этого не нужно даже иметь
больших знаний. Читать, правда, он должен уметь, хотя бы по
слогам. Ведь почти всё, что ему разрешено в данный момент,
отражено надписями на экране монитора с использованием цветовых
эффектов. Достаточно только подвести курсор манипулятора мышь к
нужному месту экрана и щёлкнуть кнопкой на самой мыши. Примерно
так же осуществляется связь пользователя с прикладными
программами, работающими в среде WINDOWS. Это, конечно, не
означает, что при работе в этой операционной системе
пользователю не нужны ни какие знания и навыки. Для полноценной
работы с некоторыми программами, приходится зачастую изучать
толстые тома руководств пользователя. Но это касается самих
программ, а не вопросов их запуска и работы операционной системы
и компьютера. Об этих вещах пользователь WINDOWS может вообще не
иметь ни малейшего представления, и, при этом, часами напролёт
выполнять на компьютере какие-то действия. многие вопросы
WINDOWS решает самостоятельно, не советуясь с пользователем.
Даже опытные программисты не всегда могут наверняка сказать,
какую именно программу запустила в данный момент операционная
система. Пользователю DOS, который имеет достаточно знаний и
навыков, контролировать ситуацию во время работы компьютера
гораздо проще.
2. Использование расширенной памяти. Операционная система
DOS весьма ограничена в возможностях использования оперативной
памяти. Она нормально справляется с памятью до одного мегабайта.
Память, расположенная за пределами этого мегабайта называется
расширенной (по-английски extended memory). Только отдельные
досовские программы способны пользоваться этой памятью, а
остальные имеют в своём распоряжении лишь часть памяти,
находящейся в пределах этого мегабайта. Часть этой памяти
резервируется операционной системой и используется в её
внутренних целях. В самой простой ситуации в распоряжении
прикладных программ остаётся 640 килобайт памяти. Это
пространство называется обычной памятью. Какую-то её часть
занимают резидентные программы, и для запускаемой прикладной
программы пространства остаётся ещё меньше. Это серьёзно
ограничивает досовские программы в размерах. Есть, правда,
возможность при помощи специальных программ установить так
называемую верхнюю память. Это часть оставшейся памяти в
пределах того же мегабайта. Её размер зависит от аппаратных
возможностей компьютера. Он может равняться 150 килобайт, а
может и 80. В эту память можно загружать резидентные программы,
освобождая таким образом основную память для запускаемых
прикладных программ. Однако, это хоть и значительно улучшает
ситуацию, но ограничений на размер досовской программы не
снимает.
Операционная система WINDOWS может полноценно использовать
расширенную память, сколько бы её ни было. И если даже
оперативной памяти для работы какой-то прикладной программы не
хватает, операционная система создаёт на диске специальный файл
подкачки, который работает как расширение оперативной памяти.
Поэтому программы, предназначенные для работы в среде WINDOWS,
фактически не ограничиваются в размерах, что существенно
увеличивает их возможности.
3. Многозадачность. Операционная система DOS является
однозадачной. Это означает, что когда управление передаётся
какой-то программе, микропроцессор занимается исключительно ею,
пока она не выполнит надлежащие действия и не отдаст управление
другой программе. Не смотря на то, что в памяти может находиться
несколько резидентных и одна запущенная программа, управление
всегда находится только у одной из них.
Любая из версий операционной системы WINDOWS является
многозадачной. Это значит, что микропроцессор имеет перед собой
несколько программ и одновременно занимается их выполнением.
Слово "одновременно" здесь нельзя понимать буквально. В
конкретное мгновение времени микропроцессор может заниматься
выполнением только одной своей команды. Но здесь микропроцессор
имеет перед собой несколько потоков информации, каждый из
которых является отдельной программой. Микропроцессор выступает
в данном случае чем-то вроде гроссмейстера, ведущего сеанс
одновременной игры: походил на одной доске и перешёл к
следующей. Микропроцессор выполняет команду из одного потока и
переходит к соответствующей команде другого. Слово "windows" в
переводе с английского означает "окна". Внешне размежевание
между работающими программами осуществляется с помощью так
называемых окон - специальных вместилищ для запуска и работы
прикладных программ. Каждая из них запускается и работает в
одтельном окне. Пользователь, переходя из одного окна в другое,
может поочерёдно работать с разными программами, раздавая им
задание. Кто-то может подумать, что нет разницы выполнить ли
одну программу, а потом вторую, а потом третью или выполнить эти
же три программы так:часть одной, а потом часть второй, а потом
часть третьей, а потом опять часть первой и т.д. Однако,
последний вариант может занять значительно меньше времени, чем
первый. Ведь микропроцессор, выполняя одну программу, часто
работает вхолостую, ожидая либо заданий пользователя, либо
завершения работы каких-то внешних устройств, которым давалось
задание согласно этой программе. А тут микропроцессор может
заняться выполнением других программ. Это точно так же, как
вышеупомянутый гроссмейстер не ждёт, пока один из его соперников
будет делать ответный ход, а переходит ко второму. А ещё бывает
ситуация, когда пользователь, работает с одной программой и
хочет иметь возможность, не закрывая её, время от времени
обращаться к другим программам. В этом случае многозадачность
очень удобна.
Нельзя сказать, что при одновременной работе нескольких
программ никогда не возникает проблем. Бывает, что две программы
начинают обращаться к одному и тому же устройству, например, к
принтеру. Он же не является многозадачным и работать с одной из
программ откажется. Ещё если программы требуют для работы очень
много памяти, то вряд ли они смогут работать в одно и то же
время.
Конечно, этими тремя моментами отличия между операционными
системами DOS и WINDOWS-9X не исчерпываются. Можно было бы ещё
вспомнить, что WINDOWS имеет возможность давать файлам и
каталогам длинные имена, что DOS, работая с большими магнитными
дисками, видит только 2 гигабайта, и т.д. Однако, уже из всего
перечисленного видно, что WINDOWS имеет гораздо больше
возможностей.
Теперь сделаю небольшое лирическое отступление. Поскольку
это пособие предназначается в первую очередь для лиц с
проблемами зрения, то я хочу обратиться сейчас именно к таким
читателям. Выскажу своё личное мнение по вопросу использования
незрячими той или иной операционной системы. Сразу отмечу, что
слабовидящих, тех, кто может пользоваться экраном, это не
касается.
Так вот, для незрячих пользователей операционная система DOS
является значительно комфортнее, чем WINDOWS. Конечно, наличие
специальных говорящих программ даёт возможность приспособиться и
к неуютной среде графической операционной системы. Некоторые
незрячие пользователи даже достигли здесь немалых успехов и
работают довольно быстро. Однако, DOS позволяет незрячему
выполнять многие операции значительно быстрее и легче. К этим
операциям я отношу следующие действия: работа с файловой
системой (копирование/, удаление, перемещение), чтение книг,
составление простых текстов (без рисунков и громоздких формул,
распечатка их на принтере, работа с электронной почтой,
прослушивание музыкальных файлов в MP3-формате. Есть даже
возможность прослушивать видеофильмы.
Мне жалко тех начинающих незрячих пользователей, которых
сразу помещают во враждебную среду, не знакомя с возможностями
более удобного выполнения очень многих действий. Не думаю, что
мало-мальски научившись работать в этой среде, они смогут
достичь большого совершенства.
К тому же, низкое материальное состояние может не позволить
незрячему приобрести современный компьютер, а за почти
символическую сумму сейчас можно купить компьютер, на котором не
будет работать WINDOWS, но с помощью DOS можно справляться с
очень многими задачами, которые без компьютера незрячему были не
под силу.
Я не утверждаю, что нужно избрать DOS вместо WINDOWS. Есть
целый ряд задач, с которыми DOS не справляется, а нужна
операционная система помощнее. Я просто предлагаю то, с чем
неплохо справляется DOS, делать именно в DOS, а WINDOWS
загружать тогда, когда без этого не обойтись. Сварочные работы,
например, удобнее производить на суше. Поэтому, когда
сооружаются подводные конструкции, всё, что можно, делают
наверху, а потом опускают под воду. И только когда другого
выхода нет, за дело берётся специально обученный водолаз.
Для того, чтобы получить возможность поочерёдного доступа то
к DOS, то к WINDOWS, совсем не нужно устанавливать две
операционные системы. До загрузки защищённого графического
режима, WINDOWS-9X абсолютно идентичен самой поздней версии MS
DOS. Нужно только остановить загрузку после отработки программы,
размещённой в файле AUTOEXEC.BAT. Для этого следует в файле
MSDOS.SYS найти строку "BOOTGUI=1" и заменить "1" на "0".
Конечно, с файла нужно предварительно снять все три его
атрибута. Востанавливать их после сделанного изменения не
обязательно: WINDOWS это сделает сам.
После такого изменения загрузка операционной системы будет
каждый раз останавливаться на уровне DOS. Если потребуется
загрузить полноценный WINDOWS, в любой момент работы в таком
режиме, пользователь может в командной строке написать три
английские буквы "WIN" и нажать ENTER. Тогда загрузится
графический защищённый режим и можно приступать к "подводным
работам". Для возвращения в досовский режим, нужно перезагрузить
компьютер. Вообще-то, у операционной системы WINDOWS-9X есть
встроенное приложение "Сеанс MS DOS", открывающее досовское
окно, но это всё осуществляется в защищённом режиме. Многие же
говорящие программы для незрячих в этом режиме отказываются
говорить. Поэтому и нужна полная перезагрузка.
Некоторые программисты, разрабатывающие программы для
незрячих, в настоящее время решают вопрос о полноценной работе
досовских программ для незрячих в защищённом режиме. Однако, это
пока удаётся осуществить не на всех компьютерах.
ВОПРОСЫ И ЗАДАНИЯ
1. Что такое прикладная программа? Почему она для запуска
нуждается в каких-то других программах?
2. Что является средой обитания для прикладных программ?
3. Что такое резидентная программа?
4. Что происходит в памяти при запуске прикладной программы?
5. Какие ещё функции выполняет операционная система?
6. Какие реальные операционные системы понимаются под
названием WINDOWS-9X?
7. Из каких частей состоит операционная система DOS и ещё
какие два файла, как правило, участвуют в её загрузке?
8. Из каких трёх частей состоит командный процессор
COMMAND.COM, и за что отвечает каждая из них?
9. Какие основные отличия DOS от WINDOWS-9X?
5.4. BIOS ПЗУ и загрузка компьютера
Обратим наше внимание на то, что компьютер имеет два вида
памяти: оперативную (ОЗУ) и постоянную (ПЗУ). К другим носителям
информации, например, к магнитным дискам, слово "память" в
настоящее время применяется редко. Микропроцессор компьютера, по
крайней мере, умеет непосредственно работать только с ОЗУ и ПЗУ,
которые расположены на материнской плате. При чём, во время
обычной работы компьютера используется только ОЗУ, а ПЗУ играет
роль лишь при его загрузке. Мы знаем, что в ПЗУ, в отличие от
ОЗУ, информация может храниться и при выключении компьютера.
Ещё на заводе в ПЗУ помещается программа BIOS. Хоть её
название тоже расшифровывается как "Basic input output system"
("Основная или базовая система ввода-вывода"), но следует её
отличать от BIOSа операционной системы, который в DOS, как мы
помним, хранится в файле IO.SYS. Программа BIOS ПЗУ завершает
свою работу ещё до того, как IO.SYS попадает в оперативную
память.
Некоторые пользователи ошибочно считают BIOSом само ПЗУ.
Делать этого не следует. Ведь эти объекты даже имеют разную
природу: BIOS - программа, т.е. софт, а ПЗУ - устройство, т.е.
хард. Однако, они неразрывно связаны, так как ПЗУ является
носителем для BIOS.
Когда компьютер только включили, и на материнскую плату
поступает питание, микропроцессор сразу же направляет свой
принявший осмысленное выражение взгляд в ПЗУ на программу BIOS.
Это движение заложено в нём конструктивно. Подобное любопытство
микропроцессору дорого стоит: он сразу попадает под власть этой
программы. Она захватывает управление компьютером. Но что-то в
этом роде и должно было произойти. Ведь по закону о поступках
компьютера, компьютер ничего не может делать без программы, а
самая первая программа должна же как-то начать работу. Так
начинается загрузка компьютера.
BIOS записан в ПЗУ в двоичных кодах, выражающих команды,
понятные для микропроцессора. Вначале эта программа производит
самотестирование компьютера. Определяется размер и готовность к
работе оперативной памяти, как в пределах одного мегабайта, так
и расширенной памяти, а затем выявляются контроллеры имеющихся
устройств. Везде, где это возможно, устройства тестируются, и
любые возникающие проблемы сопровождаются звуковыми сигналами ,
а также выводом сообщений на экран. Когда проблемы отсутствуют,
загрузка продолжается.
На следующем этапе BIOS начинает заполнять оперативную
память. В самом её начале указывается соответствие между
различными устройствами компьютера и определёнными адресами
оперативной памяти, записывается некоторая служебная информация
и выделяется место для системных файлов DOS. После этого
начинает работать загрузчик ПЗУ. Это часть программы BIOS,
которая имеет перед собой заранее сформированный список дисков
компьютера, на которых может оказаться операционная система.
Придерживаясь указанной очерёдности, компьютер проверяет эти
диски и находит первый из них,на котором операционная система
действительно есть. При этом, если первым в очереди записан диск
A: и в дисководе будет находиться незагрузочная дискета, т.е.
та, на которой нет операционной системы, то загрузка
остановится. Если в этом случае дискету достать и нажать любую
клавишу, то загрузка возобновится и будет проверяться на наличие
операционной системы следующий диск из списка. Если бы дискеты
не было, то не было бы и остановки.
Итак, когда найден диск с системой, загрузка продолжается и
загрузчик ПЗУ считывает в оперативную память с загрузочного
сектора этого диска, т.е. с первого сектора нулевой дорожки,
программу-загрузчик операционной системы и передаёт ей
управление. На этом BIOS завершает свою работу и начинают
действовать компоненты операционной системы.
Программа-загрузчик операционной системы берёт здесь же, в
загрузочном секторе диска, информацию о размере системной
области диска. Вы помните, что внеё кроме загрузочного сектора
входит FAT-таблица и root-каталог. Загрузчик вычисляет адрес
начала области данных, а именно здесь находятся системные файлы
IO.SYS и MSDOS.SYS. Однако, как файлы они пока не могут
восприниматься, так как файловая система появляется только после
их загрузки. Загрузчик просто затягивает их содержимое в
оперативную память. При загрузке WINDOWS-9X в память попадает
только содержимое файла IO.SYS.
В загруженной части системы находится подпрограмма SYSINIT,
которой загрузчик операционной системы передаёт дальнейшее
управление. На данном этапе уже работает файловая система.
SYSINIT считывает с корневого каталога загрузочного диска файл
CONFIG.SYS и, строка за строкой, интерпретирует его, загружая
резидентно в память указанные в нём программы, дополняющие
систему. Затем SYSINIT загружает в память командный процессор
COMMAND.COM и передаёт ему управление. После этого место в
памяти, которое занимал SYSINIT, освобождается для других
программ. Это же происходит и с пространством, которое занимал
отработавший ещё раньше загрузчик операционной системы.
Командный процессор COMMAND.COM находит в корневом каталоге
загрузочного диска файл AUTOEXEC.BAT и одну за другой запускает
программы и выполняет команды DOS, в нём записанные. Если все из
этих программ отрабатывают до конца и не захватывают управление,
то власть опять переходит к COMMAND.COM, и открывается досовское
окно с хорошо знакомой нам командной строкой. На этом загрузка
компьютера заканчивается.
Однако, может так случиться, что до досовского окна дело так
и не дойдёт. Бывает, что ещё при отработке файла AUTOEXEC.BAT
запускается программа, с которой пользователь работает до
выключения компьютера. Она может предоставлять возможность
работы с командной строкой и запуска других программ, но заботы
об этом такая программа будет всё-равно возлагать на
COMMAND.COM, а потом возвращать себе управление.
ВОПРОСЫ И ЗАДАНИЯ
1. Чем BIOS ПЗУ отличается от BIOS операционной системы? Где
они хранятся?
2. Какую работу выполняет BIOS ПЗУ?
3. Что делает программа-загрузчик операционной системы? Чему
она передаёт управление?
4. Чем загружаются программы, запуск которых предусмотрен в
файле CONFIG.SYS?
5. Когда COMMAND.COM принимает управление, и что он ещё
делает для завершения загрузки?

ГЛАВА 6

ПРАКТИЧЕСКИЕ СВЕДЕНИЯ О ПРОГРАММАХ
6.1. Типы прикладных программ
В предыдущей главе мы выяснили, что имеется очень много так
называемых прикладных программ, которые пользователь, в случае
необходимости, запускает на выполнение или распоряжается
загрузить в память и там оставить до тех пор, пока к ним не
будет обращения. Делается это всё посредством операционной
системы, которая тоже является специальной программой.
Любая программа, как мы помним, по своей природе является
информацией. Поэтому до того момента, когда она потребуется, её
хранят на носителе информации, например, на магнитном или
лазерном диске. Следовательно, любая программа должна быть
оформлена в соответствии с систематизацией информации,
применяемой в операционной системе, для которой она
предназначена. Рассматриваемые нами операционные системы, как мы
помним, разбивают компьютерную информацию на файлы, каталоги и
диски. Поэтому любая прикладная программа для её хранения должна
быть оформлена в виде одного или нескольких файлов или, даже,
целых каталогов с файлами и подкаталогами. Какие-то из этих
файлов должны содержать в себе собственно саму программу, а
некоторые могут хранить данные, нужные для работы программы.
Файлы с программами называются программными модулями. В самом
простом случае прикладная программа состоит из одного файла
(программного модуля). В других ситуациях программа является
целым комплексом программ. Она может состоять из нескольких
программных файлов и многих файлов с дополнительной информацией.
Любой программный файл должен распознаваться операционной
системой как программа, чтобы её можно было загрузить в память в
виде последовательности двоичных чисел и передать ей управление,
попросту, запустить её. Поэтому программный файл должен быть
оформлен в соответствии с определёнными стандартами. В DOS
имеется четыре таких стандарта. Они называются типами
программных файлов. За каждым из них закреплено своё собственное
расширение имени файла. Это не значит, что какой-нибудь чудак не
может присвоить одно из этих расширений файлу, который вовсе не
является программой. Конечно операционная система такой файл не
воспримет как программу. Но это же случится, если программный
файл переименовать, дав его имени другое расширение. Попробуем
вкратце охарактеризовать эти типы.
1. Системные файлы. За этими файлами закрепляется расширение
SYS, поэтому их ещё называют SYS-файлами. Все они помещаются в
память в процессе загрузки компьютера. Это осуществляет модуль
SYSINIT, который, как мы помним, загружает программы,
руководствуясь файлом CONFIG.SYS. Вот эти программы и
размещаются в системных файлах, имеющих расширение SYS.
Называются они так, потому что дополняют операционную систему,
часть которой, кстати, тоже хранится в файлах с таким
расширением.
Системные файлы, как правило, бинарные, но есть, например,
файл CONFIG.SYS, который является текстовым. В операционных
системах WINDOWS-9X текстовым также является и файл MSDOS.SYS.
Для того, чтобы включить запуск системного файла в момент
загрузки, нужно в файл CONFIG.SYS в отдельной строке записать
английское слово "DEVICE", что по-русски означает "устройство",
а затем после знака равенства "=" указать полное имя
запускаемого файла. Такие программы, как правило, являются
резидентными и остаются в памяти до выключения компьютера. Если
подобную программу нужно поместить в верхнюю память (см. 5.4),
то вместо слова ""DEVICE" следует использовать английское слово
"DEVICEHIGH" (верхнее устройство).
Ещё раз обратим внимание на то, что программы этого типа
запускаются модулем SYSINIT, который после загрузки компьютера
выгружается из памяти.
2. Командные файлы. Это файлы с расширением COM, поэтому их
ещё называют COM-файлами. Они обязательно бинарные. Программа
этого типа всегда работает очень быстро. Однако, это
преимущество накладывает на COM-файл очень серьёзное
ограничение: его размер не должен превышать 64 килобайта. Именно
такое ограничение должен иметь участок памяти, чтобы в его
пределах адрес ячейки занимал 2 байта. Такое же ограничение,
кстати, имеют и системные файлы. Программа размером больше 64
килобайта должна использовать более сложную адресацию ячеек
памяти, что замедляет её работу.
3. Исполнимые файлы. Это файлы с расширением EXE, что
является сокращением английского слова "execute", которое в
переводе на русский язык означает "исполнять". Эти файлы ещё
называют EXE-файлами. Они всегда бинарные. Такой тип программ
самый распространённый, как в DOS, так и в WINDOWS. Эти файлы не
имеют ограничения на размер, разве что, в DOS они должны
помещаться в свободную часть памяти.
4. Пакетные файлы. Это файлы с расширением BAT, что является
сокращением английского слова "batch". По-русски это означает
"пакет". Такие файлы всегда текстовые. Поэтому пользователь
может сам легко их составлять и изменять. Каждая строка такого
файла - это как отдельная командная строка. В ней может быть
записана любая команда DOS или команда на запуск какого-то
другого программного файла с расширением COM, EXE или BAT.
Подробнее о запуске программы из командной строки мы будем
говорить в следующем разделе, а сейчас только отметим, что
составленный таким образом пакетный файл, будучи запущен, одну
за другой выполняет записанные команды DOS и запускает
соответствующие программы. Это программа, предназначенная для
командного процессора COMMAND.COM, который её интерпретирует -
читает со знанием дела и исполняет.
Пакетные файлы часто называют BAT-файлами или BATCH-файлами.
В операционной системе WINDOWS подобной программой,
запускающей другие программы является ярлык. Это файл с
расширением LNK. Каждый такой ярлык выдаёт на экран монитора
табличку с названием соответствующей программы. Когда
пользователь наводит на эту табличку курсор мыши и делает
двойной щелчок левой её кнопкой, ярлык активизируется и
запускает соответствующую ему программу.
Подобное же действие осуществляет файл с расширением PIF. Он
занимается запуском досовских файлов в операционной системе
WINDOWS.
ВОПРОСЫ И ЗАДАНИЯ
1. В каком виде прикладные программы хранятся на дисках
компьютера?
2. Какое должно быть наименьшее число файлов, чтобы в них
могла разместиться программа?
3. Какое расширение имеют системные файлы? Каким образом
запускаются размещённые в них программы? Как загрузить такую
программу в верхнюю память? Встречались ли мы в предыдущих
разделах с файлами, имеющими такое расширение?
4. Какое расширение имеют командные файлы? Встречались ли мы
с такими файлами в предыдущих разделах? Какое ограничение имеют
эти файлы и с чем это связано? Бинарные это файлы или текстовые?
5. Какое расширение имеют исполнимые файлы? Встречались ли
мы с такими файлами в предыдущих разделах ?Бинарные это файлы
или текстовые?
6. Какое расширение имеют пакетные файлы? Встречались ли
мы с такими файлами в предыдущих разделах ?Бинарные это файлы
или текстовые? Что из себя представляют строки этих файлов?
Какой процессор обрабатывает записанные в них программы?
7. Какое расширение имеют файлы с ярлыками? Как они
работают?
6.2. Запуск программы из командной строки
Итак, мы выяснили, что прикладные программы в то время,
когда они не используются, хранятся на дисках компьютера в
файлах с расширениями SYS, COM, EXE и BAT. Для того, чтобы
находящаяся в состоянии хранения программа запустилась, то есть
попала в память и взяла на себя управление, необходимо как-то об
этом сказать компьютеру. И сказать об этом нужно на языке,
понятном операционной системе, при чём, в то время, когда она
готова слышать о подобных вещах. Всё очень похоже на отдачу
команды DOS. Да по сути здесь сейчас и идёт речь о команде
операционной системе запустить конкретную прикладную программу.
Мы ведь помним, что команда - это небольшая порция информации,
которая, будучи правильно передана от одного субъекта другому,
вызывает со стороны второго субъекта определённое действие. В
данном случае первым субъектом является пользователь, а вторым -
компьютер, а точнее, операционная система. Пользователь должен
ей сказать, то есть передать короткую порцию информации, а она
должна прочитать с диска содержание нужного файла и, загрузив
программу в память, передать ей управление. Как же ей правильно
об этом сказать?
В предыдущем разделе мы узнали, как запускаются SYS-файлы.
Это делается в процессе загрузки компьютера, когда ещё работает
модуль SYSINIT. Есть ещё один способ запустить такую программу,
но мы его рассматривать не будем. Дальше мы будем говорить лишь
о запуске программ, находящихся в файлах с расширениями COM, EXE
и BAT. Этим делом занимается уже не SYSINIT, а командный
процессор COMMAND.COM.
Перед тем, как продолжить разговор о запуске программ этих
трёх типов, познакомимся с понятием прозрачного каталога.
Задумайтесь: что означает такое качество, как прозрачность?
Представим себе, что на столе стоит пять пронумерованных
банок. Первые три из них металлические, например, из-под кофе, а
четвёртая и пятая - стеклянные. Пусть в каждой из этих банок
находятся какие-то небольшие предметы: монета, пуговица,
спичечный коробок и т.п., и пусть подобные предметы лежат не
только в банках, а и на столе. Теперь представьте, что мы
находимся рядом, но заглянуть сверху в банки не можем. И вот нам
дают задание взять какой-то из предметов, а мы должны сделать
это с первой попытки. Возможные проблемы со зрением мы сейчас в
учёт не берём: предполагаем, что их у нас просто нет. Так вот,
всегда ли мы сможем выполнить задание? Очевидно, что не всегда.
Проблем не будет, если названный нам предмет лежит на столе или
в какой-то из двух стеклянных банок. А если предмет находится в
какой-то из первых трёх банок, то нас может постичь неудача: мы
можем направиться не к той банке, а других попыток у нас уже
нет. Какое же качество последних двух банок снимает эту
проблему? А именно их прозрачность. Когда называемый предмет
лежит в одной из первых трёх банок, для избежания
неопределённости, нужно чтобы отдающий задание называл не только
сам предмет, но ещё и номер банки. Для четвёртой и пятой банок,
а также для предметов, лежащих на столе, это делать не
обязательно.
Что-то подобное возникает когда вместо нас в деле участвует
операционная система компьютера, вместо банок - каталоги, вместо
предметов - программные файлы, при чём те предметы, которые
лежат на столе, подобны программным файлам, находящимся в
текущем каталоге. При этом, задание операционной системе отдаёт
пользователь, сообщая ей, какую именно программу нужно
запустить. В этом всём пока отсутствуют объекты, аналогичные
стеклянным банкам. Вот о них мы сейчас и поговорим.
Операционная система некоторые каталоги файловой системы
выделяет из группы всех остальных, наделяя их качеством
прозрачности. Нет, конечно они не сделаны из прозрачного
материала, ведь они вообще делаются не из материалов. Просто
операционная система может найти в прозрачном каталоге
программный файл, даже если ей не будет сказано, в каком именно
каталоге этот файл находится. Она так же просто, даже ещё проще,
найдёт программный файл, если он находится в текущем каталоге.
Ведь здесь она без труда находит не только программный, но и
любой другой файл. А вот если каталог не текущий и не обладает
свойством прозрачности, то без дополнительной информации
операционная система программного файла просто не найдёт.
Отметим, что свойство прозрачности касается поиска только
программных файлов. Если файл непрограммный и находится в
прозрачном каталоге, то операционная система без дополнительной
информации его тоже не найдёт. Дополнительной информацией здесь
является путь к файлу из текущего каталога.
Поговорим теперь о том, как пользователь может сделать
непрозрачный каталог прозрачным. На самом деле это гораздо
проще, чем жестяную банку сделать стеклянной. Мы помним, что в
корневом каталоге загрузочного диска есть файл с именем
AUTOEXEC.BAT. Это программный файл, который участвует в загрузке
компьютера. Как BAT-файл, он является текстовым (см. 6.1), то
есть разбит на строки. Среди строк файла AUTOEXEC.BAT есть
строка, которая начинается так: "SET PATH=". После знака
равенства без всяких пробелов в этой же строке идёт перечень
полных имён прозрачных каталогов. Эти полные имена разделяются
точкой с запятой ";". В операционных системах WINDOWS-9X в этой
строке сразу же после знака равенства ещё раз может
присутствовать английское слово "PATH", что по-русски означает
"путь". При чём это слово с двух сторон обрамляется символом
процента "%", а затем, после точки с запятой, уже идёт перечень
прозрачных каталогов. Это связано с тем, что в данных
операционных системах формирование списка прозрачных каталогов
начинается ещё до работы программы AUTOEXEC.BAT, и добавление
слова "%PATH%" означает, что список имён прозрачных каталогов,
составленный ранее операционной системой, должен быть включён в
общий список.
Для того, чтобы какой-то каталог сделать прозрачным, нужно
добавить к этой строке его полное имя, а для того, чтобы это
качество убрать, нужно имя соответствующего каталога из данной
строки удалить. Для этого нужно использовать средства
редактирования текстовых файлов, о которых мы поговорим чуть
позже.
Сразу же после того, как мы внесём подобные изменения в файл
AUTOEXEC.BAT, положение дел ещё не изменится: каталоги, которые
мы добавили к списку прозрачных, ещё прозрачными не будут, а
каталоги, исключённые из этого списка, пока останутся
прозрачными. Ведь программа AUTOEXEC.BAT выполняет свою работу
при загрузке компьютера. Тогда же она и создала нынедействующий
список прозрачных каталогов. После изменения эта программа ещё
не работала, следовательно, и список не изменился. Чтобы
отработала обновлённая версия, нужно перезагрузить компьютер.
Теперь мы можем продолжить разговор о том, как
осуществляется запуск програм. Отметим, что для этого есть много
разных способов. Например, одни, уже запущенные ранее, программы
могут запускать другие. При этом, пользователь посредством
наглядных возможностей одних программ может давать им
распоряжения запускать другие программы. В данном разделе мы
подобные методы рассматривать не будем, а коснёмся только
запуска программ из командной строки. В самом простом случае,
как мы помним, работу с командной строкой осуществляет досовское
окно, которое формируется командным процессором COMMAND.COM.
Командную строку могут предоставить пользователю и некоторые
прикладные программы. Однако, при запуске других программ и при
отдаче команд DOS посредством такой командной строки, задание
всё равно передаётся командному процессору COMMAND.COM.
В WINDOWS тоже есть подобное средство для запуска программ.
Если нажать клавишу "WINDOWS" (она находится между левыми
клавишами "CTRL" и "ALT") или мышью выбрать кнопку "Пуск", то
откроется меню из нескольких пунктов. Если в нём выбрать пункт
"Выполнить...", то откроется строка, в которой можно записать
команду запуска прикладной программы, используя те же правила, о
которых мы будем сейчас говорить. Отличие этой строки от
командной строки заключается в том, что для отдачи из неё
команды DOS, нужно в ней сперва записать слово COMMAND с
параметром C.
Есть три различных случая запуска программы из командной
строки. Помним, что здесь идёт речь о программах, содержащихся в
COM, EXE и BAT-файлах.
Первый случай возникает тогда, когда программный файл
находится в текущем каталоге. Для запуска такой программы
достаточно записать в командной строке имя программного файла и
нажать ENTER.При этом неважно, какими буквами оно записывается:
заглавными или строчными. Главное, чтобы имя записывалось
правильно. Иначе операционная система не найдёт нужной программы
или может запустить совсем другую программу.
Теперь отметим ещё один важный факт: запуская программу, не
обязательно записывать расширение имени файла, а достаточно
набрать в командной строке только основную его часть и нажать
ENTER. Тут, правда, возможны недоразумения. Во-первых, мы должны
при таком запуске внимательно следить, чтобы основная часть
имени программного файла не совпадала с именем какой-то команды
DOS. Иначе операционная система выполнит команду или укажет на
её некоректность в данной ситуации, а программу запускать и не
подумает. Во-вторых, в текущем каталоге может оказаться два, а
то и три, программных файла, у которых совпадают основные части
имён, но разные расширения. Например, один файл PROGRAMM.COM,
другой - PROGRAMM.EXE, а третий - PROGRAMM.BAT. Если при запуске
в командной строке не указывать расширение, то операционная
система в первую очередь ищет COM-файл с указаной основной
частью имени. Найдя, она его запускает, а на EXE и BAT-файлы не
обратит внимания. Не обнаружив COM-файла, операционная система
ищет EXE-файл, и только когда и его нет, приступает к поиску
BAT-файла.
Так вот, если нам нужно запустить BAT-файл из текущего
каталога, а мы забыли или не знаем, что в этом же каталоге есть
COM или EXE-файл с такой же основной частью имени, и не указали
в командной строке расширение, то нас может постичь крайнее
недоумение, когда мы увидим, что программа делает не совсем то,
а может и совсем не то, чего мы от неё ждём. Когда же мы
обнаружим причину сложившейся ситуации, нам нужно будет для
запуска BAT-файла уже обязательно указать его расширение. Если
мы хотим запустить EXE-файл, а естьв этом же каталоге COM-файл с
такой же основной частью имени, то тоже обязательно нужно
указывать расширение.
Второй случай запуска программы из командной строки
возникает, когда программный файл находится не в текущем, но в
прозрачном каталоге, и пользователь знает об этом. Тогда запуск
программы осуществляется так же, как и в первом случае:
пользователь должен записать в командной строке имя программного
файла (можно без расширения) и нажать ENTER. Если основная часть
имени совпадает с именем какой-то команды DOS, то расширение
нужно записывать обязательно.
Вообще-то, здесь гораздо больше шансов попасть впросак, чем
в первом случае. Такое случится, например, если вдруг в текущем
каталоге существует программный файл с таким же именем или
основной частью имени, а мы забыли об этом. Ведь операционная
система в первую очередь будет искать программный файл в текущем
каталоге, и если найдёт, то успокоится и запустит его. Мы же,
отдавая команду запустить программу, предполагаем, что
запустится совсем другая программа, которая находится не в
текущем, а в каком-то из прозрачных каталогов. Что же нужно было
делать в подобной ситуации? А мы включим её в третий случай
запуска файла из командной строки. Сейчас же ограничимся
ситуациями, когда программный файл находится в каком-то
прозрачном каталоге, а в текущем каталоге нет одноимённых
программных файлов.
Не распознав в записанной строке команду DOS и не найдя
программу в текущем каталоге, операционная система берётся за
список прозрачных каталогов. Она начинает просматривать эти
каталоги один за одним, пока не найдёт программный файл с нужным
именем или основной частью имени, если расширение не
указывалось. Первый же найденный файл она запускает. А
Тут тоже хватает места для недоразумений. Ведь если
одноимённый, но не нужный нам, программный файл будет находиться
в прозрачном каталоге, предшествующем родительскому каталогу для
нужного нам программного файла, то произойдёт запуск не того,
что мы ждём. Здесь не сработает даже преоритет расширений COM,
EXE и BAT. Мы можем не указать расширение, намереваясь запустить
COM или EXE-файл, находящийся в прозрачном каталоге, а при этом
запустится BAT-файл с такой же основной частью имени. Это
произойдёт потому что он находится в другом прозрачном каталоге,
полное имя которого в строке PATH, задаваемой в файле
AUTOEXEC.BAT, расположено раньше. Всвязи с этим, нужно стараться
программным файлам, расположенным в прозрачных каталогах, не
давать одинаковые имена.
Если, перебрав все прозрачные каталоги, операционная система
так и не найдёт подходящего программного файла, она сообщит в
досовском окне, что имя команды или файла указано не верно.
К третьему случаю запуска программы из командной строки
относятся ситуации, когда программный файл находится не в
текущем и не в прозрачном каталоге или в прозрачном, но когда в
текущем каталоге есть одноимённый программный файл с совсем
другой программой. Тогда нужно либо сменить текущий каталог,
сведя задачу к первому или второму случаю, либо записать в
командной строке имя программного файла с путём (можно без
расширения) и нажать /ENTER. Кстати, не указав расширение, мы
можем создать такую же казусную ситуацию, как в первом случае.
Это случится, если в каталоге, соответствующем указанному пути,
будет находиться два или три программных файла с такой же
основной частью имени.
Вообще-то, во всех трёх случаях мы вполне можем в командной
строке записывать полное имя запускаемого программного файла и
даже указывать его расширение. как говорится, имя файла полным
путём не испортишь. Однако, если мы хорошо знаем, что находится
в каталогах файловой системы нашего компьютера, то не указывая
где можно расширения и пути, мы будем существенно экономить
время и сохраним себя от лишних движений.
Теперь поговорим о запуске программ с параметрами. Так же,
как и в командах DOS, здесь под параметрами понимаются объекты
строковой природы, которые задают разные режимы работы программы
и сообщают программе дополнительную информацию, касающуюся
каждого её конкретного запуска.
При запуске программы из командной строки, сначала
записывается имя программного файла с путём или без пути, с
расширением или без расширения, в соответствии с тремя случаями,
описанными выше. Затем, отделяясь от имени программного файла и
друг от друга пробелом, записываются параметры, если конечно они
нужны. Всё это должно поместиться в одной строке, длина которой
не может превышать ста двадцати восьми символов. Этим
ограничивается количество параметров и количество их символов.
Однако,на практике, как правило, командная строка с именем
запускаемого программного файла и всеми параметрами, имеет
значительно меньшую длину. Только после записи последнего
параметра нажимается клавиша ENTER и операционная система
запускает программу. Если запуск программы предусмотрен в
BAT-файле, то имя программного файла в соответствии с
вышеуказанными правилами (с путём или без пути, с расширением
или без расширения), а также нужные параметры, разделённые
пробелом, записываются в нужной строке этого BAT-файла.
Кстати, программа может предусматривать использование
гораздо большего количества параметров, чем их указывается при
каждом конкретном её запуске. Здесь, так же, как и в командах
DOS, встречаются параметры, которые начинаются с наклонной черты
дроби "/" или минуса "-" и имеют, как правило, ещё один или два
символа. Такие параметры называются ключами. Программисты часто
предусматривают использование знакомого нам вопросительного
ключа, состоящего из наклонной черты дроби и вопросительного
знака "/?". При запуске программы с таким ключём, она может
выдавать какую-то информацию о себе. Однако, это не обязательное
требование.
ВОПРОСЫ И ЗАДАНИЯ
1. Какие типы программных файлов запускаются из командной
строки? Какой представитель операционной системы этим
занимается?
2. В чём заключается качество прозрачности? В чём это
качество выражается, когда им обладает каталог? Сказывается ли
это качество каталога, когда операционной системе нужно найти
содержащийся в нём непрограммный файл?
3. Как каталог сделать прозрачным?
4. Какой представитель операционной системы обеспечивает
работу командной строки? Что является аналогом командной строки
в операционной системе WINDOWS? Является ли эта аналогия полной?
5. Когда возникает первый случай запуска программы из
командной строки? Как в этом случае осуществляется запуск? Какие
при этом возможны недоразумения? Какой преоритет существует
между типами программных файлов относительно их запуска?
6. Когда возникает второй случай запуска программы из
командной строки? Как в этом случае осуществляется запуск? Какие
при этом возможны недоразумения? Может ли запуститься BAT-файл,
если в каком-то прозрачном каталоге есть COM-файл с такой же
основной частью имени?
7. Когда возникает третий случай запуска программы из
командной строки? Как в этом случае осуществляется запуск? Какие
при этом возможны недоразумения?
8. Для чего при запуске программы могут использоваться
параметры? Как осуществляется такой запуск? Какие параметры
называются ключами?
6.3. Распространение, установка и настройка программ
Для того, чтобы пользователь мог работать с нужной ему
программой, ему сперва её необходимо заиметь. Каким образом это
осуществляется? Давайте вспомним, как вообще попадают к людям
полезные вещи? Как может стать собственностью человека,
например, холодильник? Во-первых, его можно купить у
производителя через магазин или официального диллера.
Во-вторыхх, его можно купить у того, кто был раньше его
владельцем. В-третьих, его можно получить в подарок, и,
в-четвёртых, его можно украсть.
Компьютерная программа тоже часто бывает полезной и нужной
вещью, и у неё тоже есть производитель - программист или
коллектив программистов. На производство программы часто
затрачивается сил гораздо больше, чем на производство
холодильника. И далеко не всегда программисты тратят годы своей
жизни, движимые альтруистскими намерениями во что бы то ни стало
рассеивать скуку отпрысков представителей не самых бедных слоёв
населения, раздавая им в подарок всё новые и новые компьютерные
игры. Нет, программисты часто тоже, как и производители
холодильников, хотят иметь возмездие за свою работу. Этот
неприятный факт требует временами от пользователя немалых
денежных затрат на получение нужного программного обеспечения.
Существует три официальных способа распространения
компьютерных программ. О каждом из них мы сейчас поговорим.
1. Коммерческий программный продукт. Большинство современных
программ являются коммерческим продуктом. Однако, торговля таким
товаром связана с определёнными трудностями. Ведь программа по
своей природе является информацией, а, как мы отмечали в разделе
1.4, информация обладает, с одной стороны очень полезным, но с
коммерческой стороны весьма невыгодным, свойством: её можно
копировать. При чём, в настоящее время это осуществляется без
особых затрат денег, сил и времени. С одной стороны для
производителя это удобно, поскольку не нужно напрягаться для
производства каждого отдельного экземпляра разработанной
программы. С другой стороны, пользователь, купивший программу,
тоже может её копировать и самостоятельно распространять уже
бесплатно или за гораздо меньшие деньги.Конечно, никто после
этого не станет покупать программу у производителя, и он вылетит
в трубу. Он этого совсем не хочет, и поэтому затрачивает
дополнительные силы и средства на то, чтобы защитить программу
от несанкционированного распространения. Как это осуществляется?
Да есть очень много разных способов и они постоянно
совершенствуются. Направлены они на то, чтобы самостоятельно
скопированная программа на другом компьютере не работала.
Бывает, пользователь, купив программу, получает право установить
её на несколько компьютеров, например, на пять. Тогда, при
попытке установить её на шестой компьютер, уже возникнут
проблемы.
Для того, чтобы предполагаемый пользователь получил
представление о новой программе, производители часто изготовляют
так называемые демонстрационные версии (или попросту демоверсии)
этой программы. Такая версия, распространяется бесплатно или
продаётся за небольшие деньги, и, с одной стороны, даёт
пользователю возможность увидеть преимущества программы, а с
другой, не позволяет ему работать с ней полноценно. Ущербность
демоверсии может выражаться в различных факторах. Например,
пользователь с её помощью может создать что-то полезное, но она
не позволит ему сохранить это на диске. Другие демоверсии могут
позволить сделать что-то полезное, но в ограниченном размере.
Например, демоверсия программы, обучающей иностранному языку,
может полноценно обучить применению на практике двух сотен слов.
Для подобного освоения тысяч слов уже нужно покупать полную
версию. Ещё демоверсия может позволить пользователю после
установки полноценно работать на протяжении определённого
промежутка времени, например, две недели. Затем она сообщает:
"Try and buy!", что по-русски означает: "Попробовал и покупай!"
После этого, даже при попытке установить программу заново, она
работать не будет. А вот, например, демоверсия программы
"Джавс", которая сообщает незрячему пользователю, что происходит
на экране, более добросердечная. Она позволяет пользователю
полноценно проработать 40 минут, а потом требует перезагрузить
компьютер. После перезагрузки она опять будет нормально
работать, но опять же 40 минут.
Ещё стоит упомянуть о так называемых бэтаверсиях программ.
Это неотлаженная и неиспытанная до конца программа. Такие версии
часто распространяются свободно, но авторы не несут никакой
ответственности за возможный ущерб, связанный с их
использованием. Часто бывает, что авторы находят
добровольцев-энтузиастов и передают им бэтаверсию своей
программы для испытания и обнаруживания ошибок. Такие испытатели
называются бэтатестерами.
Как видите, производители весьма изощряются, чтобы
пользователь принёс им свои денежки. Однако, если человек сделал
замок, то всегда найдётся другой человек, который, при
необходимости, сделает для него отмычку. Это же зачастую
происходит с коммерческим программным продуктом. Находятся люди,
это тоже неплохие программисты, которые возьмут купленую версию
программы или её демоверсию, там что-то поковыряют, тут что-то
заменят, и, глядишь... программа без проблем устанавливается на
любой компьютер и работает нормально. Это называется взломом или
крэком программы. Английское слово "crack" по-русски означает
"делать трещину, ломаться". Подобные пиратские версии
впоследствии попадают по бросовым ценам на чёрный рынок, а в
бывших республиках СССР этот рынок сейчас мало отличается от
обычной торговой системы. Нет никакого смысла давать моральную
оценку подобным вещам, когда любой человек может зайти в
ближайший магазин со сверкающими витринами и купить там за 2-3
доллара программу, которую производитель оценивает в сотни, а то
и в тысячи, долларов.
2. Свободный программный продукт. Часто бывает, что
программист пишет программу лично для себя или для своих друзей.
Эта программа может оказаться полезной и для других
пользователей. Программист может решить не делать эту программу
коммерческим продуктом и сделать её доступной и бесплатной для
всех желающих. Ещё бывает, что программист решает сделать
бесплатной программу, которая до этого была коммерческим
продуктом. Такие программы выкладываются на интернетовских
сайтах, передаются желающим на информационных
носителях,пересылаются по электронной почте. При этом даётся
чисто символическое разрешение передавать программу кому
угодно.Такая программа приобретает статус "free software", что
по-русски означает "свободный (бесплатный) программный продукт".
3. Условно свободный программный продукт. Этот способ
распространения программ является чем-то средним между
бесплатным и коммерческим. По-английски статус таких программ
называется "shareware". На простонародном русском языке такие
программы иногда называют шароварным продуктом. Все их
пользователи делятся на две группы: зарегистрированных и
незарегистрированных у производителя. Производитель не
предпринимает особых стараний по защите программы. Он предлагает
всем желающим программу у него купить. Тот, кто покупает,
становится зарегистрированным пользователем. В случае каких-то
усовершенствований программы, производитель передаёт изменённую
версию в первую очередь своим зарегистрированным пользователям,
при чём те получают её бесплатно или за сумму, гораздо меньшую,
чем заплатят первоначально регистрируемые пользователи. Подобное
общение между пользователями и производителем, как правило,
осуществляется через электронную почту. Впоследствии программа
становится бесплатным достоянием и всех остальных пользователей.
Ещё часто бывает, что для пользователей программа является
бесплатным продуктом, а дляпроизводителей других програм,
которые должны использовать эту программу, она является
коммерческим продуктом: им необходимо приобретать лицензию на её
использование.
Теперь поговорим о том, что нужно делать с программой после
того, как она оказалась в распоряжении пользователя. Её нужно
прежде всего установить на его компьютер. Этот процесс
называется инсталяцией программы. До его начала программа
является лишь новообретённым разделом информации, а после его
окончания, она уже находится на диске компьютера в тех разделах,
где ей надлежит быть. При этом она оказывается готовой к запуску
и выполнению своих задач.
Программа может первоначально быть заархивированна. Что это
значит, мы выясним чуть позже. А сейчас только запомним, что её
в этом случае нужно будет разархивировать.
В самом простом случае программа состоит из одного
программного файла, который для её инсталяции просто-напросто
нужно скопировать в какой-то каталог, возможно прозрачный.
В другом, чуть более сложном случае, программа состоит из
нескольких файлов и, может быть, каталогов, и для её инсталяции
достаточно создать новый каталог и поместить в него все её
части.
Вообще-то программа, как правило, имеет описание. Это
специальный текстовый файл, в котором программист объясняет для
чего эта программа нужна и как с ней обращаться. В нём
вчастности рассказывается и как программу инсталировать.
Описание очень часто помещают в файл с именем READ_ME.TXT ИЛИ
READ_ME.DOC. Дословный перевод на русский язык основной части
имени означает "прочитай меня". Впрочем, такое имя файла с
описанием нельзя считать безусловным стандартом. Часто бывает,
что основная часть имени этого файла совпадает с названием
программы, а расширение его имени "TXT" или "DOC".
Перед тем, как браться за инсталяцию программы, лучше сперва
найти и почитать описание. А инсталяция не всегда такая простая,
как в вышеупомянутых случаях. Очень часто для программы не
маловажно, какие именно на данном компьютере имеются устройства:
видеокарта, звуковая карта и т.д. Ведь для работы с одними
устройствами программа может использовать одни методы, а с
другими - другие. В таких случаях имеется специальная
инсталяционная (установочная) версия программы, которую ещё
называют дистрибутивом программы. В такой версии есть
программный файл, который, будучи запущен, выполняет инсталяцию
устанавливаемой программы. Словом, одна программа инсталирует
другую. Как правило, такой программный файл имеет имя SETUB.EXE,
хотя инсталяцию досовских программ бывает осуществляет файл
INSTALL.BAT. В процессе инсталяции инсталирующая программа может
задавать пользователю некоторые вопросы. Они могут касаться
разделов, в которые следует поместить файлы устанавливаемой
программы, круга задач, которые пользователь предполагает решать
с её помощью, устройств, которые предполагаются использоваться
при этом и т.п. Инсталирующая программа часто сама находит
различные устройства данного компьютера, определяет их
модификацию и подстраивает под них устанавливаемую программу.
Иногда пользователю предлагается вставить в лазерный дисковвод
диск с программным обеспечением для какого-то устройства
компьютера. Такие диски, как правило, прилагаются к устройству
при его покупке. В конце установки инсталирующая программа может
попросить пользователя перезагрузить компьютер, а может это
сделать и сама. В конце концов программа оказывается
установленой. Её файлы и каталоги попадают в какие-то каталоги
файловой системы компьютера, а в соответствующие файлы,
участвующие в работе операционной системы, вносятся нужные
записи. Если таким образом установленную программу со всеми её
частями перенести на другой компьютер, то очень сомнительно ,
что она станет работать.
Кстати, таким способом инсталируются не только прикладные
программы, но и некоторые операционные системы. Так
устанавливается WINDOWS. Сначала на жёсткий диск устанавливается
часть операционной системы, которая полностью идентична DOS.
Здесь начинают работать команды DOS и можно запускать досовские
программы. На этом уровне можно разбить винчестер на нужное
количество логических дисков и отформатировать их. Затем
необходимо вставить в лазерный дисковвод диск с дистрибутивом
нужной версии операционной системы WINDOWS, сделать этот диск
текущим и запустить программный файл SETUB.EXE. Далее следует
отвечать на вопросы, задаваемые инсталяционной ппрограммой и
внужные моменты вставлять в лазерный дисковвод диски с
программами, обеспечивающими работу различных устройств
компьютера. После установки, происходит перезагрузка компьютера,
и в её процессе автоматически загружается графический защищённый
режим. Именно после этого незрячие пользователи могут внести те
изменения в файл MSDOS.SYS, о которых мы говорили в пункте 5.3.
Это те изменения, после которых графический защищённый режим не
будет загружаться автоматически. После этого нужно установить на
компьютер программы, обеспечивающие работу устройств компьютера
в режиме DOS и включить их запуск в файлы CONFIG.SYS и
AUTOEXEC.BAT.
Итак, мы выяснили, что программу нужно не только заполучить,
но и правильно установить. Но очень многие программы после
установки нуждаются ещё и в дополнительной настройке. Настройка
может осуществляться очень по-разному. Для того, чтобы узнать
каким образом она выполняется, следует внимательно прочитать
описание программы.
При настройке некоторых досовских программ нужно
подредактировать определённые пакетные файлы, то есть
программные файлы с расширением BAT. В них осуществляется запуск
других программных файлов, обеспечивающих работу программы.
Возможно, что реальные пути к тем файлам будут отличаться от
тех, которые записаны в BAT-файлах. Тогда нужно, либо поместить
все файлы согласно указанным путям, либо подредактировать пути в
соответствии с реальной ситуацией. Ещё запуск программных файлов
в пакетных файлах может осуществляться с помощью определённых
параметров. Здесь, возможно, пользователю нужно будет изменить
некоторые параметры в соответствии с его требованиями к
программе и с какими-то объективными условиями, например, с
имеющимися в распоряжении пользователя устройствами компьютера.
Сведения о возможном использовании параметров можно почерпнуть в
соответствующем описании или из информации, которую COM и
EXE-файлы часто выдают о себе, когда их запускают из командной
строки с вопросительным ключём "/?".
В комплект многих программ входят так называемые INI-файлы.
Это файлы с расширением INI. В них содержится перечень
определённых параметров (опций) с указанием их значений. Принцип
работы таких параметров очень похож на работу параметров
командной строки. В зависимости от их значений программа может
работать по-разному и ориентироваться на различные внешние
устройства компьютера. Отличие параметров командной строки от
параметров INI-файла состоит в том, что первые попадают в память
и в распоряжение программы при её запуске, а последние
считываются программой из INI-файла уже во время её работы. Мы
помним, что размер всей командной строки, соответствующей
запуску программного файла, не должен превышать ста двадцати
восьми символов. Это накладывает естественное ограничение на
количество и размер параметров командной строки. Количество
параметров INI-файла ничем не ограничивается.
Имеется определённый стандарт для составления INI-файла. Все
его параметры могут группироваться по-разделам, названия которых
записываются в отдельных строках и заключаются в квадратные
скобки. Каждый параметр задаётся в отдельной строке. Сначала
записывается его наименование, а затем, после знака равенства
"=", указывается значение этого параметра. Заканчиваться строка
может точкой с запятой ";", хотя это не обязательно. Вообще-то,
точка с запятой в INI-файле играет роль установки комментария:
всё, что в строке записывается после неё, программой во внимание
не принимается. Поэтому в INI-файле могут присутствовать строки,
которые начинаются с точки с запятой. Они расцениваются
программой как комментарий. В них действительно может
объясняться, что означает тот или иной параметр и на что
направлено то или иное его значение. Однако, вставив точку с
запятой вначале строки, задающей значение какого-то параметра,
пользователь отключит действие этого параметра, не прибегая к
удалению строки.
Если при настройке программы используются вышеупомянутые
способы (изменение BAT-файлов, редактирование INI-файлов и
т.п.), то говорят , что она совершается вручную. Однако, очень
часто, это осуществляется более наглядными способами. Многие
программы имеют так называемый пользовательский интерфейс. Это
наглядное средство, позволяющее пользователю и программе, во
время её работы, общаться "лицом к лицу". Например,
пользовательским интерфейсом командного процессора COMMAND.COM
является досовское окно. Так вот, при помощи пользовательского
интерфейса, пользователь по ходу работы программы может отдавать
ей различные команды. Для этого пользовательский интерфейс
многих программ включает в себя возможность работы с меню. Это
своеобразный перечень команд, который изображается на экране, и
пользователь, передвигая по этому перечню курсор, может выбрать
и, нажатием кнопки мыши или клавиши ENTER, отдать программе
нужную команду. В качестве этих команд может фигурировать
настройка и сохранение режимов работы программы. При этом,
программа сама создаёт что-то вроде INI-файла, но это может быть
даже не текстовый, а бинарный файл, который умеет читать только
сама программа.
Первоначальные настройки программы не являются чем-то раз и
на всегда установленным и неизменным. Они могут переопределяться
пользователем в процессе эксплуатации программы.
Итак, когда программа приобретена, установлена и настроена,
можно её запускать и с ней работать. Отметим здесь ещё один,
почти очевидный, факт. Если программа состоит из многих файлов,
среди которых может быть даже несколько программных файлов, всё
равно должен быть один программный файл, с запуска которого
начинается запуск всей программы. Такой файл называется пусковым
файлом программы. Этот файл может запускать в определённой
последовательности другие программные файлы, а может вообще быть
единственным программным файлом в комплекте программы.
Ещё пользователь при знакомстве с описанием программы должен
хорошо запомнить, как, после выполнения нужных действий,
корректно завершить работу с программой, то есть сказать
программе, чтобы она опять отдала управление командному
процессору. Это называется выходом из программы. Есть программы,
которые, закончив работу, сами совершают свой выход в систему,
но очень часто подобную команду должен отдать программе
пользователь с помощью меню или нажатия определённой комбинации
клавишь.
ВОПРОСЫ И ЗАДАНИЯ
1. Сколько есть официальных способов распространения
программ? Какие это способы?
2. Какие сложности возникают у производителя при
распространении коммерческого программного продукта?
3. Что такое демоверсия программы? В чём может проявляться
её ущербность по сравнению с полной версией? Как переводится
английская фраза : "Try and buy!"?
4. Что такое бэтаверсии программы и кто такие бэтатестеры?
5. Что в сфере компьютерных технологий означает английское
слово "crack"?
6. Что в сфере компьютерных технологий означает английское
словосочетание "free software"?
7. Что в сфере компьютерных технологий означает английское
слово"shareware"?
8. Синонимом какого русского слова является в сфере
компьютерных технологий слово "инсталяция"? В чём заключается
инсталяция программы? Как она осуществляется в самых простых
случаях?
9. Как среди файлов, входящих в комплект программы, найти
файл с описанием? Когда его лучше прочитать: до или после
инсталяции?
10. Что такое дистрибутив программы и для чего служат файлы
с именем SETUB.EXE?
11. Как может осуществляться настройка программы вручную?
Чем параметры командной строки отличаются от параметров
INI-файлов? Что означает точка с запятой в строке INI-файла?
12. Как осуществляются наглядные способы настройки
программы?
13. Что такое пусковой файл программы и что такое выход из
неё?
6.4. Некоторые программы, входящие в комплект DOS
В стандартный комплект DOS, кроме программы-загрузчика,
системных файлов MSDOS.SYS и IO.SYS, командного процессора
COMMAND.COM, входит ещё целый ряд прикладных программ,
способствующих полноценной работе операционной системы. Все эти
программы обязательно помещаются в прозрачный каталог. В
классических версиях операционной системы это может быть каталог
с именем DOS. К имени может присоединяться справа номер версии,
например, DOS6.22 и т.п. Если на компьютере установлен
WINDOWS-9X, а защищённый графический режим не загружен, то, как
мы уже выяснили, управление остаётся у командного процессора
COMMAND.COM, и такая операционная система идентична DOS. В
этом случае, прикладные программы, входящие в стандартный пакет,
находятся в файле с полным именем /C:\WINDOWS\COMMAND.
Знакомство с этими программами будет полезным и тем
пользователям, которые ориентируются на работу в WINDOWS. Перед
установкой WINDOWS и в аварийных ситуациях, когда, как
говорится, WINDOWS полетел, без этих программ обойтись нелегко.
В данном комплекте есть SYS, COM и EXE-файлы. Запуск SYS-файлов,
как мы помним, осуществляется из файла CONFIG.SYS. Запуск COM и
EXE-файлов, входящих в комплект DOS, осуществляется, как
правило, из командной строки. Эти программы предполагают
использование различных параметров. Информацию об их работе, так
же, как для команд DOS, можно переадресовать с экрана в
текстовый файл, указав в качестве последнего параметра символ
""", а затем с пробелом или без пробела имя этого текстового
файла. Для получения сведений о соответствующей программе можно
запустить её с вопросительным ключём "/?".
Поскольку эти программы находятся в прозрачном каталоге, то
для их запуска достаточно в командной строке указывать имя без
пути и параметры. Расширение можно тоже не записывать. Таким
образом запуск этих программ очень похож на отдачу команд DOS,
выполнение которых, как мы знаем, обеспечивается командным
процессором COMMAND.COM. Кстати, некоторые пользователи, не
вникающие особо глубоко в суть вопросов, не различают как
следует, где команда DOS, а где прикладная программа, входящая в
комплект DOS. При этом, правда, работа всё равно движется. Ведь
командный процессор хорошо знает эти различия и либо сам
справляется с делом, выполняя команду DOS, либо запускает нужную
прикладную программу.
Заметим, что в отличие от команд DOS, прикладные программы,
о которых идёт сейчас речь, работают и в WINDOWS, когда
выбирается команда "Выполнить...". Для отдачи же команды DOS в
защищённом графическом режиме WINDOWS нужно сперва запустить
приложение "Сеанс MS DOS" или запустить какую-нибудь программу,
предоставляющую пользователю командную строку.
Ниже мы познакомимся с некоторыми программами из досовского
комплекта. Об одних поговорим чуть подробнее, а о других только
узнаем, для чего они предназначены, а какие-то вообще останутся
за пределами нашего внимания.
Программа ATTRIB.EXE предназначена для установки и снятия
некоторых атрибутов файла. При запуске этой программы, нужно в
командной строке записать её имя, затем указать параметры,
устанавливающие или снимающие нужные атрибуты. В качестве
следующего параметра нужно записать имя файла с путём, у
которого изменяется атрибут. Здесь может использоваться и маска.
Тогда атрибуты изменятся у всех файлов, имеющих эту маску. После
имени или маски может присутствовать ещё один параметр - ключ
"/S". Если он есть, то действие программы будет распространяться
не только на файлы из каталога, соответствующего указанному
пути, но и на файлы из всей структуры этого каталога.
Параметры, определяющие установку или снятие атрибута
состоят из двух символов. Первый символ - это плюс "+" или минус
"-". Плюс указывает, что атрибут должен быть установлен, а минус
- снят. Второй символ параметра указывает, какой именно атрибут
имеется в виду. Здесь, так же, как в команде DIR, используются
следующие символы:
R - ReadOnly = 1, H - Hidden = 2, S - SysFile = 4 и A -
Archive = 32. На другие атрибуты действие программы ATTRIB.EXE
не распространяется.
Из раздела 3.1 мы знаем, что атрибуты файла бывают
смешанными. При добавлении нового атрибута, его значение
прибавляется к предыдущему значению, а при снятии -
соответственно вычитается. Например, знакомый нам файл MSDOS.SYS
имеет атрибуты ReadOnly, Hidden и SysFile. Складывая их
значения, мы получим число 7. Это и есть полный атрибут файла.
Мы помним, что для отключения автоматической загрузки
защищённого графического режима WINDOWS-9X, нужно в этом файле
заменить значение одного параметра (см. п. 5.3). Однако, это не
удастся сделать, пока с файла не будут сняты вышеупомянутые
атрибуты. Если эти три атрибута снять, то атрибут файла станет
равен нулю. Некоторые программы таких файлов вообще не видят,
поэтому, сняв прежние атрибуты, желательно добавить атрибут
Archive. Для того, чтобы совершить такое изменение атрибута, не
нужно программу ATTRIB.EXE запускать четыре раза. Это всё можно
сделать за один раз, записав в командной строке:
ATTRIB -R -H -S +A C:\MSDOS.SYS
и нажав ENTER. Если текущим каталогом является корневой каталог
диска C:, то путь C:\ перед именем файла указывать не
обязательно. Теперь файл MSDOS.SYS можно изменять. Только
помните, что все эти атрибуты на данный файл были установлены не
случайно: обращаться с ним нужно очень осторожно, меняя только
то, что нужно. После изменения, атрибуты можно было бы вернуть,
запустив программу ATTRIB.EXE почти с теми же параметрами,
заменив только минусы на плюсы, а плюс - на минус. Однако, этого
можно и не делать, так как при первой же загрузке защищённого
графического режима (а для этого нужно записать в командной
строке WIN и нажать ENTER), WINDOWS сам вернёт атрибуты файла
MSDOS.SYS на своё место.
Напоследок отметим, что если при запуске программы
ATTRIB.EXE не указывать параметры установки или снятия атрибута,
а сразу же после её имени записать в командной строке имя файла
или маску с путём, то программа выдаст информацию о том, какие
атрибуты имеют указанные файлы.
Программа COUNTRY.SYS предназначена для включения
возможности использования неанглийских букв в именах файлов и
каталогов. Это файл системный, поэтому его запуск следует
включить в файл CONFIG.SYS. Чтобы иметь возможность называть
файлы и каталоги русскими буквами, нужно в файл CONFIG.SYS
поместить строку:
COUNTRY= 7,866,C:\WINDOWS\COMMAND\COUNTRY.SYS
Здесь, в отличие от запуска других системных файлов,
используется не команда "DEVICE=", а "COUNTRY=". Цифра 7
означает, что включается возможность использования русских букв,
а число 866 показывает, что при этом используется досовская
кодировка. Если файл COUNTRY.SYS находится в каком-то другом
каталоге, то в этой строке нужно изменить путь, согласно его
местонахождения.
Программа DELTREE.EXE предназначена для удаления каталогов и
файлов. В отличие от досовской команды RD, которая удаляет
только пустые каталоги, эта программа справляется и с непустыми.
Она их удаляет со всей их структурой, при чём, за один раз можно
удалить сразу несколько каталогов и файлов. Для этого их имена с
путём при запуске программы из командной строки нужно указать в
качестве параметров. Здесь может также использоваться и маска с
путём. Характерно то, что эта программа не обращает внимание на
атрибуты файлов, находящихся в структуре указанных каталогов:
она удаляет всё без разбора.
После запуска, программа последовательно запрашивает у
пользователя подтверждение удаления указанных каталогов и
файлов. Если пользователь вводит английскую букву "Y" и нажимает
ENTER, то программа выполняет своё дело и делает запрос о
следующем каталоге или файле. Если же пользователь вдруг
осознаёт, что погорячился, запуская программу, что именно этот
каталог содержит ценную информацию, то вместо буквы "Y" ему
следует ввести английскую букву "N". Здесь не важно, заглавной
или строчной буквой будет потверждаться или отменяться
распоряжение.
При необходимости, можно избежать лишних диалогов с
программой, которые для незрячих пользователей могут быть
особенно нежелательными. Если при запуске программы в качестве
первого параметра, ещё до имён удаляемых каталогов и файлов,
указать ключ "/Y", то программа выполнит своё дело без лишних
вопросов.
Программа FDISK.EXE предназначена для конфигурации жёсткого
диска. Она осуществляет разбиение жёсткого диска на логические
диски.
Программа FORMAT.COM предназначена для форматирования
магнитных дисков. С этой программой, так же, как и с описанной
выше программой ATTRIB.EXE, желательно подружиться. Разбивать
винчестер на логические диски и создавать возможность называть
файлы русскими буквами вам, возможно, никогда не прийдётся.
Удалять каталоги вы сможете при помощи других, более простых в
обращении, программ, а DELTREE.EXE вам тогда нужно будет
использовать только в экстремальных ситуациях. Форматировать же
дискеты приходится и в самых обычных случаях. Для этого тоже
есть различные программы, но FORMAT.COM всегда находится под
рукой, к тому же эта программа довольно удобна в обращении.
В самом простом случае программа FORMAT.COM запускается из
командной строки с одним параметром - именем диска. Таким
образом, чтобы осуществить самое обычное форматирование дискеты
размером три с половиной дюйма и 1,44 мегабайт, нужно записать в
командной строке
FORMAT A:
и нажать ENTER. Программа запросит подтверждение, получив
которое, будет осуществлять форматирование. Оно будет
сопровождаться характерными звуками в дисководе. После
окончания форматирования, программа не завершит работу, а будет
предлагать форматировать следующую дискету. На экране будет
показано, как можно от этого отказаться.
Имя диска - это обязательный и первый по счёту параметр
программы, но есть ещё целый ряд ключей, которыми можно давать
программе дополнительные задания.
При помощи ключа "/V" можно форматируемому диску присвоить
метку тома. Что это такое, мы говорили в разделе 3.2. Для этого
нужно при запуске программы использовать ещё один параметр,
который формируется так: сразу же после ключа "/V" без всякого
пробела нужно поставить двоеточие ":" и затем, опять же без
пробелов, записать строковую величину, которая должна стать
меткой тома. Требование к этой величине такое же, как и к имени
файла. Посути, это и есть имя некоторого файла с атрибутом
VolumeID = 8.
Следующий параметр, который можно использовать при запуске
программы FORMAT.COM - это ключ "/Q". При его использовании
производится быстрое форматирование диска. В этом режиме работа
программы не касается разметки поверхности диска. В этом случае
только очищается FAT-таблица и в дескрипторе каждого файла,
находящегося на указанном диске, первый символ имени заменяется
на условный символ, свидетельствующий, что такого файла уже нет
и что соответствующий кластер высвобожден. Посути вся информация
остаётся, но операционная система показывает пользователю, что
диск уже чистый. Пока на него не будет сделана ни одна запись,
всё ещё можно будет при помощи специальных программ вернуть.
В чистых версиях DOS программу можно запускать с ключём
"/ U", который предназначен для тщательного форматирования.
После него вряд ли можно что-то вернуть. Программа FORMAT.COM,
входящая в комплект WINDOWS-9X, при запуске с вопросительным
ключём "/?" информации о параметре "/U" не выдаёт. Повидимому,
здесь обычное форматирование без ключа "/Q" уже является
тщательным.
Диск можно отформатировать так, чтобы его размер был меньше,
чем максимально допустимый. Для этого в качестве параметра
программы FORMAT.COM нужно указать ключ "/F" и через двоеточие
необходимый размер. Например, для того, чтобы отформатировать
дискету на 1.2 мегабайта, нужно использовать следующую командную
строку:
FORMAT A: /F:1.2
Кстати, программа может уменьшить размер диска и без этого
параметра, если при форматировании обнаружит сбойные кластеры.
Ещё один важный параметр программы - ключ "/S". При его
использовании отформатированный диск станет системным
(загрузочным). В его загрузочном секторе окажется программазагрузчик,
а в первых его кластерах будут находиться системные
файлы IO.SYS, MSDOS.SYS и командный процессор COMMAND.COM.
Останется на диск поместить файлы CONFIG.SYS и AUTOEXEC.BAT (а
иногда можно обойтись и без них) и можно будет загружаться с
этого диска, как описывалось в разделе 5.4. Если системные файлы
обычным способом скопировать на диск, то этот диск не станет
системным.
При использовании ключа "/B", программа оставит на диске
место для системных файлов. Тогда на этот диск впоследствии
можно будет установить операционную систему, но тоже не
посредством простого копирования, а при помощи другой программы.
Есть ещё несколько ключей, с которыми можно запускать
программу FORMAT.COM, но мы сейчас не будем о них говорить. При
необходимости, вы всегда сможете запустить программу с
вопросительным ключём "/?" и познакомиться с ними. А сейчас
будьте внимательны: вам откроется одна из тайн фирмы MicroSoft.
Программа FORMAT.COM имеет недокументированный параметр - ключ
"/AUTOTEST". Справочная система о нём не упоминает, наверное,
из-за опасения, что в неопытных руках его использование может
привести к существенным потерям. Однако, для незрячих
пользователей этот ключ значительно облегчает работу с
программой FORMAT.COM. Если этот ключ записать в командной
строке запуска программы после всех необходимых параметров, то
программа не будет задавать никаких вопросов, а закончив
форматирование, сама осуществит выход в систему, т.е. передаст
управление командному процессору. Пользователь для
форматирования дискет может создать очень простой пакетный файл,
состоящий из одной строки:
FORMAT A: /AUTOTEST
и дать этому файлу короткое имя, например, FRM.BAT. Этот файл
нужно поместить в какой-нибудь прозрачный каталог, и, конечно,
следить за тем, чтобы не давать другим программным файлам имя с
такой же основной частью. Тогда, для простого форматирования
дискеты, при котором со стороны программы не будет никаких
вопросов, достаточно будет набрать в командной строке подряд три
буквы "FRM" (можно и строчные) и нажать ENTER.
Программа LABEL.EXE предназначена для установки, удаления
или изменения метки тома магнитного диска. В самом обычном
случае она запускается с двумя параметрами: первый - имя нужного
диска, а второй - устанавливаемая метка тома. Если на диске не
было метки, то она появится, если она там уже была, то
заменится. При установке метки на текущий диск, первый параметр
(имя диска) можно не указывать. Для удаления метки с диска, не
нужно записывать второй параметр. В этом случае, правда,
программа потребует подтверждения, которое делается нажатием
клавишь "Y" и ENTER. Для снятия метки с текущего диска,
программу можно запустить вообще без параметров.
Программа MEM.EXE предназначена для получения информации о
состоянии оперативной памяти на момент её запуска. Если её
запустить вообще без параметров, то она сообщит, размер
имеющейся на компьютере оперативной памяти, размер обычной и
верхней памяти, находящихся в части памяти в пределах до одного
мегабайта. Кроме того, программа покажет, сколько места в этих
разделах памяти свободно, и сколько занято.
Если программу запустить с ключём "/C", то к предыдущей
информации добавится перечень загруженных в память резидентных
программ, с указанием размера пространства, которое каждая
программа заняла в обычной и верхней памяти (бывают резидентные
программы, которые частично загружаются в обычную, а частично в
верхнюю память).
Программу можно запускать ещё с некоторыми ключами, но мы не
будем о них распространяться. Тот, кто захочет о них узнать,
всегда может запустить программу с вопросительным ключём "/?".
Программа MOVE.EXE предназначена для перемещения и
переименовывания файлов и каталогов. В обычном случае программа
запускается с двумя параметрами: "источник" и "приёмник".
Источником может быть имя файла с путём, а приёмником - новое
имя файла с новым путём. Вчастности, если пути будут
отсутствовать, т.е. являться пустыми строками, то произойдёт
переименовывание файла в текущем каталоге. Если имя файла нужно
оставить прежним, но требуется переместить его в другой каталог
(дать другое полное имя), то в качестве приёмника можно указать
лишь имя с путём того каталога, куда производится перемещение.
Кстати, в этом случае источником может быть маска с путём. Тогда
переместятся без изменения имён все файлы, имеющие заданную
маску.
Программа MOVE.EXE может переименовывать и каталоги, но, при
этом, не должно происходить перемещение, т.е. имя родительского
каталога не должно измениться. Тогда источник - это прежнее, а
приёмник - новое имя каталога.
При запуске программы можно первым параметром, ещё до
источника, указать ключ "/Y". Тогда программа не будет
спрашивать, нужно ли заменять старый файл новым, если выяснится,
что в новом каталоге такой файл уже есть. Может так случиться,
что в данной версии программы, она не задаёт подобные вопросы,
даже когда ключа "/Y" нет. Тогда, если мы хотим, чтобы она нас
наоборот предупреждала, что такой файл уже есть, то нужно
запустить программу с ключём "-Y", у которого перед символом "Y"
ставится минус.
Программа SCANDISK.EXE предназначена для восстановления
магнитных дисков. После работы некоторых не очень качественных
программ, а также, в результате сбоев какихто устройств
компьютера или вследствии внезапного отключения компьютера от
электропитания, на магнитных дисках могут появиться ошибки. Они
также могут возникнуть из-за повреждений поверхности диска.
Выражаются они в том, что нарушается система хранения
информации. Например, в FAT-таблице могут оказаться ссылки на
цепочку кластеров с информацией, у которой нет начала. Могут
также реальные размеры некоторых файлов отличаться от тех,
которые указаны в дескрипторах. Могут быть и другие ошибки. Для
их устранения и служит программа SCANDISK.EXE. Программа
допускает использование нескольких параметров, узнать о которых
всегда можно, запустив её с вопросительным ключём "/?". Кроме
того, у программы есть INI-файл (см.6.3) SCANDISK.INI, который
можно заранее отредактировать нужным образом и, при запуске,
дать программе распоряжение брать значения параметров из него.
Программе можно поручить при работе составлять файл отчёта,
который впоследствии можно просмотреть при помощи озвученных
программ.
Программа SORT.EXE предназначена для сортировки текстовых
файлов в алфавитном порядке. Если при запуске программы из
командной строки, указать в качестве параметров имена нужных
текстовых файлов, то все строки этих файлов окажутся на экране в
алфавитном порядке. Эти строки, правда, промелькнут очень
быстро. Поэтому лучше переадресовать вывод с экрана в отдельный
файл, указав его имя после символа """ в качестве последнего из
параметров.
Если перед именем первого из сортируемых файлов указать ключ
"/R", то сортировка будет осуществляться в обратном порядке.
Ещё можно использовать параметр, у которого после наклонной
черты дроби "/" записывается плюс, а затем указывается какое-то
число. Это будет означать, что сортировка должна осуществляться
лишь с учётом символов, порядковые номера которых в строке не
меньше числа, указанного после плюса. Записываться этот параметр
должен тоже перед первым из имён сортируемых файлов.
Программа SUBST.EXE даёт возможность пользователю присвоить
какому-то каталогу статус диска, то есть смотреть на него, как
на максимальный раздел информации. Для этого нужно запустить
программу из командной строки, указав ей в качестве первого
параметра имя этого диска, а в качестве второго - имя с путём
соответствующего каталога. После этого, если сделать указанный
диск текущим, то содержимое его корневого каталога окажется
содержимым того каталога, за которым этот диск закрепился. Таким
образом создался своеобразный виртуальный диск, но не в
оперативной памяти, а на другом диске. При необходимости этот
диск можно отменить, повторно запустив программу SUBST.EXE,
указав ей в качестве первого параметра имя диска, а в качестве
второго - ключ "/R".
Создание подобных дисков может быть весьма полезным в разных
случаях.
Во-первых, пользователь может обеспечить быстрый доступ к
какому-то каталогу, путь к которому достаточно длинный.
Во-вторых, программа даёт возможность ограничить доступ
других пользователей к информации, хранящейся на каком-то
реальном диске. Ведь достаточно имя этого диска присвоить с
помощью программы SUBST.EXE какому-то каталогу, который,
возможно, находится на этом же диске, и вся остальная
информация, находящяяся на этом диске окажется недоступной, пока
такой виртуальный диск не будет отменён. Любые попытки обращения
к этому диску реально будут приводить лишь к обращению к
какому-то каталогу. Что-то вроде простейшего системного
администрирования. Такой метод можно применять преподавателям
компьютерных дисциплин, чтобы учащиеся, влекомые чрезмерной
страстью к экспериментам, не испортили ценной информации.
Запускать же программу в этом случае можно в файле AUTOEXEC.BAT,
который, как мы помним, выполняется автоматически при загрузке
компьютера, либов в BAT-файле, запускающем программу,
используемую учащимися. Таким же способом можно закрыть и
дисковод, и CD-ROM, чтобы не допустить копирования на диски
компьютера программ сомнительного качества и назначения.
Программа SYS.EXE предназначена для копирования системных
файлов MSDOS.SYS, IO.SYS и командного процессора COMMAND.COM на
магнитный диск, на котором при форматировании было оставлено для
них место (см. ключ "/B" программы FORMAT.COM) или на котором
уже есть другая версия операционной системы DOS. Другими
словами, программа делает указанный диск загрузочным без
форматирования. Это даёт возможность сохранить находящуюся на
диске информацию.
Программа запускается из командной строки с двумя
параметрами. Первый параметр - это имя с путём каталога, в
котором находятся копируемые файлы. Второй параметр - это имя
диска, на который устанавливается система.
Программа XCOPY.EXE предназначена для копирования
информации. и В отличие откоманды COPY, эта программа занимается
копированием не только файлов, но и каталогов. В качестве
первого и второго параметра указываются источник и приёмник. Это
имена файлов и каталогов с путём, могут быть и маски. Если
приёмник отсутствует, то копирование осуществляется под теми же
именами в текущий каталог.
Кроме этих двух параметров, могут использоваться ещё
некоторые ключи. Здесь можно предусмотреть копирование только
файлов с атрибутом Archive, можно разрешить копирование только
файлов, созданных после определённой даты, можно дать задание
проверять, насколько качественно скопировались файлы. Для того,
чтобы программа копировала все каталоги, не включая пустых,
нужно использовать ключ "/S", а для того, чтобы копировались все
каталоги, включая и пустые, нужно указать ключ "/E".
ВОПРОСЫ И ЗАДАНИЯ
1. Где находятся прикладные программы, входящие в
стандартный пакет, если на компьютере установлен WINDOWS-9X?
Какие у них сходства и какие отличия от команд DOS?
2. Какая программа может изменить атрибут файла? На какие
атрибуты распространяется её действия? Как осуществляется
установка и снятие атрибутов? Как распространить действие
программы и на файлы, находящиеся в структуре соответствующего
каталога? Как можно узнать атрибуты файлов?
3. Для чего нужна программа COUNTRY.SYS и когда она
запускается?
4. Работу каких команд DOS способна совершать программа
DELTREE.EXE? Какие есть отличия в работе этой программы и тех
команд? Что нужно сделать, чтобы программа не задавала лишних
вопросов?
5. Какая программа может разбивать жёсткие диски на
логические диски?
6. Чем занимается программа FORMAT.COM? Какой параметр
обязательно должен участвовать в её запуске? Для чего
используются ключи "/Q", "/S" "и /B"? Что произойдёт, если в
файл AUTOEXEC.BAT поместить строку
FORMAT C: /U /AUTOTEST
и перезагрузить компьютер? Можно ли будет потом удалить эту
строку? Что означает последний параметр "/AUTOTEST"?
7. Как установить на магнитный диск метку тома? Как её можно
снять, если она не нужна?
8. Как при загруженной операционной системе DOS можно
узнать какой у компьютера размер оперативной памяти? Как узнать,
сколько памяти свободно, сколько занято, какие резидентные
программы в ней находятся и сколько они занимают места?
9. Чем занимается программа MOVE.EXE? Какими двумя командами
DOS может замениться её деятельность по отношению к файлам? Что
произойдёт, если вместо программы MOVE.EXE запустить BAT-файл с
этими командами, и если окажется, что диск, на который
осуществляется перемещение, защищён от записи?
10. Чем занимается программа SCANDISK.EXE?
11. Каким образом можно отсортировать текст в алфавитном
порядке?
12. Чем занимается программа SUBST.EXE?
13. Когда может понадобиться программа SYS.EXE?
14. Чем занимается программа XCOPY.EXE, и чем её возможности
отличаются от возможностей команды COPY?

ГЛАВА 7

РАЗНОВИДНОСТИ ПРИКЛАДНЫХ ПРОГРАММ
В разделе 6.1 мы познакомились с типами прикладных
программ. Это была своеобразная их классификация по принципам
их работы и способам запуска. Сейчас мы коснёмся других их
качеств. Они будут в основном связаны с предназначением
программ, с кругом задач, которые они должны решать. Бывает,
кстати, что две программы занимаются одним и тем же, но имеют
разные типы: например, одна размещена в COM, а другая в
EXE-файле.
Нельзя сказать, что группы программ, о которых мы будем
сейчас говорить, строго разграничены и отделены друг от друга,
как это было с типами программных файлов. Нет, встречаются
программы, которые относятся сразу к нескольким из описываемых
групп. Нельзя также сказать, чтоперечень этих групп программ
будет исчерпывающий.
7.1. Драйверы и утилиты
Драйверы. Все IBM-совместимые компьютеры имеют открытую
архитектуру. Это значит, что имеет место взаимозаменяемость
внешних и внутренних устройств различных фирм-производителей.
Однако, разные фирмы используют для управления своими
устройствами разные стандарты. Мы помним, что микропроцессор
передаёт команды устройствам в виде двоичных чисел через
специально выделенные для этого ячейки памяти. Вот именно эти
численные команды для устройств разных производителей, но
одинакового назначения, могут отличаться. Устройства, в свою
очередь, могут передавать компьютеру какую-то ответную
информацию, которая может по-разному выражаться устройствами
разных производителей.
Можно было бы операционную систему приспособить к одному из
стандартов, но тогдаустройства других производителей остались
бы невостребованными или им пришлось бы изменять стандарты.
Однако, изменив стандарт под одну операционную систему,
устройство можно сделать неподходящим для другой. Чтобы
избежать подобных конфликтов и существуют программы, называемые
драйверами.
Когда какая-то прикладная программа хочет отдать нужному
устройству команду, она обращается по этому вопросу к
операционной системе, а та, если не находится с этим
устройством в полном взаимопонимании, переадресовывает команду
драйверу. Тот знает нравы как операционной системы, так и
устройства. Поэтому он отдаёт эту команду устройству на
понятном ему языке. Точно так же он получает от устройства
ответную информацию и растолковывает её операционной системе,
которая, при необходимости, сообщает её прикладной программе.
Словом, драйвер является чем-то вроде переводчика между
операционной системой и устройством. Его разрабатывают
производители устройства под конкретную операционную систему.
Как правило, выпустив в свет новое устройство, производитель
снабжает его набором драйверов для нескольких операционных
систем. Таким образом, снимается проблема недопонимания между
различными устройствами компьютера.
Драйвер всегда является резидентной программой и может
находиться в SYS, COM или EXE-файле. Запускаться драйверы могут
на разных этапах работы компьютера. Выделим три из них.
1. Если драйвер размещается в SYS-файле, то его загружают в
оперативную память во время загрузки компьютера. Это должно
быть предусмотрено в файле CONFIG.SYS. Такие драйверы
загружаются в начальные адреса памяти сразу же после
операционной системы и являются её дополнением. Есть, правда,
способ загрузить подобный драйвер при помощи специальной
прикладной программы уже после загрузки компьютера, но мы об
этом сейчас говорить не будем.
2. Драйверы, находящиеся в COM и EXE-файлах тоже могут
загружаться в память во время загрузки компьютера, но чуть
позже. Этот запуск должен быть предусмотрен в файле
AUTOEXEC.BAT. Подобные драйверы часто имеют возможность
впоследствии быть выгружеными из памяти.
3. Бывает, что устройство используется не постоянно. Тогда
если его драйвер находится в COM или EXE-файле, то, для
экономии места в памяти, запускать его можно уже после загрузки
компьютера непосредственно перед использованием устройства.
Утилиты. Есть целый ряд прикладных программ, называемых
утилитами. Это название произошло от английского слова
"utility", что по-русски означает "польза". Да, утилиты - это
полезные программы, но далеко не все программы, приносящие
пользу относятся к утилитам. Точнее было бы сказать, что
утилиты - это вспомогательные программы. Они выполняют какие-то
действия, которые оказываются очень полезными, часто
незаменимыми, для выполнения чего-то другого - более важного.
Скажем так: для того, чтобы пользоваться одними утилитами,
никто компьютер покупать не будет, но без них, вместе с тем,
обойтись трудно, почти невозможно. Например, седло, уздечка,
стремена, щётка для расчёсывания гривы и хвоста представляют
мало интереса, если нет лошади. Однако, имея лошадь, желательно
иметь и вышеперечисленные вещи, чтобы полноценно её
использовать и держать в порядке.
Употребление понятия "утилита" не является чем-то
обязательным. Вы вполне можете заменять его словами:
"программа" или "программка". Однако, это понятие нужно знать.
Вдруг кто-нибудь скажет вам, что у него есть такая хорошая
утилитка, и что он готов с вами поделиться. Вы тогда будете
знать, о чём идёт речь.
Кстати, все программы, о которых мы говорили в пункте 6.4,
кроме разве программы COUNTRY.SYS, можно тоже считать
утилитами. Есть ещё стандартный набор программ, предназначенных
для ухода за компьютером, который называется "Нортон утилиты".
ВОПРОСЫ И ЗАДАНИЯ
1. Для чего нужны драйверы? Какие возможны неприятности при
их отсутствии?
2. Какой из четырёх типов программных файлов не может иметь
драйвер?
3. Когда и как осуществляется запуск драйверов?
4. Что такое утилита?
5. Назовите несколько конкретных прикладных программ,
которые можно считать утилитами.
7.2. Текстовые редакторы и текстовые процессоры
Трудно переоценить значение текстовых редакторов. Это
программы, предназначенные для создания и редактирования
текстовых файлов. Что такое текстовый файл мы узнали в разделе
3.1 и уже неоднократно использовали это понятие. Однако, мы ещё
не говорили, как такой файл создать и как сделать изменения в
уже существующем текстовом файле. Зато, мы уже заметили, что
делать такие изменения приходится довольно часто.
Мы, правда, помним случаи, когда текстовые файлы
создавались, как побочный эффект каких-то других действий. Это
происходило, например, когда вывод отчёта о работе команды DOS
или программного файла из комплекта DOS переадресовывался с
экрана в текстовый файл. Если такого файла не было, он
создавался. Просмотреть такой файл можно было при помощи
команды TYPE. Кстати, если эту команду применить к
файлу-устройству CON, который в данном случае будет относиться
к клавиатуре, а затем переадресовать вывод с экрана в текстовый
файл, то мы получим что-то вроде самого простого текстового
редактора. Перевод строк здесь осуществляется клавишей ENTER, а
выход - клавишей F6, либо комбинацией клавишь "CTRL+Z". Точно
такой же текстовый редактор получится, если применить команду
COPY, указав в качестве источника устройство CON, а в качестве
приёмника - имя создаваемого файла. Однако, при составлении
больших текстов, такой способ будет неудобным. Для этого нужно
будет использовать более солидный текстовый редактор.
Заметим, что есть очень много различных текстовых
редакторов. Они обладают целым рядом дополнительных функций,
помогающих обрабатывать тексты. Одной из важнейших функций
текстового редактора является возможность распечатки текстового
файла на принтере.
Часто бывает, что другие программы имеют свой собственный
встроенный текстовый редактор, а бывает, что пользователь сам
может встроить в них тот текстовый редактор, с которым ему
удобно работать.
Существует негласная и необязательная договорённость, что
если текстовый файл не несёт дополнительных функций (например,
BAT-файл, INI-файл и т.п.), то его имени присваивается
расширение TXT.
Есть ряд текстовых редакторов, специально разработанных для
незрячих пользователей. В них все действия озвучиваются, и
текст можно не только редактировать, но и читать синтетическим
голосом.
Заметим, что для обозначения русских букв в текстовых
файлах в DOS и в WINDOWS, используются символы с разными
кодами. Поэтому, файл, составленный текстовым редактором в
WINDOWS, в досовском редакторе будет состоять из каких-то
закорючек. В других операционных системах тоже применяются свои
кодировки. Чтобы снять эту проблему, используются так
называемые перекодировщики (конверторы). Это программы, заменяющие
одни символы другими, в соответствии с нужной кодовой
страницей. Кодировщики, кстати, тоже можно отнести к утилитам.
Встречаются текстовые редакторы, которые имеют собственные
встроенные кодировщики.
Часто случается, что текстовый файл не нужно
редактировать, а необходимо только просмотреть. Для этого можно
обойтись без текстового редактора и использовать более простые
программы - просмотрщики (чтецы, вьюеры).. Они не способны в
тексте ничего изменить, но это даже бывает удобно, чтобы
случайно что-то не нарушить в важном текстовом файле. Эти
программы, как правило, имеют возможность находить указанные
части текста, позволяют пользователю в каких-то местах текста
сделать закладки, имеют встроенные кодировщики да и ряд других
полезных функций. Есть просмотрщики, специально предназначенные
для незрячих пользователей.
Интенсивное развитие текстовых редакторов привело к
появлению более мощных программ - текстовых процессоров. Они
составляют файлы, которые включают в себя не только строки,
состоящие из стандартных символов, но и сложные графические
объекты: рисунки, графики, формулы , таблицы и т.п. Кроме того,
они способны стандартные символы изображать на экране и
распечатывать на бумаге, используя тысячи различных шрифтов.
Способны также изменяться и размеры символов.
Достигаются подобные возможности различными путями. Одни
текстовые процессоры составляют обычные текстовые файлы, т.е.
файлы, разбитые на строки парами символов с кодами 13 и 10. При
этом, они вставляют в нужные места файлов служебные условные
записи, которые являются командами для самого текстового
процессора или просмотрщика его продукции: изменить шрифт,
изменить размер символов, изменить цвет поля, изменить цвет
символов, вставить рисунок из такого-то файла и т.п. Рисунки и
другие вставляемые объекты в этом случае размещаются в других
файлах, которые имеют специальные форматы, понятные текстовому
процессору и специальным просмотрщикам. Подобными текстовыми
файлами являются так называемые WEB-страницы - файлы с
расширением имени HTML, от которого в DOS остаётся только три
первых символа. Говорят, что эти файлы имеют HTML-формат. Этот
формат имеет очень широкое распространение в интернете.
Просмотрщики таких файлов называются браузерами. В операционной
системе WINDOWS широкое распространение получил браузер
"Internet Explorer" фирмы "MicroSoft". Впрочем, этой программой
не исчерпывается список хороших браузеров.
Есть текстовые процессоры, которые работают совсем по
другим принципам. Они составляют файлы в своём собственном
формате. Это уже не текстовые, а бинарные файлы. Они включают в
себя не только текстовую информацию, но и графические объекты.
В них также фиксируется шрифты и размеры символов. Таким
является самый распространённый в настоящее время текстовый
процессор "MicroSoft Word". Он составляет файлы, формат которых
называется "Документ Word". В просторечии эти файлы называются
"вордовскими". Имена таких файлов имеют расширение DOC.
ВОПРОСЫ И ЗАДАНИЯ
1. Для чего предназначены текстовые редакторы?
2. Может ли текстовый файл создаться без текстового
редактора?
3. Как с помощью команд DOS получить простейший текстовый
редактор?
4. Какое расширение принято давать именам обычных текстовых
файлов?
5. Для чего нужны кодировщики?
6. Чем просмотрщики отличаются от текстовых редакторов?
7. Что такое текстовые процессоры? По каким принципам они
работают?
8. Как называются просмотрщики HTML-файлов?
9. Какое расширение имеют имена вордовских файлов?
7.3. Архиваторы
Эти программы занимаются архивированием информации, т.е.
искуственным уменьшением размеров, для её последующего хранения
или транспортировки. В таком состоянии информация не может быть
использована по назначению, пока её не разархивируют. Что-то
вроде палатки: когда она разбита, в ней можно спать, но она в
таком виде не поместится в вагон поезда. Когда же она свёрнута,
она помещается даже в рюкзак, но в ней нельзя спать.
Каким же способом достигается подобное сжатие
информации?Есть несколько алгоритмов данной операции, но все
они основаны на замене повторяющихся частей информации
условными обозначениями.
Предположим, что мы с вами архиватор и нам нужно
сархивировать роман Льва Толстого "Война и мир", размещённый в
одном или нескольких текстовых файлах. Мы с вами пересматриваем
за несколько секунд весь текст и находим в нём повторяющиеся
фрагменты. Мы видим, например, что набор символов "Болконск"
встречается в тексте столько-то раз. Мы составляем специальный
словарик, занося в него это сочетание символов под номером 1.
Далее, везде, где в тексте встретится это буквосочетание, мы
будем вставлять условный знак, что здесь произведена замена и
ставить вместо этого буквосочетания число 1, которое, как мы
помним, занимает 1 байт. Затем мы видим, что фрагмент
"Болконский" тоже встречается нередко. Мы и его заносим в
словарь под номером 2. И это число тоже занимает 1 байт. При
этом, занося слово в словарик, мы уже можем не записывать его
целиком, а заменить уже занесённое сочетание "Болконск"
условным численным обозначением. Затем занесём в словарик слово
"Андрей", а потом, применяя уже сделанные ранее обозначения,
занесём в словарик сочетание символов "Андрей Болконский". Так
и будем продолжать, увеличивая словарик. Все номера до 255
будут занимать 1 байт, а все следующие, до 65535, уже занимают
2 байта. Обозначение того, что в данном случае используется
замена, тоже будет занимать какое-то место. Однако, эффект
такого сокращения очевиден. Составленный словарик и весь текст
книги, с произведёнными заменами мы можем поместить в один файл
или в несколько файлов заданной длины. В последнем случае
говорят, что составляется многотомный архив.
Существует несколько программ-архиваторов. В основе каждой
из них лежит свой алгоритм. Они постоянно усовершенствуются,
добиваясь того, что одна и та же информация после сжатия
занимает всё меньше и меньше места. Мы здесь назовём три такие
программы.
Одна из них - это программа RAR.EXE. Она сама как
архивирует информацию, так и разархивирует архивные файлы.
Сжатая ею информация помещается в архивный файл с расширением
имени RAR. Если архив многотомный, то первый файл имеет такое
же расширение имени, а именам остальных архивных файлов
присваиваются расширения R00, R01, R02 и т.д. Основная часть у
имени архивных файлов одинаковая - та, которую пользователь
указывает при архивировании. Программа имеет немало параметров.
Их всегда можно узнать, запустив её с вопросительным ключём
"/?". Подробное описание этого архиватора, как и остальных
архиваторов, имеет довольно-таки обширный размер. Мы расскажем
о самом простом использовании этой программы.
Архиваторы, как правило, помещают в прозрачный каталог
(этому каталогу часто дают имя ARC, хотя это не обязательно).
Таким образом, при запуске программы с командной строки, путь к
программному файлу можно не указывать. Если мы хотим, чтобы все
файлы из текущего каталога были сархивированы в файл KNIGA.RAR,
нужно в командной строке записать:
RAR A KNIGA.RAR
и нажать ENTER. Параметр "A" указывает программе, что нужно
архивировать. Если в командной строке вместо "A" записать
параметр "E", а всё остальное оставить прежним, то программа
разархивирует в текущий каталог информацию, хранящуюся в
архивном файле KNIGA.RAR.
Отметим одну полезную способность архиватора RAR.EXE,
которой, впрочем, обладают и все другие архиваторы: архивный
файл можно запаролить. Пароль - это строковая величина, которая
может присваиваться архивному файлу при архивировании. В этом
случае, при разархивировании пользователь должен указать
пароль, иначе архиватор откажется выполнять поставленную
задачу.
Начинающие пользователи часто спрашивают, как можно на
компьютере общего пользования спрятать от постороннего глаза
личную информацию. Один из самых надёжных способов
осуществления данной задачи - это сархивировать нужную
информацию в запароленный архив и удалить эту информацию,
разумеется, оставив архивный файл. Кстати, это можно
осуществить одним действием, используя вместо параметра "A"
параметр "M". Тогда архивируемая информация переместится в
архив, исчезнув с того места, где она была. Для запароливания
архива используется ключ "/P". В командной строке он
указывается перед именем архивного файла и сразу за ним, без
всякого пробела, записывается пароль. Если мы хотим
сархивировать не все файлы текущего каталога, а только заданный
файл или файлы, имеющие данную маску, то имя этого файла или
маску нужно записать в командной строке после имени архивного
файла. Здесь можно записать через пробел и несколько имён
файлов или несколько масок. Тогда архиватор будет
распространять свои действия только на указанные объекты. Итак,
если мы запишем в командной строке:
RAR M /P23 KNIGA.RAR KNIGA.TXT
и нажмём ENTER, то информация из файла KNIGA.TXT попадёт в
архив KNIGA.RAR, а сам файл KNIGA.TXT исчезнет из текущего
каталога. Архив окажется запароленным с паролем "23". При
разархивировании, нужно будет вместо параметра "M" записать
параметр "E", а последнего параметра "KNIGA.TXT" вообще не
указывать. Если в командной строке будет отсутствовать и ключ
"/P23", то архиватор запросит пароль с клавиатуры. Нужно будет
его набрать и нажать ENTER. Кстати, при архивировании в
командной строке пароль тоже можно было не указывать, а
записать только ключ "/P". Тогда бы архиватор запросил пароль с
клавиатуры и попросил бы его повторить. Это имеет смысл делать,
если пользуешься командной строкой из программы, которая
сохраняет список нескольких предыдущих командных строк. В этом
случае, пароль, записанный в командной строке, может стать
известен кому-то другому.
Заметим, что если программа RAR.EXE не находится в
прозрачном каталоге и отсутствует в текущем каталоге, то, при
её запуске, обязательно нужно указывать путь к ней из текущего
каталога. Аналогично, если разархивируемый файл не находится в
текущем каталоге, то его имя при разархивировании нужно
указывать с путём. Это же нужно сделать, когда мы хотим создать
архивный файл в каком-то другом каталоге.
Второй архиватор, которого мы здесь коснёмся, называется
ARJ и помещается в программном файле ARJ.EXE. Он составляет
архивные файлы с расширением имени ARJ. Эта программа тоже
занимается как архивированием, так и разархивированием. Она
тоже имеет немало параметров, и принципы её запуска такие же,
как и у программы RAR.EXE. Здесь параметр "A" тоже означает
команду архивировать, а "E" - разархивировать.
Ещё один архиватор называется ZIP. Он создаёт архивные
файлы с таким же расширением имени. Однако для архивирования
здесь используется одна программа - PKZIP.EXE, а для
разархивирования другая - PKUNZIP.EXE. Для того, чтобы
сархивировать содержимое текущего каталога в архив KNIGA.ZIP,
нужно в командной строке написать
PKZIP KNIGA.ZIP
и нажать ENTER. Для разархивирования этого архива в текущем
каталоге нужно в командной строке вместо PKZIP записать
PKUNZIP, запуская таким образом другую программу. Подробнее с
программой и её параметрами можно познакомиться, запустив её с
вопросительным ключём "/?".
Некоторые архиваторы имеют возможность создавать
самораспаковывающиеся архивы. В этом случае архив помещается в
EXE-файл, т.е. является программой. В этом файле одновременно
находятся и алгоритм архиватора, и сархивированная информация.
Тогда для разархивирования уже не нужно никакой другой
программы: нужно просто-напросто запустить этот EXE-файл, и
информация разархивируется.
ВОПРОСЫ И ЗАДАНИЯ
1. Для чего служат программы-архиваторы и какая идея
заложена в их работе?
2. Назовите три наиболее распространённых архиватора.
3. Как можно сархивировать и впоследствии разархивировать
все файлы текущего каталога программой RAR.EXE? Можно ли
сархивировать только некоторые файлы? Чем действие параметра
"M" отличается от действия параметра "A"?
4. Как запаролить архивный файл?
5. Как создаются и разархивируются ZIP-архивы? Чем эти
действия отличаются от аналогичных действий архиваторов RAR и
ARJ?
6. Что такое самораспаковывающиеся архивы?
7. Сархивируйте содержимое какого-то каталога архиватором
RAR.EXE и архивный файл вместе с этим архиватором скопируйте на
дискету. Создайте на этой же дискете BAT-файл для
автоматического разархивирования этого архива на другом
компьютере или на другом диске. В этом файле должны быть
предусмотрены следующие моменты: сделать текущим нужный диск,
создать на нём нужный каталог, сделать его текущим, запустить
архиватор RAR.EXE, находящийся на дискете, направив его
действия на разархивирование архивного файла, находящегося
здесь же на дискете. Не забудьте в данном случае указать как
путь к запускаемой программе, так и путь к разархивируемому
файлу. Ведь корневой каталог диска A: вряд ли является на вашем
компьютере прозрачным, да и архивный файл не находится в
текущем каталоге.
7.4. Файловые менеджеры
Раньше эти программы назывались программами-оболочками для
работы с файловой системой. Сейчас за ними закрепилось название
"файловые менеджеры". Их задача - облегчить пользователю
выполнение операций связанных с файловой системой: копирование,
перемещение, удаление и т.п.
Фактически файловый менеджер позволяет сделать всё, что
можно было осуществить при помощи команд DOS и некоторых
программ, входящих в стандартный комплект DOS. Кроме того, он
может облегчить работу с другими программами, например, с
архиваторами. Файловые менеджеры имеют удобный пользовательский
интерфейс, позволяющий осуществлять наглядное и оперативное
общение с файловой системой компьютера. Как правило, файловые
менеджеры предоставляют возможность пользования и командной
строкой. Это позволяет комбинировать их наглядные методы работы
с содержательными методами досовского окна.
Одной из первых подобных программ является "Norton
Commander". Её название произошло от фамилии Питера Нортона,
хозяина разработавшей её фирмы. Попробуем проиллюстрировать
принципы работы файловых менеджеров на примере этой программы.
Как правило, программа находится в каталоге NC на диске C:,
который объявляется прозрачным. Этот каталог содержит несколько
десятков файлов. Среди них некоторые программные, а остальные
содержат определённую информацию, связанную с работой
программы. Пусковым файлом программы является файл NC.EXE. Его
можно запустить из командной строки, набрав в ней NC и нажав
ENTER, или включить запуск программы в последней строке файла
AUTOEXEC.BAT. В последнем случае программа автоматически
запустится после загрузки компьютера. Раньше, в эпоху расцвета
DOS, так, как правило, и поступали. Некоторые приземлённые
пользователи, когда программа каким-то образом выгружалась,
приходили в ужас при виде чёрного экрана с непонятными белыми
надписями. Они звали на помощь кого-то поопытнее, восклицая,
что "голубые таблички" пропали. Они так их называли из-за
преобладания голубого цвета в пользовательском интерфейсе
программы. Они считали эти таблички чем-то неотъемлимым от
включённого компьютера, а это была всего-навсего одна из многих
прикладных программ. Её можно выгрузить из памяти, т.е. выйти в
систему, нажав клавишу F10, обнажая уже привычный нам чёрный
интерфейс досовского окна. При необходимости, программу можно
опять запустить, но для этого нужно знать хотя бы столько,
сколько знаем мы с вами.
Пользовательский интерфейс программы состоит из двух
панелей: левой и правой. На каждой из них отражается содержимое
какого-то каталога файловой системы компьютера. При этом, на
обеих панелях может отражаться как содержимое одного и того же
каталога, так и двух разных каталогов. Под содержимым здесь
понимается список имён файлов и подкаталогов. Здесь же, кстати,
приводятся и другие их характеристики: размер, дата и время
создания. Словом, программа, показывая подобную информацию,
заменяет команду DIR, при чём, сразу для двух каталогов. Но
этим не исчерпываются возможности программы.
Одна из двух панелей всегда является активной, и
поочерёдное нажатие клавиши "TAB", делает активной то одну, то
другую панель, т.е. осуществляется переход с одной панели на
другую. При этом, каталог, открытый на активной панели,
автоматически становится текущим каталогом системы. В активной
панеле имеется курсор, который вертикальными стрелками
перемещается по именам файлов и каталогов. Здесь можно
осуществлять навигацию по файловой системе. Если курсор стоит
на имени какого-то каталога, и мы нажмём ENTER, то этот каталог
станет текущим. В любом каталоге самым первым объектом записаны
две точки "..". Как мы помним, это имя дескриптора,
ссылающегося на родительский каталог. Если поставить на эти две
точки курсор и нажать ENTER, то текущим станет родительский
каталог данного каталога. Это всё можно сделать и посредством
мыши.
Мы видим, как наглядными методами заменяется команда CD.
Кстати, сменить каталог можно и с её помощью. Ведь тут же на
экране есть командная строка, и когда мы пишем что-то с
клавиатуры, запись производится именно в неё. Из этой же
командной строки можно отдать команду сменить диск. Любители же
более наглядных методов могут это сделать по-другому. Для этого
нужно при активной левой панели нажать комбинацию клавишь
"ALT+F1", а при правой - "ALT+F2", и откроется список доступных
дисков. В нём горизонтальными стрелками или мышью можно выбрать
нужный диск. Итак, когда произведена смена диска, на активной
панели появляется содержимое текущего каталога нового диска,
который и становится текущим каталогом системы.
Если курсор установить на программный файл с расширением
COM, EXE или BAT и нажать ENTER, то осуществится запуск этой
программы. "Norton Commander" почти весь выгрузится из памяти и
отдаст управление командному процессору COMMAND.COM, который и
запустит указанную программу. Когда же она завершит работу,
командный процессор вновь отдаст управление "Norton Commander".
Есть преимущество такого запуска: не нужно в командной строке
писать имя запускаемого файла. Имеются у этого способа и
недостатки: таким образом нельзя программу запустить с
параметрами. Однако, и здесь "Norton Commander" предоставляет
свои услуги для облегчения процесса запуска: если курсор
установить на имя программного файла и нажать комбинацию
клавишь "CTRL+J" или "CTRL+ENTER" (это всё равно) , то имя
файла окажется записанным в командной строке. Останется только
дописать нужные параметры и нажать ENTER.
"Norton Commander" предоставляет удобные средства для
копирования и перемещения файлов и каталогов. Если курсор
установить на имя какого-то файла или каталога и нажать "F5",
то программа предложит скопировать этот файл или каталог в
каталог, открытый на неактивной панели. В открывшемся
диалоговом окне пользователь может внести необходимые поправки
и скопировать файл или каталог под другим именем. Кстати, если
на обеих панелях открыт один и тот же каталог, то копирование
произойдёт в пределах одного каталога. В этом случае оно
обязательно должно совершаться под другим именем. Если вместо
клавиши "F5" воспользоваться клавишей "F6", то вместо
копирования будет предлагаться перемещение, что в пределах
одного каталога производит переименование.
Если предварительно клавишей "INSERT" пометить несколько
имён файлов и каталогов, то нажатие клавишь "F5" и "F6" будет
вызывать копирование и перемещение группы отмеченых файлов и
каталогов. Таким образом, "Norton Commander" заменяет команду
COPY и программы XCOPY.EXE и MOVE.EXE.
Так же просто осуществляется и удаление файла или каталога,
на котором стоит курсор. Для этого нужно нажать клавишу "F8" и
подтвердить удаление. Так что не у дел остаются и команда DEL,
и программа DELTREE.EXE.
Ещё программа "Norton Commander" позволяет легко и быстро
вызвать текстовый редактор и при этом текстовый файл, на
котором находится курсор оказывается в его окне, готовый к
редактированию. Для этого нужно нажать клавишу "F4". У
программы есть свой собственный текстовый редактор, который,
впрочем, можно заменить. Если нажать не "F4", а "F3", то
текстовый файл окажется не в редакторе, а в просмотрщике.
Ещё программа "Norton Commander" позволяет легко
архивировать и разархивировать информацию, запуская нужные
архиваторы применительно к помеченным файлам.
Этим возможности программы не исчерпываются. В ней ещё
можно составлять различные пользовательские меню для быстрого
запуска различных прикладных программ, имеется система поиска
файлов и каталогов по определённому заданию и ещё некоторые
полезные функции.
Словом, преимущества этой программы очевидны. Есть у неё,
правда, и недостатки. Отметим один из них, повидимому самый
главный. Если программу запускать в операционной системе
WINDOWS, она не понимает длинных имён файлов и сокращает их,
как это происходит в DOS (см. п. 3.1).
"Norton Commander" - это не единственный досовский файловый
менеджер. Назовём ещё две, почти столь же распространённые,
подобные программы. Это "Volkov Commander" и "DOS Navigator".
Они тоже двухпанельные и в работе очень похожи на "Norton
Commander", вплоть до совпадения назначений вышеупомянутых
функциональных клавишь..
Отметим, что есть озвученные версии программы "DOS
Navigator", предназначенные специально для незрячих
пользователей. Для них же был специально разработан файловый
менеджер под названием "Speaker Commander".
В операционной системе WINDOWS существует целый ряд своих
файловых менеджеров. Два из них - "Мой компьютер" и "Проводник
WINDOWS", входят в стандартный пакет операционной системы. Они
по своему пользовательскому интерфейсу существенно отличаются
от "Norton Commander" и его аналогов. В них более удобной
является работа с мышью и несколько затруднена работа с
клавиатурой. Эти менеджеры не двухпанельные, что сделало их
непопулярными среди почитателей именно такого принципа в работе
файловых менеджеров и среди тех, кто предпочитает работать,
пользуясь клавиатурой.
Всвязи с этим, был разработан ряд файловых менеджеров,
предназначенных для WINDOWS, и аналогичных "Norton Commander".
Такими, например, являются программы "Far Manager" и "Windows
Commander". Вторую из них, в последнее время называют "Total
Commander".
Эти менеджеры сохранили все принципы работы "Norton
Commander" и, при этом, устранили его недостатки работы в
WINDOWS. Они уже нормально работают с файлами и каталогами с
длинными именами. Кстати, с этим справляются и последние версии
программы "DOS Navigator".
ВОПРОСЫ И ЗАДАНИЯ
1. Как раньше назывались файловые менеджеры и для чего они
предназначены?
2. В чём преимущества работы с файловыми менеджерами, по
сравнению с использованием команд DOS и стандартных программ
досовского комплекта?
3. Как запускается программа "Norton Commander" и как выйти
из неё?
4. В чём заключается двухпанельный принцип интерфейса
некоторых файловых менеджеров? Как осуществляется активизация
нужной панели?
5. Как в "Norton Commander" можно изменить текущий диск и
текущий каталог?
6. Какими способами в "Norton Commander" осуществляется
запуск других прикладных программ?
7. Как в "Norton Commander" осуществляется копирование,
перемещение, переименовывание и удаление файлов и каталогов?
8. Как в "Norton Commander" быстро загрузить текстовый файл
в текстовый редактор или в просмотрщик?
9. Какие есть досовские аналоги программы "Norton
Commander"?
10.Назовите несколько файловых менеджеров, предназначенных
для WINDOWS.
7.5. Вирусы и антивирусные программы
Не хотелось бы вообще говорить о подобных вещах, но, увы,
их присутствие реально и это то, с чем может столкнуться каждый
пользователь. Вообще-то, мой личный опыт в этом вопросе весьма
скуп: За всё моё время общения с компьютерами, мне случилось
лично встретиться лишь с одним вирусом. И то это был не очень
страшный вирус, которым был заражён переданный мне вордовский
файл. Так случилось, что я по какому-то наитию проверил дискету
одной антивирусной программой, которая очень быстро разоблачила
врага. Почему мне так везёт? Думаю, причин может быть
несколько, но одна из них заключается в отсутствии у меня
пренебрежения к операционной системе DOS. Я был не совсем
точен, когда сказал, что встречался с вирусами только один раз.
На самом деле это случалось гораздо чаще. Они многократно
приходили ко мне по электронной почте в письмах от моих хороших
знакомых, которые даже и не знали, что с их компьютеров
отсылались эти письма. Эти вирусы были замаскированы под
какие-то безобидные файлы, например, звуковые или графические.
Их создатель расчитывал, что получив по почте такой файл,
пользователь автоматически кликнет на его имени мышью или
нажмёт ENTER, чтобы прослушать или просмотреть, а вместо этого
запустится программа, которая расбросает вирусы по всему диску
и, вдобавок, заглянув в стандартный файл с электронными
адресами приятелей, подготовит к отправке на эти адреса письма
со своими копиями. При следующей отправке почты, эти письма
уйдут по указанным адресам, где их не ждут и не будут рады.
Вообще-то, любое письмо в интернет выходит в текстовом
виде. Даже если в него вложены бинарные файлы, их
предварительно специальным образом перекодируют (упаковывают)
почтовым кодировщиком, придавая им текстовые формы.
Впоследствии, на компьютере получателя они опять перекодируются
(распаковываются) и приобретают свою прежнюю бинарную природу.
Так вот, пока такая программа является частью текстового файла,
она совершенно беспомощна и не может принести ни пользы, ни
вреда. Почтовые программы в операционной системе WINDOWS часто
настраиваются таким образом, что бинарные вложения извлекаются
из письма автоматически. Бывают настройки, когда получатель сам
отдаёт команду извлечь бинарное вложение, но если оно
оказывается программой, то её запуск осуществляется
автоматически. Вот на подобные сервисы и на неопытность
пользователей и расчитывают создатели таких "подарков".
Получив подобное письмо простой досовской программой, я
просматриваю его в текстовом редакторе. В таком тексте сразу
проявляются подозрительные вещи. Их трудно здесь описать. Это,
как правило, какие-то служебные записи для почтовой программы,
указывающие, что нужно менять кодировку или просматривать
HTML-файл (см. п. 7.3). Потом, где-то значительно ниже,
обнаруживаешь команды для почтового кодировщика. Они пытаются
обмануть его, чтобы тот сообщил пользователю, что это
музыкальный, графический или вордовский файл. Тогда
бдительность пользователя рассеится, и он с большей лёгкостью
нажмёт ENTER или щёлкнет кнопкой мыши. Сразу же после этих
записей, почтовому кодировщику указывается имя, которое должен
получить файл после раскодирования. Вот тут-то враг и
обнаруживается. Имя тоже замаскировано, например его основной
частью является что-то вроде "МОЯФОТКА", и сразу же за ней
стоит после точки стандартное расширение графического файла
JPG. Увидев эту часть имени на экране, пользователь укрепится в
мысли, что это действительно графический файл. Однако, если
смотреть дальше на эту же строку при помощи редактора, видишь,
что в ней, после многочисленных пробелов или даже без них,
находится ещё одна точка, за которой притаилось коварное, в
данной ситуации, EXE, или PIF, или LNK. Мы помним, что в
WINDOWS подобные имена файлов допустимы (см. 3.1) В последних
двух случаях, в этом же письме будет находиться ещё один или
несколько файлов, среди которых встретится EXE-файл. Всё может
быть и по-другому, но все подобные штуки направлены на то,
чтобы пользователь нераздумывая запустил извлечённое из письма
вложение.
Что же всё-таки такое эти зловещие вирусы, из-за которых
многие пользователи со слабыми нервами теряют голову и впадают
в панику? Откуда они берутся и чего от них можно ждать?
А создают их люди, и существование данного явления - одно
из многочисленных свидетельств того, что человечество не
способно самостоятельно созидать цивилизацию, в которой была бы
гармония и царило здравомыслие.
Вирус в нашем понимании - это не микроорганизм, а очень
маленькая программка, действия которой носят разрушительный
характер. Кроме того, вирусы имеют свойство размножаться. Вирус
не занимает отдельный файл. Иначе, его можно было бы легко
найти, удалить и проследить, как он попал на носитель. Ошибочно
считать вирусом любую программу, приносящую вред. Например,
BAT-файл, в котором будет строка
FORMAT C: /AUTOTEST
или BAT-файл, имеющий строки
ATTRIB -R -H -S C:\*.* DEL C:\*.* /Y
хоть и способны причинить в случае запуска большой вред, но
вирусами не являются.
Вирус - это программка (цепочка байтов), которая каким-то
образом получив управление, внедряет свою копию в находящиеся
на доступных для записи носителях COM и EXE-файлы. Этот процесс
называется инфицированием программ. Фактически к программе
добавляется несколько байт или даже не добавляется, а одни
байты информации заменяются другими. Когда такую программу
запускают, она попадает в память и управление рано или поздно
попадает на её участок, в котором разместился вирус, тогда он
начинает делать свою работу, инфицируя другие программы и
совершая другие грязные дела. Ещё вирус может внедриться в
загрузочный сектор жёсткого или гибкого диска. Такой вирус
оживится при загрузке компьютера, когда произойдёт обращение к
этому загрузочному сектору.
Вирусы способны доставить пользователю большие неприятности
и причинить серьёзный материальный ущерб. Они могут испортить
как информацию, так и технические устройства компьютера. Могут
быть повреждены и материнская плата, и винчестер, и монитор.
Вирусы могут просто-напросто заставить их работать в чрезмерно
загруженном режиме, что вызывает их отказ.
Как вирусы впервые попадают в компьютер? Это бывает разными
способами. Прежде всего, можно где-то взять инфицированную
программу и установить её на своём компьютере. А можно
воспользоваться и дискетой, в которой заражён загрузочный
сектор. Если дискета будет в дисководе, а в списке загрузочных
дисков диск A: записан раньше диска C:, то при перезагрузке
компьютера вирус инициализируется и внедрится, например, в
COMMAND.COM. Есть ещё один способ. Он описан вначале этого
раздела, когда к пользователю в компьютер каким-то образом,
например, через электронную почту, попадает информация, которую
он воспринимает как что-то полезное, а это оказывается
программой, специально предназначенной для распространения
вирусов. Такого рода программа называется "Троянским конём".
Именно при помощи такого "Коня" была взята Троя. Троянцы сочли
этого большого деревянного коня чем-то полезным для себя и
затащили его в свой город. Они не предполагали, что в "Коне"
прятались вражеские солдаты.
Теперь поговорим о том, что делать, чтобы избежать
заражения вирусами, и как поступать в случае, когда это
заражение уже произошло. Для этого есть антивирусные программы.
Они способныраспознавать некоторые вирусы в инфицированных
программных файлах и загрузочных секторах, а затем "лечить" их
или удалять, когда вылечить их уже невозможно.
Эти программы можно использовать в профилактических целях,
запуская их периодически или каждый раз при загрузке
компьютера. Ещё желательно с их помощью проверять все
программные обновки, полученные из малознакомых источников.
Когда же заражение уже произошло, необходимо провести
"интенсивный курс лечения", и чем раньше этим заняться, тем
целее будет ваш компьютер и хранящаяся на нём информация. Для
этого нужно загрузиться с защищённой от записи системной
дискеты, а затем запускать антивирусные программы. Желательно,
чтобы их версии были поновее и наборантивирусных баз более
полным. В этом случае хорошую службу может сыграть знание
команд DOS и других стандартных досовских программ.
Я не раз слышал мнение, что те, кто разрабатывает
антивирусные программы, те же создают и вирусы. Ничего по этому
поводу сам сказать не могу: не знаю никого, кто бы делал как
одно, так и другое. Даже если это не так, мне кажется не
нормальным, что одни очень способные энергичные люди тратят
свои таланты, силы, очень много времени, посути свою жизнь, на
создание этих электронных чертей, а другие, не менее способные,
тратят то же самое на борьбу с ними. Те и другие получают
удовольствие, те и другие испытывают ощущение собственной
значимости, а последние вдобавок хорошо на этом зарабатывают.
Думаю, что частенько зарабатывают и первые: ведь вирусы
являются средством экономической борьбы. А сколько они могли бы
сделать по-настоящему хорошего, если бы направили свои силы в
другую сторону! Нет, я не отрицаю важности работы
антивирусников. Просто хочу сказать, что их работа, как и много
других профессий, никому бы не понадобилась, если бы человек
был тем, кем должен был быть, а не тем, кем есть сейчас.
Назовём здесь две наиболее популярные в настоящее время
антивирусные программы.
Первая из них - это программа "Doctor Weber". Её
разработчик - Игорь Данилов. Начиная с 1992 года по настоящее
время, эта программа постоянно обновляется и учится поражать
всё новые и новые разновидности вирусов.
Другая программа не менее популярна. Это "Антивирусная
программа (АВП) Кашперского", в просторечьи - "Кашперский".
Обратите внимание, что здесь отсутствует суффикс "ов", и этот
благородный человек занимается уничтожением вирусов, поражающих
компьютеры, а не их распространением в головах реальных и
потенциальных пользователей.
На последок заметим, что иногда, после тщетных попыток применить
всевозможные антивирусные программы, остаётся единственная возможность -
отформатировать диск.
ВОПРОСЫ И ЗАДАНИЯ
1. Что происходит с бинарным файлом, когда его вкладывают в
электронное письмо? Что нельзя делать при получении письма с
непонятным вложением?
2. Любая ли программа, приносящая вред, является вирусом?
Если не любая, то приведите иллюстрирующие примеры. Какое
действие вызывают два BAT-файла, о которых говорилось в этом
разделе? Для чего нужна первая строка второго BAT-файла?
3. Что из себя представляет вирус? Что такое инфицирование
программного файла? Куда ещё могут внедряться вирусы? Какой
вред могут причинить вирусы?
4. Каким образом вирусы проникают в компьютеры? Что такое
"Троянский конь"?
5. Что нужно делать во избежание заражения вирусами? Как
поступать, если заражение всё-таки произойдёт? Зачем при
лечении системную дискету, с которой загружаются, защищают от
записи?
6. Приведите примеры антивирусных программ.
7.6. Прав ли Козьма Прутков?
В этом разделе мы попробуем опровергнуть одно из мудрых
высказываний Козьмы Пруткова: "Нельзя объять необъятное!", хотя
заранее знаем, что оно верно. Мы поговорим о том, какие ещё
бывают программы, и, конечно, большинство из них так и останется
за пределами нашего внимания. Не потому, что они плохие, а
потому, что я сам о них ничего не знаю, или знаю их очень
поверхностно, или потому, что все они имеют свои собственные
руководства пользователю, часто с трудом вмещающиеся в солидные
книжные тома.
Да извинит меня читатель, что в кратком упоминании о
следующих программах отразится моё к ним негативное отношение.
Знаю, что у многих по этому поводу диаметрально противоположное
мнение. Я имею в виду компьютерные игры, игрушки, как их
называют в просторечии. Нет, по большому счёту, я не против
развивающих игр для детей, но они почему-то не пользуются особым
спросом. Зато большую популярность приобретают игры, о которых и
говорить не хочется. Работает целая индустрия производства и
распространения подобных программных продуктов, приносящая
огромные доходы участвующим в ней дельцам. А вот по пагубному
воздействию на потребителя, особенно на подростков, эта
индустрия может сравниться разве что с наркобизнесом. Мне
известны семьи, где дети, школьники или даже студенты, таскали
из дома деньги и ценности и просаживали их в компьютерных
клубах.Такие дети часто, заигравшись, не приходят домой, и
очумевшие от страха родители, обзвонив все больницы и морги,
где-то под утро находят их в компьютерной забегаловке. А
изменения, которые эти игры производят в психике подростков
зачастую носят необратимый характер.
Взрослые тоже нередко попадают в плен к подобного рода
электронным захватчикам. Они, правда, чаще всего себе в этом не
признаются. Но многие ли из алкоголиков соглашаются с тем, что
они таковы?Однако, факты - есть факты. Такие люди становятся
данниками игрушек и расчитываются с ними очень большой ценностью
- временем. Часто говорят, что время - деньги. Однако, время на
самом деле дороже денег: ведь бывают такие ситуации, когда
человек убеждается, что его нельзя купить за любые деньги.
Теперь вкратце коснёмся редакторов, но не текстовых, а
звуковых и графических.
Есть целый ряд программ, способных создавать и изменять
специальные файлы, которые будучи впоследствии переданы другим
программам - проигрывателям, вызовут воспроизведение звуковой
информации через звуковую карту на колонки. Это может быть
музыка отличного звучания, человеческая речь, пение птиц и т.п.
Есть определённые стандарты на форматы подобных файлов. Для имён
файлов каждого такого стандарта присуще своё расширение. Самые
распространённые из них - это MOD, MID, WAV и MP3, хотя есть и
другие стандарты, которые легко конвертируются в перечисленные
форматы.
Ещё есть программы, которые создают и изменяют файлы,
Ещё упомянем о программах, предназначенных для монтирования
видеоматериалов: художественных и документальных фильмов,
видеоклипов, мультфильмов и т.п. Для просмотра этих материалов
нужны специальные программы-проигрыватели. Отметим два стандарта
этой отрасли: DVD и MPEG4. Первый из них более продвинутый и
даёт значительно большее качество видеоматериалов. Однако для их
проигрывания необходимо иметь специальное компьютерное
устройство - DVD-ROM.Это дисковод для DVD-дисков. Стоит он
недёшево и имеется далеко не у всех. Материалы в формате MPEG4
можно создавать и просматривать на любом компьютере, где есть
звуковая карта и не очень слабая видеокарта. На компьютере
должна быть установлена какая-то из версий операционной системы
WINDOWS, хотя недавно мне попал в руги и досовский проигрыватель
подобных видеоматериалов.
Такого рода информация занимает огромное пространство на
носителе, но она поддаётся сжатию (архивированию). Как правило,
пользователь получает в распоряжение уже сжатый файл, имеющий
расширение имени AVI. И даже в сжатом виде полуторачасовый
художественный фильм занимает один, а при хорошем качестве и
два, лазерных диска. Для подобного сжатия и распаковки
используются специальные программы-архиваторы с названием
"Kodek". Однако, пользователю не нужно самостоятельно запускать
эти программы для разархивирования: проигрыватель к ним
обращается сам по мере надобности. Необходимо только, чтобы
версия "Kodekа" , которой осуществлялась упаковка, была
установлена на компьютере, на котором нужно просматривать
материал.
Теперь уделим немного внимания программам, которые
называются системами программирования. Это комплексы программ,
посредством которых программисты создают другие программы.
Для создания программ существуют различные языки
программирования. Это строгие правила, по которым программист
составляет текстовый файл с последовательностью команд
(операторов), которые могут быть привязанными к выполнению
определённых условий. Но это ещё не те команды, которые понимает
микропроцессор компьютера. Их способна понимать
(интерпретировать) лишь соответствующая система
программирования. Такие текстовые файлы называются исходными
кодами программы(в просторечии исходниками).
В системе программирования, как правило, присутствуют
программы двух назначений: интерпритатор и компилятор.
Интерпритатор имеет свой встроенный текстовый редактор, в
котором можно составлять исходные коды программы. Ещё
интерпритатор способен переводить исходный код на язык машинных
кодов и передавать его микропроцессору в виде понятных для него
команд. Таким образом, программа, содержащаяся в исходном коде,
посредством интерпритатора выполняет свою работу, не будучи
программным файлом, понятным для операционной системы. Это даёт
программисту возможность отладить программу, найти и исправить
ошибки.
Компилятор переводит отлаженный исходный файл в бинарный
(двоичный) код - COM или EXE-файл, который уже может
интерпритировать операционная система. Для составления исходного
кода совсем не обязательно использовать интерпритатор. Для этого
можно воспользоваться любым текстовым редактором, а затем, при
помощи компилятора, создать COM или EXE-файл.
Файлы с исходными кодами, написанными на разных языках
программирования, имеют соответствующие языку расширения имён.
Например, если программа написана на языке "Basic", то
расширение такого файла BAS. Файлы с исходными кодами,
написанными на языке "TurboPascal", имеют расширение PAS. В
различных модификациях языка "C" для этой цели используется
расширение C, а асемблеровские исходники помещаются в файлы с
расширением ASM.
Теперь поговорим о программах составляющих электронные
таблицы и о программах, которые называют системами управления
базами данных (СУБД).
Электронные таблицы - это файлы, которые имеют свой формат
и изображаются в виде таблиц при помощи специальных программ.
Это могут быть довольно сложные таблицы, состоящие из ячеек,
расположенных в колонках и строках. Каждая такая ячейка - это
отдельное окно, в которое можно заносить разного рода
информацию. Кстати, внутри ячейки в свою очередь может быть
целая таблица. Если в ячейках какой-то строки или колонки
находится численная информация, то легко можно осуществить
выполнение определённой арифметической операции, например,
сложения, всех элементов этой строки или колонки. Можно заложить
целые формулы, согласно которым, в нужные ячейки автоматически
будут заноситься значения, выражающиеся через занесённые ранее
данные.
Одной из самых мощных программ, составляющих электронные
таблицы, является табличный процессор "Excel" фирмы "MicroSoft".
Имена создаваемых ею файлов имеют расширение XLS.
Базы данных - это файлы, которые создаются и просматриваются
специальными программами, СУБД. В эти файлы заносятся отдельные
записи - однотипные порции информации. Любая запись имеет
несколько разделов (полей) и относится к какому-то конкретному
объекту: человеку, предприятию, товару и т.п. В каждое
конкретное поле записи заносится какая-то определённая
информация о соответствующем объекте. Например, в одно поле
заносится фамилия, в другое - имя, в третье - отчество, в
четвёртое - адрес и т.д. Помещая таким образом в базу данных
информацию запись за записью, можно составить файл, хранящий
данные, например, о всех людях какого-то района. СУБД потом
сможет осуществлять сортировку записей в алфавитном порядке по
разным полям. А может и фильтровать данные в соответствии с
заданием. Например, выбрать всех Ивановых, проживающих на улице
Решельевской и родившихся не ранее 1955 г.
Есть достаточно много программ, управляющих базами данных и
в DOS, и в WINDOWS, и в других операционных системах. Некоторые
из них специально заказываются программистам для конкретных
целей. Есть в базах данных определённые стандарты, которые тоже
имеют характерные расширения имён файлов. Некоторые из них: DBF,
DB, GDB, MDB. Одна из самых мощных программ, управляющих базами
данных называется "Access". Она разработана фирмой "MicroSoft".
Создаваемые ею файлы с базами данных имеют расширение MDB.
А ещё есть программы, которые... Да, Козьма Прутков всё же
был прав в том, что объять необъятное нельзя. Да и нужно ли?
ВОПРОСЫ И ЗАДАНИЯ
1. Назовите несколько стандартных расширений имён звуковых
файлов.
2. Назовите несколько стандартных расширений имён
графических файлов.
3. Какой формат имеют файлы, в которые помещается
отсканированная информация? Что нужно делать, чтобы
отсканированный текст воспринимался компьютером именно как
текст, а не как рисунок? Как называется этот процесс? Назовите
какую-нибудь программу, которая этим занимается.
4. Какие есть стандарты записи и просматривания
видеоматериалов на компьютере? В чём их преимущества и
недостатки? Какое расширение имеют сжатые файлы с
видеоматериалами в стандарте MPEG4? Какие программы должны быть
установлены на компьютере, чтобы такие файлы могли
просматриваться пользователем?
5. Что такое системы программирования и языки
программирования? Что такое исходный код программы? Чем
занимаются интерпритаторы и компиляторы? Какие расширения имеют
файлы с исходными кодами, написанными на языках "Basic",
"TurboPascal", "C" и "Asembler"?
6. Что такое электронные таблицы и какие возможности имеют
составляющие их программы? Назовите одну из самых
распространённых таких программ. Какое расширение имеют имена
составляемых ею файлов?
7. Как расшифровывается сокращение СУБД? Для чего нужны базы
данных? Что такое записи и что такое их поля? Какими
возможностями обладают СУБД? Назовите одну из них. Назовите
несколько стандартных расширений имён файлов с базами данных.
7.7. Форматы и типы файлов
Ранее мы неоднократно использовали понятие "формат" файла,
но не объясняли, что это значит. Попробуем это сейчас объяснить
на пальцах, вернее, на базах данных.
Возьмём любую конкретную базу данных. Она имеет свой формат.
Каждая запись имеет определённое число полей. и в каждом поле
записывается либо строковая, либо численная информация. Для
того, чтобы из файла с базой данных считать одну запись, нужно
точно знать сколько байт нужно считывать и в каких местах файла
их нужно искать. Ещё нужно знать, какие из считанных байт
информации к какому полю записи относятся. Если считать хоть на
один байт меньше, то запись будет неполной, а в случае перебора
в неё попадёт лишняя информация, относящаяся совершенно к
другому объекту. Нетрудно представить себе ситуации, когда с
одной стороны прочитанная запись оказывается неполной и, вместе
с тем, содержит лишнюю информацию.
Чтобы избежать таких казусов, базу данных строят в
соответствии с вполне определёнными правилами и система
управления базами данных (СУБД) эти правила очень хорошо знает.
Эти правила и составляют формат базы. Программы, которые их не
знают, правильно прочитать базу не смогут. Им может и удастся
выудить какие-то отрывочные бессвязные кусочки текста, но
связать их и определить, к каким объектам они относятся, они не
смогут.
Примерно такая же ситуация возникает и с другими файлами,
которые уже не являются базами данных. В программах, создающих
файлы и использующих их впоследствии, заложена система правил,
по которым в файлах размещается информация. Эти программы хорошо
знают, какие байты информации являются командами,
предназначенными лично им, а какиеони должны в правильном виде
преподать пользователю. Вот эта система правил и является
форматом составляемых в соответствии с ней файлов.
Программы, работающие с одними форматами, могут совершенно
не понимать файлов, имеющих другие форматы, даже, если
переименовать их, наделив их знакомыми расширениями. Например,
если программный файл PROG.COM переименовать в PROG.RAR и
попробовать его разархивировать программой RAR.EXE, то архиватор
сообщит, что в данном файле архива не содержится. У него будет
попросту другой формат, незнакомый программе RAR.EXE.
Ещё из раздела 3.1 нам был знаком один формат файла, который
имеют текстовые файлы. Мы помним, что это файлы, построенные
согласно определённым правилам. Эти правила хорошо знают
текстовые редакторы, просмотрщики текстовых файлов да и многие
другие программы.
Все остальные (бинарные) файлы могут иметь различные
форматы: вордовский формат, Формат RTF - что-то промежуточное
между текстовым и вордовским форматами, RAR-архив, ARJ-архив,
ZIP-архив, BMP-формат, JPG-формат, WAV-формат, MP3-формат,
MOD-формат, MID-формат, AVI-формат и т.д. Этот список
нескончаемый, поскольку любой программист может написать
программу и сам придумать формат, в котором эта программа будет
составлять нужные в её работе файлы.
Формат файла характеризует его внутреннюю природу. Есть ещё
один способ классификации файлов, когда указывается его тип. Тип
файла - это его внешняя характеристика, отражающая его
назначение, область использования, а иногда даже некоторые
принципы работы (например, точечный рисунок).
Иногда тип файла путают с его форматом. Это связано с тем,
что многие типы относятся только к каким-то конкретным форматам.
Однако, всё-таки стоит их различать.
При указании типа, как правило, передаётся определённая
словесная характеристика файла и затем указывается маска,
состоящая из звёздочки, точки и характерного расширения имени.
Расширение в одних случаях указывает на тип, а в других - на
формат. Иногда рассматривают более общий тип, перечисляя сразу
несколько масок с разными расширениями.
Среди файлов, имеющих текстовый формат можно выделить
несколько типов: "Программный пакетный файл *.BAT", "Текстовый
системный файл *.SYS" (например, MSDOS.SYS в WINDOWS-9X и
CONFIG.SYS), "Файл инициализации *.INI", "Исходный код программы
на языке "Basic" *.BAS", "Исходный код программы на языке
"TurboPascal" *.PAS", "Исходный код программы на языке "C" *.C"
и т.д. Если пользователь заносит в текстовый файл содержательную
информацию, предназначенную не для компьютерных программ, а для
людей, то принято таким файлам присваивать расширение TXT, и, в
зависимости от используемой кодировки, эти файлы имеют тип
"Текстовый файл для DOS *.TXT" или "Текстовый файл для WINDOWS
*.TXT". Описывающие тип слова могут быть и другими: содержать
более подробную или менее подробную информацию о файле.
Ещё раз отметим, что все вышеперечисленные типы имеют
текстовый формат. А вот следующие типы уже имеют другие форматы:
"Документ MS WORD *.DOC", "Текст в формате RTF *.RTF",
"Программный исполнимый файл *.EXE", "Программный командный файл
*.COM", "Архивные файлы *.RAR, *.ARJ, *.ZIP", "Точечный рисунок
*.BMP", "Графические файлы *BMP, *.GIF, *.JPG", "Звуковые файлы
*.MID, *.MOD, *.WAV", "Сжатые звуковые файлы *.MP3", "База
данных *.DBF" и т.д.
И этот список можно продолжать до бесконечности, создавая и
называя всё новые и новые типы, обобщая их в более широкие типы
и выделяя типы, носящие более частный характер.
ВОПРОСЫ И ЗАДАНИЯ
1. Что такое формат файла? Объясните это понятие на примере
базы данных.
2. Приобретает ли файл соответствующий формат, если ему
присвоить имя с характерным расширением.
3. Назовите несколько стандартных форматов файлов. Можно ли
составить полный перечень всех существующих в мире форматов?
4. Чем тип файла отличается от его формата? Каким образом
можно указать тип файла?
5. Назовите несколько типов файлов, имеющих текстовый
формат.
6. Назовите несколько типов файлов, имеющих бинарную
природу.

Закладка в соц.сетях

Купить

☏ Заказ рекламы: +3805044-68-872

© Ассоциация электронных библиотек Украины

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