Средства разработки программ — КиберПедия 

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

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

Средства разработки программ

2020-04-01 117
Средства разработки программ 0.00 из 5.00 0 оценок
Заказать работу

Для Linux и для UNIX родным языком является С/С++ но это не означает, что кроме них никаких компиляторов языков не существует.   Трудно найти какой-либо язык, компилятора или интерпретатора которого не существует для Linux: С/С++, Pascal, Perl, Java, Lisp, Rexx, Fortan и т.д., и т.п. Не обойдены стороной и интегрированные среды разработки.

Мультимедиа – приложения.

Аудио

Звуковые средства должны воспроизводить, как минимум, WAV и MIDI файлы, MPEG 3, а также обычные аудио CD.Поддерживаются почти все мало-мальски распространенные устройства. В том числе и дешевые ISA и PCI карты.

 

Видео

Для воспроизведения видео СD специально предназначены программы mtv и Xthearter. Для воспроизведения видео, записанного в получающем все большее распространение формате MPEG4(DVX), можно воспользоваться программой Mplayer.

 

 

 

V Файловые системы Linux

 

Идеология файловой системы

Одним из столпов операционной системы является файловая система. От ее архитектуры, возможностей, надежности во многом зависит работоспособ­ность операционной системы. Помимо продуманной "родной" файловой системы крайне желательно, чтобы была возможность также работать с другими наиболее распространенными файловыми системами (например, FAT 16/FAT 32). В этой главе мы подробно рассмотрим, что нам предлагает Linux.

История развития файловых систем Linux

Первоначально Linux разрабатывался как расширение операционной систе­мы Minix, и было вполне логично взять от предшественника все, что можно, поскольку такое решение позволяло достаточно быстро пройти этап проек­тирования (ведь все уже и так разработано, надо было только создать соот­ветствующий программный код). На тот момент (начало 1990-х, компьюте­ры на базе 386-го процессора считались мощными, в порядке вещей был жесткий диск емкостью 120 Мбайт) файловая система Minix была достаточ­но эффективна. Однако ее архитектурные ограничения (адреса блоков 16-битные, что ставит предел максимального объема файловой системы в 64 Мбайт, каталоги содержат записи с ограниченным размером, имя файла не должно превышать 14 символов) очень скоро вынудили разработчиков задуматься об альтернативной файловой системе. Была разработана "Extended File System" (Ext FS — расширенная файловая система), затем ее сменила в качестве стандартной "Second Extended File System" (Ext2FS — вторая расширенная файловая система). Сегодня практически завершена разработка следующей версии файловой системы Ext3 — с поддержкой журналирования. Существуют также и другие журналируемые файловые систе­мы: ReiserFS (стандарт de-facto журналируемых файловых систем для серве­ров на базе Linux) и JFS от фирмы IBM. По всей видимости, в ближайший год будет произведен полный перевод Linux на журналируемую файловую систему. Пока же большинство системных администраторов используют файловую систему ReiserFS. Однако достаточно много аналитиков предсказывают большую вероятность использования системы JFS. Аргументы в ее пользу достаточно весомы: имя IBM, отлаженность, хорошая масштабируе­мость и надежность. Посмотрим, кто победит.

ФАЙЛ

    Ключевым понятием в операционной системе Linux является концепция файла. Практически все моменты, связанные с данными, в том или ином виде представляются в виде файла или операций с файлами. Для операци­онной системы Linux по большому счету, все равно, с каким устройством или процессом взаимодействовать — система работает с файлом. В результа­те получается весьма унифицированный интерфейс.

ТИПЫ ФАЙЛОВ

    Поскольку понятие файла применяется к достаточно разнородным вещам (файл как таковой, физические устройства, каталоги и т. п.), поневоле воз­никает разделение файлов на типы. В Linux существует шесть типов файлов.

файл;

каталог;

файл устройства

