суботу, 16 лютого 2008 р.

Для новачків: у чому полягає різниця між Windows та Linux?

Останнім часом Linux набирає все більше популярності. Одним з наслідків цього є те, що багато людей, які не бачили в своєму житті нічого крім Windows, намагаються встановити Linux з цікавості. Можливо вони почули про нього від друзів, чи прочитали на форумах, але факт є фактом, на форумі моєї локальної мережі наприклад з немалою періодичністю регульрно з'являються питання про Linux. Багато таких нових користувачів стикнувшись з першими проблемами, натрапивши на серйозні відмінності у порівнянні з Windows, або ще по якимось причинам зносять Linux і повертаються назад у Windows. Зазвичай при цьому ще й не забувають відписатися про те, яке ж фуфло той Linux.

Насправді ж тут має місце декілька взаємопов'язаних факторів:

  1. Небажання читати літературу.

  2. Мала кількість реально корисної для початківців інформації. Велика
    частина інфи у мережі Інтернет розрахована на людину яка вже має певний
    базовий рівень у спілкуванні з Linux.

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

У даній статті, я спробую зробити над собою надзусилля - спробую роздвоїти свою особистість. :) Ну, насправді я просто спробую забути те, що моє знайомство з комп'ютерами почалося задовго до набуття популярності Windows, спробую уявити себе таким собі "латентним віндузятником" який нічого іншого в житті не бачив. Я пропущу тут процес встановлення нової системи, будемо вважати, що її встановив знайомий "гуру". Ну дійсно, не всі ж і Windows встановлювати вміють, багато взагалі вважає, що вона там з заводу стоїть. Про саме встановлення можливо поговоримо дещо пізніше. 

Отже, таким чином я спробую задати ряд питань, а потім, знову згадавши свій досвід, спробую на них відповідати. Одразу оговорю, що тут я буду говорити конкретно про Ubuntu, щоб не розпилятися на велику кількість подробиць, які можуть лише відлякати початківців. То приступимо?

Що таке Linux?

Linux - це одна з найпопулярніших на сьогоднішній день операційних систем (ОС) для персональних комп'ютерів. Інший приклад операційної системи - всім відома Windows, ще одна відома система - MacOS X фірми Apple. ОС виконує багато дуже важливих ролей, вона надає користувачц зручний інтерфейс для роботи з комп'ютером, а також забезпечує прикладним програмам засоби для роботи з різноманітним обладнанням.

Я знаю, що Windows розробляє фірма Microsoft, а хто ж розробляє Linux?

Linux з'явився у 1991 році, як звичайне хобі фінського студента Лінуса Торвальдса, яке з часом розвинулося у найбільший в світі колективний проект з розробки програмного забезпечення. Фактично, будь-хто з бажаючих, якщо він має певні знання у програмуванні, чи в іншій потрібній галузі, може долучитися до розробки Linux. Тобто за цією ОС не стоїть якась конкретна фірма яка визначає її розвиток, тут ми маємо величезну кількість програмістів всього світу, які пишуть код, в результаті чого проект постійно знаходиться у розвитку. Існує звичайно декілька людей які займаються координацією проекту, той же Лінус наприклад, але розробкою загалом займається спільнота. Потрібно також сказати, що термін Linux насправді характеризує не  ОС
як таку, а її ядро. Повноцінна операційна система, у звичному розумінні, включає не лише ядро, але й ряд інших компонентів (графічний інтерфейс, драйвери, різноманітні утиліти та ін.). У світі Linux такий закінчений продукт називають дистрибутивом. І дистрибутивів Linux з погляду на такий характер розробки існує величезна кількість.

Нічого не зрозуміло, що ж таке дистрибутив?

