czwartek, 23 czerwca 2011

Protogon FS

Dwa tygodnie temu natrafiłem na ciekawą notkę pochodzacą z beta archive w której tamtejsi geekowie znaleźli w buildach windowsa 8 coś co zapowiada nowy system plików dla windowsa.

Tak bardzo się tym zainteresowałem że poszukałem najnowszego wyciekłego builda i postanowiłem go zainstalować,co się później okazało ?

W najnowszym buildzie mamy doczynienia z rozwiniętym systemem plików ,w praktyce miałem pełny dostęp do jego partycji.
Zastanowiło mnie tylko że nie obejmowała go opcja defragmentacji, może ms w końcu zaimpementował w nim algorytmy jej przeciwdziałające ?

Tak czy siak jedno jest pewne beta win8 zbliża się wielkimi krokami, toteż przy jej okazji dowiemy się nowych rzeczy na temat protogona ?

Ja za niego osobiście trzymam ksiuki ;)

http://wgrajfoto.pl/pokaz/img0611/protagon3501.jpg

poniedziałek, 21 lutego 2011

NXT

Few days ago I've bought my first lego Mindstorms set.

I'm really impressed by functionality of this toy.

But what is most important for me, I have really begun learnt of subjects most important in robotics like Programming (In Ada And Prolog Of Course ;-)), mechanics, electrical engineering, electronic or communictation systems. Also I'm planning go to Robotics as second department. It's funny that simple bricks pushed me to this.


In future I'm going to present my constructions.

środa, 12 stycznia 2011

Hardware Information in FreeBSD Command Line

Switching between open source OSs can sometimes be confusing, since they may have different ways of doing things. A common task that may confuse some users when switching systems is getting hardware information. In the case of Linux-based OSs and FreeBSD, the following cheat sheet for figuring out how to do the same things on two different systems can ease some of the pain.

CPU and memory information

Because Linux-based systems use the proc device filesystem to provide access to information about hardware devices in the system, getting specific information about the hardware sometimes involves finding it in files using the grep command. The same information is normally accessed on FreeBSD via the sysctl command.

To get information about your CPU model . . .

Linux:
grep model /proc/cpuinfo
FreeBSD:
sysctl hw.model
To get information about total system memory . . .

Linux:
grep MemTotal /proc/meminfo
FreeBSD:
sysctl hw.realmem
Device listings

Information about many other devices might be needed as well. For these, each system has tools designed to provide listings of devices connected to various system buses.

To get information about PCI devices . . .

Linux:
lspci -v
FreeBSD:
pciconf -lv
To get information about USB devices . . .

Linux:
lsusb -v
FreeBSD:
usbconfig
To get other connected device information . . .

Linux:
dmidecode
This command shows DMI/SMBIOS hardware information.

lshal
This command shows all devices managed by the HAL subsystem.

FreeBSD:
atacontrol list
This command shows all ATA devices.

camcontrol devlist -v
Notes

Some of the above commands may work from a normal, unprivileged user account. Others may be restricted to root access.

On both of these OS types, a lot more information can be had by means similar to those described above. For instance, the /proc/cpuinfo and /proc/meminfo files contain a lot more information than just the CPU model and total memory. There is a sysctl command on Linux-based systems as well as on FreeBSD and other BSD Unix systems, but it is not as broadly useful as on FreeBSD, nor does it offer as comprehensive coverage of the system, because Linux-based systems default to other means of accessing and configuring system configuration values (such as the proc filesystem). On either system type, a picture of sysctl capabilities can be seen by viewing the utility’s manpage.

If you are feeling curious and have some time to spend exploring, sysctl -a outputs all information sysctl has to provide.

czwartek, 23 grudnia 2010

Dla mlodych koderow

Dawno mnie tu nie bylo wiec wrzuce 2 ciekawe linki dla mlodych koderow chcacych sie nauczyc pisania w drugim lub kolejnym jezyku.

http://ideone.com/

Internetowy interpreter kilkudziesieciu jezykow programowania
;-)

http://rosettacode.org/wiki/Welcome_to_Rosetta_Code

A tu szablony skladni algorytmow w roznych jezykach ;-)

