На главную Добавить в "Избранное" Связаться с нами
 
     
 
 

Введение Установка Linux Архитектура Linux Секреты работы Картинная галерея Статьи

 

 
   
 
 

Debian GNU/Linux : Paragon NTFS for Linux 5.x  : Panda Security for Linux Медиа-пак  : Gentoo Linux 2007.0 Xor Edition Nero Linux 3 : KNOPPIX : Fedora 10 : OpenSUSE 11.0 : ASPLinux 12 Standard : Свободный офис : ASPLinux 12 Express  Полный каталог

 
 

 

 

  Среда системы  
 

В данной главе рассматривается среда, которая существует в системе UNIX и вокруг нее. Освещение всех аспектов среды UNIX было бы слишком громоздкой задачей и выходит за пределы данной книги. Даже отдельным утилитам, таким как fsdb и sdb, нужны свои собственные книги, чтобы отдать им должное. Мы пытаемся дать читателю начальные сведения, философию и ощущение системы UNIX, что лежит в основе исследований и инструментов, представленных в этой книге.

 

Читая эту главу, вы, возможно, захотите прочитать (или перечитать) команды profile(4), environ(5), term(5), termcap(5) и termio(7) в руководствах по UNIX, чтобы ознакомиться с механизмами, которые предоставляет UNIX для установки рабочей среды.

 

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

 

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

 

"Многообразие сред"

 

Каждая компьютерная система поддерживает много различных сред. Эти среды используются как строительные блоки для создания функциональных рабочих систем. Различные уровни необходимы как для сокращения объема работы по управлению машиной, так и для построения такого интерфейса, чтобы мы могли использовать компьютер на относительно высоком, удобном для человека уровне.

 

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

 

Многообразие моделей. демонстрирует различные уровни, функционирующие внутри компьютера. Нижний слой - это стартовая точка, от которой многообразие растет вверх. Каждый уровень строится на предыдущем и используется для поддержки уровня, расположенного над ним. Для каждого более высокого уровня среда более объемна и более "виртуальна" в том смысле, что имеет место меньше условных ограничений. Верхние уровни используют для своей работы нижние и, таким образом, скрывают подробности, необходимые для работы этих нижних уровней. Мы можем создать модели высокого уровня, которые работают на машине более низкого уровня, не зная ничего о нижних уровнях.

 

Давайте бросим беглый взгляд на уровни модели и поговорим о том, какими из них оперирует данная книга.

 

Многообразие компьютерных сред

----------------------------------------

   \                L7                / Командные файлы  (scripts)

    \________________________________/

     \              L6              / Прикладные программы,

      \____________________________/ интерпретатор команд, языковые генераторы

       \            L5            / Компилятор

        \________________________/

         \          L4          / Операционная система

          \____________________/

           \        L3        / Ядро

            \________________/

             \      L2      / Условная машина, ассемблер

              \____________/

               \    L1    / Микропрограммы

                \________/

                 \  L0  / Логические схемы, аппаратные средства

                  \____/

 

УРОВЕНЬ 0 - Аппаратные средства

 

На самом нижнем уровне находятся аппаратные средства и логические цепи. Этот уровень определяет способ хранения и обработки данных во всех аппаратных средствах. Поскольку технология изготовления кремниевых микросхем продолжает развиваться, этот уровень становится физически меньше и проще, тогда как скорости запоминания и обработки продолжают расти. На этом уровне компонентами являются центральный процессор (ЦП), память, микросхемы поддержки и системная шина.

 

Отметим, что хотя прогресс на этом уровне продолжается, это вызывает очень малые изменения на верхнем слое пирамиды. Философия системы UNIX состоит в том, чтобы изолировать низкоуровневый аппаратный слой и обеспечить единообразные интерфейсы к нему, которые не нуждаются в изменениях "наверху". Верхний слой даже не должен знать о нижнем слое. Это не значит, что события в мире аппаратуры не важны в реальном мире, ведь противоречия реального мира влияют на скорость и емкость ресурсов, не говоря уже об их стоимости.

 

УРОВЕНЬ 1 - Микрокоманды

 

Этот уровень во многом похож на язык программирования. Он является инструментом, который использует архитектор системы для создания "родного" машинного языка. Машинный язык сообщает аппаратуре, какую конкретную команду следует выполнить.

 

В начале эволюции ЦП большинство наборов команд были аппаратно кодированными. Это значит, что когда ЦП получал команду, декодирование и выполнение производилось непосредственно цепями в кремниевой микросхеме. Благодаря прогрессу в технологии ЦП, некоторые микросхемы могут быть программируемыми на уровне исполнения команд, что позволяет конструкторам создавать и реализовывать новые наборы команд с минимальными усилиями.

 

