Смекни!
smekni.com

Операційна система Linux (стр. 2 из 3)

Системні характеристики

Linux підтримує більшість властивостей, властивих іншим реалізаціям UNIX, плюс низка тих, яких більше ніде немає. Ця голова - поверхневий огляд характеристик ядра Linux. Linux - це повна багатозадачна багатокористувацька операційна система. Це означає, що одночасно багато користувачів можуть працювати на одній машині, одночасно виконувати багато програм. Linux достатньо добре сумісний з низкою стандартів для UNIX (наскільки можна говорити про стандартизацію UNIX) на рівні вихідних текстів, включаючи IEEE POSIX.1, System V і BSD. Він створювався маючи на увазі таку сумісність. Тому, швидше за все, ви знайдете в Linux риси, властиві багатьом UNIX-системам. Більшість вільно розповсюджуваних по мережі Internet програм для UNIX може бути откомпилирован для LINUX практично без особливих змін. Крім того, всі початкові тексти для Linux, включаючи ядро, драйвери пристроїв, бібліотеки, призначені для користувача програми та інструментальні засоби поширюються вільно. Інші специфічні внутрішні риси Linux включають контроль робіт за стандартом POSIX (використовуваний оболонками, такими як csh і bash), псевдотермінали (pty), підтримка національних і стандартних клавіатур, динамічно завантажуються драйверами клавіатур. Linux також підтримує віртуальні консолі ("virtual consoles"), які дозволяють "перемикати екрани" на консолі в текстовому режимі, також дозволяють увійти в систему під декількома іменами в один час. Ядро може саме емулювати команди 387-FPU, так що системи без співпроцесора можуть виконувати програми, на нього розраховують (тобто з плаваючою точкою). Linux підтримує різні типи файлових систем для зберігання даних. Деякі файлові системи, такі як файлова система ext2fs, були створені спеціально для Linux. Підтримуються також інші типи файлових систем, такі як Minix-1 і Xenix. Реалізована також файлова система MS-DOS, що дозволяє прямо звертатися до файлів MS-DOS на жорсткому диску. Підтримується також файлова система ISO 9660. Linux забезпечує повний набір протоколів TCP / IP для роботи в мережі, включаючи драйвери пристроїв для багатьох популярних карт Ethernet, SLIP (Serial Line Internet Protocol, забезпечують вам доступ по TCP / IP при послідовному з'єднанні), PLIP (Parallel Line Internet Protocol), PPP ( Point-to-Point Protocol), NFS (Network File System), і так далі. Підтримується весь спектр клієнтів та послуг TCP / IP, таких як FTP, telnet, NNTP і SMTP. Ядро Linux відразу створене з урахуванням спеціального захищеного режиму для процесорів Intel 80386 і 80486. Зокрема, Linux використовує парадигму опису пам'яті в захищеному режимі й інші нові властивості процесорів. Ядро Linux підтримує завантаження тільки потрібних сторінок. Тобто з диска в пам'ять завантажуються ті сегменти програми, які дійсно використовуються. Можливе використання однієї сторінки, фізично один раз завантаженої в пам'ять, кількома виконуваними програмами. Для збільшення обсягу доступної пам'яті Linux здійснює також розбивка диска на сторінки: тобто на диску може бути виділено до 256 Мбайт "простору для своппінга" (swap space). В область своппінга вивантажується не весь процес, а лише окремі його частини, в яких немає необхідності). Коли системі треба більше фізичної пам'яті, то вона за допомогою своппінга виводить неактивні сторінки на диск. Це дозволяє виконувати більш об'ємні програми і обслуговувати одночасно більше користувачів. Однак свопінг не виключає нарощування фізичної пам'яті, оскільки він знижує швидкодію, збільшує час доступу. Ядро також підтримує універсальний пул пам'яті для користувальних програм і дискового кеша. При цьому для кеша може використовуватися вся пам'ять, і навпаки, кеш зменшується при роботі великих програм. Виконувані програми використовують динамічно зв'язуються бібліотеки, тобто виконувані програми можуть спільно використовувати бібліотечну програму, представлену одним фізичним файлом на диску. Це дозволяє виконуваних файлів займати менше місця на диску, особливо тим, які багаторазово використовують бібліотечні функції. Є також статичні зв'язуються бібліотеки для тих, хто бажає користуватися налагодженням на рівні об'єктних кодів або мати "повні" виконуються програми, які не потребують поділюваних бібліотеках. У Linux Спільні бібліотеки динамічно зв'язуються під час виконання, дозволяючи програмістові заміняти бібліотечні модулі своїми власними. Для забезпечення налагодження ядро Linux видає дампи пам'яті для "посмертного" аналізу. Використання дампа і динамічних отладчиков дозволяє визначити причини краху програми.

Програмні характеристики

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

1. Базові команди і утиліти

Практично будь-яка утиліта, яку ви очікуєте знайти в стандартних реалізаціях UNIX, є і в Linux. Сюди включені і базові команди, такі як ls, awk, tr, sed, bc, more і т.д. Тому ви в праві чекати знайомої робочої UNIX-середовища. У Linux є всі стандартні команди та утиліти. Замість перерахування всіх можливих опцій кожної команди, будемо говорити тільки про тих, які корисні або важливі в даний час (Таблиця на наступному сторінці). Дійсно, більшість з цих команд має велике число опцій (більшість з яких ніколи не використовується). Можна для кожної команди за допомогою man подивитися всі можливі опції. У Linux є багато текстові редактори, включаючи vi, ex, pico, jove, також як GNUEmacs і його варіації, начебто LucidEmacs (який містить розширення для використання під "X Window") і joe. Але vi має багато обмежень по причині свого похилого віку, зараз завойовують популярність більш сучасні та складні редактори начебто Emacs. Emacs підтримує базується на LISP макромова та інтерпретатор, потужний командний синтаксис і інші розширення. Існують Макропакунки Emacs, що дозволяють читати електронну пошту та новини, редагувати вміст каталогів і навіть проводити сеанси психотерапії з використанням штучного інтелекту. Багато користувачів найважливішою утилітою вважають shell. Shell - це програма, яка читає і виконує команди користувача. Крім того, багато оболонки мають такі можливості, як контроль виконання (job control), дозволяючи користувачеві керувати кількома паралельними процесами, також перенаправлення входу-виходу і командна мова для написання командних файлів (shell scripts). Команднийфайл - це програма на мові оболонки, аналогічна "batchfile" в MS-DOS. У Linux багато типів оболонок. Найбільш важлива відмінність між ними - використовуваний командна мова. Наприклад, C Shell (csh) використовує командна мова, що чимось нагадує мову програмування Сі. Класичний Баурновскій shell (BourneShell) використовує інший командна мова. Зазвичай вибір оболонки обумовлений вибором відповідного командного мови. Обрана оболонка в якійсь мірі визначає робочу середу. Найбільш популярна оболонка - це GNU Bourne Again Shell (bash), тобто варіант Bourne shell, що включає багато сучасних властивостей і можливостей, таких як управління роботами, командну історію, дописування імені команд та імен файлів, Emacs-подібний інтерфейс редагування командного рядка і потужне розширення стандартної оболонки (Bourne shell). Інша популярна оболонка - tcsh, версія C Shell з більш сучасними функціями у порівнянні з bash. Інші оболонки: zsh - невелика баурно-подібна оболонка; ksh - оболонка Корна; ash - оболонка BSD. Що особливо важливо сказати щодо цих оболонок? - Linux дає унікальну можливість кроїти систему під наші особисті потреби.

Команда Що робить Синтаксис
Cd Змінює каталог Cd <directory>; <directory> - каталог, в який перейти.
Ls Показує інформацію про файли в каталозі Ls <file1> ... <fileN> Де <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> імена видаляємих файлів.
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. Мови програмування і утиліти

Linux забезпечує повну UNIX-середовище програмування, включаючи всі стандартні бібліотеки, програмний інструментарій, компілятори, відладчики, які ви зустрічаєте і в інших UNIX-системах. У світі UNIX більшість додатків і системних програм робляться на Сі чи Сі. Стандартним компілятором для Сі та Сі в Linux служить GNU gcc, який є сучасним компілятором, що підтримує багато опцій. Він здатний компілювати Сі так само, як Objective-C, інші об'єктно-орієнтовані діалекти Сі