czwartek, 4 listopada 2010

Symbian uratowany? przez UE

Wiele osób skazywało symbiana na rychłą śmierć. Z jednej strony nacisk ze strony Androida , z drugiej niepewność co do istnienia samej fundacji. Jednak niespodziewanie z pomocą przyszła Unia Europejska.


Na projekt UE postanowiła przeznaczyć 11 mln Euro , pozostała część kwoty będzie pochodziło od konsorcjum firm o nazwie SYMBEOSE złożona min z Nokii , Symbian Foundaton i 24 innych podmiotów głównie producentów sprzętu mobilnego.

Fundacja ustaliła również dwa główne cele dla których będzie optymilizowany system : lepsza wieloprocesowość , niskie żużycie energii oraz cloud-computing w urządzeniach mobilnych.

Pozostałe cele fundacji :

Jądro :
2.1 – SMP
2.2 – Bezpieczeństwo i Identyfikacja
2.3 – Systemy plików bazujące w chmurze
2.4 – Akceleracja i nowe standardy video
2.5 – Zaawansowana obróbka zdjęć
2.6 – USB
2.7 – Platformy inne niż mobilne (Czyżby porty na x86 ppc, i mips ?)

Middleware
3.1 – Infrastruktura zarządzania energią
3.2 – Zarządzanie zasobami and QoS
3.3 – Zmniejszenia zużycia energii
3.4 – Bezpieczeństwo dzwonienia spoza voip
3.5 – Bluetooth

Aplikacje i usługi
4.1 – Migracja sesji web
4.2 – Usługi Płatności
4.3 – Zaawansowane interfejsy (dzwięk , gesty)
4.4 – Infrastruktura dla usług trybu użytkownika
4.5 – Aplikacja Phone-centric? (Pewnie jakiś menadżer połączeń , sms i mms)
4.6 – Ułatwienie portowania aplikacji z innych systemów na Symbiana

Narzędzia Developerskie
5.1 – Profilowanie i ulepszanie aplikacji dla symbiana
5.2 – IDE wraz z symulatorem symbiana
5.3 – Kompilacja JIT
5.4 – Rozpowszechnienie systemu na niskobudżetowe platformy systemowe
5.5 – Narzędzia programistyczne dla nieprogramujących użytkowników.

Warto dodać że symbian od samego początku był tworzony pod urządzenia mobilne , zawiera rozszerzalne obiektowe jądro RT i api oparte na QT4 (dostępne są też inne języki programowania jak Python , Java czy .Net). Jest też jedynym w pełni otwartym mobilnym systemem tworzonym w całości przez społeczność i fundację. Oparty jest na licencji EPL.

Czas więc pokaże czy wydane pieniądze na ten system okażą się jedynie roztropnością biurokratycznej Unii czy też rozwiną w pełni ten koncepcyjne rewolucyjny system jak to się stało z minixem.

czwartek, 23 września 2010

Tekst o GPLu

Z racji toczących się dyskusji na osnews odnośnie wyższości - bądz niższości licencji GPL , postanowiłem napisać swoje zdanie na ten temat. Co prawda dyskusja na ten temat ucichła jednak postanowiłem umieścić tekst mojego dzieła na moim blog . Może komuś się przyda ?

Na razie jest bez linków , gdyż podlinkowywanie zajełoby zbyt wiele czasu , jeśli ktoś ich potrzebuje nie pisze śmiało.

A jeszcze jedno Prawa Autorskie - można śmiało wykorzystywać te fragmenty w swoich pracach tylko proszę o notkę że bazowaliście na nim :)

ps. Jest trochę błędów w tekście.

Tekst powstał dzięki pomocy blinkkina i opiniom trasza.


GPL to Obecnie chyba najczęściej używana licencja wolnego oprogramowania . Używana w wielu projektach chociażby w Linuxie , GCC, qemu czy userlandzie GNU . Jednak podlega ona coraz częstszej i agresywniejszej krytyce . Toteż z tego powodu warto się zainteresować argumentami przeciwników tej licencji .

