Реферат: Автоматизированная информационная система средствами Ubuntu Linux
· Практически бесплатная система. Лицензия позволяет не только копировать и распространять программное обеспечение, но и предоставляются исходные тексты.
· Действительно надежная система, шансы на то, что одна задача повалит всю систему, практически равны нулю.
· 1,8 млрд пользователей по всему миру. [34]
1 Цена: Linux распространяется бесплатно или для коммерческих дистрибутивов по сравнительно низкой цене, для сравнения можно сказать, что коммерческие Unix-системы стоят 1000 - 3000 USD.
2 Лицензионная политика. Linux распространяется вместе с исходными текстами и под лицензией, которая не разрешает использовать Linux, не распространяя исходных текстов. Эта политика постоянно поддерживает цену коммерческих дистрибутивов Linux на низком уровне. Эта политика делает также невозможным использования тактики Microsoft - использование недокументированных возможностей системы.
3 Переносимость. Linux с самого начала был предназначен для работы на IBM совместимых компьютерах. Отсюда его невысокие требования к ресурсам.
1.2 Сравнительные характеристики 32-разрядных
операционных систем
Linux разрабатывался и оптимизировался для работы с процессором I80386 и совместимых с ним. ОС поддерживает многозадачный режим работы, при котором одновременно выполняется несколько пользовательских приложений. По сравнению с MS-DOS это был существенный шаг вперед. Linux поддерживает динамическое кэширование дисковой памяти. В результате производительность Linux оказывается существенно выше, поскольку необходимые для обработки данные в большинстве случаев оказываются уже в кэш-памяти. Многопользовательская работа поддерживается Linux в полном объеме. Локальные пользователи, удаленные терминалы, подключенные через модемы, а также пользователи, подключенные посредствами локальной вычислительной сети без каких-либо ограничений могут одновременно работать с графическими и символьно - ориентированными приложениями. Для многих практических ситуаций эта возможность ставит Linux вне конкуренции. Linux имеет также ряд средств обеспечения безопасности системы, предотвращающих попытки пользователей “сломать машинку”. Поэтому можно без опаски предоставлять сетевой доступ к Linux в то время, как пользователь, например такой не очень хорошо известной в России системы, как OS/2 имеет все необходимые средства для умышленного или неумышленного разрушения операционной системы. Основные характеристики и возможности рассматриваемых систем сведены в таблице (Таблица 1) для операционных систем LinuxOS/2 и Windows. [23]
Очевидно, что каждая дополнительная функция, реализованная в системе, приводит к увеличению объема системы, что сказывается на требованиях к оперативной памяти и жестким дискам. Кроме того, чем больше объем операционной системы, тем медленнее она обычно работает. WindowsNT является самой большой из рассматриваемых систем. Причиной этого является высокая сложность системы и большой набор поддерживаемых ею функций. Что, кстати, только повышает конкурентоспособность системы. Linux (в комплекте с “XWindow”) является следующей по размеру системой.
Таблица 1.
Сравнительные характеристики 32-разрядных операционных систем
Параметр | Linux | OS/2 | Windows |
Многозадачность | Да | Да | Да |
Многопотоковая обработка | Да | Да | Да |
Многопроцессорность | Да | Разрабатывается | Да |
Поддержка параллельной работы | Да | Нет | Нет |
Многопользовательский режим | Да | Нет | Да |
Легкость портирования ОС на другую платформу | Нет | Нет | Да |
Динамическое кэширование диска | Да | Нет | Да |
Максимальный объем памяти, выделяемый одному процессу | 3 Гбайт | 512 Мбайт | 2 Гбайт |
Поддерживаемые сетевые протоколы | |||
TCP/IP | Да | За плату | Да |
NFS | Да | За плату | Да |
IPX/SPX | Да | За плату | За плату |
IBM LAN Server | Нет | За плату | Нет |
Microsoft LAN Server | Нет | Нет | Да |
Поддерживаемые файловые системы | |||
FAT (DOS) | Да | Да | Да |
HPFS (OS/2) | только чтение | Да | Да |
NTFS (Windows NT) | Да | Нет | Да |
EXT 2-4 (Linux) | Да | Нет | Нет |
ISO9660 (CD-ROM) | Да | Да | Да |
Network File System (NFS) | Да | За плату | Да |
Coherent (Unix) | Да | Нет | Нет |
Stacker | Нет | Да | Нет |
OS/2 является наиболее компактной системой. Именно в этом и состоит привлекательность операционной системы, разработанной IBM. Пользователю необходимо иметь только 8 Мбайт оперативной памяти, чтобы приобщиться к миру объектно-ориентированного интерфейса, и представляет собой неплохую платформу для многозадачной работы с приложениями DOS, Windows и OS/2. Отметим, что размер системы является одной из наиболее сильных характеристик Linux. Система изначально проектировалась максимально компактной и производительной, в то время как для Windows основным критерием оптимизации являлась переносимость, а для OS/2 - совместимость с предыдущими версиями системы. А, кроме того, поскольку любой администратор Linux-системы имеет в своем распоряжении полный исходный текст ОС, она может быть оптимизирована для работы с конкретным оборудованием и нуждами пользователя. OS/2 и Windows похвастаться такой возможностью не могут.[3]
1.3 Системные и программные характеристики Linux
Linux поддерживает большинство свойств, присущих другим реализациям Unix, плюс ряд тех, которых больше нигде нет. Linux - это полная многозадачная многопользовательская операционная система. Это означает, что одновременно много пользователей могут работать на одной машине, одновременно выполнять много программ. Linux достаточно хорошо совместим с рядом стандартов для Unix (насколько можно говорить о стандартизации Unix) на уровне исходных текстов, включая IEEEPOSIX.1, SystemV и BSD. Он создавался, имея в виду такую совместимость. Поэтому, несложно найти в Linux черты, присущие многим Unix-системам. Большинство свободно распространяемых по сети Internet программ для Unix может быть откомпилировано для Linux практически без особых изменений. Кроме того, все исходные тексты для Linux, включая ядро, драйверы устройств, библиотеки, пользовательские программы и инструментальные средства распространяются свободно.[12]
Linux также поддерживает виртуальные консоли (“virtualconsoles”), которые позволяют “переключать экраны” на консоли в текстовом режиме, также позволяют войти в систему под несколькими именами в одно время. Ядро может само эмулировать команды 387-FPU, так что системы без сопроцессора могут выполнять программы, на него рассчитывающие (т.е. с плавающей точкой).
Linux поддерживает различные типы файловых систем для хранения данных. Некоторые файловые системы были созданы специально для Linux. Поддерживаются также другие типы файловых систем, такие как Minix-1 и Xenix. Реализована также файловая система MS-DOS, позволяющая прямо обращаться к файлам MS-DOS на жестком диске. Linux обеспечивает полный набор протоколов TCP/IP для сетевой работы, включая драйверы устройств для многих популярных карт Ethernet, SLIP (SerialLineInternetProtocol, обеспечивающие доступ по TCP/IP при последовательном соединении), PLIP (ParallelLineInternetProtocol), PPP (Point-to-PointProtocol), NFS (NetworkFileSystem), и так далее. Поддерживается весь спектр клиентов и услуг TCP/IP, таких как FTP, telnet, NNTP и SMTP. [5]
Ядро Linux поддерживает загрузку только нужных страниц. То есть с диска в память загружаются те сегменты программы, которые действительно используются. Возможно использование одной страницы, физически один раз загруженной в память, несколькими выполняемыми программами.
Для увеличения объема доступной памяти Linux осуществляет также разбиение диска на страницы: то есть на диске может быть выделено до 256 Мбайт “пространства для своппинга” (swapspace). В область своппинга выгружается не весь процесс, а только отдельные его части, в которых нет необходимости). Когда системе нужно больше физической памяти, то она с помощью своппинга выводит неактивные страницы на диск. Это позволяет выполнять более объемные программы и обслуживать одновременно больше пользователей. Однако свопинг не исключает наращивания физической памяти, поскольку он снижает быстродействие, увеличивает время доступа.
Ядро также поддерживает универсальный пул памяти для пользовательских программ и дискового кэша. При этом для кэша может использоваться вся память, и наоборот, кэш уменьшается при работе небольших программ. Выполняемые программы используют динамически связываемые библиотеки, т.е. выполняемые программы могут совместно использовать библиотечную программу, представленную одним физическим файлом на диске. Это позволяет выполняемым файлам занимать меньше места на диске, особенно тем, которые многократно используют библиотечные функции. Есть также статические связываемые библиотеки для тех, кто желает пользоваться отладкой на уровне объектных кодов или иметь “полные” выполняемые программы, которые не нуждаются в разделяемых библиотеках. В Linux разделяемые библиотеки динамически связываются во время выполнения, позволяя программисту заменять библиотечные модули своими собственными. Для обеспечения отладки ядро Linux выдает дампы памяти для “посмертного” анализа. Использование дампа и динамических отладчиков позволяет определить причины краха программы. [14]
Практически любая утилита, которая находится в стандартных реализациях Unix, имеется и в Linux. Сюда включены и базовые команды, такие как ls, awk, tr, sed, bc, more и т.д. В Linux есть все стандартные команды и утилиты Unix.
Вместо перечисления всех возможных опций каждой команды, будем говорить только о тех, которые полезны или важны в данное время (Таблица 2). Действительно, большинство из этих команд имеет большое число опций (большинство из которых никогда не используется).
В Linux имеются многие текстовые редакторы, включая vi, ex, pico, jove, также GNUEmacs и его вариации, вроде LucidEmacs (который содержит расширение для использования под “XWindow”) и joe. Но vi имеет много ограничений по причине своего преклонного возраста, сейчас завоевывают популярность более современные и сложные редакторы вроде Emacs. Emacs поддерживает базирующийся на LISP макроязык и интерпретатор, мощный командный синтаксис и другие расширения.
Основные команды Linux | ||
Команда | Что делает | Синтаксис |
Cd | Изменяет текущий рабочий каталог | Cd <directory>; <directory> - каталог, в который перейти. |
Ls | Выдает информацию о файлах в каталоге |
Ls <file1> ... <fileN> Опции огромное колличество. Наиболее часто используемые: -F (для представления информации о типах файлов), и -l (выдает в длинном формате информацию о размерах файлов, владельцах, правах доступа и т.д.). |
Cp | Копирует файл(ы) в файл или каталог | Cp <file1> ... <fileN> <destination> Где<file1> ... <fileN> имена копируемых файлов, а <destination> файл или каталог, в который копируют. |
Mv | Перемещает файл(ы) в другой файл или каталог | Mv <file1> ... <fileN> <destination> Где<file1> ... <fileN> имена перемещаемых файлов, а <destination> имя файла или каталога, в который перемещают. |
Rm | Удаляет файлы | Rm <file1> ... <fileN> Где<file1> ... <fileN> имена удаляемых файлов. Опции: -i потребует пользовательского подтверждения перед удалением файла |
Mkdir | Создает новые каталоги | Mkdir <dir1> ... <dirN> |
Rmdir | Эта команда удаляет пустые каталоги | rmdir <dir1> ... <dirN> Где<dir1> ... <dirN> удаляемые каталоги |
Man | Выдает страницу руководства по данной команде или ресурсу. | man <command> Где <command> имя команды или ресурса, о котором запрашивается информация |
More | Выдает содержимое названных файлов по-экранно | more <file1> ... <fileN> Где<file1> ... <fileN>отображаемыефайлы |
Cat | Используется для конкатенации файлов. Также используется для выдачи полного содержания файла разом | cat <file1> ... <fileN> Где<file1> ... <fileN> выдаваемые файлы |
Echo | Просто повторяет аргументы | echo <arg1> ... <argN> Где<arg1> ... <argN> "повторяемые" аргументы. |
Grep | Выдает все строки в названном файле(лах), которые содержат заданный образец | grep <pattern> <file1> ... <fileN> Где <pattern> - образец (представленный регулярным выражением) и <file1> ... <fileN> - файлы, в которых производится поиск |
Таблица 2.
Существуют макропакеты Emacs, позволяющие читать электронную почту и новости, редактировать содержимое каталогов и даже проводить сеансы психотерапии с использованием искусственного интеллекта.
Многие пользователи самой важной утилитой считают shell. Shell - это программа, которая читает и выполняет команды пользователя. Кроме того, многие оболочки имеют такие возможности, как контроль выполнения (jobcontrol), позволяя пользователю управлять несколькими параллельными процессами, также перенаправление входа-выхода и командный язык для написания командных файлов (shellscripts). Командный файл - это программа на языке оболочки, аналогичная “batchfile” в MS-DOS.
В Linux много типов оболочек. Наиболее важное различие между ними - используемый командный язык. Например, CShell (csh) использует командный язык, чем-то напоминающий язык программирования Си. Классический Баурновский shell (BourneShell) использует иной командный язык. Обычно выбор оболочки обусловлен выбором соответствующего командного языка. Выбранная оболочка в какой-то мере определяет рабочую среду. Наиболее популярная оболочка - это GNUBourneAgainShell (bash), т.е. вариант Bourneshell, включающий много современных свойств и возможностей, таких как управление работами, командную историю, дописывание имен команд и имен файлов, Emacs-подобный интерфейс редактирования командной строки и мощное расширение стандартной оболочки (Bourneshell). [33]
Другая популярная оболочка - tcsh, версия CShell с более современными функциями по сравнению с bash. Другие оболочки: zsh - небольшая баурно-подобная оболочка; ksh - оболочка Корна; ash - оболочка BSD.
Linux дает уникальную возможность кроить систему под наши личные нужды.
Linux обеспечивает полную Unix-среду программирования, включая все стандартные библиотеки, программный инструментарий, компиляторы, отладчики, которые встречаются и в других Unix-системах. В мире Unix большинство приложений и системных программ делаются на Си или Си++. Стандартным компилятором для Си и Си++ в Linux служит GNUgcc, который является современным компилятором, поддерживающим много опций. Он способен компилировать Си так же, как Objective-C, другие объектно-ориентированные диалекты Си. [23]
Кроме Си и Си++ многие другие компиляторы и интерпретаторы были перенесены в Linux, такие как Smalltalk, FORTRAN, Pascal, LISP, Scheme и Ada, Perl и shell-подобный командный язык, включающий поддержку разработки простейших приложений в “XWindow”.
В Linux был перенесен продвинутый отладчик gdb, позволяющий пошагово выполнять программы в поисках ошибок или анализировать крах программ с помощью дампов памяти. Gprof - утилита профилирования, показывающая, где программа при выполнении тратит больше времени. Текстовый редактор Emacs позволяет осуществлять интерактивное редактирование. Другие инструменты, включая GNUmake и imake используются для управления компиляцией больших программ; RCS - система для защиты и сопровождения исходных текстов.
Linux содержит динамические библиотеки (DLL), которые позволяют экономить место, поскольку они вызываются только во время выполнения. Эти библиотеки позволяют также прикладному программисту переопределять функции, включая свои коды.