1.2 Lekcja 1
Certyfikat: |
Linux Essentials |
---|---|
Wersja: |
1.6 |
Temat: |
1 Społeczność Linuxa i kariera w środowisku Open Source |
Cel nauki: |
1.2 Najważniejsze aplikacje Open Source |
Lekcja: |
1 z 1 |
Wstęp
Aplikacja to program komputerowy, którego przeznaczenie nie jest bezpośrednio związane z wewnętrznym działaniem komputera, ale z zadaniami wykonywanymi przez użytkownika. Dystrybucje Linuxa oferują aplikacje do wykonywania różnych zadań. Przykładem są: aplikacje biurowe, przeglądarki internetowe, odtwarzacze multimedialne, edytory itp. Często istnieje więcej niż jedna aplikacja lub narzędzie do wykonania określonego zadania. Do użytkownika należy wybór aplikacji, która najlepiej odpowiada jego potrzebom.
Pakiety oprogramowania
Prawie każda dystrybucja Linuxa posiada wstępnie zainstalowany zestaw standardowych aplikacji. Oprócz tych wstępnie zainstalowanych aplikacji, dystrybucja ma repozytorium pakietów z ogromną kolekcją aplikacji dostępnych do zainstalowania poprzez menedżera pakietów. Chociaż różne dystrybucje oferują podobne aplikacje, to jednak istnieją różne systemy zarządzania pakietami dla różnych dystrybucji. Na przykład Debian, Ubuntu i Linux Mint do instalowania pakietów oprogramowania używają narzędzi dpkg
, apt-get
i apt
, powszechnie znanych jako pakiety DEB. Dystrybucje takie jak Red Hat, Fedora i CentOS używają zamiast tego poleceń rpm
, yum
i dnf
, które z kolei instalują pakiety RPM. Ponieważ pakiety aplikacji dla różnych rodzin dystrybucji różnią się od siebie, to jest bardzo ważne, aby instalować pakiety z właściwego repozytorium, które jest przeznaczone i dostosowane dla określonej dystrybucji. Na ogół użytkownik końcowy nie musi martwić się o te szczegóły, ponieważ menedżer pakietów dystrybucji sam wybierze odpowiednie pakiety, zależności i przyszłe aktualizacje. Pakiety pomocnicze wymagane przez programy nazywane są zależnościami. Na przykład, jeśli biblioteka udostępnia funkcje do przetwarzania obrazów JPEG, które są używane przez wiele programów, wówczas biblioteka ta jest zwykle spakowana we własnym oddzielnym pakiecie, od którego zależą wszystkie aplikacje wymagające tej biblioteki.
Polecenia dpkg`
i rpm
działają na poszczególnych plikach pakietów. W praktyce prawie wszystkie zadania związane z zarządzaniem pakietami są wykonywane za pomocą poleceń apt-get
lub apt
w systemach używających pakietów DEB lub przez yum
lub dnf
w systemach używających pakietów RPM. Te polecenia działają z katalogami pakietów, mogą pobierać nowe pakiety i ich zależności oraz sprawdzać, czy są nowsze wersje zainstalowanych pakietów.
Instalacja pakietu
Załóżmy, że słyszałeś o poleceniu o nazwie figlet
i chcesz go wypróbować. Polecenie to wyświetla powiększony tekst na terminalu. Jednak po wykonaniu polecenia figlet
pojawia się następujący komunikat:
$ figlet -bash: figlet: command not found
Prawdopodobnie oznacza to, że pakiet nie jest zainstalowany w Twoim systemie. Jeśli Twoja dystrybucja używa pakietów DEB, możesz przeszukać ich repozytoria za pomocą polecenia "apt-cache search nazwa_pakietu" lub "apt search nazwa_pakietu". Polecenie "apt-cache" służy do wyszukiwania pakietów i wyświetlania informacji o dostępnych pakietach. Następujące polecenie wyszukuje wszelkie wystąpienia ciągu znaków “figlet” w nazwach i opisach pakietów:
$ apt-cache search figlet figlet - Make large character ASCII banners out of ordinary text
Wyszukiwanie zidentyfikowało pakiet o nazwie figlet, który odpowiada brakującemu poleceniu. Instalacja i usunięcie pakietu wymaga specjalnych uprawnień nadanych tylko administratorowi systemu: użytkownikowi o nazwie root
. Zwykli użytkownicy mogą instalować lub usuwać pakiety, poprzedzając polecenia instalacji lub usuwania poleceniem sudo
. Aby to zrobić, musisz wprowadzić hasło użytkownika root. W przypadku pakietów DEB instalacja jest wykonywana za pomocą polecenia apt-get install nazwa_pakietu
lub apt install nazwa_pakietu
:
$ sudo apt-get install figlet Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: figlet 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
W tym momencie pakiet zostanie pobrany i zainstalowany w systemie. Wszelkie zależności, których może potrzebować pakiet, zostaną również pobrane i zainstalowane:
Need to get 184 kB of archives. After this operation, 741 kB of additional disk space will be used. Get:1 http://archive.raspbian.org/raspbian stretch/main armhf figlet armhf 2.2.5-2 [184 kB] Fetched 184 kB in 0s (213 kB/s) Selecting previously unselected package figlet. (Reading database ... 115701 files and directories currently installed.) Preparing to unpack .../figlet_2.2.5-2_armhf.deb ... Unpacking figlet (2.2.5-2) ... Setting up figlet (2.2.5-2) ... update-alternatives: using /usr/bin/figlet-figlet to provide /usr/bin/figlet (figlet) in auto mode Processing triggers for man-db (2.7.6.1-2) ...
Po zakończeniu pobierania wszystkie pliki są kopiowane do odpowiednich lokalizacji i przeprowadzane są dalsze konfiguracje:
$ figlet Awesome! _ _ / \__ _____ ___ ___ _ __ ___ ___| | / _ \ \ /\ / / _ \/ __|/ _ \| '_ ` _ \ / _ \ | / ___ \ V V / __/\__ \ (_) | | | | | | __/_| /_/ \_\_/\_/ \___||___/\___/|_| |_| |_|\___(_)
W dystrybucjach opartych na pakietach RPM, wyszukiwanie odbywa się za pomocą yum search nazwa_pakietu
lub dnf search nazwa_pakietu
. Załóżmy, że chcesz wyświetlić dowolny tekst z ilustracją krowy z bajki, ale nie masz pewności, który pakiet może wykonać to zadanie. Podobnie jak w przypadku pakietów DEB, polecenia wyszukiwania RPM akceptują również terminy opisowe:
$ yum search speaking cow Last metadata expiration check: 1:30:49 ago on Tue 23 Apr 2019 11:02:33 PM -03. ==================== Name & Summary Matched: speaking, cow ==================== cowsay.noarch : Configurable speaking/thinking cow
Po znalezieniu odpowiedniego pakietu w repozytorium, można go zainstalować za pomocą polecenia yum install nazwa_pakietu
lub dnf install nazwa_pakietu
:
$ sudo yum install cowsay Last metadata expiration check: 2:41:02 ago on Tue 23 Apr 2019 11:02:33 PM -03. Dependencies resolved. ============================================================================== Package Arch Version Repository Size ============================================================================== Installing: cowsay noarch 3.04-10.fc28 fedora 46 k Transaction Summary ============================================================================== Install 1 Package Total download size: 46 k Installed size: 76 k Is this ok [y/N]: y
Tutaj również żądany pakiet zostanie pobrany i zainstalowany razem ze wszystkimi możliwymi zależnościami:
Downloading Packages: cowsay-3.04-10.fc28.noarch.rpm 490 kB/s | 46 kB 00:00 ============================================================================== Total 53 kB/s | 46 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : cowsay-3.04-10.fc28.noarch 1/1 Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1 Verifying : cowsay-3.04-10.fc28.noarch 1/1 Installed: cowsay.noarch 3.04-10.fc28 Complete!
Polecenie cowsay
robi dokładnie to, co sugeruje jego nazwa, czyli:
$ cowsay "Brought to you by yum" _______________________ < Brought to you by yum > ----------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Chociaż polecenia figlet
i cowsay
mogą wydawać się bezużyteczne, to jednak umożliwiają zwrócenie uwagi innych użytkowników na istotne informacje.
Usunięcie pakietu
Te same polecenia używane do instalowania pakietów służą także do ich usuwania. Wszystkie polecenia wykorzystują słowo kluczowe remove
, aby odinstalować zainstalowany pakiet: apt-get remove nazwa_pakietu
lub apt remove nazwa_pakietu
dla pakietów DEB oraz yum remove nazwa_pakietu
lub dnf remove nazwa_pakietu
dla pakietów RPM. Do usunięcia jest również wymagane podniesienie uprawnień za pomocą polecenia sudo
. Na przykład, aby usunąć poprzednio zainstalowany pakiet figlet z dystrybucji opartej na DEB wpisujemy:
$ sudo apt-get remove figlet Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: figlet 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 741 kB disk space will be freed. Do you want to continue? [Y/n] Y
Po potwierdzeniu operacji pakiet jest usuwany z systemu:
(Reading database ... 115775 files and directories currently installed.) Removing figlet (2.2.5-2) ... Processing triggers for man-db (2.7.6.1-2) ...
Podobna procedura jest wykonywana w systemie opartym na RPM. Na przykład, aby usunąć poprzednio zainstalowany pakiet cowsay z dystrybucji opartej na RPM, wpisujemy:
$ sudo yum remove cowsay Dependencies resolved. ================================================================================== Package Arch Version Repository Size ================================================================================== Removing: cowsay noarch 3.04-10.fc28 @fedora 76 k Transaction Summary ================================================================================== Remove 1 Package Freed space: 76 k Is this ok [y/N]: y
Tutaj również wymagane jest potwierdzenie, a następnie pakiet jest usuwany z systemu:
Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Erasing : cowsay-3.04-10.fc28.noarch 1/1 Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1 Verifying : cowsay-3.04-10.fc28.noarch 1/1 Removed: cowsay.noarch 3.04-10.fc28 Complete!
Pliki konfiguracyjne usuniętych pakietów są nadal zachowywane w systemie, dzięki czemu można ich użyć ponownie, jeśli byśmy chcieli w przyszłości zainstalować ponownie ten pakiet.
Aplikacje biurowe
Aplikacje biurowe służą do edycji plików, takich jak teksty, prezentacje, arkusze kalkulacyjne i inne formaty powszechnie używane w środowisku biurowym. Aplikacje te są zwykle zorganizowane w kolekcje, zwane pakietami biurowymi.
Najczęściej używanym pakietem biurowym w systemie Linux przez długi czas był OpenOffice.org, jako otwarta wersja pakietu StarOffice, wydanego przez Sun Microsystems. Kilka lat później firma Sun została przejęta przez Oracle Corporation, która z kolei przeniosła projekt do Apache Foundation. Wówczas nazwa OpenOffice.org została przemianowana na Apache OpenOffice. W międzyczasie Document Foundation wydała inny pakiet biurowy o nazwie LibreOffice oparty na tym samym kodzie źródłowym.
Oba projekty mają te same podstawowe funkcje i są zgodne z formatami dokumentów z pakietu Microsoft Office. Jednak preferowanym formatem dokumentów jest Open Document Format, (ODF) całkowicie otwarty i znormalizowany format pliku ISO. Użycie plików ODF zapewnia, że dokumenty mogą być przesyłane między systemami operacyjnymi i aplikacjami od różnych dostawców, takich jak Microsoft Office. Główne aplikacje wchodzące w skład OpenOffice / LibreOffice to:
- Writer
-
Edytor tekstu
- Calc
-
Arkusz kalkulacyjny
- Impress
-
Prezentacje
- Rysuj
-
Rysowanie wektorowe
- Math
-
Formuły matematyczne
- Base
-
Baza danych
Zarówno LibreOffice, jak i Apache OpenOffice są oprogramowaniem open source, jednakże LibreOffice jest licencjonowany na podstawie LGPLv3, podczas gdy Apache OpenOffice jest licencjonowany na podstawie licencji Apache License 2.0. Różnica w licencjach oznacza, że LibreOffice może posiadać ulepszenia wprowadzone przez Apache OpenOffice, ale Apache OpenOffice nie może posiadać ulepszeń wprowadzonych przez LibreOffice. Dlatego ten fakt i bardziej aktywna społeczność programistów są powodem, dla którego większość dystrybucji używa LibreOffice jako domyślnego pakietu biurowego.
Przeglądarka internetowa
Dla większości użytkowników głównym celem pracy z komputerem jest zapewnienie dostępu do Internetu. W dzisiejszych czasach strony internetowe mogą działać jako w pełni funkcjonalna aplikacja, której zaletą jest to, że można uzyskać do nich dostęp z dowolnego miejsca na świecie bez konieczności instalowania dodatkowego oprogramowania. To sprawia, że przeglądarka internetowa jest najważniejszą aplikacją systemu operacyjnego, przynajmniej dla przeciętnego użytkownika.
Tip
|
Jednym z najlepszych źródeł wiedzy o tworzeniu stron internetowych jest MDN Web Docs, dostępna pod adresem https://developer.mozilla.org/. Witryna utrzymywana przez Mozillę jest pełna samouczków dla początkujących oraz materiałów referencyjnych dotyczących większości najnowszych technologii internetowych. |
Główne przeglądarki internetowe w środowisku Linux to Google Chrome i Mozilla Firefox. Chrome to przeglądarka internetowa obsługiwana przez Google, ale oparta na przeglądarce typu open source o nazwie Chromium, którą można zainstalować za pomocą menedżera pakietów dystrybucji i jest w pełni kompatybilna z Chrome. Firefox jest utrzymywany i zarządzany przez Mozillę, organizację non-profit. Jest to przeglądarka, której początki są powiązane z Netscape, pierwszą popularną przeglądarką internetową, korzystającą z modelu open source. Fundacja Mozilla jest głęboko zakorzeniona w rozwój otwartych standardów stanowiących podstawę współczesnej sieci.
Mozilla rozwija również inne aplikacje, takie jak klienta poczty elektronicznej Thunderbird. Wielu użytkowników decyduje się na używanie poczty internetowej zamiast dedykowanej aplikacji e-mail, ale klient taki jak Thunderbird oferuje dodatkowe funkcje i najlepiej integruje się z innymi aplikacjami na komputerze.
Multimedia
W porównaniu z dostępnymi aplikacjami internetowymi, aplikacje desktopowe są nadal najlepszą opcją do tworzenia treści multimedialnych. Czynności związane z obróbką plików multimedialnych, takie jak renderowanie wideo, często wymagają dużej ilości zasobów systemowych, którymi najlepiej zarządza lokalna aplikacja komputerowa. Poniżej wymieniono niektóre z najpopularniejszych aplikacji multimedialnych dla środowiska Linux oraz ich zastosowania.
- Blender
-
Program służący do tworzenia animacji poprzez technikę renderowania 3D. Blender można również wykorzystać do eksportowania obiektów 3D, które mają zostać wydrukowane na drukarce 3D.
- GIMP
-
W pełni funkcjonalny edytor obrazów, który jest porównywalny z Adobe Photoshop, ale ma własne koncepcje i narzędzia do pracy z obrazami. GIMP ma zastosowanie do tworzenia, edycji i zapisywania większości plików bitmapowych, takich jak JPEG, PNG, GIF, TIFF i wiele innych.
- Inkscape
-
Program Inkscape to edytor grafiki wektorowej, podobny do Corel Draw lub Adobe Illustrator. Domyślnym formatem Inkscape jest SVG - otwarty standard grafiki wektorowej. Pliki SVG mogą być otwierane w dowolnej przeglądarce internetowej, a ze względu na charakter grafiki wektorowej mogą być używane w elastycznych układach stron internetowych.
- Audacity
-
Program służący do edycji plików audio, którego można używać do filtrowania, stosowania efektów i konwersji między wieloma różnymi formatami audio, takimi jak MP3, WAV, OGG, FLAC itp.
- ImageMagick
-
ImageMagick to narzędzie wiersza poleceń do konwersji i edycji większości typów plików graficznych. Służy również do tworzenia dokumentów PDF z plików graficznych i odwrotnie.
Istnieje również wiele aplikacji przeznaczonych do odtwarzania multimediów. Najpopularniejszą aplikacją do odtwarzania plików wideo jest VLC, ale niektórzy użytkownicy wolą alternatywne programy, takie jak smplayer. Lokalne odtwarzanie muzyki ma również wiele opcji, takich jak Audacious, Banshee i Amarok, które mogą również zarządzać kolekcją lokalnych plików dźwiękowych.
Programy serwerowe
Kiedy przeglądarka internetowa ładuje stronę internetową, w rzeczywistości łączy się z komputerem zdalnym i prosi o podanie określonych informacji. W tym scenariuszu komputer, na którym działa przeglądarka internetowa, nazywany jest klientem, a komputer zdalny - serwerem.
Serwer, który może być zarówno zwykłym komputerem stacjonarnym, jak i specjalistycznym sprzętem, potrzebuje określonego programu do zarządzania dostarczanymi informacjami. Jeśli chodzi o udostępnianie stron internetowych, większość serwerów na całym świecie wykorzystuje programy serwerowe typu open source. Ten konkretny serwerowy program nazywa się HTTP server (HTTP oznacza Hyper Text Transfer Protocol), a najpopularniejsze to Apache, Nginx i lighttpd.
Nawet proste strony internetowe mogą wymagać tak zwanej treści statycznej (na przykład zwykłych plików) lub zawartości dynamicznej (która jest zebrana z różnych źródeł). Rolą serwera HTTP jest zbieranie wszystkich żądanych danych i wysyłanie ich z powrotem do przeglądarki, która następnie porządkuje zawartość zgodnie z otrzymanym dokumentem HTML (Hyper Text Markup Language) i innymi plikami pomocniczymi. Dlatego renderowanie strony internetowej obejmuje operacje wykonywane zarówno po stronie serwera, jak i wykonywane po stronie klienta. Obie strony mogą używać niestandardowych skryptów do wykonywania określonych zadań. Po stronie serwera HTTP dość powszechne jest używanie języka skryptowego PHP. JavaScript jest z kolei językiem skryptowym, używanym po stronie klienta (przeglądarki internetowej).
Programy serwera mogą dostarczać wszelkiego rodzaju informacji. Często zdarza się, że program na serwerze żąda informacji dostarczonych przez inne programy umieszczone na serwerze. Dzieje się tak, gdy np. serwer HTTP potrzebuje informacji z serwera bazy danych.
Na przykład, gdy żądana jest strona dynamiczna, serwer HTTP zwykle wysyła zapytanie do bazy danych w celu zebrania wszystkich niezbędnych informacji i odsyła dynamiczną zawartość z powrotem do klienta. Podobnie wygląda sytuacja, gdy użytkownik rejestruje się w serwisie WWW: wówczas serwer HTTP zbiera przesłane przez klienta dane i przechowuje je w bazie danych.
Baza danych to uporządkowany zbiór informacji. Serwer bazy danych przechowuje zawartość w sposób sformatowany i umożliwia niezawodny i szybki odczyt, zapis i łączenie dużych ilości danych. Serwery baz danych typu open source są wykorzystywane w wielu aplikacjach, nie tylko w Internecie, ale także w aplikacjach lokalnych, które mogą przechowywać dane, łącząc się z lokalnym serwerem bazy danych. Najpopularniejszym typem bazy danych jest relacyjna baza danych, w której dane są zorganizowane w predefiniowanych tabelach. Najpopularniejszymi relacyjnymi bazami danych typu open source są MariaDB (pochodzące z MySQL) i PostgreSQL.
Udostępnianie danych
W sieciach lokalnych, na przykład w biurach i w domu, pożądane jest, aby komputery miały dostęp nie tylko do Internetu, ale także aby mogły komunikować się ze sobą. Czasami jeden komputer działa jako serwer, czasami ten sam komputer działa jako klient. Jest to konieczne, w celu uzyskania dostępu do plików na innym komputerze w sieci - na przykład pliku przechowywanego na komputerze stacjonarnym z urządzenia przenośnego - bez kłopotów z kopiowaniem go na dysk USB, płytę CD/DVD itp.
Pomiędzy komputerami z systemem Linux często używany jest Sieciowy System Plików NFS (Network File System). Protokół NFS to standardowy sposób udostępniania systemów plików w sieciach wyposażonych tylko w komputery z systemem Unix / Linux. Dzięki NFS komputer może udostępniać jeden lub więcej swoich katalogów określonym komputerom w sieci, dzięki czemu mogą one czytać i zapisywać pliki w tych katalogach. NFS może być nawet używany do udsotępnienia drzewa katalogów całego systemu operacyjnego klientom, którzy będą go używać do rozruchu. Te komputery, nazywane cienkimi klientami, są najczęściej używane w dużych sieciach, aby uniknąć konserwacji każdego systemu operacyjnego na każdej maszynie.
Jeśli do sieci podłączone są inne typy systemów operacyjnych, zaleca się użycie protokołu udostępniania danych, zrozumiałego dla wszystkich. To wymaganie spełnia Samba. Samba implementuje protokół udostępniania plików w sieci. Został on pierwotnie stworzony dla systemu operacyjnego Windows, ale obecnie jest kompatybilny ze wszystkimi głównymi systemami operacyjnymi. Dzięki Sambie komputery w sieci lokalnej mogą nie tylko udostępniać pliki, ale także drukarki.
W niektórych sieciach lokalnych autoryzacja odbywa się podczas logowania na stacji roboczej i jest przyznawana przez serwer centralny zwany kontrolerem domeny. Zarządza on dostępem do różnych zasobów lokalnych i zdalnych. Kontroler domeny to usługa świadczona przez Active Directory firmy Microsoft. Stacje robocze z systemem Linux mogą łączyć się z kontrolerem domeny za pomocą Samby lub podsystemu uwierzytelniania o nazwie SSSD. Od wersji 4 Samba może również pracować jako kontroler domeny w sieciach heterogenicznych.
Jeśli celem jest wdrożenie rozwiązania przetwarzania w chmurze, które oferuje różne metody udostępniania danych w sieci, należy rozważyć dwie alternatywy: ownCloud i Nextcloud. Oba projekty są bardzo podobne, ponieważ Nextcloud jest spin-offem ownCloud, co nie jest rzadkością w projektach open source. Takie firmy spin-off są zwykle nazywane fork. Oba rozwiązania zapewniają te same podstawowe funkcje: udostępnianie i synchronizację plików, wspólne obszary robocze, kalendarz, kontakty i pocztę email, a wszystko to za pośrednictwem interfejsów komputerowych, mobilnych i internetowych. Nextcloud zapewnia również prywatne konferencje audio / wideo, podczas gdy ownCloud koncentruje się bardziej na udostępnianiu plików i integracji z oprogramowaniem innych firm. Wiele innych funkcji jest dostępnych jako wtyczki, które w razie potrzeby można aktywować później.
Zarówno ownCloud, jak i Nextcloud, oferują płatną wersję z dodatkowymi funkcjami i rozszerzonym wsparciem. To, co odróżnia je od innych komercyjnych rozwiązań, to możliwość bezpłatnej instalacji Nextcloud lub ownCloud na prywatnym serwerze, unikając w ten sposób przechowywania wrażliwych danych na nieznanym serwerze. Ponieważ wszystkie usługi opierają się na komunikacji HTTP i są napisane w PHP, instalację należy przeprowadzić na wcześniej skonfigurowanym serwerze internetowym, takim jak Apache. Jeśli rozważasz zainstalowanie ownCloud lub Nextcloud na własnym serwerze, upewnij się, że uruchomiłeś także HTTPS do szyfrowania wszystkich połączeń z Twoją chmurą.
Administracja sieci
Komunikacja między komputerami jest możliwa tylko wtedy, gdy sieć działa poprawnie. Zwykle konfiguracja sieci jest wykonywana przez wiele programów uruchomionych na routerze, odpowiedzialnych za konfigurację i sprawdzanie dostępności sieci. Potrzebne są do tego dwie podstawowe usługi sieciowe: protokół dynamicznej konfiguracji hosta DHCP (Dynamic Host Configuration Protocol) i system nazw domenowych DNS (Domain Name System).
DHCP jest odpowiedzialny za przypisanie adresu IP do hosta, gdy podłączony jest kabel sieciowy lub gdy urządzenie łązczy się z siecią bezprzewodową. Podczas łączenia się z Internetem, serwer DHCP dostawcy usług internetowych nadaje żądającemu urządzeniu adres IP. Serwer DHCP jest również bardzo przydatny w sieciach lokalnych do automatycznego przypisywania adresów IP wszystkim podłączonym urządzeniom. Jeśli protokół DHCP nie jest skonfigurowany lub nie działa poprawnie, wówczas adres IP każdego urządzenia podłączonego do sieci należy skonfigurować ręcznie.Ręczne ustawianie adresów IP zarówno w małych jak i w dużych sieciach jest mało praktyczne, dlatego większość routerów sieciowych ma domyślnie wstępnie skonfigurowany serwer DHCP.
Adres IP jest wymagany do komunikacji z innym urządzeniem w sieci IP. Jednakże nazwy domen, takie jak www.lpi.org
, są znacznie bardziej zapamiętane niż adres IP, taki jak 203.0.113.165
. Sama nazwa domeny nie wystarczy jednak do nawiązania komunikacji w sieci, dlatego nazwa domeny musi zostać przetłumaczona przez serwer DNS na adres IP. Adres IP serwera DNS jest dostarczany przez serwer DHCP dostawcy usług internetowych i używany przez wszystkie podłączone systemy do tłumaczenia nazw domen na adresy IP.
Zarówno ustawienia DHCP, jak i DNS, można zmodyfikować za pośrednictwem interfejsu internetowego udostępnionego przez router. Na przykład możliwe jest ograniczenie przypisywania adresów IP tylko do znanych urządzeń lub przypisanie stałego adresu IP do niektórych maszyn. Możliwa jest również zmiana domyślnego serwera DNS dostarczonego przez dostawcę usług internetowych. Niektóre serwery DNS innych firm, takie jak serwery Google lub OpenDNS, mogą czasami zapewniać szybsze odpowiedzi i oferują dodatkowe funkcje.
Języki programowania
Wszystkie programy komputerowe (programy klienckie i serwerowe, aplikacje komputerowe i sam system operacyjny) są tworzone w jednym lub kilku językach programowania. Programy te mogą być pojedynczym plikiem lub złożonym systemem setek plików, które system operacyjny traktuje jako sekwencję poleceń, które są interpretowane i wykonywane przez procesor i inne urządzenia.
Istnieje wiele języków programowania do bardzo różnych celów, a systemy Linux zapewniają ich bardzo dużo. Ponieważ oprogramowanie open source obejmuje także źródła programów, zatem systemy Linux oferują programistom doskonałe warunki do zrozumienia oprogramowania i jego modyfikacji lub tworzenia go zgodnie z własnymi potrzebami.
Kod źródłowy to każdy program, który zaczyna się jako plik tekstowy. Jest on napisany w mniej lub bardziej czytelnym dla człowieka języku, który opisuje, co robi program. Procesor komputera nie może bezpośrednio wykonać tego kodu, dlatego w kompilowanych językach kod źródłowy jest konwertowany do pliku binarnego, który może być następnie wykonany przez komputer. Za konwersję kodu źródłowego do postaci wykonywalnej odpowiedzialny jest program o nazwie kompiler. Ponieważ skompilowany plik binarny jest specyficzny dla jednego typu procesora, może być konieczne ponowne skompilowanie programu, aby można go było uruchomić na innym typie komputera.
W przypadku języków interpretowanych (tłumaczonych) program nie musi być wcześniej kompilowany. Zamiast tego interpreter odczytuje kod źródłowy i wykonuje polecenia za każdym razem, gdy program jest uruchamiany. To sprawia, że programowanie jest łatwiejsze i szybsze, jednakże programy zinterpretowane są zwykle wolniejsze niż programy skompilowane.
Oto niektóre z najpopularniejszych języków programowania:
- JavaScript
-
JavaScript to język programowania wykorzystywany głównie na stronach internetowych. Początkowo aplikacje JavaScript były bardzo proste, podobnie jak procedury walidacji (poprawności sprawdzania) formularzy. Obecnie JavaScript służy do tworzenia bardzo złożonych aplikacji nie tylko w sieci, ale także na serwerach i urządzeniach mobilnych.
- C
-
Język programowania C jest ściśle powiązany z systemami operacyjnymi, zwłaszcza z Uniksem, ale jest używany także do pisania wszelkiego rodzaju programów na prawie każdym urządzeniu. Wielkimi zaletami języka C są elastyczność i szybkość. Ten sam kod źródłowy napisany w języku C można skompilować do uruchomienia na różnych platformach i systemach operacyjnych, z niewielkimi modyfikacjami lub bez nich. Jednak po skompilowaniu program będzie działać tylko w systemie docelowym.
- Java
-
Głównym aspektem Javy jest to, że programy napisane w tym języku są przenośne, co oznacza, że ten sam program można uruchomić w różnych systemach operacyjnych. Pomimo nazwy, program Java nie ma nic wspólnego z JavaScriptem.
- Perl
-
Perl jest językiem programowania używanym najczęściej do przetwarzania treści tekstowych. Jego szczególną siłą są wyrażenia regularne, co sprawia, że Perl jest językiem odpowiednim do filtrowania i analizowania tekstu.
- Shell
-
Powłoka, szczególnie powłoka Bash, to nie tylko język programowania, ale także interaktywny interfejs do uruchamiania innych programów. Programy powłoki, znane jako skrypty powłoki, mogą zautomatyzować złożone lub powtarzalne zadania w środowisku wiersza poleceń.
- Python
-
Python to bardzo popularny język programowania wśród studentów i profesjonalistów, którzy nie mają bezpośrednio nic wspólnego z informatyką. Chociaż Python posiada zaawansowane funkcje, to jego proste podejście sprawia, że jest świetnym sposobem na rozpoczęcie nauki programowania
- PHP
-
PHP jest najczęściej używany jako język skryptowy po stronie serwera do generowania treści do umieszczenia w sieci. Większość internetowych stron HTML to nie pliki statyczne, ale pliki z dynamiczną zawartością, generowaną przez serwer z różnych źródeł, takich jak bazy danych. Programy PHP - czasami nazywane po prostu stronami PHP lub skryptami PHP - są często używane do generowania tej zawartości. Termin LAMP pochodzi z połączenia systemu operacyjnego Linux, serwera HTTP Apache, bazy danych MySQL (lub MariaDB) i programowania PHP. Serwery LAMP to bardzo popularne rozwiązanie do uruchamiania i obsługi serwerów internetowych. Oprócz PHP, do implementacji takich aplikacji można wykorzystać wszystkie opisane powyżej języki programowania.
C i Java to języki kompilowane. Kod źródłowy napisany w języku C, aby był wykonany przez system operacyjny, musi być przekonwertowany na binarny kod maszynowy. Z kolei kod źródłowy Java jest konwertowany na kod bajtowy, który wykonywany jest w specjalnym środowisku oprogramowania zwanym wirtualną maszyną Java (Java Virtual Machine). JavaScript, Perl, skrypt powłoki, Python i PHP to języki interpretowane, znane również pod nazwą języki skryptowe.
Ćwiczenia z przewodnikiem
-
Dla każdego z poniższych poleceń określ, czy należy ono do systemu zarządzania pakietami Debiana, czy do systemu zarządzania pakietami Red Hat:
dpkg
rpm
apt-get
yum
dnf
-
Jakiego polecenia można użyć do zainstalowania Blendera w systemie Ubuntu? Jak można uruchomić program po instalacji?
-
Która aplikacja z pakietu LibreOffice jest używana do obsługi elektronicznych arkuszy kalkulacyjnych?
-
Jaka przeglądarka internetowa typu open source jest podstawą do rozwoju Google Chrome?
-
SVG to otwarty standard grafiki wektorowej. Jaka jest najpopularniejsza aplikacja do edycji plików SVG w systemach Linux?
-
Dla każdego z następujących formatów plików wpisz nazwę aplikacji, która może otwierać i edytować odpowiedni plik:
png
doc
xls
ppt
wav
-
Który pakiet oprogramowania umożliwia udostępnianie plików między komputerami z systemem Linux i Windows w sieci lokalnej?
Ćwiczenia eksploracyjne
-
Wiesz, że pliki konfiguracyjne są zachowywane, nawet jeśli powiązany pakiet zostanie usunięty z systemu. Jak można automatycznie usunąć pakiet o nazwie cups i jego pliki konfiguracyjne z systemu opartego na DEB?
-
Załóżmy, że masz dużo plików graficznych TIFF i chcesz je przekonwertować do formatu JPEG. Którego pakietu oprogramowania można użyć do konwersji tych plików bezpośrednio w wierszu poleceń?
-
Jaki pakiet oprogramowania musisz zainstalować, aby móc otwierać dokumenty Microsoft Word przesłane do Ciebie przez użytkownika systemu Windows?
-
Każdego roku linuxquestions.org przeprowadza ankietę na temat najpopularniejszych aplikacji linuksowych. Odwiedź stronę https://www.linuxquestions.org/questions/2018-linuxquestions-org-members-choice-awards-128/ i dowiedz się, które aplikacje komputerowe są najbardziej popularne wśród doświadczonych użytkowników Linuxa.
Podsumowanie
W tej lekcji nauczyłeś się:
-
Systemach zarządzania pakietami używanymi w głównych dystrybucjach Linuxa
-
Aplikacjach typu open source, które mogą edytować popularne formaty plików
-
Programach serwerowych, stanowiących podstawę wielu ważnych usług internetowych i sieci lokalnych
-
Popularnych językach programowania i ich zastosowaniach
Odpowiedzi do ćwiczeń z przewodnikiem
-
Dla każdego z poniższych poleceń określ, czy należy ono do systemu zarządzania pakietami Debiana, czy do systemu zarządzania pakietami Red Hat:
dpkg
System zarządzania pakietami Debiana
rpm
System zarządzania pakietami Red Hat
apt-get
System zarządzania pakietami Debiana
yum
System zarządzania pakietami Red Hat
dnf
System zarządzania pakietami Red Hat
-
Jakiego polecenia można użyć do zainstalowania Blendera w systemie Ubuntu? Jak można uruchomić program po instalacji?
Polecenie
apt-get install blender
. Nazwę pakietu należy podać małymi literami. Program można uruchomić bezpośrednio z terminala za pomocą poleceniablender
lub wybierając go z menu aplikacji. -
Która aplikacja z pakietu LibreOffice jest używana do obsługi elektronicznych arkuszy kalkulacyjnych?
Calc
-
Jaka przeglądarka internetowa typu open source jest podstawą do rozwoju Google Chrome?
Chrom
-
SVG to otwarty standard grafiki wektorowej. Jaka jest najpopularniejsza aplikacja do edycji plików SVG w systemach Linux?
Inkscape
-
Dla każdego z następujących formatów plików wpisz nazwę aplikacji, która może otwierać i edytować odpowiedni plik:
png
Gimp
doc
LibreOffice Writer
xls
LibreOffice Calc
ppt
LibreOffice Impress
wav
Audacity
-
Który pakiet oprogramowania umożliwia udostępnianie plików między komputerami z systemem Linux i Windows w sieci lokalnej?
Samba
Odpowiedzi do ćwiczeń eksploracyjnych
-
Wiesz, że pliki konfiguracyjne są zachowywane, nawet jeśli powiązany pakiet zostanie usunięty z systemu. Jak można automatycznie usunąć pakiet o nazwie cups i jego pliki konfiguracyjne z systemu opartego na DEB?
apt-get purge cups
-
Załóżmy, że masz dużo plików graficznych TIFF i chcesz je przekonwertować do formatu JPEG. Którego pakietu oprogramowania można użyć do konwersji tych plików bezpośrednio w wierszu poleceń?
ImageMagick
-
Jaki pakiet oprogramowania musisz zainstalować, aby móc otwierać dokumenty Microsoft Word przesłane do Ciebie przez użytkownika systemu Windows?
LibreOffice lub OpenOffice
-
Every year, linuxquestions.org promotes a survey about the most popular Linux applications. Visit https://www.linuxquestions.org/questions/2018-linuxquestions-org-members-choice-awards-128/ and find out which desktop applications are most popular among experienced Linux users.
Browser: Firefox. Email client: Thunderbird. Media player: VLC. Raster graphics editor: GIMP.