Під дистрибутивом розуміють закінчений продукт. Саме ядро Linux не є придатним для використання кінцевим користувачем. Для того щоб перетворити його у повноцінну ОС, потрібно додати певний набір базових системних утиліт, якщо це десктопна система, то бажано ще додати графічний інтерфейс і так далі. Це можна порівняти з конструктором LEGO, коли ви маєте багато деталей, які самі по собі мало, що представляють. У той же час, якщо їх поєднати разом, то ми отримаємо якусь конструкцію. У Windows також можна побачити різні дистрибутиви, наприклад WindowsXP Home Edition та Professional Edition. Вони мають єдине ядро, тобто формально є однію операційною системою, але дещо відрізняються за набором компонентів, тобто все таки є двома різними продуктами.

Ну добре, ніби зрозуміло, а які ж існують дистрибутиви Linux?

Дистрибутивів Linux існує дуже багато. Це, знову ж таки, викликано особливостями його розробки. Навіть ви, при бажанні можете створити свій дистрибутив, взявши за основу стандартні компоненти. Деякі дистрибутиви розробляються просто групою людей які об'єдналися за якоюсь ідеєю, а деякі дистрибутиви розробляються під крилом комерційних фірм. Існують дистрибутиви загального призначення, а є й спеціалізовані, наприклад націлені на роботу в мобільних телефонах чи ін. Оскільки ми говоримо про персональні комп'ютери, то з найпопулярніших можна виділити Ubuntu, Fedora, SuSE, Debian, Mandriva, можливо ще декілька.

Так багато? І як же вибрати який кращий?

Це насправді досить важке питання, з приводу якого можна дуже довго дискутувати. Я використовую Ubuntu - це один з найпопулярніших і найпростіших на сьогоднішній день дистрибутивів Linux. Саме на його прикладі я й буду далі вести розмову.

Добре. Я ввімкнув свій комп'ютер і він питає у мене логін і пароль. Що мені робити?

Linux підтримує роботу з декількома користувачами на одній системі. У кожного з таких користувачів може бути власний домашній каталог, власні налаштування програм та ін. Для власної ідентифікації, кожен користувач має логін (іншими словами псевдонім) і власний пароль. Свій логін і пароль ви вказували під час встановлення системи. У Windows прийнято точно такий же підхід. У системі також існує користувач root, який створюється автоматично, він служить для адміністрування системи. Це такий собі аналог Адміністратора у Windows, проте з більшими привілеями, насправді просто необмеженими.

А де тут кнопка Пуск?

В Ubuntu використовується робоче середовище Gnome. Замість кнопки Пуск тут є три пункти меню на верхній панелі: Програми, Місця та Система. У меню Програми можна побачити встановлені програми, відсортовані за темами. Меню Місця містить посилання на стандартні папки, дозволяє використовувати мережу та ін. А меню Система служить для налаштування вашої ОС (аналог Панелі керування у Windows).

Ви згадали про якийсь Gnome, що це таке?

На відміну від Windows у Linux графічне середовище не є жорстко інтегрованим у систему. Існує графічна підсистема, яка називається X Windows. Вона включає відеодрайвери, набір базових бібліотек, набір спеціальних протоколів та ін. Для відображення вікон програм використовується менеджер вікон. Безпосередньо ж зручний інтерфейс користувача для роботи з системою забезпечує середовище користувача. У Windows замість стандартного середовища також можна використовувати альтернативні середовища, такі як Talisman чи Aston наприклад. Що ж стосується Linux, то тут поняття стандартного середовища просто не існує, кожен розробник дистрибутиву обирає такий який йому подобається. Наразі існує три найбільш популярних середовища: Gnome, KDE та Xfce. В Ubuntu, прийнято у якості стандартного середовища Gnome. Їх відмінності коротко можна охарактеризувати таким чином: Gnome - орієнтується на максимальну зручність, KDE - на максимальну функціональність, а Xfce чудово підходить для старих комп'ютерів, з обмеженими ресурсами.

А де тут диск C:?

На відміну від Windows у Linux не використовуються літери для ідентифікації розділів. Замість цього, файлові системи різних розділів монтуються у вигляді каталогів єдиної кореневої файлової системи. Наприклад CD-ROM, флопі-дисковод чи флешку можна знайти у каталозі /media у вигляді окремих підкаталогів. Насправді, до будь-якого каталогу можна примонтувати будь-яку файлову систему. Причому не важливо, буде це розділ на вашому диску, чи він знаходиться на іншому комп'ютері у мережі. Windows починаючи з версії 2000 ткож стала підтримувати таку можливість, але нею не часто користуються та й можливостей там менше. Аналогічний підхід прийнято також у Windows Mobile.