Wirusowość ,"niekompatybilność" z Innymi licencjami i dzieła pochodne .
GPL został stworzony w celu ochrony wolności kodu , przez co posiada on mechanizm wirusowości polega on na tym że włączenie kodu na licencji GPL do innej licencji lub nawet dynamiczne zlinkowanie - powoduje że cały kod staje się GPL'em i musi być rozpowszechniony na tej licencji .(w/g twórców licencji - FSF)
Pomysł świetny przeciw zamkniętym projektom jak chociażby - Hyper-V , jednak to rozwiązanie wirusuje również wolne nie copyleftowe licencje , co doprowadza wręcz do kuriozalnych sytuacji takich jak przepisywanie sterownika LVM dla *BSD czy systemu plików NILFS aby nie zawirusować jądra kodem GPL (jakie kolwiek linkowanie również wirusuje) , w efekcie GPLowskie sterowniki , systemy plików , biblioteki z linuxa i systemów opartych na tej licencji nie mogą być zastosowane w systemach o innych licencjach gdyż zmieni to licencje calego jądra co spowoduje gigantyczne problemy organizacyjne ,w efekcie nikt z nie GPLowskiego projektu nie może wlączyć kodu GPL , jednakże do kodu na gpl można włącząć większość kodu na liberalnych licencjach .
Co ciekawe GPL można linkować tylko z jedną licencja - AGPL jednak dopiero od wersji trzeciej.
Obecnie deritive works to najbardziej skomplikowany problem Generalnej Licencji Publicznej w którym już nikt praktycznie nie wie co jest a co nie jest dziełem pochodnym. Równolegle pojęcie wirusowości nie jest wprowadzone wprost do tejże licencji jeszcze bardziej utrudnia jej pełną interpretacje (np. zdanie Linusa Torwaldsa jest inne niż FSF). I jedynie jednoznaczny wyroku sądu byłby w stanie rozstrzygnąć oba spory.
Jako ciekawostke dodam że sprzedaż skórek premium na wordperssie wskutek wirusowości GPL wymusza ich upublicznienie , jednak GNU zaleca stosowanie AGPL do aplikacji webowych i wordpress się do tego stosuje - z racji tego że GPLv2 nie jest kompatybilne z AGPL jest to zwyczajne złamanie licencji.

Linking Exceptions .
Jak wiadomo GPL posiada listę licencji kompatybilnych które można włączać do kodu na GPL , można też zawirusować kod zamknięty lub oparty na liberalnej licencji , jednak co się stanie jeśli do kodu na weak copyleft trafi GPL lub się zlinkuje ? Okazuje się że nic bo nie można takich binariów zgodnie z prawem dystrybuować .
Jednak na to znaleziono sposób - Linking Exceptions są to zmodyfikowane licencje oparte na gplu i z nim kompatybilne . Umożliwiają one łączenie z róznymi niekompatybilnymi licencjami a nawet z zamkniętym kodem . Ten proceder jest często stosowany w wielu systemach RT i w przypadku kompilatorów .
Punkt ten dałem jako ciekawostkę gdyż nie jest on poddawany krytyce ze strony środowisk liberalnych a wręcz uznawany za częściowe rozwiązanie problemów z GPLem , mimo jeszcze większego zagmatwania tejże licencji.

Ładowanie zamkniętych sterów.
W linuxie istnieją zamknięte stery np. z nvidii, moduły na licencjach niezgodnych z GPL czy ZFS dostępne z poziomu jądra nie fuse. Okazuje się że sposób na wprowadzenie ich jest dość banalny , do jądra ładuje się specjalny program ładujący zamknięte moduły na licencji LGPL , program ten z kolei ładuje zamknięte moduły już po rozruchu jądra . Nawet srodowisko prawniczne i programistyczne jest podzielone co do legalnosci tego procederu , niektóre dystrybucje korzystają z oczyszczonej gałęzi linux-libre jeszcze inne bazują na zamkniętych sterach.

