ОС семейства Unix: linux, FreeBSD, NetBSD
Министерство образования и науки Российской федерации
Дагестанский
государственный технический
Факультет Информатика и Управление
Кафедра ВТ
На тему:
«ОС семейства Unix: linux, FreeBSD, NetBSD»
Выполнила: ст-ка 4кр, гр-841
ФиУ ПОВТиАС
Омарова М. О.
Приняла: Губа М. А.
Махачкала 2012г
Содержание
Введение…………………………………………………………
1.Общая структура и характеристики ОС Linux………………………………………..5
1.1Основы сетевого взаимодействия в ОС Linux……………………………6
1.2 Основные
команды LINUX……………………………………………
1.3. Сетевые команды в ОС Linux……………………………………………………9
2.Что такое BSD?..........................
3.Сравнение BSD и Linux…………………………………………………………………
4.Версии BSD………………………………………………………………………
4.1.FreeBSD…………………………………………………
4.2.NetBSD……………………………………………………
Ввдение
История
ОС UNIX началась в 1969 году в одном
из подразделений AT&T Bell Laboratories, когда
на "малоиспользуемой" машине DEC PDP-7
Кен Томпсон (Ken Thompson), Деннис Ричи (Dennis
Ritchie) и другие (прежде занимавшиеся
созданием ОС Multics) начали работу над
операционной системой, названной ими
первоначально Unics (UNiplexed Information and Computing
System). В течение первых 10 лет развитие
UNIX происходило, в основном, в Bell Labs.
Соответствующие начальные
Операционная система Unix была задумана и реализована в Bell Laboratories компании AT&T в Соединенных Штатах Америки Кеном Томпсоном, Деннисом Ритчи, Дугласом Макилроем и Джо Осанной. Операционная система Unix была впервые выпущена в 1971 году и первоначально была написана целиком на ассемблере, что было обычной практикой того времени. Позже, в 1973 году, Unix была переписана Деннисом Ритчи на языке программирования Cи (за исключением ядра и системы ввода/вывода). То, что операционная система была написана на языке высокого уровня, позволило упростить её портирование на различные компьютерные платформы. Из-за особенностей лицензии AT&T была вынуждена открывать исходный код операционной системы всем обратившимся, что позволило Unix быстро развиться и стать популярной во многих научных учреждениях и предприятиях. В 1984 году AT&T отделилась от Bell Labs. Избавившись от необходимости бесплатного лицензирования системы, Bell Labs начала продажи Unix как проприетарного продукта.
Современные версии ОС UNIX
Итак, в настоящее время (начало 2004 года - В.К.) мы имеем на платформе Intel x86 следующие основные версии UNIX:
FreeBSD 5.2;
OpenBSD 3.4;
NetBSD 1.6.2;
Linux 2.0, 2.2, 2.4, 2.6 в виде множества различных дистрибутивов;
Solaris 9;
SCO OpenServer 5.0.7 и UnixWare 7.1.3
На других платформах (основные версии):
Linux 2.6.x (практически все платформы);
NetBSD 1.6.2 (практически все платформы);
Mac OS X 10.3.2 (PowerPC);
AIX 5L v5.2 (PowerPC);
Solaris 9, 10 (SPARC);
HP-UX 11i (PA-RISC, Intel Itanium);
Tru64 Unix V.5.1B-1 (Alpha);
IRIX 6.5.23 (MIPS)
ОС UNIX имеет следующие основные характеристики:
- переносимость;
- вытесняющая многозадачность на основе процессов, работающих в изолированных адресных пространствах в виртуальной памяти;
- поддержка одновременной работы многих пользователей;
- поддержка асинхронных процессов;
- иерархическая файловая система;
- поддержка независимых от устройств операций ввода-вывода (через специальные файлы устройств);
- стандартный интерфейс для программ (программные каналы, IPC) и пользователей (командный интерпретатор, не входящий в ядро ОС);
- встроенные средства учета использования системы.
Архитектура ОС UNIX - многоуровневая. На нижнем уровне, непосредственно над оборудованием, работает ядро операционной системы. Функции ядра доступны через интерфейс системных вызовов, образующих второй уровень. На следующем уровне работают командные интерпретаторы, команды и утилиты системного администрирования, коммуникационные драйверы и протоколы, - все то, что обычно относят к системному программному обеспечению. Наконец, внешний уровень образуют прикладные программы пользователя, сетевые и другие коммуникационные службы, СУБД и утилиты.
Системные вызовы обеспечивают:
- сопоставление действий пользователя с запросами драйверов устройств;
- создание и прекращение процессов;
- реализацию операций ввода-вывода;
- доступ к файлам и дискам;
- поддержку функций терминала.
Системные вызовы преобразуют процесс, работающий в режиме пользователя, в защищенный процесс, работающий в режиме ядра. Это позволяет процессу вызывать защищенные процедуры ядра для выполнения системных функций.
Системные вызовы обеспечивают программный интерфейс для доступа к процедурам ядра. Они обеспечивают управление системными ресурсами, такими как память, пространство на дисках и периферийные устройства. Системные вызовы оформлены в виде библиотеки времени выполнения. Многие системные вызовы доступны через командный интерпретатор.
- Общая структура и характеристики ОС Linux
GNU/Linux (произносится «гну слэш ли́нукс», другие названия см. ниже) — общее название Unix-подобных операционных систем на основе ядра Linux, библиотек и системных программ, разработанных в рамках проекта GNU, а также другого программного обеспечения.
GNU/Linux работает
на множестве архитектур
В отличие от большинства других
операционных систем, GNU/Linux не имеет
единой «официальной» комплектации.
Вместо этого GNU/Linux поставляется в большом
количестве так называемых дистрибутивов,
в которых ядро Linux соединяется
с утилитами GNU и другими прикладными
программами (например, X.org), делающими
её полноценной
Согласно distrowatch наиболее популярными дистрибутивами являются: 1) deb-base (Debian, Mint, Ubuntu), rpm-base (RedHat, Fedora, OpenSUSE), Source-base (Slakware, Gentoo)
Российские дистрибутивы rpm-base: ALT Linux, ASPLinux и НауЛинукс; Source-base: Calculate Linux и AgiliaLinux; deb-base: Runtu и Rosinka.
Украинские дистрибутивы rpm-base: MyLinux; Source-base: Blin и Grusha Linux; deb-base: Ubuntu Install Box и Ubuntu DesktopPack
Операционные системы на основе GNU и Linux называют «Linux» или «GNU/Linux» (произносится «гну слэш ли́нукс»). Первый вариант гораздо более популярен, и чаще используется сторонниками термина «open source», второй — сторонниками «free software».
Хотя в английском второй вариант пишется и звучит, как «GNU/Linux» , это не всегда удобно в других языках. Поэтому, если можно показать равноправность GNU и Linux лучшим способом — например, GNU+Linux (гну плюс линукс), GNU-Linux (во французском), или GNU con Linux (в испанском), лучше использовать его, чем «GNU Linux» («гну ли́нукс»), подразумевающее, что ядро «Linux» было разработано или принадлежит проекту GNU. Аналогичным образом построены названия «TCP/IP» и «Ogg/Vorbis».
Проект GNU был начат в 1983 году Ричардом
Столлманом с целью создания «целостной
Unix-совместимой программной
Несмотря на то, что из-за юридических проблем с лицензией 386BSD, из которой позже произошли NetBSD и FreeBSD, не была выпущена до 1992 года, её разработка предшествовала Linux. Линус Торвальдс сказал, что если бы 386BSD была доступна в то время, он, вероятно, не создал бы Linux.
Для качественного
ОС Linux
- это полноценная многозадачная
многопользовательская
поддержкой
до 256 процессоров в 64-битной
пользователей
одновременно выполнять
взаимодействий является одной из наиболее сильных сторон ОС Linux, как в отношении
поддерживаемых
функций, так и в отношении
производительности.
ОС Linux
совместима с рядом стандартов
UNIX на уровне исходных текстов,
включая IEEE POSIX.l, System V и BSD. Она
создавалась с учетом
ОС Linux поддерживает самые
ОС Linux,
как и любая другая ОС
Ядро - это ключевой компонент любой ОС, который обеспечивает взаимодействие пользовательских программ с аппаратурой компьютера, распределение времени между процессами, благодаря которому достигается многозадачность, и другие возможности системы. Ядро можно представить себе в виде набора постоянно находящихся в памяти процедур, доступных всем остальным процессам.
Отличительной особенностью ядра ОС Linux является то, что все основные драйверы устройств являются частью ядра. Это можно было бы назвать основным недостатком ядер с монолитной архитектурой, однако в ОС Linux реализован механизм динамической загрузки дополнительных модулей, включая модули драйверов устройств, позволяющий по мере необходимости вносить в ОС дополнительный функционал.
1.1.Основы сетевого взаимодействия в ОС Linux
ОС Linux,
как и другие операционные системы,
поддерживает множество методов
обмена данными и работы в сети.
Главным образом это означает
взаимодействие с другими системами
в сетях TCP/IP. Как было замечено ранее,
поддержка сетевых
Одним
из основных преимуществ ОС Linux
является ее сетевой стек. Сетевой
стек ОС Linux разработан на основе
сетевого стека BSD и содержит
четко организованный набор
Самым первым элементом в сетевой подсистеме ОС Linux является интерфейс системных вызовов, который предоставляет доступ пользовательским приложениям к сетевой подсистеме ОС Linux. Далее следует интерфейс взаимодействия с протоколами, содержащий общие процедуры взаимодействия с протоколами транспортного уровня. Следом располагается непосредственно описание транспортных протоколов, таких как TCP, UDP и IP, которые являются встроенными в ядро. Далее следует интерфейс взаимодействия с устройствами, через который
осуществляется
обращение к драйверам
Все
сетевое взаимодействие, с точки
зрения ядра, в ОС Linux осуществляется
через сокеты, содержащие описание
протокола и операции, которые
можно над ним осуществить.
Обмен пакетными данными между
сокетами осуществляется при
помощи буфера сокетов (skbuff)
1.2 Основные команды LINUX
# exit
# Завершить сеанс текущего пользователя;
# passwd
# Меняет пароль текущего пользователя;
# shutdown -h now
# Выход из Linux;
# poweroff
# Выход из Linux;
# reboot
# Перезагрузка системы;
# last reboot
# Cтатистика перезагрузок;
# host itshaman.ru
# Показывает IP-адрес введенного сайта;
Команды Linux: работы с файлами и директориями
# pwd
# Выводит текущий путь;
# ls
# Выводит список файлов и каталогов по порядку;
# ls -laX
# Выводит форматированный список всех файлов и директорий, включая скрытые;
# cd
# Переход в домашнюю директорию;
# cd /home
# Переход в директорию /home;
# touch /home/primer2
# Создание пустого файла /home/primer2;
# cat /home/primer2
# Показать содержимое файла /home/primer2;
# tail /var/log/messages
# Выводит конец файла. Удобно при работе с логами и большими файлами;
# nano /home/primer2
# Редактирование файла /home/primer2;
# gedit /home/primer2
# Вторая команда Linux для редактирования файла;
# echo "Последняя строчка" | sudo tee -a /home/primer2
# Добавление к концу файла "Последняя строчка" в файл /home/primer2;
# cp /home/Mut@NT/primer.txt /home/primer.txt
# Копирует /home/Mut@NT/primer.tx в home/primer.txt;
# mkdir /home/Mut@NT/shaman
# Создание директории с именем shaman;
# rmdir /home/Mut@NT/shaman
# Удаление директории с именем shaman;
# rm -rf /home/Mut@NT/shaman
# Удаление
директории с вложенными
# cp -la /dir1 /dir2
# Копирование директорий;
# mv /dir1 /dir2
# Переименование директории;
# du -sh /home/Mut@NT/
# Выводит
на экран размер заданной
# locate primer
# Поиск всех файлов с именем primer;
Настройка сети.
# ifconfig
# Показать параметры всех
# ifconfig eth0
# Показать параметры сетевого интерфейса eth0;
# [sudo] ethtool eth0
# Показывает состояние сетевого
интерфейса eth0 (для некоторых дистрибутивов
требуется установка пакета ethtool).
Команда ethtool применяется только
для проводных подключений, не
работает с беспроводными
# [sudo] ethtool -s eth0 speed 100 duplex full autoneg off
# Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full duplex и отключить автоматическое определение;
# ifconfig eth0 192.168.50.254 netmask 255.255.255.0
# Задать основной IP адрес сетевому интерфейсу eth0;
# ip addr add 192.168.50.254/24 dev eth0
# Задать основной IP адрес сетевому интерфейсу eth0;
# ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0
# Задать дополнительный IP адрес сетевому интерфейсу eth0;
# ip addr add 192.168.51.254/24 dev eth0 label eth0:1
# Задать дополнительный IP адрес сетевому интерфейсу eth0;
# [sudo] ifconfig eth0 up
# Запустить сетевой интерфейс eth0;
# [sudo] ifconfig eth0 down
# Отключить сетевой интерфейс eth0;
# ifconfig eth0 hw ether 00:01:02:03:04:05
# Смена MAC адреса;
# [sudo] /etc/init.d/dhcpd restart
# Перезагрузка DHCP клиента;
# ping 192.168.0.2
# Проверка сетевого соединения. Пингуется IP адрес 192.168.0.2 (пинговать можно ya.ru);
# route -n
# Выводит на экран таблицу маршрутизации;
# netstat -rn
# Выводит на экран таблицу маршрутизации
1.3. Сетевые команды в ОС Linux
Команда ping
ping(8) посылает
ICMP ECHO_REQUEST пакет указанному хосту.
Если хост отвечает, вы получаете
ICMP пакет обратно. Звучит странно?
Пользователь A: Loki опять лёг.
Пользователь B: Ты уверен?
Пользователь A: Да, я пытался пинговать его, но никакого ответа.
Такой вариант применения ping и делает её очень полезной каждодневной программой. Программа позволяет очень быстро увидеть, доступен ли компьютер. Синтаксис применения прост:
$ping <ip адрес или имя хоста>
Конечно, программа так же имеет некоторые опции.
Команда finger
finger(1) запросит
информацию о специфическом
$finger [email protected]
может выдать имя пользователя, состояние почты, телефонные номера и файлы .plan и .project. Разумеется, выдаваемая сервером информация зависит от конкретного сервера. Сервер, поставляемый в Slackware, возвращает такую информацию:
- Имя пользователя
- Номер комнаты
- Домашний телефон
- Рабочий телефон Login статус Email статусs
- Содержимое .plan файла из домашнего каталога пользователя
- Содержимое .project файла из домашнего каталога пользователя
Первых четыре могут быть установлены или изменены при помощи chfn программы. Эти параметры хранятся в /etc/passwd файле. Для изменения информации в ваших .plan и .project файлах, просто измените их при помощи вашего любимого текстового редактора. Они должны находится в вашем домашнем каталоге и называться, соответственно, .plan и .project.
Многие пользователи пользуются finger для своего эккаунта с удалённых компьютеров, просто чтобы посмотреть, есть ли у них почта. Так же вы можете посмотреть план работы или текущий проект пользователя. John Carmack из id Software регулярно обновляет свой план-файл, чтобы держать сообщество пользователей в курсе того, над чем он сейчас работает.
Как и большинства программ, у finger есть опции. Опять таки, мы отправим вас к man странице за дополнительной информацией.
Команда telnet
Кто-то когда-то сказал, что telnet(1) это самое крутое, из всего, что он когда либо видел в мире компьютеров. Возможность удалённо подключаться и делать что-то на другом компьютере, выделяет Unix и Unix-подобные системы от других систем.
telnet позволяет
вам войти в удалённую систему
точно так же, как если бы
вы сидели за этим компьютером.
Для подключения к удалённому компьютеру, воспользуйтесь таким синтаксисом:
$telnet <hostname>
Если хост ответит, вы получите приглашение входа в систему. Введите имя пользователя и пароль. Ну вот. Теперь вы в оболочке. Чтобы выйти из вашей сессии telnet, воспользуйтесь либо exit, либо logout, на ваше усмотрение.
FTP клиенты
FTP расшифровывается, как File Transfer Protocol (протокол передачи файлов). Он позволяет вам отсылать и принимать файлы между двумя компьютерами. Один из них FTP сервер, а другой - FTP клиент. В этом разделе мы будем обсуждать клиента.
Для определённости, клиент это вы. ''server'' это компьютер, который отвечает на ваш FTP запрос и позволяет войти. Вы будете загружать файлы с (download) и на (upload) сервер. Клиент не может принимать FTP соединения, он может только соединяться с сервером.
- Команда ftp
Для подключения к FTP серверу, просто выполните ftp(1), указав имя хоста к которому хотите соединиться:
$ftp <имя хоста>
Если на указанном вами хосте есть FTP сервер, он спросит у вас имя пользователя и пароль. Вы можете войти с вашим собственным логином, если таковой у вас имеется, или вы можете войти, как ''anonymous''. Анонимные FTP сайты очень часто используются, как архивы программ. Например, чтобы скачать Slackware Linux через FTP, вы должны использовать анонимный FTP.
Подключившись, вы получите приглашение ftp>. Для FTP используются отдельные команды, но они похожи на стандартные команды. Вот список основных команд и для чего они используются:
Command Purpose
ls Выдаёт список файлов
cd <dirname> Для перехода в другой каталог
put <filename> Скачать файл
put <filename> Закачать (upload) файл
hash Если включить, то для каждого скачанного
килобайта будет показываться # символ
prom Включает интерактивный режим загрузки
mget <mask> Скачивает файл или группу файлов;
можно использовать шаблоны имён
mput <mask> Закачать файл или группу файлов
можно использовать шаблоны имён
quit Отключиться от FTP сервера
FTP это
довольно простая программа и
её явный недостаток это
- Команда ncftp
ncftp(1) (произносится
''Nik-F-T-P'') это альтернатива стандартному
ftp, поставляемая с Slackware. Это так
же программа с текстовым
- Завершение по tab
- Файл закладок
- Passive and non-passive FTP transfer modes
- More liberal wildcard uses
- Command history
По умолчанию, ncftp попробует войти анонимно на указанный вами сервер. Вы можете заставить программу выдать вам логин приглашение, задав ''-u'' ключ. После входа в систему, вы можете пользоваться теми же командами, что и в ftp, только интерфейс немного отличается в лучшую сторону, больше похож на bash.
Электронная почта
Электронная
почта это самый
- Команда pine
pine(1) (англ.
сосна) это вам не elm (англ. вяз).
По крайней мере так говорят.
Вашингтонский университет
- Команда elm
elm(1) это другой популярный текстовый клиент электронной почты. Его интерфейс не так дружественен, как интерфейс pine, эта программа явно гораздо старше.
- Команда mailx
mailx(1) это
почтовый клиент, управляемый командной
строчкой. Он очень примитивен
и практически ничего не
Обычный вариант запуска вот такой:
$mailx -s <тема> <кому>
mailx читает тело письма из стандартного ввода. Так что вы можете cat любой файл в эту команду, чтобы отправить его, или же вы можете просто напечатать текст и нажать ctrl+D, когда закончите набор.
Вот пример отправления по почте файла исходника программы другой персоне.
$cat randomfunc.c | mailx -s "Вот эта функция" \
man страница
объясняет, более подробно
Команда lynx
lynx(1) это вэб броузер текстового режима. Это очень быстрый способ для поиска чего-то в интернет. Иногда графика это лишнее, если вы знаете, чего вы ищите.
Для запуска lynx, просто напечатайте lynx в приглашении командной строки:
$lynx
Команда wget
wget(1) это утилита командной строки, которая скачивает файлы с указанного URL. Она полезна при скачивании целых вэб сайтов, для просмотра в offline, или для более надёжной загрузки файлов с HTTP или FTP серверов, чем из Netscape. Основной синтаксис:

- Оссобенности оформления паспортов сделок
- О Стабилизационном фонде РФ
- Оставление в опасности
- Оставление искового заявления без рассмотрения
- Оставлние в опасности
- Останкинская башня
- Останкинская телевизионная башня
- О состоянии народного образования в Усманском уезде в 1922-1923гг.
- О состоянии озера Байкал и мерах его защиты
- Осоьенности права собственности на землю
- Оспанов Өмірбек Оспанұлы
- Оспоримые и ничтожные сделки
- О спорт ты мир
- О ,спорт, ты-Мир