Ну і де ж мені зберігати свої файли?

У вашому домашньому каталозі (Місця->Домашній каталог). Домашні каталоги всіх користувачів знаходяться у каталозі /home. Ви також можете бачити підкаталоги Documents, Music та Video, призначеня яких повинно бути зрозумілим і без пояснень.

Я вставив диск зі своєю улюбленою грою, клацнув на setup.exe але система говорить, що такий формат їй не відомий. У чому справа?

Кожна операційна система має власний формат програм. Хоча у Windows формат .exe вказує на програму, для Linux він є незнайомим. Тут програми розрізняються не по розширенню, а по наявності спеціального атрибуту eXecute у правах доступу до файлу.

А як же тоді тут встановлювати нові програми?

Дистрибутиви програм для Ubuntu розповсюджуються у спеціальних файлах .deb, так званих пакетах. Достатньо завантажити такий файл і клацнути по ньому мишкою, щоб програма встановилася. Але існує один важливий момент - на відміну від Windows, в Ubuntu пакет з програмою не завжди включає всі необхіжні для її роботи файли. Таким чином, перед встановленням основного пакету, обов'язково потрібно встановити і пакети з потрібними бібліотеками.  Така ситуація коли один пакет залежить від інших, так і називається, - залежності. Це може здатися складним, проте стандартний підхід Ubuntu передбачає встановлення програм з репозиторіїв. Репозиторій - це централізований каталог пакетів, зазвичай на якомусь сервері у мережі, хоча можуть бути і локальні репозиторії, на диску, чи DVD. Існують стандартні програми для встановлення програм з репозиторіїв, це або пункт Програми->Додати/Видалити або
Система->Адміністрування->Менеджер пакетів Synaptic. З допомогою цих програм можна переглянути каталог доступних програм і встановити будь-яку звичайним кліком.

А які ще переваги використання репозиторіїв?

Основних переваг дві: автоматичне розв'язання залежностей і автоматичне відслідковування оновлень програм. Тобто, якщо ви встановлюєте якусь програму, для роботи якої потрібен якийсь інший пакет, то система автоматично завантажить і встановить всі необхідні для її роботи пакети. Крім того, коли у репозиторії з'явиться нова версія якоїсь із встановлених програм, система вам про це нагадає.

Тобто системі потрібно ще й адреси репозиторіїв прописувати?

Величезна кількість програм знаходиться у офіційних репозиторіях, адреси яких вже відомі системі. Деякі програмні продукти мають власні репозиторії, їх завжди можна додати через Система->Адміністрування->Сховища.

А які ще методи розповсюдження програм існують?

Існує ще формат пакетів .rpm, його використовують такі дистрибутиви як Fedora чи SuSE. Напряму в Ubuntu він не підтримується, але .rpm у більшості випадків можна зконвертувати в .deb, з допомогою утиліти alien. Також іноді програми іноді розповсюджуються у вигляді простих архівів .tar.gz. У такому випадку потрібно читати readme. Такі архіви можуть включати або бінарні файли, тоді їх достатньо просто
кудись розпакувати, наприклад у каталог /opt (у Windows також існують програми які не потребують спеціальної інсталяції крім простої розпаковки). Іноді зустрічаються програми з власним інсталятором, аналогічно setup.exe у Windows (тут він часто називається setup.sh або install.sh). А іноді в Linux програми розповсюджуються у вигляді вихідних кодів, такі програми компілюються на місці (у такому випадку читайте readme).

А чи є все ж таки спосіб встановити програми для Windows?