PatentLeft.
Drugie wydanie gplu nie regulowało kwestii patentów , przez co ta licencja była niezgodna z licencją Apache która miała załącznik w sprawie patentów w/g niej licencjobiorca dostawał prawa do patentu ktore otrzymał projekt , jeśli pozwał projekt licencja jest mu cofana .
Z kolei GPLv3 reguluje kwestie patentów w sposób zbliżony do strong copyleft w prawach autorskich - jeśli firm otrzyma patent związany z projektem to natychmiast zostaje on dodany do puli otwartych patentów , i jeśli inna firma bazowała na samym opatentowanym pomyśle w kodzie , może zostać zmuszona do opublikowania swojego kodu na gplv3 . Stąd niektóre firmy zakazują patrzeć na GPLV3 a w środowisku *BSD w system standard base znajduje się dwuletni GCC w wersji 4.2.1 (ostatnia wersja na GPLv2) dodatkowo przygotowywane na zmiany domyślnych komplatorów (Clang , PCC).

Wielkość i język Licencji
No właśnie czy czytaliście całą GPLv2 ? a może v3 któranawet po usunięciu preambuły i klauzuli ograniczonej odpowiedzialności to nadal ponad 5 tysięcy słów i jest znacznie dłuższa niż poprzedniczka ? Na codexonie jest porównanie licencji FreeBSD a GPLv2 różnice widać gołym okiem . Oczywiście zwolennicy GPL wskażą że tylko ta licencja może w pełni chronić interesy free software , jednak nie jest tak do końca gdyż dopiero GPLv3 rozwiązuje takie problemy jak , kwestie patentów na oprogramowanie, ochronę DRM , kompatybilność z licencją apache , kodeksowe systemy prawne czy proceder tiwoizacji . Ale w efekcie ta licencja stała się ogromna pod względem wielkości , warto ją porównać ze zbliżoną nowo tworzoną licencja jaką jest MPLv2 .

Drugą sprawą jest fakt sposobu jej napisania , aby ją poprawnie interpretować The Software Freedom Law Center wydało specjalny poradnik . Jakby tego było mało to dla prawników w niemczech wydano nawet książkę odnośnie interpretacji GPL w ich systemie prawnym . I to ma być licencja rzekomo jasno zrozumiała dla programistów skoro prawnicy miewaja z jej interprtacja problemy ? A wyjątki w GPL tylko ten problem pogłębiają.

Podwójne Licencjonowanie .
Oficjalnie nie można zamknąć kodu będącego na GPL , co z tego skoro można to prosto ominąć wydając program na dwóch licencjach ? Niestety to coraz częstszy proceder.
Pewnie znana jest wielu osobom gra nexuiz , w której to developer zdobył prawa do gry przez lojalki i zakup licencji od id software w efekcie stał się właścicielem kodu i mógł go relicencjonować na zamknięty kod co umożliwiło jego sprzedaż , obecny nexuiz to kontynuacja projektu z tego co już było opublikowane na GPLu .
Jeszcze bardziej zaawansowana sprawa jest min. z PyQT ,niektórymi systemami RT , mysql a obecnie Virtualboxem . Chcąc rozwijąc program i dodawać commity podpisuje się LOJALKI w efekcie których oddaje się prawa do kodu właścicielowi który śmiało może wtedy relicencjonować go i sprzedawać rownież jako closed source , niestety rzadko kiedy deweloperzy coś z niego otrzymują . (FSF również używa lojalek.)
Jednak to nie jest kuriozum najdalej w tym wszystkim poszła firma ADACORE zajmująca się rozwojem tego języka ADA (znanym w rt i embeed) , postanowiono że kompilator , runtime i biblioteki w darmowej wersji Gnat GPL są wydane na czystym GPLu bez żadnych wyjątków (w przeciwieństwie do np. GCC). W EFEKCIE binaria każdego programu który postanowisz rozpowszechnić musisz wydać na GPLu . Oczywiście AdaCore znalazła rozwiązanie Gnat PRO gdzie jest zastosowany wyjątek w licencji (GMGPL) który nie infekuje GPLem binarii , jednak za ten luksus musisz zaplacić lub używać alternatywnego słabiej rozwiniętego kompilatora tego języka .
Co najdziwniejsze Richard Stallman poparł tą praktykę ,w poście pojawił się również jeden z developerów MySQL który podniósł krytykę opisując jak podójne licencjonowanie wygląda w rzeczywistości .

