System operacyjny Linux, choć zapoczątkowany jako osobisty projekt Linusa Torvaldsa w roku 1991, zyskał miano kluczowego elementu w działaniu superkomputerów, serwerów internetowych, smartfonów oraz innych zaawansowanych technologii.
Linux cieszy się uznaniem dzięki swojej stabilności, solidnym zabezpieczeniom i efektywnemu wykorzystaniu zasobów. Zastosowanie i zapotrzebowanie na ten system operacyjny rosły stopniowo przez lata i nic nie wskazuje na zmianę tego trendu w najbliższej przyszłości.
Według danych z 2021 roku, opublikowanych przez Statista, 47% zawodowych programistów korzysta z systemu Linux. Z kolei 9. edycja corocznego raportu „Open Source Jobs Report” z tego samego roku ujawniła, że umiejętność programowania i administrowania Linuksem jest drugą najbardziej pożądaną kompetencją wśród menedżerów i programistów.
Umiejętności w zakresie systemu Linux są niezastąpione w wielu dziedzinach, takich jak tworzenie oprogramowania, administracja systemami, DevOps, zarządzanie sieciami, inżynieria bezpieczeństwa czy analiza danych. Dlatego, jeśli interesuje cię któraś z tych specjalizacji, istnieje duże prawdopodobieństwo, że podczas rekrutacji zostaniesz poproszony o przedstawienie swojej wiedzy z zakresu Linuksa.
Aby ułatwić ci przygotowanie, prezentujemy zbiór najczęściej pojawiających się pytań podczas rozmów kwalifikacyjnych dotyczących systemu Linux, wraz z sugerowanymi odpowiedziami.
Czym jest Linux?
Odpowiedź: Linux to bezpłatny system operacyjny o otwartym kodzie źródłowym, którego twórcą jest Linus Torvalds. System został udostępniony w 1991 roku na licencji GNU General Public License (GPL).
Dlaczego warto używać Linuksa?
Odpowiedź: Wybór systemu operacyjnego Linux wiąże się z wieloma korzyściami. Przede wszystkim, Linux wyróżnia się wysokim poziomem bezpieczeństwa i niemal całkowitą odpornością na działanie złośliwego oprogramowania.
Ponadto Linux jest znany ze swojej stabilności, niezawodności i rzadkich awarii, co czyni go idealnym rozwiązaniem dla wielu serwerów. Kolejną zaletą Linuksa jest jego lekkość – zużywa mniej pamięci RAM i dyskowej, dzięki czemu może być stosowany nawet na starszych komputerach.
Podsumowując, Linux jest systemem darmowym, o otwartym kodzie, regularnie aktualizowanym i wysoce konfigurowalnym, co pozwala użytkownikom na dostosowanie wszystkich aspektów systemu operacyjnego do swoich indywidualnych potrzeb. Dostępne są różnorodne dystrybucje, zoptymalizowane dla hakerów, programistów, a także dla zwykłych użytkowników.
Jakie są fundamentalne elementy systemu operacyjnego Linux?
Odpowiedź: Struktura systemu operacyjnego Linux opiera się na trzech głównych komponentach.
- Jądro: To podstawowy element systemu, będący najniższą warstwą, która komunikuje się bezpośrednio ze sprzętem komputera. Jądro odpowiada za alokację i zarządzanie zasobami sprzętowymi, takimi jak procesor, pamięć i przestrzeń dyskowa, a także świadczy usługi dla pozostałych części systemu i działających aplikacji.
- Powłoka: Pełni funkcję interfejsu wiersza poleceń, umożliwiając użytkownikom interakcję z systemem i uruchamianie programów. Powłoka stanowi pomost między użytkownikiem a jądrem, interpretując polecenia i inicjując ich wykonanie.
- Aplikacje: Te programy działają w ramach systemu operacyjnego, realizując konkretne funkcje, na przykład przeglądanie stron internetowych, przetwarzanie tekstu czy odtwarzanie muzyki.
Współpraca jądra, powłoki i aplikacji tworzy spójny system operacyjny Linux.
Dlaczego Linux uważa się za bezpieczniejszy system?
Odpowiedź: Kluczowym aspektem wpływającym na bezpieczeństwo Linuksa jest jego otwarta struktura. Liczni programiści regularnie analizują kod źródłowy, a wszelkie wykryte błędy lub luki są szybko zgłaszane na forum i naprawiane w ciągu kilku dni.
Dodatkowo, mechanizm zarządzania uprawnieniami w Linuksie sprawia, że domyślnie zwykły użytkownik nie ma dostępu do uprawnień administratora (root). Ogranicza to potencjalne szkody, jakie może wyrządzić wirus. Niski odsetek użytkowników domowych również wpływa na bezpieczeństwo, ponieważ hakerzy częściej atakują systemy z dużą bazą użytkowników.
Czym jest jądro Linuksa?
Odpowiedź: Jądro jest najniższą warstwą i podstawowym elementem systemu operacyjnego Linux. Położone jest pomiędzy sprzętem a pozostałymi komponentami systemu. Jądro komunikuje się ze sprzętem, zarządzając zasobami takimi jak pamięć, procesor i pamięć masowa.
Zapewnia również, że różne zadania i procesy mają dostęp do niezbędnych zasobów, co umożliwia ich sprawne i efektywne działanie.
Jaka jest różnica między Linuksem a Uniksem?
Odpowiedź: Linux to bezpłatny system operacyjny typu open source, stworzony przez Linusa Torvaldsa, natomiast Unix to przenośny, zamknięty system operacyjny, wielozadaniowy i wielodostępny, opracowany przez firmę AT&T. Unix, w odróżnieniu od Linuksa, nie jest otwartym oprogramowaniem.
Co to jest GUI?
Odpowiedź: Graficzny Interfejs Użytkownika (GUI) to interfejs, który pozwala użytkownikom na interakcję z systemem za pomocą elementów graficznych, takich jak okna, ikony, menu, wskaźniki i paski przewijania (WIMPS).
Elementy graficzne są obsługiwane za pomocą urządzeń wskazujących, takich jak mysz, rysik, trackball lub palec na ekranie dotykowym.
Co to jest CLI?
Odpowiedź: Interfejs Linii Poleceń (CLI) to interfejs tekstowy, który umożliwia użytkownikom komunikację z systemem komputerowym poprzez wpisywanie poleceń w terminalu w formie tekstowej.
System reaguje, wykonując wpisane polecenia lub prezentując żądane informacje.
Wyjaśnij, czym jest powłoka w systemie Linux.
Odpowiedź: Powłoka Linuksa to program, który tłumaczy i wykonuje polecenia wprowadzane przez interfejs wiersza poleceń, umożliwiając użytkownikom interakcję z systemem operacyjnym i kontrolowanie komputera.
Powłoka otrzymuje polecenia w formie zrozumiałej dla człowieka, przetwarza je na format zrozumiały dla jądra, a następnie przekazuje je do jądra w celu realizacji.
Rodzaje powłok w systemie Linux.
Odpowiedź: W systemie Linux istnieje kilka rodzajów powłok, a każda z nich jest zoptymalizowana do konkretnych zastosowań. Różne typy powłok to:
- Powłoka Bourne’a (sh)
- Powłoka Bourne Again (Bash)
- Powłoka C (csh)
- Powłoka Korn (ksh)
- Powłoka Z (zsh)
- Przyjazna powłoka interaktywna (fish)
- Powłoka Debian Almquist (dash)
- Powłoka TENEX C (tcsh)
Powyżej przedstawiono kilka popularnych powłok używanych w systemie Linux.
Co to jest skrypt powłoki?
Odpowiedź: To plik tekstowy zawierający sekwencję poleceń, które są wykonywane przez powłokę Linuksa w kolejności, w jakiej występują w pliku.
Skrypty powłoki zawierają instrukcje, które w innym przypadku trzeba by było wprowadzać pojedynczo w interfejsie wiersza poleceń. Skrypty powłoki są przydatne do automatyzacji powtarzalnych zadań lub wykonywania zadań wsadowych.
Wyjaśnij, czym są uprawnienia do plików w systemie Linux.
Odpowiedź: W Linuksie wyróżniamy trzy typy uprawnień do plików:
- Odczyt (r): To uprawnienie umożliwia użytkownikowi otwieranie i przeglądanie zawartości pliku lub katalogu. Użytkownik nie ma jednak możliwości modyfikowania pliku ani zawartości katalogu.
- Zapis (w): Uprawnienie zapisu umożliwia modyfikowanie zawartości pliku. Uprawnienie zapisu w katalogu pozwala na dodawanie, usuwanie i zmianę nazw plików w katalogu.
- Wykonanie (x): Umożliwia użytkownikowi uruchomienie pliku jako programu. W Linuksie użytkownik nie może uruchomić programu bez uprawnienia do wykonania.
Powyższe uprawnienia definiują kontrolę dostępu do plików w systemie operacyjnym Linux.
Jak nadawać uprawnienia w systemie Linux?
Odpowiedź: Do zarządzania uprawnieniami w systemie Linux używa się polecenia `chmod`, które oznacza „zmień tryb”. Polecenie `chmod` służy do modyfikowania uprawnień do plików i katalogów.
Uprawnienia można nadawać różnym grupom użytkowników, takim jak: grupa (g), użytkownik (u), inni (o) i wszyscy użytkownicy (a). Uprawnienia te można dodawać (+) lub odejmować (-) w zakresie uprawnień do odczytu (r), zapisu (w) i wykonywania (x).
Składnia polecenia zmiany uprawnień jest następująca:
chmod uprawnienia nazwa_pliku/katalogu
Jak odnaleźć lokalizację pliku w systemie Linux?
Odpowiedź: Aby sprawdzić, gdzie plik jest przechowywany w systemie Linux, najpierw wykonaj polecenie:
find nazwa_pliku
w celu wyszukania pliku w dostępnych katalogach. Jeżeli znajdzie się plik o podanej nazwie, można użyć polecenia:
realpath nazwa_pliku
aby wyświetlić bezwzględną ścieżkę do jego lokalizacji.
Jak usunąć katalog w systemie Linux?
Odpowiedź: Do usunięcia katalogu w systemie Linux można użyć polecenia `rmdir`, które oznacza „usuń katalog”. Służy ono do usuwania pustych katalogów.
Na przykład, aby usunąć pusty katalog o nazwie test, należy wykonać polecenie:
rmdir test
Do usunięcia katalogu, który nie jest pusty, należy użyć polecenia `rm` wraz z opcją `-r`:
rm -r przykladowy_katalog
Czym jest przestrzeń wymiany (swap)?
Odpowiedź: To zarezerwowana przestrzeń na dysku twardym, najczęściej w formie partycji, wykorzystywana przez system operacyjny Linux, gdy pamięć RAM jest całkowicie zapełniona.
Gdy zapotrzebowanie na pamięć wzrasta, a pamięć RAM jest pełna, nieaktywne lub rzadko używane fragmenty danych są przenoszone z pamięci RAM do przestrzeni wymiany, zwalniając miejsce dla bardziej aktywnych procesów.
Co to jest LILO?
Odpowiedź: Linux Loader (LILO) to program rozruchowy dla systemu operacyjnego Linux. Bootloader to program, który po włączeniu komputera ładuje system operacyjny do pamięci i uruchamia go.
Po włączeniu komputera LILO odnajduje jądro Linuksa i inne niezbędne programy, ładuje je do pamięci, a następnie uruchamia jądro systemu.
Czym jest przekierowanie w Linuksie?
Odpowiedź: Jest to zmiana standardowego źródła wejścia, którym zazwyczaj jest klawiatura, oraz docelowego miejsca wyjścia i błędów, którymi zazwyczaj jest ekran.
Na przykład, dzięki przekierowaniu można pobierać dane wejściowe z pliku, a dane wyjściowe i informacje o błędach można zapisywać do pliku.
Czym jest grupowanie poleceń?
Odpowiedź: To technika umożliwiająca wykonanie wielu poleceń razem, jako jednej jednostki. Grupowanie pozwala na traktowanie wielu poleceń jako pojedynczego bloku.
Grupowanie jest często wykorzystywane w połączeniu z funkcjami przekierowania i potokowania, aby tworzyć bardziej zaawansowane skrypty i automatyzować zadania.
Co to jest bezstanowy serwer Linux?
Odpowiedź: Jest to serwer, który nie przechowuje lokalnie żadnych informacji o stanie ani danych. Całe przechowywanie danych odbywa się po stronie klienta, a serwer nie zachowuje żadnych danych, które przetwarza.
Czym jest wiązanie sieciowe?
Odpowiedź: To technika łącząca wiele interfejsów sieciowych w jeden. Zwiększa to przepustowość, niezawodność i elastyczność sieci, poprawiając ogólną wydajność.
Co to jest polecenie grep?
Odpowiedź: Polecenie grep (Global Regular Expression Print) to narzędzie wiersza poleceń, które służy do wyszukiwania wzorców w pliku i wyświetlania wszystkich wierszy zawierających te wzorce. Szukany wzorzec jest wyrażeniem regularnym, często ciągiem znaków.
Czym są demony?
Odpowiedź: Demony to programy działające w tle bez interwencji użytkownika. Wykonują one zadania, takie jak monitorowanie urządzeń peryferyjnych i przeprowadzanie konserwacji systemu. Demony są niezbędne do płynnego działania systemu operacyjnego.
Czym są dowiązania symboliczne?
Odpowiedź: Dowiązanie symboliczne, inaczej zwane dowiązaniem symbolicznym lub miękkim, to specjalny typ pliku w systemie operacyjnym Linux, który wskazuje na inny plik lub katalog. Jest to odpowiednik skrótu w systemie Windows.
Dowiązania symboliczne zwiększają dostępność plików, które w innym przypadku mogłyby być trudne do znalezienia lub niewygodne w użyciu.
Czym są zmienne środowiskowe?
Odpowiedź: Zmienne środowiskowe to dynamiczne zmienne definiowane w powłoce, które przechowują informacje potrzebne do uruchamiania programów lub konfiguracji ich zachowania zgodnie z wymaganiami użytkownika.
Przykładowe zmienne środowiskowe to: LANG (przechowuje domyślny język systemu), TEMP (wskazuje katalog na pliki tymczasowe) oraz HOME (określa katalog domowy bieżącego użytkownika).
Jaka jest różnica między poleceniami Bash i DOS służącymi do przeglądania zawartości pliku?
Odpowiedź: W powłoce bash do wyświetlania zawartości pliku można użyć następujących poleceń:
- `cat` – wyświetla zawartość pliku na ekranie
- `nl` – działa jak cat, ale dodaje numery linii do wyświetlanej treści
- `less` – przegląda zawartość pliku strona po stronie
- `head` – wyświetla pierwsze 10 linii pliku
- `tail` – wyświetla ostatnie 10 linii pliku
W powłoce DOS do przeglądania zawartości pliku można użyć poleceń:
- `type` – wyświetla zawartość pliku bez jego modyfikacji
- `more` – wyświetla zawartość pliku strona po stronie
Powłoki Bash i DOS używają odmiennych poleceń do przeglądania zawartości plików.
Wymień kilka dystrybucji Linuksa.
Odpowiedź: Dystrybucje Linuksa to kompletne systemy operacyjne zbudowane w oparciu o jądro Linuksa, pakowane i udostępniane użytkownikom.
Do popularnych dystrybucji Linuksa należą Ubuntu, Fedora, Debian, CentOS, Arch Linux, Red Hat Enterprise Linux i Mint Linux.
Jakie są różne stany procesów w systemie Linux?
Odpowiedź: Główne stany procesu w Linuksie to:
- Uruchomiony (Running) – proces jest aktualnie wykonywany przez procesor.
- Uśpiony (Sleeping) – proces oczekuje na zasoby, które są obecnie niedostępne.
- Zatrzymany (Stopped) – proces został zatrzymany przez procesor lub sygnał.
- Zombie – proces zakończył działanie, ale jego proces nadrzędny nie zwolnił jeszcze zajmowanych przez niego zasobów.
Powyższe stany opisują główne fazy życia procesu w systemie Linux.
Jakie są różne systemowe wywołania zarządzania procesami w Linuksie?
Odpowiedź: Wywołania systemowe do zarządzania procesami obejmują:
- `fork()` – Służy do tworzenia nowego procesu.
- `kill()` – Służy do wysłania sygnału zakończenia działającego procesu.
- `wait()` – Wstrzymuje wykonywanie procesu wywołującego do czasu zakończenia procesu potomnego.
- `exec()` – Wczytuje program do aktualnego procesu i go uruchamia.
- `exit()` – Kończy wykonywanie programu.
Powyższe to podstawowe wywołania systemowe w zarządzaniu procesami w Linuksie.
Jak sprawdzić status procesu?
Odpowiedź: Status procesu można sprawdzić, wykonując polecenie `ps`, które wyświetla aktualny stan wszystkich aktywnych procesów w systemie Linux.
Aby uzyskać więcej szczegółów dotyczących konkretnego procesu, należy wykonać polecenie:
ps -p identyfikator_procesu
Jak zatrzymać działający proces w systemie Linux?
Odpowiedź: Aby zatrzymać działający proces w Linuksie, należy wykonać polecenie:
kill identyfikator_procesu
w celu zatrzymania procesu za pomocą jego identyfikatora. Można także zatrzymać proces, podając jego nazwę, za pomocą polecenia:
killall nazwa_procesu
W jaki sposób rozróżnianie wielkości liter wpływa na polecenia?
Odpowiedź: System operacyjny Linux rozróżnia wielkość liter w poleceniach, co oznacza, że powłoka traktuje polecenia zapisane z różną wielkością liter jako odrębne i niepowiązane.
Na przykład, polecenie `rmdir` nie jest tym samym, co `RMDIR`. W systemie operacyjnym Linux polecenia wiersza poleceń zazwyczaj wpisuje się małymi literami.
Jakie polecenie służy do sprawdzenia, ile pamięci jest wykorzystywane przez system Linux?
Odpowiedź: Polecenie `free` wyświetla informacje o ilości zajętej i wolnej pamięci w systemie. W poleceniu można stosować różne opcje, aby uzyskać szczegółowe informacje.
Co to jest polecenie ls?
Odpowiedź: To polecenie służące do wyświetlania zawartości katalogu.
Co to jest polecenie ps?
Odpowiedź: Polecenie `ps` wyświetla informacje o aktualnie aktywnych procesach.
Co to jest polecenie netstat?
Odpowiedź: To polecenie służące do wyświetlania informacji związanych z połączeniami sieciowymi w systemie. Wyświetla ono informacje o aktualnie aktywnych połączeniach.
Co to jest polecenie cp?
Odpowiedź: To polecenie używane do kopiowania plików i katalogów.
Co to jest polecenie mkdir?
Odpowiedź: To polecenie służące do tworzenia nowych katalogów w systemie Linux.
Co to jest polecenie `cat`?
Odpowiedź: Jest to polecenie, które służy do przeglądania zawartości pliku, tworzenia nowego pliku, przekierowania danych wyjściowych innych poleceń, łączenia wielu plików i wyświetlania danych na ekranie.
Podsumowanie
Ten zestaw pytań i odpowiedzi dotyczących systemu Linux na rozmowę kwalifikacyjną pomoże ci przygotować się do nadchodzącej rozmowy rekrutacyjnej.
Powodzenia! 👍