Choć system Praca z Unix powstał ponad 50 lat temu i wydawać by się mogło, że powinien „umrzeć” (niektórzy uparcie twierdzą, że tak się stało), wciąż jest wykorzystywany w korporacyjnych systemach danych. Systemy Unix oraz uniksopodobne są powszechnie używane w urządzeniach mainframe, superkomputerach, a w ostatnich latach powstają także wersje Unix na smartfony, tablety i laptopy.
Krótka historia systemu Unix
Unix powstał w 1960 r. w Massachusetts Institute of Technology w ramach współpracy AT&T Bell Labs oraz General Electric. Pierwszą nazwą nowego systemu operacyjnego był Multics (skrót od Multiplexing Information and Computer Services). Był to innowacyjny system zaprojektowany dla komputerów GE 645. Dziewięć lat później Bell Labs wycofało się z projektu, jednak ostatnim pracownikom udało się stworzyć własny hierarchiczny system plików, zalążek mechanizmu procesów i plików urządzeń, interpreter wiersza poleceń oraz kilka programów narzędziowych. System ten nazwali Unics (obsługiwał tylko jednego użytkownika).
W latach 70. wprowadzono możliwość obsługi więcej niż jednego użytkownika i zmieniono nazwę systemu na Unix. W 1972 r. został przepisany na język programowania C, co poprawiło jego przenośność — był pierwszym systemem operacyjnym, który można było bezpiecznie uruchomić na innym urządzeniu, wystarczyło jedynie przepisać niewielki fragment kodu. W latach 80. inne firmy rozpoczęły prace nad swoimi własnymi wersjami Unixa, dostosowanymi do konkretnych urządzeń np. BSD (system operacyjny zaprojektowany dla środowiska akademickiego).
Skutkiem tych „uniksowych rywalizacji” było wyłonienie się standardowej specyfikacji POSIX, którą projektowano jako kompromisowy interfejs programistyczny zaimplementowany zarówno w BSD, jak i Systemie V. W latach 90. powstają kolejne systemy operacyjne oparte na Unix np. GNU/Linux (powstał w 1993 r.), który obecnie funkcjonuje jako system Linux. Do systemów Unix oraz uniksopodobnych rozwijanych współcześnie należą m.in.: AIX (system stworzony przez pracowników IBM), FreeBSD, Linux, HP-UX (system opracowany przez pracowników HP).
Wbrew pozorom, Unix wciąż jest rozwijany i wykorzystywany przez korporacje np. w branży finansowej, dlatego zwolennicy tego systemu operacyjnego pracują nad dostosowaniem go do najnowocześniejszych technologii, by podobnie jak przez ostatnie 40 lat, Unix wciąż wspierał kluczowe operacje IT na całym świecie.
Kariera programisty ze znajomością systemu Unix
Znajomość systemu Unix jest kluczowa dla wielu ścieżek programistycznych, a jeśli celujesz w pracę w sektorze finansowym, gdzie do dziś wykorzystuje się właśnie ten system, będziesz miał pierwszeństwo w systemie rekrutacyjnym, właśnie ze względu na znajomość Unixa. Na jakie stanowiska pracy w branży IT przyda się dobra znajomość Unix? Sprawdzamy!
DevOps Engineer
Do pracy na tym stanowisku wymagana jest m.in. dogłębna znajomość Linuxa,a także Dockera oraz języka skryptowego (Bash, Python). Praca Devops to osoba, która w swojej metodologii pracy łączy elementy, takie jak: projektowanie kodu oraz utrzymania infrastruktury. Do jego głównych zadań należą:
budowa infrastruktury, monitoring i koordynacja procesów tworzenia produktu, skrócenie i uproszczenie procesu projektowania kodu, przygotowanie środowiska pracy dla programistów i testerów, tworzenie pipeline’ów CI/CD, nadzór nad płynnym przepływem informacji we wszystkich zespołach pracujących nad stworzeniem produktu i wspólnym dostarczeniem wartości do klienta.
DevOps jest pewnego rodzaju modelem (pojęciem) pracy zespołowej, w której zespół osób pracujących nad stworzeniem projektu zapewnia nie tylko rozwój programowania, czyli projektowanie kodu, ale odpowiednią infrastrukturę i konfigurację serwerów. DevOps obejmuje całościowe procesy tworzenia konkretnego produktu i dostarczenia wartości do klienta.
PHP/Symfony Developer
Aplikując na to stanowisko, zdecydowanie warto znać środowisko Unix, choć niekoniecznie w zaawansowanym stopniu. Do głównych zadań PHP Developera należą m.in.:
- planowanie sprintów,
- implementacja nowych funkcjonalności,
- integracje z zewnętrznymi API,
- tworzenie złożonych zapytań SQL,
- optymalizacja dużych zbiorów danych.
Tester oprogramowania
Chociaż panuje powszechne przekonanie, że testerzy nie muszą umieć programować, zdecydowanie znajomość przynajmniej jednego języka programowania ułatwi im pracę oraz podniesie kompetencje, a tym samym wartość pracownika na rynku IT. Do najpopularniejszych 10 języków programowania, których uczą się testerzy, należą: Java, Java Script, a także Shell (BASH), który jest językiem skryptowym dla Unixa. Jego znajomość przynajmniej w podstawowym stopniu sprawi, że tester będzie mógł pracować na serwerach i nie pogubi się w skomplikowanych liniach poleceń.
Performance Engineer
Performance Engineer to osoba odpowiedzialna za wszechstronne podejście do planowania, projektowania i budowy aplikacji oraz systemów IT w celu zapewnienia im maksymalnej wydajności we wszystkich aspektach ich funkcjonowania. W pracy na tym stanowisku dobra znajomość Lunuxa Unix lub języka skryptowego BASH pozwoli na jeszcze lepszą optymalizację wszystkich procesów związanych z budową aplikacji i systemów IT. Do głównych zadań Performance Engineera należą m.in.:
- tworzenie i wykonywanie testów wydajnościowych,
- analizowanie metryk z dzienników aplikacji i systemowych oraz symulowanie zachowania systemu na podstawie obciążenia produkcyjnego tych aplikacji;
- rozwiązywanie problemów z wydajnością systemów i aplikacji;
- współpraca z innymi zespołami programistów.
Wymienione powyżej stanowiska pracy to jedne z najczęściej powtarzanych ofert w kontekście mile dzianej lub wymaganej znajomości Unixa, Linuxa czy języka skryptowego BASH. .
Jak można zauważyć, mimo że Unix nie jest powszechnie używanym systemem, jego znajomość znacznie ułatwia pracę wielu programistom i testerom oprogramowania. Być może w przyszłości uda się go dostosować do wymagań najnowocześniejszej technologii i zacznie znów być na topie systemów, które wspierają globalne operacje IT.