Prawa do kodu.
A jak w tym wszystkim wygląda sytuacja kiedy projekt rozwija kilka organizacji (załóżmy 3) i nagle zaczynają się kłócić o kod który jedna z nich chce go relicencjonować . Wtedy również zaczyna się problem i jedynym wyjściem w takiej sytuacji jest wycięcie spornego kodu i przepisywanie usuniętych fragmentów na nowo . Często dochodzi do kuriozalnych sytuacji kiedy projekt na licencji GPL nie ma żadnego właściciela (jak linux) wtedy jakiekolwiek relicencjonowanie czy zmiana zasad developingu nie może mieć miejsca . Stąd korporacje w niektórych projektach mogą dopychać tyle kodu ile potrzeba ,aby móc decydować w ten sposób o kierunku rozwoju projektu , korzystnym dla siebie nie społeczności lub twórców.

A jednak może do czegoś ta licencja się przydaje ?
Z jednej strony jest oprogramowanie na liberalnych licencjach które przez GPL w większości traci nie mogąc wykorzystać kodu na GPL w swoich projektach, chyba że twórcy postanowili że nie chcą mieć związków z tą licencja (Przykłady to chociażby Emulator Hersules , OpenSolaris , Aros i Open SSL) , bądz właściciele kodu na GPL wydadzą go na drugiej łagodniejszej licencji.
Z drugiej strony, po mojej bezdusznej krytyce :D znalazłem świetne miejsce gdzie ta licencja może znaleźć nową nisze - przemysł.
Obecnie powstają zaprogramowane FPGA(jak Minimig) czy projekty procesorów na licencji GPL które mają za zadanie ułatwić tworzenie projektów młodym inżynierom i ułatwić znalezienie producenta gotowego je wyprodukować . Co z tego wyjdzie ? Czas Pokaże.

niedziela, 25 lipca 2010

OpenVMS pod FreeAXP (x86)

Do napisania tej notki skłoniły mnie wypowiedzi "ekspertuff z for" którzy twierdzili i pouczali mnie
że za pomocą odpowiedniego emulatora pod x86 nie da się uruchomić OpenVMSa , HPUX-a ani Aixa .
Oczywiście od początku domyślałem się że to bzdura w końcu np. na czym by się opierało netbsd?
lecz nie miałem dość wiedzy aby udowodnić że są w błędzie , do niedawna :)

Przypadkowo z jednej ze stron znalazłem odnośnik do płyt z OpenVMSem i emulatorem do niego es40 co rozpoczeło moją zabawę z tym systemem .
Po wielu próbach , nieudanych testach i męczeniu kolegi z auroraux udało mi się znależć odpowedni emulator pod windę oraz dokumentacje od VMSa.

I okazało się że udało się go zainstalować i uruchamia się pod emulatorem :) .

Poniżej opiszę proces instalacji krok po kroku tym którzy będą chcieli pobawić się trochę tym systemem czy porównać go z Windowsem NT .
Opis będzie dla Win7 dla VMSa architektura Alpha , nie próbowałem pod innymi systemami .

Co jest nam potrzebne ?

- Płyta z OpenVMSem ja zainstalowałem wersje 8.3 .

- Odpowiedni emulator architektury alpha axp , skorzystałem z FREEAXP , es40 nie działał prawidłowo .

- Miejsce na dysku , instalacja przy minimum opcji , bez wsparcia dla programowania wynosi ~2,6 GB , warto więc mieć znacznie więcej :)

- Ogromna cierpliwość , emulacja AXP jest niesamowicie procesożerna przy c2d e6550 pożerała ponad 90% użycia procesora ,
więc możemy zapomnieć o robieniu jej w tle :)


Przed Instalacją :

Na początku konfigurujemy emulator - Pamięć na 128 mb , zaznaczamy start putty automaticaly i ustawiamy naszą kartę sieciową ,
w dka0 każemy stworzyć partycję (zalecane 8-11 gb) ,w dka100 wyieramy obraz iso vmsa . I uruchamiamy .

Uruchomienie chwilę trwa po pojawieniu się znaku zachęty biosa >>> wpisujemy :

boot dka100