УРОВЕНЬ 2 - Условная машина

 

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

 

Условная машина поддерживается ассемблером. Ассемблер может превращать идеи более высокого уровня в цепочки чисел, которые могут быть затем выполнены. Наряду с ассемблером, применяются модели, помогающие использовать аппаратуру компьютера. Здесь мы можем определить такие вещи, как стеки, вектора прерываний и периферийный ввод-вывод.

 

УРОВЕНЬ 3 - Ядро

 

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

 

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

 

УРОВЕНЬ 4 - Операционная система

 

Данный уровень строится на ядре, чтобы создать полную операционную среду. Потребность в дополнительных функциях системы можно удовлетворить созданием автономных программ, имеющих конкретное назначение. Таким образом, совокупность всех специфических функций определяет операционную систему.

 

УРОВЕНЬ 5 - Компиляторы

 

Компилятор - это инструмент (или программа), построенный на операционной системе для дальнейшей разработки более совершенных и более мощных сред. Новые среды могут предполагать еще большие абстракции, чем на нижнем уровне, и делать больше допущений о том, что уже существует. Это делает возможным символические конструкции более высокого уровня, такие как структуры данных и управляющие структуры. Результатом является прикладная программа.

 

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

 

УРОВЕНЬ 6 - Прикладные программы

 

В наше время прикладные программы могут означать массу разнообразных вещей. Мы можем предположить, что любая программа, которая сделана с помощью компилятора, является прикладной программой. Примерами возможных прикладных программ являются следующее поколение языков, интерпретаторов и генераторов прикладных программ. Интерпретатор - это программа, написанная на распространенном языке высокого уровня, которая может декодировать и исполнять другой синтаксис (или язык). Примером, который интересует нас в системе UNIX, является командный процессор shell. Это программа на языке Си, созданная для чтения и исполнения команд, записанных по правилам синтаксиса, определенных командным процессором shell.

 

Генератор прикладных программ - это программа, написанная на языке высокого уровня. Она предназначена для получения достаточной информации от пользователя о его приложении и может использовать компиляторный язык, например Си, для написания прикладной программы, реализующей то, что требуется. Пользователь ничего не программирует. Выходом генератора является рабочая программа.

 

UNIX не делает особых различий между уровнями. Некоторые особенности системы, например, конвейеры, являются частью ядра на нижнем уровне. Команда типа cat выполняет довольно простую функцию на уровне операционной системы. Нечто подобное ls напоминает простую прикладную программу с относительно малым набором опций. Большие программы, подобные семейству roff, определенно являются полновесными приложениями, а средства типа sed и awk являются фактически интерпретаторами небольших языков программирования. Замечательной особенностью системы UNIX является единообразие, которое она вносит в этот широкий диапазон функций.

 

УРОВЕНЬ 7 - Командные файлы

 

Этот верхний уровень является языком, который интерпретирует программа /bin/sh (в случае командного процессора Bourne shell). Ее синтаксис поддерживает полный язык программирования. Хотя этот язык лишен ряда встроенных структур и функций современного языка высокого уровня, он имеет все необходимое для написания полезных программ. Большим плюсом является то, что языку командного процессора доступны в качестве внешних функций любые средства, утилиты и программы, которые имеются в системе UNIX. Это значит, что алгоритмы, которые могут потребовать сто или более строк на языке низкого уровня типа Си, язык командного процессора может выразить в двадцать строк. За счет потери производительности, разумеется.

 

   
 
 
Картинная галерея
Галерея eLinux : Последние добавления : Последние добавления : Часто просматриваемые : Поиск по галерее
Linux введение : Обучение Linux : Установка Linux : Взаимодействие в сети : Команды Linux : Архитектура Linux : Работа с Linux
Секреты работы : Временные операции : Переферия
 
 

 

 
   
 
 

385 руб.

Антивирус Dr.Web Mail Gateway

Dr.Web Mail Gateway – комплексное модульное решение для обработки и фильтрации входящего и исходящего трафика на серверах под управлением Unix (Linux/FreeBSD/Solaris(x86). 

Список версий:

Антивирус Dr.Web Mail Gateway


570 руб.

FastScript

FastScript —библиотека для выполнения скриптов. Она будет полезна разработчикам, желающим добавить возможности исполнения скриптовых программ в свои проекты. FastScript написан полностью на 100% Object Pascal и может быть установлен в Borland Delphi 4-2007, Borland C++Builder 4-6, Borland Kylix 1-3 и Lazarus. 

Список версий:

FastScript


Полный каталог

 
 

 

 
   
 
   
 

 

 

 

 

Все права защищены.

Копирование запрещено.

Rambler's Top100

Дизайн:

ССтудия Onta.ru