https://wiki.archlinux.org/api.php?action=feedcontributions&user=Kwarzecha7&feedformat=atomArchWiki - User contributions [en]2024-03-19T09:35:50ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Beginners%27_guide_(Polski)&diff=219801Beginners' guide (Polski)2012-08-26T15:19:29Z<p>Kwarzecha7: this page is out of date.</p>
<hr />
<div>{{Out of date|W nowym wydaniu Archa, AIF (Arch Installation Framework) nie jest już dostarczany wraz z Nośnikiem Instalacyjnym 2012.07.15. Zobacz proszę do [[Installation_Guide_(Polski)]].}}<br />
[[Category:Getting and installing Arch (Polski)]]<br />
[[Category:About Arch (Polski)]]<br />
[[Category:Polski]]<br />
[[bg:Beginners' Guide]]<br />
[[cs:Beginners' Guide]]<br />
[[da:Beginners' Guide]]<br />
[[de:Anleitung für Einsteiger]]<br />
[[en:Beginners' Guide]]<br />
[[es:Beginners' Guide]]<br />
[[fa:راهنمای_تازهکارها]]<br />
[[fr:Installation]]<br />
[[he:Beginners' Guide]]<br />
[[hr:Beginners' Guide]]<br />
[[hu:Beginners' Guide]]<br />
[[id:Beginners' Guide]]<br />
[[it:Beginners' Guide]]<br />
[[ja:Beginners' Guide]]<br />
[[ko:Beginners' Guide]]<br />
[[lt:Beginners' Guide]]<br />
[[nl:Beginners' Guide]]<br />
[[pt:Beginners' Guide]]<br />
[[ru:Beginners' Guide]]<br />
[[sk:Beginners' Guide]]<br />
[[sr:Beginners' Guide]]<br />
[[tr:Yeni_başlayanlar_rehberi]]<br />
[[uk:Beginners' Guide]]<br />
[[zh-CN:Beginners' Guide]]<br />
[[zh-TW:Beginners' Guide]]<br />
{{translateme|Strona tłumaczona}}<br />
{{stub}}<br />
==Wprowadzenie==<br />
<br />
====Czym jest Arch Linux?====<br />
<br />
Arch Linux to niezależna, opracowana i zoptymalizowana pod architektury '''i686/x86_64''' dystrybucja Linuksa, która pierwotnie była oparta na pomysłach CRUX Linux. Opracowanie koncentruje się na równowadze prostoty, elegancji oraz poprawności kodu.<br />
<br />
Jeżeli chcesz przeczytać więcej o Archu, odwiedź artykuły [[Arch Linux]] i [[The Arch Way]].<br />
<br />
====Licencja====<br />
<br />
Arch Linux i jego skrypty są chronione prawami autorskimi oraz licencją GNU General Public License (GPL).<br />
<br />
* 2002-2007 Judd Vinet<br />
* 2007-2010 Aaron Griffin<br />
<br />
==Wstępne informacje==<br />
<br />
====Dostępne obrazy instalacyjne====<br />
<br />
Ze strony Download można pobrać następujące obrazy:<br />
<br />
* '''i686''' - przeznaczony dla architektury i686.<br />
* '''x86_64''' - przeznaczony dla 64-bitowych procesorów.<br />
* '''Dual Architecture''' - hybryda dla obu powyższych architektur.<br />
<br />
Dodatkowo, istnieją dwa warianty obrazów instalacyjnych, które różnią się tylko w zakresie dostarczanych pakietów:<br />
<br />
* '''Core Image''' - obrazy zawierają migawkę pakietów podstawowych. Jest to lepszy wybór w przypadku łącza internetowego, które jest powolne i trudne do skonfigurowania.<br />
* '''Netinstall Image''' - obrazy, gdzie podczas instalacji wszystkie pakiety podstawowe pobierane są z sieci w najnowszej wersji. Te obrazy są preferowane, gdyż po instalacji Archa, nie trzeba go od razu aktualizować. Dla osób z szybkim połączeniem z Internetem.<br />
'''Notka:''' Jeżeli nie możesz zdecydować się, którą architekturę wybrać, być może artykuł [[Arch64 FAQ]] pomoże rozwiązać ten problem. <br />
====Przygotowanie nośnika instalacyjnego====<br />
<br />
* Pobierz wybrany przez siebie obraz instalacyjny Arch Linuksa.<br />
* Sprawdź sumę kontrolną za pomocą narzędzia <code>sha1sum</code>:<br />
<code>sha1sum --check suma.txt nazwa_obrazu.iso</code> <br />
* Nagraj obraz na płytę lub na pamięć przenośną. W przypadku tego drugiego wydaj polecenie:<br />
<code>dd if=archlinux-2010.05-&#123;core|netinstall&#125;-{i686|x86_64|dual}.iso of=/dev/sdx</code><br />
{{Warning|Musisz wiedzieć, że po wykonaniu powyższej czynności wszystkie pliki znajdujące się na pamięci przenośnej zostaną utracone.}}<br />
Aby sprawdzić, czy obraz został nagrany pomyślnie, zapisz sobie liczbę rekordów, a następnie wykonaj następujące sprawdzenie:<br />
<code>dd if=/dev/sdx count=liczba_rekordów status=noxfer | md5sum</code> <br />
Otrzymane dane powinny być takie same, jak te, które zapisałeś.<br />
<br />
Przykłady:<br />
<code>dd if='''archlinux'''-2010.05-core-i686.iso of=/dev/sdcPolecenie zapisu na pamięć</code> <br />
<pre> 744973+0 records in<br />
744973+0 records out<br />
381426176 bytes (381 MB) copied, 106.611 s, 3.6 MB/s<br />
</pre><br />
<code> dd if=/dev/sdc count=744973 status=noxfer | md5sumSprawdzenie rekordów i sumy kontrolnej</code> <br />
<pre> 4850d533ddd343b80507543536258229 -<br />
744973+0 records in<br />
744973+0 records out<br />
</pre><br />
<br />
====Narzędzie AIF====<br />
<br />
AIF (Arch Linux Installation Framework) jest to zbiór bibliotek, przeznaczonych do wykonywania przedinstalacyjnych czynności, takich jak '''instalacja''' pakietów czy konfiguracja sieci bądź dysków.<br />
<br />
* '''interactive''': interaktywna procedura instalacji, która za pomocą zestawu pytań prowadzi użytkownika przez proces instalacji i pomaga w konfiguracji systemu bazowego oraz automatycznie zmienia niektóre ustawienia w zależności od wykonanych wcześniej czynności (np. ustawienia sieci).<br />
* '''automatic''': automatycznie wdraża niezbędne procedury i narzędzia oraz wykorzystuje profile do konfiguracji systemu docelowego (w pliku /usr/share/aif/examples/ znajdują się przykłady konfiguracji).<br />
* '''base''': procedura wykorzystywana przez inne - nie jest zalecana dla użytkownika końcowego.<br />
* '''partial-configure-network''': jeden z etapów procedury <code>interactive</code> - konfiguracja sieci.<br />
* '''partial-disks''': konfiguracja dysku.<br />
* '''partial-keymap''': konfiguracja układu językowego klawiatury/konsoli (podobnie jak polecenie <code>km</code>).<br />
<br />
====Dokumentacja====<br />
<br />
W każdym obrazie Arch Linuksa umieszczona jest oficjalna instrukcja instalacji systemu (w języku angielskim). Aby móc ją odczytać, przejdź do innej konsoli (&lt;ALT&gt;+F2) i wpisz polecenie:<br />
<code>less /arch/docs/official_installation_guide_en</code> <br />
====Korzystanie z nośnika instalacyjnego====<br />
<br />
Upewnij się, że masz możliwość załadowania systemu z CD-ROM lub urządzenia USB. Jeżeli wszystko jest w porządku, powinien zacząć uruchamiać się GRUB. W ukazanym menu zazwyczaj wybiera się opcję pierwszą.<br />
<br />
Po zakończeniu procedury ładowania powinien pokazać się znak zachęty. Wystarczy teraz zalogować się na konto <code>root</code> (istnieje również konto <code>arch</code>, jednak nie posiada ono uprawnień superużytkownika). W tym momencie, jeśli potrzebujesz, możesz przeprowadzić własne operacje lub przejść do właściwej instalacji systemu. Na przykład jeżeli potrzebujesz skonfigurowanej i uruchomionej sieci przed instalacją, użyj w tym celu polecenia:<br />
<code>aif -p partial-configure-network</code> <br />
W przypadku korzystania z karty graficznej Intel może zdarzyć się pojawienie czarnego ekranu. Powodem tego zapewne jest Kernel Mode Setting (KMS). Obejście problemu może być osiągnięte poprzez ponowne uruchomienie systemu z płyty oraz dodanie do linii kernela (wciśnij [Tab], aby edytować):<br />
<br />
<pre>i915.modeset=0<br />
</pre><br />
<br />
Alternatywnie (nie wyłącza KMS):<br />
<br />
<pre>video=SVIDEO-1:d<br />
</pre><br />
<br />
==Instalacja systemu bazowego Arch Linuksa==<br />
<br />
Aby uruchomić Instalatora, wystarczy zalogować się jako <code>root</code> i wpisać:<br />
<code>/arch/setup</code> <br />
Drugim sposobem instalacji systemu jest polecenie:<br />
<code>aif -p interactive</code> <br />
* Po uruchomieniu Instalatora przed oczami pojawi się menu główne instalacji.<br />
* Można używać strzałek [UP] i [DOWN] do nawigowania po menu.<br />
* Tabulatorem [TAB] przełączamy się między przyciskami, zaś klawiszem [ENTER] zatwierdzamy wybór.<br />
* W dowolnym momencie podczas procesu instalacji, możesz przełączyć się do konsoli ([Alt]+F7).<br />
* W standardowej instalacji użytkownik powinien przechodzić krok po kroku z jednej pozycji do następnej. Jednak przeprowadzając jakieś niestandardowe czynności (np. '''instalacja''' systemu na programowej macierzy RAID), niektóre pozycje można pominąć.<br />
<br />
====Źródło instalacji pakietów (Select Source)====<br />
<br />
W pierwszym etapie należy wybrać metodę, którą chcesz zainstalować Arch Linuksa. W przypadku opcji <code>"CD-ROM or OTHER SOURCE"</code> zainstalowane zostaną pakiety z CD lub USB. Ma to tę zaletę, że połączenie z Internetem będzie niepotrzebne. Zalecana jest tu aktualizacja systemu tuż po zakończeniu instalacji systemu bazowego.<br />
<br />
Aby uzyskać najnowsze pakiety, zamiast potencjalnie nieaktualnych z CD lub USB, wybierz opcję <code>"NET"</code> (wymagane szybkie łącze internetowe). Musisz jednak najpierw skonfigurować połączenie sieciowe. Bezprzewodowe sterowniki i programy narzędziowe są dostępne na nośniku instalacyjnym. Jednakże dobra znajomość urządzeń bezprzewodowych będzie miała kluczowe znaczenie dla powodzenia konfiguracji.<br />
Pamiętaj, że konfiguracja sieci bezprzewodowej nie jest konieczna na tym etapie instalacji, jeżeli posiadasz połączenie eth0, czyli za pomocą kabla sieciowego.<br />
<br />
Następnie wybierz preferowany przez siebie serwer. Należy wybrać taki, który znajduje się w pobliżu miejsca zamieszkania, w celu osiągnięcia szybszej prędkości pobierania.<br />
<br />
====Zegar (Set Clock)====<br />
<br />
Konfiguracja zegara systemowego i daty. Zalecany jest wybór <code>UTC</code>. Jeśli jednak zainstalowany jest system operacyjny, który nie potrafi obsłużyć prawidłowo UTC (np. Windows), należy wybrać <code>localtime</code>. Dalej Instalator będzie prosił o wybór kontynentu, kraju oraz ustawienie daty i czasu.<br />
<br />
====Przygotowanie dysku twardego (Prepare Hard Drive)====<br />
(Tekst został zaczerpnięty ze strony [http://www.gentoo.org gentoo.org] i zmodyfikowany)<br />
<br />
{{Warning|Partycjonowanie dysków twardych może zniszczyć dane znajdujące się na nim. Zdecydowanie zaleca się utworzenie kopii zapasowej ważnych danych oraz zachowanie ostrożności.}}<br />
Przeznaczenie na system całego dysku jest możliwe, zazwyczaj nie jest to jednak zbyt dobre rozwiązanie, dlatego też dzieli się ten dysk na partycje.<br />
<br />
Wyróżniamy trzy rodzaje partycji: podstawowe, rozszerzone oraz logiczne. Informacje o partycjach podstawowych przechowywane są w MBR (Master Boot Record). Mieszczą się w nim dane maksymalnie czterech takich partycji. Partycje rozszerzone przechowują wewnątrz siebie kolejne partycje. W ten sposób można ominąć niewygodną granicę i lepiej zagospodarować przestrzeń dyskową. Natomiast partycje umieszczone i opisane wewnątrz rozszerzonych nazywamy logicznymi.<br />
<br />
W Linuksie można wyróżnić zasadniczo dwa typy partycji: użytkowe i systemowe. Pod pojęciem użytkowe rozumiemy partycje, które można wykorzystać do przechowywania danych. Mówiąc systemowe mamy na myśli takie, z których korzysta tylko i wyłącznie system. Przykładem takiej partycji jest przestrzeń wymiany Swap. Jest to partycja, która jest używana jako zapasowa pamięć.<br />
<br />
To Ty decydujesz, ile partycji będzie na dysku. Na przykład, jeśli administrujesz systemem mającym wielu użytkowników, prawdopodobnie uznasz za stosowne oddzielenie /home, aby poprawić bezpieczeństwo i uprościć tworzenie kopii zapasowych. Jeżeli docelowym zastosowaniem Archa jest serwer poczty, na osobnej partycji należy umieścić /var, gdzie przechowywane są listy. Dobry wybór systemu plików może znacznie zwiększyć wydajność. Oddzielenie /opt jest dobrym rozwiązaniem na serwerach gier, gdyż większość używanego oprogramowania zostanie tam zainstalowana. Powód jest podobny jak przy /home: bezpieczeństwo i kopie zapasowe. Na pewno warto zapewnić dużo wolnego miejsca na /usr, ponieważ będą tam znajdowały się dane wszystkich zainstalowanych pakietów.<br />
''' Wskazówka: '''Najważniejsze, aby wiedzieć, że partycja root jest obowiązkowa. Partycje Swap (zalecana przy małej ilości RAM) oraz /home (ze względów bezpieczeństwa i zapewnieniu niemożności utraty danych) są zalecane. Pozostałe partycje, przeznaczone na inne katalogi systemowe, nie są wymagane, ale opcjonalne. <br />
Poniżej masz opisane w skrócie drzewo root. Teoretycznie każdy katalog może znajdować się na własnej partycji, jednak w praktyce nie stosuje się tego rozwiązania. Najczęściej spotykanymi dodatkowymi partycjami są: /boot, /home, /usr, /tmp oraz /var. Z tego grona użytkownicy wykorzystują z kolei najczęściej oddzielne partycje /boot i /home.<br />
<br />
{| border="1"<br />
|-<br />
!Katalog<br />
!Co zawiera?<br />
|-<br />
! /bin <br />
| Pliki binarne (wykonywalne) podstawowych narzędzi systemowych.<br />
|-<br />
! /boot <br />
| Pliki niezbędne do uruchomienia systemu (kernel, initrd, pliki bootloadera).<br />
|-<br />
! /dev <br />
| Pliki, które nie są faktycznie plikami na dysku, lecz odnoszą się do urządzeń - za ich pośrednictwem system komunikuje się z urządzeniami.<br />
|-<br />
! /etc <br />
| Pliki konfiguracyjne, ustawienia systemowe.<br />
|-<br />
! /home <br />
| Pliki określające ustawienia użytkownika, ponadto jest on przeznaczony na zapisywanie danych, np. dokumentów, obrazków, muzyki i wszelkich plików których używamy na codzień.<br />
|-<br />
! /lib <br />
| Systemowe biblioteki dzielone.<br />
|-<br />
! /media <br />
| Dostęp do nośników (miejsce montowania nośników wymiennych).<br />
|-<br />
! /mnt <br />
| Tutaj "montowane" są dyski (w dystrybucjach takich jak Ubuntu, dyski są montowane w /media).<br />
|-<br />
! /proc <br />
| Wirtualny katalog, zawierający dane o aktualnie uruchomionych procesach.<br />
|-<br />
! /root <br />
| Ustawienia użytkownika root.<br />
|-<br />
! /sbin <br />
| Pliki wykonywalne poleceń, które mogą być wykonywane tylko przez administratora.<br />
|-<br />
! /sys <br />
| Pliki systemu.<br />
|-<br />
! /tmp <br />
| Systemowy folder przeznaczony na pliki tymczasowe.<br />
|-<br />
! /usr <br />
| Dodatkowe programy, które umożliwiają pracę zwykłemu użytkownikowi systemu.<br />
|-<br />
! /var <br />
| Katalog przeznaczony na pliki systemowe, ale których zawartość często się zmienia, jak logi programów/systemu oraz inne dane zapisywane przez system i ważniejsze programy.<br />
|}<br />
Można zadać sobie pytanie - po co tworzyć oddzielne partycje? Otóż jest wiele korzyści, a wśród nich na przykład:<br />
'''Bezpieczeństwo''' - każda zamontowana partycja (czyli katalog z drzewa root) może być oddzielnie skonfigurowana w pliku /etc/fstab (opcje 'nosuid','nodev','noexec','readonly itd.).<br />
'''Stabilność''' - aplikacje posiadające prawa do zapisu nie mają dostępu do całego katalogu root.<br />
'''Szybkość''' - każdy system plików ma wady i zalety, jeden jest idealnym wyborem dla partycji /var, inny dla /home - dlatego też prawidłowy wybór systmu pliku może zapewnić zwiększoną wydajność systemu.<br />
<br />
Podział systemów plików dostępnych w obrazie instalacyjnym Arch Linuksa:<br />
'''Ext2''' - Stary i bardzo stabilny system plików. Zalecany dla /boot.<br />
'''Ext3''' - System plików Ext3 jest rozszerzeniem Ext2 i różni się od niego dodanym mechanizmem księgowania. Bardzo stabilny, dojrzały i zdecydowanie najbardziej powszechnie stosowany, wspierany i rozwijany system plików.<br />
'''Ext4''' - Od grudnia 2008 roku uznany za stabilny. Umożliwia obsługę woluminów do 1024 petabajtów. Ponadto oferuje możliwość rezerwowania obszaru dla nowych plików (extent) obniżając ryzyko fragmentacji danych, zmniejszając ilość potrzebnych metadanych i zwiększając wydajność operacji odczytu oraz zapisu (włączenie tej funkcji powoduje utratę kompatybilności z ext3).<br />
'''ReiserFS''' - ReiserFS był jednym z pierwszych systemów plików z księgowaniem (ang. journaling) dla Linuksa. ReiserFS jest uznawany za bardzo szybki, szczególnie jeśli dotyczy to wielu małych plików. Bardzo dojrzały i stabilny system plików - zalecany dla /var.<br />
'''JFS''' - Bardzo dobra wydajność, bardzo niskie zużycie procesora.<br />
'''XFS''' - Doskonała wydajność przy pracy z dużymi plikami, niska z małymi. Dobry wybór dla /home. <br />
'''Btrfs''' - Brtfs, będąc stosunkowo nowym systemem plików, oferuje takie funkcje jak defragmentacja w locie, optymalizacja dla dysków SSD, migawki (snapshoty), zmianę rozmiaru partycji bez utraty danych, i wiele więcej. Brtfs jest wciąż w rozwoju, ale jest już dostępny w jądrze jako eksperymentalny system plików. Może być użyty na przykład przy partycji / czy /home.<br />
<br />
Menu <code>Przygotowanie dysku twardego</code> oferuje dwie metody przygotowania Twojego dysku/dysków do instalacji i opcję cofnięcia zmian, gdybyś chciał spróbować od nowa.<br />
<br />
'''<code>Tryb automatyczny (Auto-Prepare)</code>'''<br />
<br />
Tryb automatyczny (Auto-prepare) podzieli jeden wybrany przez Ciebie dysk na partycje: /boot, przestrzeń wymiany Swap, / i /home. Możesz wybrać rozmiar i system plików użyty na tych partycjach. Wszystkie dane z wybranego dysku zostaną stracone. Twój dysk będzie wyglądał tak, jak poniżej:<br />
<br />
<pre>* 32 MB ext2 /boot<br />
* 256 MB swap<br />
* 7.5 GB /<br />
* pozostała część dysku /home <br />
</pre><br />
<br />
Mimo, że jest to tryb automatyczny, to i tak masz możliwość zmiany rozmiarów utworzonych partycji. Jednakże pamiętaj, że partycja /home zawsze będzie zawarta na pozostałym miejscu na dysku.<br />
<br />
'''<code>Tryb manualny (Manually partition Hard Drives)</code>'''<br />
<br />
Jeśli potrzebujesz więcej kontroli, możesz za pomocą programu <code>cfdisk</code> ręcznie partycjonować jeden lub więcej dysków. Dzięki tej opcji będziesz mógł użyć <code>lvm</code> lub <code>dm_crypt</code>.<br />
<br />
'''<code>Konfiguracja przestrzeni dyskowej (Manually configure block devices, filesystems and mountpoints)</code>'''<br />
<br />
( Opis <code>cfdisk</code> powstał na podstawie artykułu ze strony [[http://manual.sidux.com]] )<br />
<br />
* Interfejs użytkownika<br />
<br />
Na pierwszym ekranie <code>cfdisk</code> wyświetla bieżącą tablicę partycji z nazwami i kilkoma informacjami o każdej z nich. Na ekranie poniżej znajdują się przyciski z poleceniami. Aby przechodzić między partycjami, użyj klawiszy nawigacyjnych: strzałka w górę i w dół. Aby przejść między poleceniami, użyj klawiszy: lewej i prawej strzałki.<br />
<br />
* Usuwanie partycji<br />
<br />
Aby usunąć partycję, podświetl ją przy pomocy strzałek w górę i dół, wybierz polecenie [Delete] przy pomocy strzałek w lewo i prawo i wciśnij [Enter].<br />
<br />
* Tworzenie nowej partycji<br />
<br />
Aby stworzyć nową partycję, użyj polecenia [New] (wybierz je przy pomocy strzałek w lewo i prawo), i wciśnij [Enter]. Musisz zdecydować między partycją Primary i Logical. Jeśli chcesz partycji logicznej, program stworzy ją automatycznie. Następnie musisz wybrać wielkość partycji (w MB). Jeśli nie możesz wpisać wartości w MB, wróć do głównego ekranu przy pomocy klawisza [Esc], i wybierz MB przy pomocy polecenia [Units].<br />
<br />
* Wybór rodzaju partycji i systemu plików<br />
<br />
Aby ustawić typ partycji dla Linux swap lub Linux, podświetl partycję i użyj polecenia [Type]. Otrzymasz listę różnych typów. Naciśnij spację i otrzymasz dalszą część listy. Odnajdź typ partycji, który potrzebujesz i wpisz jego numer. (Linux swap to typ 82,systemy plików Linux to 83).<br />
<br />
* Nadawanie partycji flagi <code>boot</code><br />
<br />
Nie ma potrzeby czynienia partycji bootowalnej dla Linuksa, ale niektóre inne systemy tego potrzebują. Podświetl partycję i wybierz polecenie [Bootable].<br />
<br />
* Zapisanie czynności<br />
<br />
Jeżeli zrobiłeś już wszystkie operacje, możesz zapisać dokonane zmiany przy użyciu polecenia [Write]. Tablica partycji zostanie zapisana na dysk. Ponieważ proces zniszczy wszystkie dane na partycjach, które usuwasz lub zmieniasz, powinieneś być pewny, że chcesz tego, zanim wciśniesz klawisz [Return].<br />
<br />
* Wyjście<br />
<br />
Aby zakończyć pracę z programem, wybierz polecenie [Quit].<br />
<br />
'''<code>Cofnięcie wprowadzonych zmian (Rollbacks)</code>'''<br />
<br />
Funkcja cofnięcia zmian (Rollback) usunie wszelkie zmiany, dokonane z pomocą powyższych metod, odmontuje partycje i usunie woluminy <code>lvm</code> oraz <code>dm_crypt</code>, jeśli były stworzone. Nie zostaną cofnięte zmiany dotyczące działań na partycjach i systemach plików.<br />
<br />
====Wybór pakietów (Select Packages)====<br />
<br />
W tym miejscu instalator pyta się o kategorie pakietów, jakie zamierzamy zainstalować (<code>base</code>, <code>base-devel</code>). Na końcu istnieje możliwość dokładnego sprawdzenia pełnej listy pakietów i wybrania każdego z nich osobno. Polecane jest instalowanie tylko zawartości kategorii <code>base</code> plus ewentualnie wymagane pakiety z <code>base-devel</code>.<br />
''' Wskazówka: ''' Jeśli połączenie z siecią bezprzewodową jest wymagane, należy pamiętać, aby wybrać i zainstalować pakiet [[wireless_tools]]. <br />
====Instalacja pakietów (Install Packages)====<br />
<br />
Wszystkie pakiety na nośniku instalacyjnym pochodzą z repozytorium [core]. Jednakże są one podzielone na dwie grupy <code>base</code> i <code>base-devel</code>. Pakiety z pierwszej grupy zawierają podstawowe pakiety, które umożliwiają prawidłowe działanie systemu, natomiast, w drugiej grupie są dodatkowe narzędzia, które również moga okazać się przydatne. W większości przypadków wystarczy zainstalowanie grupy <code>base</code>.<br />
<br />
Podczas wyboru pakietu używamy spacji, abu zaznaczyć lub odznaczyć.<br />
<br />
Po dokonaniu wyboru pakietów do zainstalowania przechodzimy do <code>"Install Packages"</code> i czekamy, aż wszystko zostanie zainstalowane.<br />
<br />
====Konfiguracja systemu (Configure System)====<br />
<br />
Na tym etapem instalacji systemu znajdziesz podstawowe pliki konfiguracyjne Arch Linuksa. Jeśli potrzebujesz pomocy w konfiguracji któregoś z nich, poszukaj pomocy na angielskojęzycznej Wiki lub na forum polskiej społeczności.<br />
<br />
Przed rozpoczęciem konfiguracji zostaniesz zapytany, który edytor chciałbyś wykorzystać w tym celu - dla początkujących zalecany jest <code>nano</code>.<br />
<br />
=====/etc/rc.conf=====<br />
<br />
Jest jednym z najważniejszych plików konfiguracyjnych w Arch Linuksie. Pozwala ustawić klawiaturę, strefę czasową, nazwę hosta, skonfigurować sieć, a także ustawić demony i moduły uruchamiane przy starcie systemu.<br />
<br />
'''<code>LOCALE</code>''': Konfiguracja języka, który będzie używany przez system i programy. Domyślnie ustawione jest na język angielski. W przypadku języka polskiego wpisujemy <code>LOCALE=pl_PL.UTF-8</code>. Alternatywą jest ustawienie <code>LOCALE=pl_PL.ISO-8859-2</code>.<br />
<br />
'''<code>HARDWARECLOCK</code>''': Konfiguracja zegara systemowego. Zalecany jest wybór <code>UTC</code>. Jeśli jednak zainstalowany jest system operacyjny, który nie potrafi obsłużyć prawidłowo UTC (np. Windows), należy wybrać <code>localtime</code>.<br />
<br />
'''<code>USEDIRECTISA</code>''': Jeżeli ustawisz "yes", <code>hwclock</code> użyje instukcji I/O, aby uzyskać dostęp do zegara sprzętowego. Inaczej narzędzie będzie próbowało użyć <code>/dev/rtc</code> i strownika <code>rtc</code> device driver. Zazwyczaj nie tu nie trzeba zmieniać.<br />
<br />
'''<code>TIMEZONE</code>''': Określa strefę czasową, w jakiej znajdować się będzie nasz Arch.<br />
<br />
'''<code>KEYMAP</code>''': Określa układ klawiatury. Tu wpisz <code>KEYMAP='''pl'''</code>.<br />
<br />
'''<code>CONSOLEFONT</code>''': Określa czcionkę konsoli. Spis wszystkich wariantów znajdziesz w /usr/share/kbd/consolefonts. Możesz wpisać na przykład <code>CONSOLEFONT=lat2-16.psfu.gz</code>.<br />
<br />
'''<code>CONSOLEMAP</code>''': W tym miejscu konfigurowane jest kodowanie znaków konsoli. Wszystkie możliwości znajdziesz w pliku /usr/share/kbd/consoletrans. Można tu wpisać na przykład <code>8859-2</code> lub <code>UTF-8</code>.<br />
<br />
'''<code>USECOLOR</code>''': Określa, czy komunikaty informujące o stanie startu systemu, powinny być kolorowe.<br />
<br />
'''<code>MOD_AUTOLOAD</code>''': Jeśli jest ustawiony na "tak", <code>udev</code> będzie ładować wszystkie możliwe moduły automatycznie na starcie. Tablica MODULES powinna być pusta. Jeżeli wpiszemy "nie", musimy sami wpisać wszystkie niezbędne moduły do tablicy MODULES.<br />
<br />
'''<code>MODULES</code>''': W tej tablicy wpisujemy nazwy modułów, które mają ładować się podczas uruchamiania systemu. Wystarczy dodać nazwę modułu i umieścić wszelkie opcje w /etc/modprobe.conf, jeśli zajdzie taka potrzeba. Jeśli nie chcemy aby dany moduł był ładowany, [[wyłączamy go]] w pliku /etc/modprobe.d/modprobe.conf.<br />
''' Ostrzeżenie: '''Wyłączanie modułów za pomocą pliku /etc/rc.conf nie jest już możliwe. <br />
'''<code>USELVM</code>''': Opcja wykorzystywana tylko podczas instalacji LVM.<br />
<br />
'''<code>HOSTNAME</code>''': Określa nazwę komputera lokalnego.<br />
<br />
'''<code>INTERFACES</code>''': Konfiguracja interfejsów sieciowych.<br />
<br />
'''<code>ROUTES</code>''': Lista bram ustanawianych w trakcie startu. Analogicznie, konfiguracja każdej z nich musi być umieszczona w linijkach poprzedzających jako zmienna.<br />
<br />
'''<code>NET_PROFILES</code>''': Domyślnie opcja jest zakomentowana - umożliwia bardziej zaawansowane zarządzanie siecią z wykorzystaniem profili.<br />
<br />
Alternatywnym sposobem konfiguracji sieci jest wykorzystanie profilów sieciowych. Przygotowanie pliku /etc/rc.conf do ich obsługi polega na pozostawieniu w nim jedynie interfejsu <code>lo</code>, usunięciu wszystkich <code>ROUTES</code> i odkomentowaniu linijki <code>NET_PROFILES</code>, w której wymieniamy wszystkie profile, jakie chcemy ładować przy starcie, np.<br />
'''File: /etc/rc.conf''' <br />
<pre>HOSTNAME="nazwa_komputera"<br />
lo="lo 127.0.0.1"<br />
INTERFACES=(lo)<br />
ROUTES=()<br />
NET_PROFILES=(dom)<br />
</pre><br />
<br />
Do <code>NET_PROFILES</code> można także wpisać słowo kluczowe "menu", które sprawi, że podczas startu systemu wyświetli się menu umożliwiające wybór interesującego nas profilu. Można z tego skorzystać w laptopach, które często będą pracować w różnych sieciach. Plik każdego profilu sieciowego umieszczamy w katalogu /etc/network-profiles/. Możemy posiłkować się znajdującym się tam szablonem <code>template</code>, gdzie wypełniamy interesujące nas dyrektywy.<br />
<br />
'''<code>DAEMONS</code>''': Tablica ta zawiera jedynie listę skryptów zawartych w pliku /etc/rc.d/, które mają być uruchamiane podczas startu systemu. Jeśli przed nazwą skryptu wpiszemy wykrzyknik, nie zostanie on wykonywany podczas następnego rozruchu. Jeśli skrypt jest rozpoczęty symbolem <code>@</code>, to będzie wykonywany w tle - sekwencja startowa nie będzie czekać na ukończenie przed kontynuacją. W przypadku dodania wykrzyknika skrypt nie będzie ładowany.<br />
<br />
=====/etc/fstab=====<br />
<br />
Plik ten zawiera informacje o partycjach montowanych przy starcie. Tu nie trzeba nic zmieniać, chyba że chce się dodać jakiś nowy punkt montowania, ale to można zrobić po pierwszym uruchomieniu systemu.<br />
<br />
=====/etc/mkinitcpio.conf=====<br />
<br />
Jest to plik konfiguracyjny ramdysku odpowiadającego za uruchomienie samego jądra systemu. W wielu przypadkach nie trzeba nic w nim zmieniać - domyślne ustawienia są dopasowane do jak największej liczby konfiguracji.<br />
<br />
Domyślnie plik /etc/mkinitcpio.conf jest skonfigurowany do automatycznego wykrywania wszystkich niezbędnych modułów dla IDE, SCSI czy SATA, zapisywanych w tablicy HOOKS. Instalator dodaje również inne systemy (lvm, keymap, usbinput). Oznacza to, że domyślny [[Initrd]] powinien działać prawidłowo prawie w każdym przypadku.<br />
<br />
=====/etc/modprobe.d/modprobe.conf=====<br />
<br />
W przypadku tego pliku również nie ma wymogu jego konfiguracji, jeżeli nie ma takiej potrzeby. /etc/modprobe.d/modprobe.conf informuje jądro, które moduły są potrzebne do poprawnego działania urządzeń systemu oraz jak powinny być skonfigurowane.<br />
<br />
=====/etc/resolv.conf=====<br />
<br />
Plik określa korzystanie z systemu translacji domen DNS. Przykład konfiguracji:<br />
'''File: /etc/resolv.conf''' <br />
<pre>search domain.tld<br />
nameserver 192.168.0.1<br />
nameserver 192.168.0.2<br />
</pre><br />
<br />
Wpis <code>nameserver</code> oznacza adres IP serwera nazw, który powinien być odpytywany. Natomiast <code>search</code> wyszukiwanie w nazwach określane przez domenę lokalną.<br />
<br />
=====/etc/hosts=====<br />
<br />
Określa nazwę komputera lokalnego czy połączonego przez LAN. Dodatkowo może być używany dla dostarczania lokalnych wpisów nazw internetowych, redukując potrzebę odpytywania zewnętrznych źródeł o często zapytywane nazwy.<br />
<br />
=====/etc/hosts.deny=====<br />
<br />
Ten plik określa dostęp usług do sieci. Domyślnie wszystkie usługi sieciowe są pozbawione dostępu.<br />
<br />
=====/etc/hosts.allow=====<br />
<br />
Ten plik określa dostęp usług do sieci. Wpisz tu usługi, którym chcesz dać dostęp do sieci.<br />
<br />
=====/etc/locale.gen=====<br />
<br />
W tym miejscu ustawiamy lokalizację językową systemu. Możemy zahaszować domyślnie ustawioną lokalizację angielską, następnie odznaczamy przy wpisach:<br />
'''File: /etc/locale.gen''' <br />
<pre>pl_PL ISO-8859-2<br />
pl_PL.UTF-8 UTF-8<br />
</pre><br />
<br />
Po zakończeniu instalacji i ponownym uruchomieniu wydajemy z konsoli polecenie:<br />
<code>locale-gen</code> <br />
=====/etc/pacman.d/mirrorlist=====<br />
<br />
Konfiguracja [[Official Repositories|repozytoriów]]. Zalecane są znajdujące się w pobliżu miejsca zamieszkania.<br />
<br />
=====/etc/pacman.conf=====<br />
<br />
Jest to plik konfiguracyjny menedżera pakietów [[Pacman]]a.<br />
<br />
=====Set Root Password=====<br />
<br />
Ustawiamy hasło użytkownika root. Potrzebne nam będzie do zalogowania się po restarcie systemu!<br />
<br />
====Instalacja Bootloadera====<br />
<br />
Czas na instalację bootloadera. Domyślnym dla systemu Arch Linux jest posiadający duże możliwości [[GRUB]].<br />
<br />
=====/boot/grub/menu.lst=====<br />
<br />
Sprawdź, czy wpisy w tym pliku są poprawne (na przykład, gdy używasz oddzielnej partycji /boot. Po upewnieniu się, że wszystko jest jak należy, zatwierdź zmiany. Następnie zostaniesz poproszony o wskazanie miejsca, gdzie zostanie zainstalowany GRUB. Domyślnie jest to [[MBR]]. Tak więc wybór Twój powinien paść na nazwę pierwszego od góry urządzenia (bez cyfry).<br />
<br />
Przykładowa konfiguracja ( bez oddzielnej partycji boot) dla komputera z dwoma systemami operacyjnymi na osobnych dyskach (Windows na pierwszym, Linux na drugim):<br />
'''File: /boot/grub/menu.lst''' <br />
<pre>title Arch Linux<br />
root(hd1,0)<br />
kernel /boot/vmlinuz26 root=/dev/sda1 ro<br />
initrd /boot/kernel26.img<br />
<br />
title Arch Linux (Fallback)<br />
root(hd1,0)<br />
kernel /boot/vmlinuz26 root=/dev/sda1 ro<br />
initrd /boot/kernel26-fallback.img<br />
<br />
title Windows<br />
rootnoverify (hd0,0)<br />
chainloader +1<br />
</pre><br />
<br />
Instalator zapyta nas także o to, gdzie będzie zainstalowany bootloader. Zazwyczaj wybiera się pierwszy sektor dysku twardego; jeśli mamy jeden dysk, będzie to <code>/dev/sda</code>.<br />
<br />
====Zakończenie instalacji====<br />
<br />
'''Instalacja''' dobiega końca. Wyłączamy instalator, wpisujemy:<br />
<code>reboot</code> <br />
Wyjmujemy płytkę i czekamy na uruchomienie się nowego systemu.<br />
<br />
==Twój własny Arch==<br />
<br />
Jeśli wszystko poszło dobrze podczas instalacji, powinna ukazać się tekstowa konsola z ekranem logowania:<br />
<code>Arch Linux [wersja]<br><br />
Login:_</code> <br />
Logujemy się na użytkownika root i możemy zacząć działać. Należy pamiętać o wykonaniu poleceń:<br />
<code>locale-gen<br />
pacman -Syu</code> <br />
Dalsza konfiguracja zależy już od przeznaczenia naszego systemu.<br />
<br />
==Informacje końcowe==<br />
<br />
Chociaż procedura instalacji może wyglądać przerażająco na pierwszy rzut oka, w rzeczywistości nie jest skomplikowana. Po dojściu do wprawy da się zainstalować gotowy do uruchomienia system w mniej, niż 10 minut. Sytuacje, kiedy '''instalacja''' kończy się niepowodzeniem, należą do rzadkości i zwykle trzeba wykazać się albo olbrzymią nieudolnością, specjalnymi chęciami lub naprawdę niezwykłą konfiguracją sprzętową, aby do nich doprowadzić.<br />
<br />
Jeśli jesteś początkujący, to [[Beginners' Guide|Przewodnik początkującego]] pokaże Tobie, jak wstępnie skonfigurować system.</div>Kwarzecha7https://wiki.archlinux.org/index.php?title=Improving_performance&diff=185936Improving performance2012-02-23T17:55:51Z<p>Kwarzecha7: missing space in "2009,2010"</p>
<hr />
<div>[[Category:Hardware (English)]]<br />
[[Category:Software (English)]]<br />
{{i18n|Maximizing Performance}}<br />
This article is a retrospective analysis and basic rundown about gaining performance in Arch Linux.<br />
<br />
==The basics==<br />
<br />
===Know your system===<br />
The best way to tune a system is to target the bottlenecks, that is the subsystems that limit the overall speed. They usually can be identified by knowing the specifications of the system, but there are some basic indications:<br />
* If the computer becomes slow when big applications, like OpenOffice.org and Firefox, are running at the same time, then there is a good chance the amount of RAM is insufficient. To verify available RAM, use this command, and check for the line beginning with -/+buffers:<br />
$ free -m<br />
* If boot time is really slow, and if applications take a lot of time to load the first time they are launched, but run fine afterwards, then the hard drive is probably too slow. The speed of a hard drive can be measured using the hdparm command:<br />
$ hdparm -t /dev/harddrive<br />
This is only the pure read speed of the hard drive, and is not a valid benchmark, but a value superior to 40MB/s (assuming drive tested while idle) can be considered decent on an average system.<br />
* If the CPU load is consistently high even when RAM is available, then lowering CPU usage should be a priority. CPU load can be monitored in many ways, like using the top command:<br />
$ top<br />
* If the only applications lagging are the ones using direct rendering, meaning they use the graphic card, like video players and games, then improving the graphic performance should help. First step would be to verify if direct rendering simply is not enabled. This is indicated by the glxinfo command:<br />
$ glxinfo | grep direct<br />
<br />
===The first thing to do===<br />
The simplest and most efficient way of improving overall performance is to run lightweight environments and applications.<br />
* Use a [[Window Manager|window manager]] instead of a [[Desktop Environment]]. Choices include [[dwm]], [[wmii]], [[Awesome]], [[Openbox]], [[Fluxbox]] and [[JWM]].<br />
* Choose a minimal Desktop Environment over [[GNOME]] and [[KDE]]. Choices include [[LXDE]] and [[Xfce]].<br />
* Using lightweight applications. See [[Lightweight Software]] and the Light and Fast Applications Awards threads in the forum: [http://bbs.archlinux.org/viewtopic.php?id=41168 2007], [http://bbs.archlinux.org/viewtopic.php?id=67951 2008], [http://bbs.archlinux.org/viewtopic.php?id=78490 2009], [http://bbs.archlinux.org/viewtopic.php?id=88515 2010], and [http://bbs.archlinux.org/viewtopic.php?id=111878 2011].<br />
* Remove unnecessary [[daemons]] and background what daemons you can in {{ic|/etc/rc.conf}}.<br />
<br />
===Compromise===<br />
Almost all tuning brings drawbacks. Lighter applications usually come with less features and some tweaks may make a system unstable, or simply require time to implement and maintain. This page tries to highlight those drawbacks, but the final judgment rests on the user.<br />
<br />
===Benchmarking===<br />
The effects of optimization are often difficult to judge. They can however be measured by [[benchmarking]] tools<br />
<br />
==Storage devices==<br />
===Partitioning===<br />
The partition layout can influence the system's performance. Sectors at the beginning of the drive (closer to the center of the disk) are faster than those at the end. Also, a smaller partition requires less movements from the drive's head, and so speed up disk operations. Therefore, it is advised to create a small partition (10gb, more or less depending on your needs) only for your system, as near to the beginning of the drive as possible. Other data (pictures, videos) should be kept on a separate partition, and this is usually achieved by separating the home directory (/home/user) from the system (/).<br />
<br />
===Choosing and tuning your filesystem===<br />
Choosing the best filesystem for a specific system is very important because each has its own strengths. The [[Beginner%27s_Guide#Filesystem_types|beginner's guide]] provides a short summary of the most popular ones. You can also find relevant articles [[:Category:File systems (English)|here]].<br />
<br />
====Summary====<br />
*XFS: Excellent performance with large files. Low speed with small files. A good choice for /home.<br />
*Reiserfs: Excellent performance with small files. A good choice for /var.<br />
*Ext3: Average performance, reliable.<br />
*Ext4: Great overall performance, reliable, has performance issues with sqlite and some other databases.<br />
*JFS: Good overall performance, very low CPU usage, extremely fast resume after power failure.<br />
*Btrfs: Probably best overall performance (with compression) and lots of features. Still in heavy development and fully supported, but considered as unstable. Do not use this filesystem yet unless you know what you are doing and are prepared for potential data loss.<br />
<br />
====Mount options====<br />
Mount options offer an easy way to improve speed without reformatting. They can be set using the mount command:<br />
$ mount -o option1,option2 /dev/partition /mnt/partition<br />
To set them permanently, you can modify /etc/fstab to make the relevant line look like this:<br />
/dev/partition /mnt/partition partitiontype option1,option2 0 0<br />
The mount options {{Ic|noatime,nodiratime}} are known for improving performance on almost all file-systems. The former is a superset of the latter (which applies to directories only -- {{Ic|noatime}} applies to both files and directories). In rare cases, for example if you use mutt, it can cause minor problems. You can instead use the {{Ic|relatime}} option (NB relatime is the default in >2.6.30)<br />
<br />
====Ext3====<br />
See [[Ext3]].<br />
<br />
====Ext4====<br />
See [[Ext4#Tips_and_tricks | Ext4]].<br />
<br />
====JFS====<br />
See [[JFS Filesystem#Optimizations| JFS Filesystem]].<br />
<br />
====XFS====<br />
For optimal speed, create an XFS file-system with:<br />
$ mkfs.xfs -l internal,lazy-count=1,size=128m -d agcount=2 /dev/thetargetpartition<br />
An XFS specific mount option that may increase performance is {{Ic|<nowiki>logbufs=8</nowiki>}}. <br />
<br />
#/etc/fstab<br />
LABEL=XFSHOME /home xfs noatime,logbufs=8 0 1<br />
<br />
==== Reiserfs ====<br />
<br />
The {{Ic|<nowiki>data=writeback</nowiki>}} mount option improves speed, but may corrupt data during power loss. The {{Ic|notail}} mount option increases the space used by the filesystem by about 5%, but also improves overall speed. You can also reduce disk load by putting the journal and data on separate drives. This is done when creating the filesystem: <br />
<br />
$ mkreiserfs –j /dev/hda1 /dev/hdb1<br />
<br />
Replace /dev/hda1 with the partition reserved for the journal, and /dev/hdb1 with the partition for data. You can learn more about reiserfs with this [http://www.funtoo.org/en/articles/linux/ffg/2/ article].<br />
<br />
====BTRFS====<br />
See [[Btrfs#Defragmentation|defragmentation]] and [[Btrfs#Compression|compression]].<br />
<br />
===Compressing {{ic|/usr}}===<br />
{{Note|As of version 3.0 of the linux kernel aufs2 is no longer supported.}}<br />
A way to speed up reading from the hard drive is to compress the data, because there is less data to be read. It must however be decompressed, which means a greater CPU load. Some filesystems support transparent compression, most notably btrfs and reiserfs4, but their compression ratio is limited by the 4k block size. A good alternative is to compress {{ic|/usr}} in a squashfs file, with a 64k(128k) block size, as instructed in this [http://forums.gentoo.org/viewtopic-t-646289.html Gentoo forums thread]. What this tutorial does is basically to compress the {{ic|/usr}} folder into a compressed squashfs file-system, then mounts it with aufs. A lot of space is saved, usually two thirds of the original size of {{ic|/usr}}, and applications load faster. However, each time an application is installed or reinstalled, it is written uncompressed, so {{ic|/usr}} must be re-compressed periodically. Squashfs is already in the kernel, and aufs2 is in the extra repository, so no kernel compilation is needed if using the stock kernel.<br />
Since the linked guide is for Gentoo the next commands outline the steps especially for Arch. Basically we have got install two packages to get it working:<br />
# pacman -S aufs2 squashfs-tools<br />
This command installs the aufs-modules and some userspace-tools for the squash-filesystem.<br />
Now we need some extra directories where we can store the archive of {{ic|/usr}} as read-only and another folder where we can store the data changed after the last compression as writeable:<br />
# mkdir -p /squashed/usr/{ro,rw}<br />
Now that we got a rough setup you should perform a complete system-upgrade since every change of content in {{ic|/usr}} after the compression will be excluded from this speedup. If you use prelink you should also perform a complete prelink before creating the archive. Now it is time to invoke the command to compress {{ic|/usr}}:<br />
# mksquashfs /usr /squashed/usr/usr.sfs -b 65536<br />
These parameters/options are the ones suggested by the Gentoo link but there might be some room for improvement using some of the options described [http://www.tldp.org/HOWTO/SquashFS-HOWTO/mksqoverview.html#mksqusing here].<br />
Now to get the archive mounted together with the writeable folder it is necessary to edit {{ic|/etc/fstab}}:<br />
# nano /etc/fstab<br />
Add the following lines:<br />
/squashed/usr/usr.sfs /squashed/usr/ro squashfs loop,ro 0 0 <br />
usr /usr aufs udba=reval,br:/squashed/usr/rw:/squashed/usr/ro 0 0<br />
Now you should be done and able to reboot. The original Author suggests to delete all the old content of {{ic|/usr}}, but this might cause some problems if anything goes wrong during some later re-compression. It is more safe to leave the old files in place just to be on the safe side.<br />
<br />
A [http://bbs.archlinux.org/viewtopic.php?pid=714052 bash script] has been created that will automate the process of re-compressing (read updating) the archive since the tutorial is meant for Gentoo and some options do not correlate to what they should be in Arch.<br />
<br />
===Tuning for an SSD===<br />
[[SSD#Tips_for_Maximizing_SSD_Performance]]<br />
<br />
===Ram disks / tuning for really slow disks===<br />
* [http://cs.joensuu.fi/~mmeri/usbraid/ USB stick raid]<br />
* [https://bbs.archlinux.org/viewtopic.php?pid=493773#p493773 Combine ramdisk with disk in raid]<br />
<br />
==CPU==<br />
The only way to directly improve CPU speed is overclocking. As it is a complicated and risky task, it is not recommended for anyone except experts. The best way to overclock is through the BIOS. When purchasing your system, keep in mind that most Intel motherboards are notorious for disabling the capacity to overclock.<br />
<br />
A way to modify performance ([http://lkml.org/lkml/2009/9/6/136 ref]) is to use Con Kolivas' desktop-centric kernel patchset, which, among other things, replaces the Completely Fair Scheduler (CFS) with the Brain Fuck Scheduler (BFS).<br />
<br />
Kernel PKGBUILDs that include the BFS patch can be installed from the [[AUR]] or [[Unofficial User Repositories]]. See the respective pages for {{AUR|linux-ck}} and [https://wiki.archlinux.org/index.php/Linux-ck linux-ck wiki page], {{AUR|linux-bfs}} or {{AUR|linux-pf}} for more information on their additional patches.<br />
<br />
{{Note|BFS/CK are designed for desktop/laptop use and not servers. They provide low latency and work well for 16 CPUs or less. Also, Con Kolivas suggests setting HZ to 1000. For more information, see the [http://ck.kolivas.org/patches/bfs/bfs-faq.txt BFS FAQ] and [http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.37/2.6.37-ck1/patches/ ck patches].}}<br />
<br />
===Verynice===<br />
[[Verynice]] is a daemon, available on [http://aur.archlinux.org/packages.php?ID=6403 AUR], for dynamically adjusting the nice levels of executables. The nice level represent the priority of the executable when allocating CPU resources. Simply define executables for which responsiveness is important, like X or multimedia applications, as ''goodexe'' in {{ic|/etc/verynice.conf}}. Similarly, CPU-hungry executables running in the background, like make, can be defined as ''badexe''. This prioritization greatly improves system responsiveness under heavy load.<br />
<br />
===Ulatencyd===<br />
[[Ulatencyd]] is a daemon that controls how the Linux kernel will spend its resources on the running processes. It uses dynamic cgroups to give the kernel hints and limitations on processes.<br />
<br />
==Network==<br />
See relevant section in [[General Recommendations#Networking|General Recommendations]].<br />
<br />
==Graphics==<br />
<br />
===Xorg.conf configuration===<br />
Graphic performance heavily depends on the settings in {{ic|/etc/X11/xorg.conf}}. There are tutorials for [[Nvidia]], [[ATI]] and [[Intel]] cards. Improper settings may stop Xorg from working, so caution is advised.<br />
<br />
===Driconf===<br />
Driconf is a small utility that allows you to change the direct rendering settings for open source drivers. Enabling HyperZ can drastically improve performance.<br />
<br />
===GPU Overclocking===<br />
Overclocking a graphics card is typically more expedient than with a CPU, since there are readily accessible software packages which allow for on-the-fly GPU clock adjustments. For ATI users, get [http://aur.archlinux.org/packages.php?ID=2128 rovclock], and Nvidia users should get nvclock in the extra repository. Intel chipsets users can install [http://www.gmabooster.com/ GMABooster] from [http://aur.archlinux.org/packages.php?ID=28197 AUR]<br />
<br />
The changes can be made permanent by running the appropriate command after X boots, for example by adding it to {{ic|~/.xinitrc}}. A safer approach would be to only apply the overclocked settings when needed.<br />
<br />
==RAM and swap==<br />
=== Browser profile in tmpfs ===<br />
Relocate the browser profile to [http://en.wikipedia.org/wiki/Tmpfs tmpfs] filesystem, including {{ic|/tmp}}, or {{ic|/dev/shm}} for improvements in application response as the the entire profile is now stored in RAM. Another benefit is a reduction in disk read and write operations, of which SSDs benefit the most.<br />
<br />
Use an active management script for maximal reliability and ease of use. <br />
<br />
Refer to the [[Profile-sync-daemon]] wiki article for more.<br />
<br />
=== Swappiness ===<br />
<br />
The swappiness represent how much the kernel prefers swap to RAM. Setting it to a very low value, meaning the kernel will almost always use RAM, is known to improve responsiveness on many systems. To do that, simply add those line to {{ic|/etc/sysctl.conf}}:<br />
<br />
vm.swappiness=20<br />
vm.vfs_cache_pressure=50<br />
<br />
To test and more on why this may work, take a look at this [http://rudd-o.com/en/linux-and-free-software/tales-from-responsivenessland-why-linux-feels-slow-and-how-to-fix-that article].<br />
<br />
===Compcache===<br />
[http://code.google.com/p/compcache/ Compcache], also known as the zram kernel module, creates a device in RAM and compresses it. If you use for swap means that part of the RAM can hold much more information but uses more CPU. Still, it is much quicker than swapping to a hard drive. If a system often falls back to swap, this could improve responsiveness. Zram is in mainline staging (therefore its not stable yet, use with caution). The {{aur|zramswap}} package may give better results than compcache.<br />
<br />
For swap you can try using<br />
<br />
modprobe zram<br />
echo $((50*1024*1024)) > /sys/block/zram0/disksize<br />
mkswap /dev/zram0<br />
swapon -p 60 /dev/zram0<br />
<br />
To make the changes permanent, add zram module to {{ic|/etc/rc.conf}} and autostart by adding the following lines to {{ic|/etc/rc.local}}:<br />
<br />
echo $((50*1024*1024)) > /sys/block/zram0/disksize<br />
mkswap /dev/zram0<br />
swapon -p 60 /dev/zram0<br />
<br />
You will have a 50MB swap with higher priority than your regular swap.<br />
<br />
systemd-arch-units provide a zram.service for [[Systemd]]. It create one zram device per cpu/core with a total space equivalent to the RAM available. To enable it on boot, simply run :<br />
<br />
systemctl enable zram.service<br />
<br />
This is also a good way to reduce disk read/write cycles due to swap on SSDs.<br />
<br />
===Using the graphic card's RAM===<br />
In the unlikely case that you have very little RAM and a surplus of video RAM, you can use the latter as swap. See [[Swap on video ram]].<br />
<br />
=== Preloading ===<br />
Preloading is the action of putting and keeping target files into the RAM. The benefit is that preloaded applications start more quickly because reading from the RAM is always quicker than from the hard drive. However, part of your RAM will be dedicated to this task, but no more than if you kept the application open. Therefore preloading is best used with large and often-used applications like Firefox and OpenOffice.<br />
==== Go-preload ====<br />
[http://aur.archlinux.org/packages.php?ID=34207 Go-preload] is a small daemon created in the [http://forums.gentoo.org/viewtopic-t-789818-view-next.html?sid=5457cff93039fc7d4a3e445ef90f9821 Gentoo forum]. To use it, first run this command in a terminal for each program you want to preload at boot:<br />
# gopreload-prepare program<br />
Then, as instructed, press Enter when the program is fully loaded. This will add a list of files needed by the program in {{ic|/usr/share/gopreload/enabled}}. To load all lists at boot, add gopreload to your DAEMONS array in {{ic|/etc/rc.conf}}. To disable the loading of a program, remove the appropriate list in {{ic|/usr/share/gopreload/enabled}} or move it to {{ic|/usr/share/gopreload/disabled}}.<br />
====Preload====<br />
A more automated approach is used by [[Preload]]. All you have to do is add it to your DAEMONS array in {{ic|/etc/rc.conf}}. It will monitor the most used files on your system, and with time build its own list of files to preload at boot.<br />
====Readahead====<br />
[[Readahead]] is a tool that can cache files before they are needed and help accelerate program loading.<br />
<br />
==Boot time==<br />
You can find tutorials with good tips in the article [[Improve Boot Performance]].<br />
<br />
===Suspend to ram===<br />
The best way to reduce boot time is not booting at all. Consider [[Suspend to RAM|suspending your system to ram]] instead.<br />
<br />
===Kernel boot options===<br />
Some boot options can decrease kernel boot time. The {{Ic|fastboot}} option usually can take off one second or so. Also, if you see a message saying "Waiting 8s for device XXX" at boot, adding {{Ic|<nowiki>rootdelay=1</nowiki>}} can reduce the waiting time, but be careful, as it may break the booting process. Those options are set in {{ic|/boot/grub/menu.lst}} or {{ic|/etc/lilo.conf}}, depending on which bootloader you use.<br />
<br />
===Custom kernel===<br />
Compiling a custom kernel will reduce boot time and memory usage, but can be long, complicated and even painful. It usually is not worth the effort, but can be very interesting and a great learning experience. If you really know what you are doing, start [[Kernel Compilation|here]].<br />
<br />
==Application-specific tips==<br />
===Firefox===<br />
The [[Firefox Tweaks]] article offers good tips; notably [[Firefox Tweaks#Turning off anti-phishing|turning off anti-phishing]], [[Firefox Tweaks#Improve rendering by disabling pango |disabling Pango]] and [[Firefox Tweaks#Defragment the profile's SQLite databases|cleaning the SQlite database]]. See also: [[Firefox Ramdisk|Firefox in Ramdisk]].<br />
<br />
Firefox in the official repositories is built with the profile guided optimization flag enabled. You may want to use it in your custom build.<br />
To do this append<br />
ac_add_options --enable-profile-guided-optimization<br />
to your mozconfig.<br />
<br />
===Gcc/Makepkg===<br />
See [[Ccache]].<br />
<br />
===LibreOffice===<br />
See [[LibreOffice#Speed up LibreOffice|Speed up LibreOffice]].<br />
<br />
===Pacman===<br />
See [[Improve Pacman Performance]].<br />
<br />
===SSH===<br />
See [[SSH#Speed up SSH|Speed up SSH]].<br />
<br />
==Laptops==<br />
See [[Laptop]].</div>Kwarzecha7