i spokojnie czekamy .

Pojawi się 9 opcji do wyboru .

W opcji 8) Execute DCL commands and procedures - mamy dostęp do konsoli VMSa jeśli ktoś chce się nim pobawić bez instalacji to przoszę bardzo :)

Nas interesuje opcja 1 - czyli czysta instalacja wybieramy ją i znów czekamy :)

Instalator zaczyna nas pytać o opcje instalacji .

W pierszej wpisujemy initialize , musimy ją wybrać aby instalator dokonał partycjonowania vdysku za nas .

Jako dysk do zainstalowania wybieramy dka0 .

Potym wybór etykiety i fs , wybrałem ODS-2 gdyż jest mniej problematyczny dla początkujących .

Pożniej musimy podać hasło dla SYSTEM , musi być oni złożone inaczej instalator nie puści nas dalej .

Od tego momentu wybieramy opcje które określają funkcjonalności systemu po instalacji .
Oczywiście wybrałem ich najmniej bo po co tracić miejsce na dysku na rzeczy których się nie przetestuje ;) ?

Toteż wybieramy opcje które nas interesują , generalnie dotyczą one kompilatorów , clusteringu oraz usług sieciowych .
Mamy również możliwość wyboru sub-opcji . Po wszystkim zoczyna się instalacja która trwa ~30 minut .

Po jej zakończeniu możemy wrócić do CLI lub zrestartować system i uruchomić go z dysku komendą boot dka0 .

Uruchomienie może trwać kilka minut , po nim logujemy się jako SYSTEM i podajemy nasze hasło .

Listę poleceń wyświetlamy za pomocą HELP , a polecenie za pomocą HELP POLECENIE .

Jeśli znajdę więcej czasu może cos skubnę na temat tego systemu .

Obszerne FAQ o systemie : http://h71000.www7.hp.com/doc/os83_index.html

Dodatkowe info :

http://www.openvmshobbyist.com
http://labs.hoffmanlabs.com/
http://www.montagar.com/hobbyist/link.html
http://www.openvms.org/

Krótki rys :

http://www.osnews.com/story/10

Wolny Klon OpenVMSa , działa pod qemu .

http://www.freevms.net/

niedziela, 23 maja 2010

OpenBSD 4.7

Wydano kolejną wersję Systemu OpenBSD nastawionego w głównej mierze na
bezpieczeństwo . Najistotniejsze zmiany obejmują architekturę MIPS oraz sterowniki audio . Główne zmiany :

poniedziałek, 3 maja 2010

Struktura Katalogów we FreeBSD

Kiedyś wrzuciłem Strukturę Katalogów W OpenSolarisie z objaśnieniami , dziś postanowiłem wrzucić coś podobnego odnośnie FreeBSD :)

/boot -> Jądro i BootLoader Pliki Startowe
/root -> Katalog główny użytkownika root'a
/bin -> Binaria programów
/sbin -> Binaria plików systemowych uruchamianych wyłącznie w trybie roota .
/lib -> Biblioteki systemowe
/var -> Logi i ustawienia programów rozruchowych
/etc -> Pliki Konfiguracyjne
/tmp -> Pliki tymczasowe
/usr -> Folder przestrzeni użytkownika
/usr/home -> Katalogi domowe użytkowników
/usr/lib /usr/bin /usr/sbin -> Biblioteki i Binaria w przestrzeni użytkownika
/usr/local/* -> programy i konfiguracje zainstalowane lokalnie
/etc/fstab -> systemy plików które są automatycznie montowane podczas ładowania systemu
/mnt -> montowanie
/usr/ports -> porty

wtorek, 30 marca 2010

Goodbye Free Solaris 10 !

Jeden z bloggerow zamiescil elektryzujaca informacje informujaca o zmianie licencji Solarisa 10 , zmiana ta polaga na tym że Solaris 10 z Darmowego systemu stał się 90 dniowym trialem . Informację tą potwierdził nawet infoword

To nie koniec złych wieści odnośnie Solarisa okazuje się jeszcze że
Oracle wycofuje się ze wsparcia portu na System Z .

Nic tylko czekać na nowe wieści od Giganta Bazodanowego .