Формально є. Для цього спочатку потрібно встановити Wine. Це альтернативна реалізація WinAPI, яка дозволяє запускати програми Windows (наприклад ігри) на платформі Linux. Потрібно тільки мати на увазі, що не абсолютно всі програми можна запустити таким чином. Взагалі, не рекомендується використовувати такий підхід, якщо є можливість використання нативних аналогів.

А як мені встановити необхідні драйвери?

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

Ну, здається ми розглянули основні питання, якщо я про щось забув, пишіть у коментарях і я доповню перелік.

7 коментарів:

  1. Привіт.

    У мене тут постала проблема з ПЗ на роботі. Чи не міг би ти розповісти, які є програми для бугалтерського обліку під Лінуксом? А ще краще під Убунту, або іншими дистр. з хорошим графічним інтерфейсом.

    ВідповістиВидалити
  2. Бухгалтерський облік для мене є досить важким питанням. Я багато чую про цю проблему, але оскільки сам за освітою є інженером будівельником, а моя основна робота взагалі більше пов'язана з викладанням комп'ютерних та математичних дисциплін, то я сам з нею не стикався.

    Скажу, те, що відомо мені. Якщо говорити про 1С, то у них для Linux є лише серверна версія. Що стосується клієнта, то у нього версії для Linux поки немає (хоча інформація про те, що в майбутньому він може з'явитися вже деякий час ходе). Проте існує спеціальна платна збірка Wine від Etersoft ( http://www.etersoft.ru/ ) яка дозволяє запускати вищезгаданий клієнт в Linux.

    Щодо відкритих альтернатив. Існує iceB (http://www.iceb.vc.ukrtel.net/) та АНАНАС (http://ananas.linux.ru.net/). Сказати щось конкретніше про ці програми я навряд чи зможу, бо дійсно, з даним напрямком ніяк не пов'язаний.

    ВідповістиВидалити
  3. Ну, Ананас — це досить підходящий варіант. А чи міг би ти проконсультувати стосовно встановлення системи і подальших налаштувань?

    Я спитав авторизацію до тебе в квіпі.

    ВідповістиВидалити
  4. А, що там консультувати? Встановлення Ubuntu вже пережовано багато разів на бузлічі ресурсів в Інтернеті. Там нема нічого складного. Вставляєш диск, він завантажується у режимі LiveCD, тикаєш на піктограму Install, відповідаєш на пару дилетантських питань і отримуєш готову систему. Потрібно тільки бути уважним з розбиттям диску, я не рекомендую обирати автоматичний режим, тільки експерт. Ну, а далі, все вже залежить від того, що потрібно саме тобі.

    PS: Я ICQ зараз практично не користуюсь. Причина досить банальна - мало вільного часу.

    ВідповістиВидалити
  5. Ще таке от питання (у якості ламера, звісно ж))) — яким чином визначати, які програми запускатимуться у віндовс-емуляторах (чи як там вони називаються), що для цього пропонує Убунту?

    ВідповістиВидалити
  6. Сама Ubuntu для цього нічого не пропонує. Вона - лише операційна система і не більше того.

    Для того щоб мати змогу запускати програми для Windows, спочатку потрібно встановити Wine (www.winehq.org). Взнати які програми можна запустити таким чином, а які ні можна тут: http://appdb.winehq.org/
    Якщо програма знаходиться у списку Platinum, це значить, що вона буде працювати так само як вона б працювала у Windows, без проблем. Список Gold містить програми яких можуть не працювати деякі другорядні функції. А у Silver містяться програми які хоча й мають деякі проблеми, проте є цілком юзабельними.

    Деякі програми звичайно під Wine можуть не запуститися. На такий випадок існують його комерційні версії, як Wine@Etersoft (орієнтований на запуск 1С), CrossoverOffice (розрахований на запуск офісних програм) або Cedega (для запуску ігор на базі DirectX). Всі ці проекти тісно співпрацюють з основною гілкою Wine, тому всі їхні нововведення через декілька версій зазвичай з'являються і у відкритій версії.

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

    ВідповістиВидалити
  7. Дякую гарно за поради. Щось ще виникне — знатиму в кого спитати.

    ВідповістиВидалити