Systemy operacyjne w Javie

0

Pisząc "Znowu", mam na myśli, że już ktoś kiedyś próbował (System Operacyjny napisany w javie z pozdrowieniami od wujka Google, który znalazł ten temat sprzed 2 lat).
Ja miałbym w związku pytanie. Jeżeli wasza odpowiedź mnie zainspiruję, to może w coś takiego się pobawię (od pewnego czasu zastanawiam się nad systemem operacyjnym dla seniorów, tzn. łatwym do obsługi, przejrzystym itd.). Najpierw jednak, kilka informacji (jeżeli gdzieś się pomyliłem, to mnie poprawcie):

Programy w Javie odpala się za pomocą JVM (zwane także JRE). JVM to Java Virtual Machine, czyli maszyna wirtualna. Maszyna wirtualna to program symulujący działanie komputera (jak VirtualBox), dzięki któremu można przetestować inne systemy operacyjne. Taki trik Suna sprawił, że program z Javy powinien teoretycznie działać tak samo, bez względu na system operacyjny. Niestety, JVM nie posiada pojedynczej wersji, ale aż 4: Windows, Mac OS X, Linux i Solaris.

Zacząłem się zastanawiać, co z tym zdziałać, aż tu nagle jakimś cudem trafiłem do biblioteki miejskiej, gdzie znajdowały się komputery. Po uruchomieniu jednego, wyświetlały się teksty jak przy ładowaniu systemu, lecz co chwila przelatywało mi słowo "Linux". Pomyślałem sobie, że pewnie użyli go, bo jest darmowy. Nieoczekiwanie, zamiast normalnego ekranu, włączyła się natychmiastowo przeglądarka Chrome. Mimo dostępności przycisków maksymalizacji i minimalizacji, te przyciski nie działały. Działał jedynie przycisk zamknięcia programu, który całkowicie wyłączał komputer. W związku z tym, pomyślałem, że można tak napisać system w oparciu o jądro Linuxa, że będzie on mógł odpalić tylko jeden program. Poczytałem trochę o jądrze Linuxa i znalazłem to: http://pl.wikipedia.org/wiki/Linux_(j%C4%85dro)#Uruchamiane_oprogramowanie

Zainteresowało mnie tam zwłaszcza to, że jądro Linuxa może odpalać programy napisane w Javie poprzez maszynę wirtualną (tu chodzi chyba o JVM). W związku z tym, moje pytania do profesjonalistów jest następujące:

  1. Czy można utworzyć taką wersję Linuxa, który odpala tylko jeden program?
  2. Czy tym programem może być program napisany w Javie, odpalany przez zainstalowany w Linuxie JVM?
  3. Czy cały ten pakiet (jądro Linuxa + JVM + program w Javie) musiałby podlegać chociażby licencji GPL, czy też samo jądro Linux? (Linux jest na tej licencji, i wymaga zachowania licencji dla kopii bądź modyfikacji jądra)
1
  1. Tak
  2. Tak
0
norbi452 napisał(a):

Czy cały ten pakiet (jądro Linuxa + JVM + program w Javie) musiałby podlegać chociażby licencji GPL, czy też samo jądro Linux? (Linux jest na tej licencji, i wymaga zachowania licencji dla kopii bądź modyfikacji jądra)

Chyba sam sobie odpowiedziałem na to pytanie:

  1. Na licencji GPL będzie tylko jądro Linuxa
  2. JVM jest na licencji freeware, ale zakładając, że będę pobierał pieniądze za system, to będzie to kasa za program w Javie, a nie za JVM

Czy prawda to, czy fałsz?

PS: Zanim na poważnie zajmę się pisaniem systemu operacyjnego od zera, zrobię najpierw coś udającego system operacyjny, będący tak naprawdę zwykłą aplikacją na Windowsa. Może mi ktoś powiedzieć, jak się takie coś nazywa?

0
norbi452 napisał(a):

PS: Zanim na poważnie zajmę się pisaniem systemu operacyjnego od zera, zrobię najpierw coś udającego system operacyjny, będący tak naprawdę zwykłą aplikacją na Windowsa. Może mi ktoś powiedzieć, jak się takie coś nazywa?

http://pl.wikipedia.org/wiki/System_operacyjny

0

Nazywa się to uruchamianie aplikacji w trybie kiosku. Działa tak np. część bankomatów, automaty do zakupu biletów, te od wyświetlania reklam i tysiące innych. Czas stworzenia takiego systemu jest o wiele krótszy, gdy nie musimy pisać własnego systemu operacyjnego. Dlatego używa się do tego Linuksy i Windowsy.

Wpisz sobie w google: kiosk mode.

0

kiosk mode? Na początku się troszkę uśmiałem, ale gdy wpisałem kiosk mode do wujka Google, to przestałem się śmiać.
Teraz problem kolejny i wielokrotnie naruszany: Plik .JAR. Stworzyłem taki plik za pomocą konsoli Windowsa, wrzuciłem do środka pliki klas oraz MANIFEST.MF - wszystko po to, by można było odpalić .jar jak .exe. Sęk w tym, że "Error: Invalid or corrupt jarfile". Najlepszym sposobem na przedstawienie całości kodu będzie http://www.sendspace.pl/file/1f45129ba00f1f093e6725c. Klasą główną jest tu SimpleOS.class z paczki simpleos

EDIT: Nieważne, znalazłem sposób na automatyczne zrobienie .jar w NetBeans

0

Może tego nie wiesz, ale tak działa bardzo dużo urządzeń. Prawdopodobnie większość z tych 3 miliardów, którymi przy instalacji Javy chwali się Oracle. ;)
Z najbliższego podwórka, to tak właśnie działa każdy turbo dekoder telewizji N (każdy). To nic innego jak Linuks odpalający JVM, która odpala aplikację Javową.

0

@norbi452, najprostszy sposób zrobienia działającego jara w konsoli, to:
**jar -cvfe simpleos.jar simpleos.SimpleOS * **

0

Okej, ale problem rozwiązałem. Piszę w NetBeans i słyszałem gdzieś, że istnieje tam funkcja tworzenia plików .JAR, ale nie mogłem tej funkcji znaleźć. Poszukałem w sieci i odkryłem "Clean and Build", po którym w folderze "dist" pojawia się plik .JAR

1

Wrócę na chwilę do wątku, żeby nie było nieporozumień które wynikły w tym temacie Przeglądarka w Javie.

Ty NIE piszesz systemu operacyjnego. Odpalenie kioskowej aplikacji na jakiejś dystrybucji GNU/Linuxa to jeszcze nie jest napisanie systemu operacyjnego. To po prostu napisanie aplikacji. Żeby napisać SO nawet oparty na jądrze Linuxa potrzebujesz troszkę więcej zachodu.

To co możesz zrobić, to przygotować zmodyfikowaną dystrybucję (Ubuntu, Fedora, openSUSE) która odpala Twoją aplikację. Ale to wciąż jest gotowy system operacyjny, tyle że, z Twoją aplikacją.

0

Ależ ja nie mówię, że sobie nie poradzisz. Tylko nie zaczynaj pracy od końca, nie rób 'przeglądarki' jeżeli na Twoim 'systemie operacyjnym' nie ma środowiska graficznego, nie ma systemu paczek, nie wspominając nawet o JVM. Nie mówię tego po to by Cię zniechęcić, tylko by zracjonalizować Twoje zapędy.

Przyjrzyj się narzędziom typu http://susestudio.com/ powinny w zupełności Ci wystarczyć, dając jednocześnie olbrzymie możliwości dostosowania do własnych wymagań.

0

Trzeba zacząć od http://www.linuxfromscratch.org/ :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1