Obecnie większość użytkowników systemów operacyjnych posługuję się wyłącznie interfejsem graficznym potocznie zwanym GUI (Graphical User Interface). Praca myszą i wyklikiwanie poszczególnych ustawień wydaje się efektywniejsze niż klepanie komend w terminalu tekstowym. Czy aby na pewno? Okazuje się, że konsole tekstowe wcale nie odeszły w zapomnienie…
Struktura systemu
Aby lepiej zrozumieć jaką rolę pełni powłoka systemowa, w pierwszej kolejności przyjrzyj się uogólnionej architekturze systemu komputerowego. Żeby nie zaciemniać całości obrazu, schemat podzieliłem na pięć warstw, które jednak dość mocno oddziałują ze sobą.
Pierwszą warstwą jest sprzęt komputerowy (ang. Hardware). Najogólniej mówiąc sprzęt komputerowy to fizyczne zasoby o konkretnej architekturze zarządzane przez system operacyjny. Co możemy zaliczyć do sprzętu komputerowego? Będzie to np. procesor, płyta główna, dysk i temu podobne sprzęty.
Następnie, aby zapanować nad sprzętem potrzebny jest jakiś system operacyjny, a mówiąc bardziej precyzyjnie jego jądro (ang. Kernel). Jako że jest to podstawowa część każdego systemu operacyjnego, odpowiada za wszystkie jego zadania. To między innymi budowa jądra determinuje wszystkie cechy danego systemu.
Dalej warstwa aplikacji (ang. Applications). Są to aplikacje czy też programy, które instalujesz w systemie operacyjnym. W tym przypadku mam na myśli głównie narzędzia serwerowe takie jak Microsoft Exchange czy SQL Server, które mogą być zarządzane z linii komend.
Następnie dochodzimy do powłoki systemowej (ang. Shell). Tutaj w zależności od konkretnego systemu można wymienić kilka rodzajów powłok. O samej powłoce będzie nieco dalej.
Na zakończenie narzędzia (ang. Utilities), jest to dość pokaźny zbiór, do którego zaliczają się skrypty, różnego rodzaju polecenia czy programy zewnętrzne.
Funkcja powłoki systemowej
Chociaż powłoka systemowa nie jest częścią systemu operacyjnego, intensywnie wykorzystuje wiele jego właściwości i jest doskonałym przykładem demonstrującym wykorzystanie wywołań systemowych. Dodatkowo pełni funkcje podstawowego interfejsu pracy użytkownika. Okazuję się bowiem, że domyślnie użytkownik nie ma możliwości pracy bezpośrednio z jądrem systemu. Konieczny jest do tego jakiś program pośredniczący. Program, który umożliwi interakcję użytkownika, siedzącego przy terminalu z systemem operacyjnym i aplikacjami. I takim właśnie programem jest powłoka systemowa. Za jej pomocą można wprowadzać polecenia dla jądra systemu. I tutaj automatycznie nasuwa się pytanie. Dlaczego użytkownik ma się komunikować z jądrem systemu operacyjnego? Gdyż to właśnie jądro systemu zawiera wszystkie podprogramy i procesy niezbędne do prawidłowej pracy i funkcjonowania systemu operacyjnego oraz sprzętu komputerowego.
Działanie
Przy logowaniu użytkownika automatycznie uruchamiana jest powłoka systemowa. W większości nowych komputerów domyślnie do czynienia mamy z powłoką graficzną. Powłoka taka zwykle ma postać menedżera plików kontrolowanego przy pomocy myszy i pozwalającego w łatwy sposób wykonywać operacje w systemie. W skład standardowej powłoki systemu Windows wchodzi między innymi pulpit, menu Start oraz pasek zadań. Dla większości użytkowników powłoka graficzna jest podstawowym sposobem porozumiewania się z systemem operacyjnym, gdyż jest łatwa, przejrzysta i przyjemna.
Nieco inaczej prezentuje się powłoka tekstowa, która z kolei występuje np. w systemie Windows Server w opcji Core. W tym przypadku musisz się mierzyć z tzw. interpreterem poleceń. Patrząc historycznie, jest to rozwiązanie sięgające początków komputerów i jak się okazuje, w specyficznych sytuacjach jest bardziej użyteczne. Przykładem tekstowej powłoki systemu Windows jest znany większości windowsowy command line, czyli program cmd.exe. Standardowo po uruchomieniu interpretera poleceń użytkownik znajduje się w wierszu poleceń i może wydawać polecenia systemowi. Zachęca go do tego tzw. znak zachęty (ang. command prompt) – zwykle jest to któryś z tych znaków ’>’, '$’ lub '#’. Dodatkowo w standardowej konfiguracji przed znakiem zachęty występuje aktualna lokalizacja, czyli konkretny katalog w systemie plików. Część systemów dodatkowo wyświetla nazwę bieżącego użytkownika, choć w zasadzie nie ma to większego znaczenia, gdyż wszystkie te elementy są konfigurowalne.
Powłoka tekstowa zawiera podstawowy wbudowany zbiór poleceń, przykładem może być komenda do wyświetlenia zawartości katalogów dir. Oczywiście każda powłoka ma swoje ograniczenia i gdy wydana przez użytkownika komenda nie jest poleceniem wewnętrznym, powłoka tworzony proces potomny i wykonuje dane działanie np. uruchamia program zewnętrzny. Następnie oczekuje na jego zamknięcie, po czym wraca do początkowego stanu oczekiwania na wprowadzenie polecenia. Jednym z przykładów może być program ping.exe, który służy do wysłania zapytania ICMP do hosta.
Dlaczego powłoka tekstowa?
Interfejs graficzny jest naturalnym etapem ewolucji systemów operacyjnych, a jego stopień skomplikowania jest wprost proporcjonalny do świadomości użytkowników tychże systemów. I tak jak w przypadku użytkowników proces ten raczej zachowa swoją tendencję tak w przypadku administratorów widoczna jest zmiana podejścia. Co więcej, rozbudowanie współczesnych systemów teleinformatycznych wymusza na administratorach zastosowanie innych, wydajniejszych metod zarządzania. Zobaczmy teraz kilka przykładów, w których to powłoka tekstowa znajdzie swoje zastosowanie.
Przyzwyczajenie
Historycznie powłoka tekstowa to był jedyny sposób na zarządzanie systemem operacyjnym. Dlatego też osoby, które zaczynały swoją przygodę z komputerami w czasach „prehistorycznych” tzn. przed środowiskiem graficznym często z przyzwyczajenia czy też własnej wygody wykorzystują powłokę tekstową.
Większe możliwości niż GUI
Od pewnego czasu firma Microsoft zmienia podejście do zarządzania systemem operacyjnym Windows. Działania te spowodowały osłabienie pozycji konsol graficznych. Obecnie już nie wszystkie operacje da się przeprowadzić za pomocą graficznego GUI, co więcej większość można zdecydowanie przyśpieszyć. I bardzo często powłoka tekstowa zapewnia dostęp do znacznie szerszej funkcjonalności.
Automatyzacja
Okazuję się, że zwykła powłoka tekstowa daje ogromne możliwości oraz prostotę automatyzacji. Wiele czasochłonnych i powtarzalnych zadań można uprosić za pomocą kilku linijek kodu. Co z punktu widzenia administratora jest bezcenne. Kilka przykładów zamieściłem w bezpłatnym podręczniku.
Transparentność
Skrypty czy polecenia shellowe to w większości pliki tekstowe. W każdej chwili możesz je podejrzeć i zobaczyć, za co odpowiada konkretna linijka kodu. Zdecydowanie inaczej sprawa wygląda w przypadku skompilowanych programów powłoki graficznej, gdzie o wglądzie do kodu możesz zapomnieć. Dodatkowo zdecydowanie łatwiej jest diagnozować ewentualne problemy.
Łatwość przenoszenia
Pliki tekstowe nie zajmują dużo przestrzeni dyskowej, zatem łatwo jest je przenosić między komputerami czy nawet systemami operacyjnymi jeżeli oczywiście zajdzie kompatybilność powłoki systemowej. Obecnie możesz tworzyć zarówno skrypty w systemie Windows jak i przenosić je na systemy Linuksowe i odwrotnie, oczywiście pod pewnymi ograniczeniami.
Bezpieczeństwo
Ostatnio bardzo popularny temat pojawiający się praktycznie na każdym kroku. Rekomendowanym sposobem instalacji systemu Windows Server jest opcja Core – bez interfejsu graficznego. Pomyślałbyś, że Windows może być bez okienek? Zgadza się, opcja Core powala na zmniejszenie wykorzystania zasobów pamięci RAM oraz procesora. Dzięki temu operacje wykonywane są sprawniej, a sam serwer szybciej się bootuje. Dodatkowo system potrzebuje mniej aktualizacji i jest bardziej odporny na ataki. Co w efekcie przekłada się zdecydowanie lepszy czas nieprzerwanej pracy (ang. uptime).
Podsumowanie
Chociaż terminal tekstowy nie jest zbyt popularny wśród użytkowników domowych to stanowi niezastąpione narzędzie pracy dla administratora systemów czy inżyniera DevOps. Dzięki niemu praca staje się łatwiejsza, szybsza i zdecydowanie bardziej efektywna. Zachęcam do bliższego zapoznania się z tą techniką pracy dzięki konsoli PowerShell.
Masz doświadczenie w pracy z powłoką tekstową, może chcesz podzielić się swoją opinią? Koniecznie daj znać w komentarzach.
Jeżeli natomiast wpis Ci się podobał, nie zapomnij się nim podzielić
bardzo fajnie, czytelnie, wyjasnione – dzieki 🙂
Bardzo dziękuję 🙂