Archiwa kategorii: Linux

Moje przygody z systemem linux

AMD AM1 (Athlon 5350) Real power consumption

Rationale

A few days ago I was building rack 19″ server based on AMD Athlon 5350 CPU. The main goal was to create a hardware set that will operate on wide supply voltage ranges (48V, 24V, 19V) and will be power efficient.

I decided to take a look at quite cheap AMD AM1 Athlon APU with TDP said to be 25W.

Czytaj dalej

Super skrypt do pracy z obrazem minixa i emulatorem qemu

Ah to SOI. Zabrakło 0,5pkt do 5, a głupio było się tak po prostu poddać 🙂

Udałem się więc po dodatkowe zadanie. Jak się okazało musiałem wymyślić je sobie sam, ostatecznie wpadłem na genialny pomysł stworzenia skryptu który będzie ułatwiał przyszłym pokoleniom pracę z minixem.

Z ciekawszych rzeczy:

  • Sam pobierze czysty obraz minixa do zajęć
  • Będzie automatycznie montował obraz w katalogu roboczym (łatwa modyfikacja plików!)
  • Będzie tworzył kopie zapasowe obrazów i umożliwiał powrót do wcześniejszej wersji
  • Pozwoli na wyeksportowanie zmian do zip’a
  • Pozwoli przenieść aktualny obraz na pendrive’a
  • I wiele wiele innych

Działa (przynajmniej powinien) pod linuxem, testowałem na Ububtu.

Skrypt + Instrukcja:

https://github.com/peku33/minix-toolkit

phpMyAdmin Automatic Update script

Today I present you my latest project – script for automated update of phpMyAdmin

From README.md:

Requirements – basic linux commands

  • bash
  • wget
  • unzip
  • mktemp

Usage:

  1. Download phpMyAdmin_Update.sh
  2. chmod +x ./phpMyAdmin_Update.sh
  3. ./phpMyAdmin_Update.sh <phpMyAdmin directory>

This simple script will:

  1. Download and unpack latest phpMyAdmin (zip) into temporary directory
  2. Remove _old and rename to _old
  3. Move downloaded phpMyAdmin to
  4. Copy config.inc.php from _old to
  5. Done

Project on GitHub: https://github.com/peku33/pma-update

Szeregowanie loteryjne w systemie MINIX

Postawy teoretyczne, najbardziej obrazowo jak to możliwe

Szeregowanie loteryjne polega na tym, aby następny proces do uruchomienia niejako ‚wylosować’, jednak z zachowaniem możliwości ustalania priorytetu. W tym opisie priorytet będzie zależał od „ilości losów”.

Każdy proces powinien posiadać pewną liczbę losów, na potrzeby zadania przyjmiemy od 1 do 20. Liczbę losów nadaje się mu przy jego utworzeniu i będzie ona zmieniana wyłącznie na żądanie użytkownika. Liczba losów jest na poniższym obrazku tożsama z szerokością prostokąta.

minix1

Kiedy ma nastąpić wybranie nowego procesu do wykonania – losujemy liczbę od 1 do sumy losów wszystkich gotowych procesów. W tym wypadku od 1 do 11.

Następnie patrzymy na którym procesie wypadła nasza liczba i ten proces zostanie uruchomiony. Kiedy zajdzie potrzeba wybrania nowego procesu – należy powtórzyć tą procedurę.

  • Liczby 1,2,3,4,5 wypadają na procesie #1
  • Liczby 6,7,8 wypadają na procesie #2
  • Liczby 9,10 na procesie #3
  • A 11 na procesie #4

Zakładając, że wylosowanie każdej liczby jest równo prawdopodobne – proces 1 ma aż 5/11 szans na bycie wylosowanym, więc po wielu losowaniach okaże się, że dostał znacznie więcej czasu procesora niż proces 4 którego szanse były 1/11. Wychodzi na to, że będzie to 5-krotna różnica.

Dla przykładu załóżmy, że wylosowaną liczbą jest 8. Spowoduje to, że teraz uruchomionym procesem będzie proces #2. Na tym kończy się operacja wyboru procesu. Wylosowaliśmy, ustawiliśmy, gotowe.

Implementacja

Czytaj dalej