канал (FIFO, PIPE

сокет (Socket).

ссылка (link).

ФАЙЛ

Содержит информацию в некотором формате. Для операционной систе­мы — просто набор байтов. Вся интерпретация содержимого файла осуще­ствляется прикладной программой.

КАТАЛОГ ФАЙЛ УСТРОЙСТВА

Каталоги являются элементами иерархического дерева. Любой каталог мо­жет содержать файлы и подкаталоги. Каталог — это файл, содержащий список записей. Каждая запись содержит номер индексного дескриптора и имя файла.

ФАЙЛ УСТРОЙСТВА

В операционной системе Linux доступ к устройствам осуществляется через специальные файлы. Такой файл является точкой доступа к драйверу уст­ройства. Существует два типа файлов устройств: символьные и блочные.

Символьный файл устройства используется для небуферизированного обме­на данными с устройством — байт за байтом.

Блочный файл устройства используется для обмена с устройством блоками данных. Некоторые устройства имеют как символьный, так и блочный ин­терфейс.

 

КАНАЛ

Файлы этого типа используются для связи между процессами для передачи данных.

ССЫЛКИ

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

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

 

СОКЕТ

Сокеты предназначены для взаимодействия между процессами. Часто ис­пользуются для доступа к сети TCP/IP.

Владельцы файлов

Файлы в Linux имеют 3х владельцев – собственно владельца, группу и прочих пользователей. Существует только один владелец, любое количество групп и все остальные, которые не входят в группу. Привилегия владения одно из ключевых понятий в системе защиты операционной системы Linux.

Каждый тип владельца может (или не может) иметь право на чтение и/или запись и/или исполнение файла, владельцем файла которого он является. На основе этих трех групп владельцев можно построить политику прав доступа к файлам и каталогам, Позволяющую надежно и непротиворечиво обезопасить операционную систему. Права доступа к файлу изменяются от максимальных у владельца файла вплоть до минимальных (вплоть до полного отсутствия) у всех остальных. Устанавливать и изменять права доступа к файлу или каталогу могут только 2 пользователя – владелец файла и администратор системы (пользователь root). Изменять права доступа к файлу можно утилитой chmood.

Модификаторы прав доступа

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

Sticky bit (Save Text Attribute) — "липкий" бит;

SUID (Set User ID) — установка идентификатора пользователя;

  SGID — установка идентификатора группы. Рассмотрим эти атрибуты подробнее.

Sticky bit для файлов. В современных операционных системах потерял свое значение.

Sticky bit для каталогов. Если sticky bit установлен для каталога, то поль­зователь, несмотря на то, что ему разрешена запись в этот каталог, может удалять только те файлы, владельцем которых он является или к которым ему явно заданы права записи.

SUID для файлов. Если установлены права доступа SUID и файл испол­няемый, то файл при запуске на выполнение получает не права пользова­теля, запустившего его, а права владельца файла. Такие фокусы использу­ются для того, чтобы пользователь мог работать с некоторыми системными файлами, владельцем которых является некий привилегированный пользо­ватель. К примеру, для того, чтобы пользователь мог самостоятельно изме­нить свой пароль при помощи утилиты passwd, у этой утилиты (владельцем которой является пользователь root) должен быть установлен бит SUID, поскольку она работает с файлами (/etc/passwd), модификацию которых имеет право производить только пользователь root.

  SGID для файлов. Если установлены права доступа SGID, то это анало­гично установке бита SUID, только вместо владельца файла используется группа владельца.

SGID для каталогов. В случае установки SGID для каталога файлы, со­держащиеся в этом каталоге, будут иметь установки группы такие же, как у каталога.

 

Файловые системы

Файловая система – это методы и структуры данных, которые используются операционной системой для хранения файлов на диске или в его разделе.

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

Основными понятиями в файловой структуре Linux (и в большинстве операционных систем UNIX-семейства) являются:

       Суперблок

       Индексный дескриптор (inode)

       Блок данных 

       Блок каталога

       Косвенный блок

       Файл

Типы файловых систем.

Linux поддерживает большое количество типов файловых систем. Наиболее

важные из них приведены ниже.

Minix — старейшая файловая система, ограниченная в своих возможно­стях (у файлов отсутствуют некоторые временные параметры, длина име ни файла ограничена 30-ю символами) и доступных объемах (максимум 64 Мбайт на одну файловую систему).

Xia — модифицированная версия системы minix, в которой увеличена максимальная длина имени файла и размер файловой системы.

Ext — предыдущая версия системы Ext2. В настоящее время практически не используется.

Ext 2 — наиболее богатая функциональными возможностями файловая система Linux. На данный момент является самой популярной системой. Разработана с учетом совместимости с последующими версиями.

Ext 3 — модернизация файловой системы Ext2. Помимо некоторых функ­циональных расширений является журналируемой. Пока широкого рас­пространения не получила. Конкурирующая журналируемая файловая система — ReiserFS.

VFS — виртуальная файловая система. По сути — эмулятор-прослойка между реальной файловой системой (MS-DOS, Ext2, xia и т. д.) и ядром операционной системы Linux.

Proc — псевдо-файловая система, в которой посредством обычных фай­ловых операций предоставляется доступ к некоторым параметрам и функциям ядра операционной системы.

ReiserFS — журналируемая файловая система. Наиболее используемая среди журналируемых файловых систем для Linux.

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

msdos — обеспечивается совместимость с системой MS-DOS.

umsdos — расширяет возможности драйвера файловой системы MS-DOS для Linux таким образом, что в Linux появляется возможность работы с именами файлов нестандартной длины, просмотра прав доступа к файлу, ссылок, имени пользователя, которому принадлежит файл, а также опе­рирования с файлами устройств. Это позволяет использовать (эмули­ровать) файловую систему Linux на файловой системе MS-DOS.

iso9660 — стандартная файловая система для CD-ROM.

 xenix — файловая система Xenix.

sysv — файловая система System V (версия для х8б).

hpfs — доступ "только для чтения" к разделам HPFS.

Nfs – сетквая файловая система, обеспечивающая разделение одной файловой системы между несколькими компьютерами для предоставления доступа к ее файлам со всех машин.

 

     

  Mini FS Xia FS Ext FS Ext2 FS
Максимальный объем файловой системы 64 Mбайт 2 Гбайт 2 Гбайт 4 Тбайт
Максимальная длина файла 64 Mбайт 64 Мбайт 2Гбайт 2Гбайт
Максимальная длина имени файла 30 Символов 248 символов 255 символов 255 символов
Поддержка 3х ячеек времени изменения файла Нет Нет Нет Да
Возможность расширения Нет Нет Нет Да
Изменяемый размер блока Нет Нет Нет Да
Защита информации Да Да Да Да

VI Иерархия каталогов Linux

Linux Rad Hat 7.1

Иерархия каталогов первого уровня

Имя каталога Содержимое каталога
/ Корневой (Root) каталог. Является родительским для всех остальных каталогов в системе
/bin Содержит важные для функционирования системы файлы
/boot Содержит файлы для загрузчика ядра
/dev Хранит файлы устройств
/etc Содержит Host – специфичные файлы системной конфигурации
/home Пользовательские домашние каталоги
/lib Важные разделяемые библиотеки и модули ядра
/lost + found Содержит файлы, восстановленные при ремонте утилитами восстановления файловых систем 
/misc Каталог для автоматически монтируемых устройств (дисковод, CD -ROM)
/mnt Точка монтирования временных разделов
/opt Дополнительные пакеты приложений
/proc Точка монтирования псевдофайловой системы proc, которая является интерфейсом ядра операционной системы
/root Домашний каталог пользователя root
/sbin Содержит важные системные исполняемые файлы
/tmp Хранит временные файлы
/usr Вторичная иерархия
/var Содержит переменные данные

Корневой (Root) каталог

Точка монтирования всей файловой системы. Играет исключительно важную роль в процессе «жизнедеятельности» операционной системы. Для загрузки системы необходимо, чтобы в корневом разделе (корневой раздел в Linux – это аналог С: для DOS/windows – только на него возможно установить операционную систему. И корневой раздел является точкой монтирования корневого каталога) находились утилиты и конфигурационные файлы, необходимые для монтирования других файловых систем. Кроме того, в корневой файловой системы должны присутствовать утилиты, необходимые для создания, восстановления или ремонта  файловых систем, а также для административного восстановления (backup) системы с ленты, CD-ROM, дискет и тому подобных носителей.

 

Каталог / bin

Содержит важные исполняемые файлы, которые используются всеми (в том числе и администратором системы) пользователями. Кроме того, в каталоге /bin должны находиться исполняемые файлы, необходимые для функционирования системы в однопользовательском режиме (single mode). Он также может содержать исполняемые файлы, которые напрямую используются в скриптах. Каталог /bin не должен содержать подкаталогов. Исполняемые файлы, от которых напрямую не зависит функционирование системы рекомендуется размещать во вторичной иерархии – в каталоге /usr/bin.

 

Каталог / boot

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

 

Каталог / dev

Содержит файлы устройств или специальные файлы.

 

Каталог / etc

Содержит конфигурационные файлы и каталоги, которые специфичны для данной системы. В этом каталоге не должно находиться никаких исполняемых модулей.

 


Поделиться с друзьями:

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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.043 с.