Archiwum kategorii ‘Research’

Post

Słów kilka o F# – nowym funkcyjnym języku od Microsoft

In F#, Research on 03/22/2008 - autor: d0minikk Otagowane:

 Hello F#

Jak już wszedłem na temat Microsoft Research, to może warto także przypomnieć o F# (ef-sharp) – nowym funkcyjnym języku programowania.
Język F# jest specyficznym połączeniem OCaml, MatLab, Pythona, Scheme i C#. Posiada charakterystyczną interaktywną powłokę a’la Python. Jego wydajność jest porównywalna do C#. W F# możemy korzystać z narzędzi i bibliotek .NET. Co ważne, dostępny jest nie tylko na platformę Microsoftu, ale również na wszystkie platformy wspierane przez Mono.

Z racji tego że miałem trochę wolnego czasu i chciałem trochę odpocząć od WinApi, pobawiłem sie trochę z F#. Tak więc nie czekając, zainstalowałem kompilator języka z F# w wersji 1.9.3.14 (do pobrania stąd)
Do dyspozycji dostajemy interaktywny interpreter – fsi.exe oraz kompilator fsc.exe. Po włączeniu fsi wklepałem standardowe Hello World.

let msg = "Hello World in f# by d01 ;>";; print_endline msg;;

Co spowodowało wyświetlenie stringa ze zmiennej msg ;>

W F# również możemy skorzystać z .NET’owych klas:

let msg = "Hello World";;
System.Console.WriteLine(msg);;

To samo można zrobić za pomocą kompilatora (dziwnie to zabrzmiało ;> ) anyway, po utworzeniu pliku źródłowego z rozszerzeniem .fs, kompilujemy poleceniem:

fsc hello.fs

i otrzymujemy gotowego execa.

A może by tak skorzystać z Windows Forms.. nic prostszego. Program w F# wyświetlający Windowsowe okienko ma zaledwie trzy linijki.

open System.Windows.Forms
let form = new Form(Visible=true, TopMost=true, Text="Witaj! d01 ;)")
do Application.Run(form)

Prawda że proste ;p

Jak już zawsze pisze przy tego typu projektach – zobaczymy co z tego wyniknie, czy język stanie sie popularny i będzie powszechnie stosowany przez koderów, czy może będzie to kolejny ’standard’, którego stosowanie będzie narzucane przez MS.

no, tyle ;)

Screeny:


Linki:
F# na Microsoft Research
en.wikipedia.org/wiki/F_Sharp_programming_language

Post

Singularity – podsumowanie.

In Research on 03/21/2008 - autor: d0minikk Otagowane: , ,

Postarałem sie tutaj zebrać wszystkie informacje na temat Singularity.

Na początku może małe info dla tych którzy nie wiedzą o czym mówie.

Singularity jest projektem badawczym kochanego Microsoftu, którego celem jest stworzenie systemu operacyjnego opartego na mikrojądrze, głównie pisany jest w C#. System jest pisany od zera. Nie mylić z MinWin – przyszłym jądrem Windows 7.

Informacje z polskiej Wikipedii.
“Twórcy systemu Singularity postanowili zaniechać używania sprzętowych systemów ochrony w komputerze, takich jak oddzielne przestrzenie adresowe, czy poziomy ochrony procesora, na rzecz programowej ochrony systemu i procesów (“Software-Isolated Processes” – SIP). Możliwe jest to dzięki kompilacji programów i większości samego systemu do bezpiecznego kodu zarządzanego (ang. safecode). System operacyjny jest w stanie zweryfikować poprawność takiej kompilacji podczas uruchamiania programu (instalowania w pamięci), natomiast po jego uruchomieniu kod aplikacji samodzielnie kontroluje poprawność pracy, w tym poprawność wskaźników pamięci. Programy działające pod kontrolą Singularity mogą działać w ramach tej samej sprzętowej przestrzeni adresowej i w najwyższym poziomie ochrony procesora.
Większość systemu, w tym także większość jądra została napisana w języku C#, podstawą działania systemu i aplikacji jest stabilny kolekcjoner nieużytków (ang. garbage collection), będący elementarną częścią Singularity. Jedynie niewielkie fragmenty systemu, w najniższym poziomie abstrakcji i odpowiedzialne za wczesny rozruch, napisane zostały w językach asemblera, C++, czy C.

W późniejszej fazie rozwoju, do Singularity został dodany mechanizm wykorzystania sprzętowego mechanizmu ochrony. System może pogrupować procesy i każdej z grup przydzielić osobną przestrzeń adresową.
Dzięki wyłączeniu sprzętowych systemów ochrony, system Singularity zyskał na wydajności. Operacje takie jak przełączanie zadań, czy wywołanie systemowe, dzięki braku konieczności zmiany przestrzeni adresowej i trybu ochrony procesora wykonywane są znacznie szybciej niż w systemach takich jak np. Windows.”

A tu już testy Singularity oraz porównanie z innymi systemami.
“Po przeprowadzeniu benchmarków na komputerze z Athlonem 64 3000+ i 1 GB RAM-u okazało się, że prosta operacja przesłania komunikatu między dwoma wątkami, która w Singularity potrzebuje zaledwie 1500 cykli procesora, w FreeBSD 5.3-RELEASE wymaga ich ponad 13 tysięcy, w Linuksie (Fedora Core 4) – niecałych 5800, a w Windows – 6300. Natomiast na stworzenie i wystartowanie procesu potrzebne jest odpowiednio 300 tysięcy cykli w Singularity, milion w FreeBSD, 720 tysięcy w Linuksie i aż 5,4 miliona w Windows XP z SP2. “
Singularity after boot-up

Co mamy w tej chwili ?
Od 4 marca br. dostępny jest kod źródłowy Singularity w wersji 1.1 . A dokładniej Singularity Research Development Kit na Codeplex’ie, który zawiera kod źródłowy, narzędzia do kompilacji, narzędzia wspomagające testowanie, dokumentację oraz dodatkowe informacje.

Prezentacje Singularity:
Singularity: A research OS written in C#
Singularity Revisited
Singularity III: Revenge of the SIP
Singularity IV: Return of the UI

Strony:
pl.wikipedia.org/wiki/Singularity
en.wikipedia.org/wiki/Microsoft_Singularity
research.microsoft.com/os/singularity
codeplex.com/singularity

wykop.pl