Systemy operacyjne w Javie

Systemy operacyjne w Javie
N4
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 12 lat
  • Postów:193
0

Pisząc "Znowu", mam na myśli, że już ktoś kiedyś próbował (http://4programmers.net/Forum/Java/170451-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)

...
lukasz1235
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 8 lat
  • Postów:1105
1
  1. Tak
  2. Tak
N4
Chwała ci, o wielki Łukaszu! Zabieram się do pracy! Teraz tylko od odpowiedzi na ostatnie pytanie zależy, czy mój system będzie darmowy, czy nie :D (Oczywiście, żartuję)
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
N4
Byłoby to możliwe, ale po lewej stronie zakładek nie było poczty i innych przycisków interfejsu. Ale poza tym, tak :)
N4
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 12 lat
  • Postów:193
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?


...
edytowany 1x, ostatnio: norbi452
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

RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:około rok
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.

edytowany 1x, ostatnio: Rev
N4
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 12 lat
  • Postów:193
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


...
edytowany 1x, ostatnio: norbi452
bogdans
Jak robiłeś tego jara w konsoli?
Olamagato
  • Rejestracja:ponad 16 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Polska, Warszawa
  • Postów:1058
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ą.


Jeżeli ktoś komuś coś, ewentualnie nikt nikomu nic, to właściwie po co...?
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

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


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
N4
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 12 lat
  • Postów:193
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


...
bogdans
Wiem, że problem rozwiązałeś. Ale mogą ci ukraść NetBeansa.
N4
Ukraść? W sensie, że... co?
bogdans
W tym sensie, że musisz zrobić jara na komputerze, na którym nie ma NetBeans.
N4
Olamagato
Żeby było trudniej? Jest taki programik w JDK/bin, który nazywa się dość podstępnie bo... jar (np. jar.exe). Dziwnym trafem ma on funkcję podobną do programów arc, pkzip czy rar. :)
airborn
  • Rejestracja:prawie 16 lat
  • Ostatnio:prawie 7 lat
  • Postów:274
1

Wrócę na chwilę do wątku, żeby nie było nieporozumień które wynikły w tym temacie http://4programmers.net/Forum/Java/205083-przegladarka_w_javie?p=886204#id886204.

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ą.

N4
Ehhh... " weźmiesz jakąś dystrybucję Linuksa (a nie samo jądro)" - ale ja mam zamiar właśnie wziąć samo jądro i się nim pobawić, i błagam - żadnych komentarzy typu "nie poradzisz sobie", "nie umiesz", "nie znasz podstaw" itp. - TAK! Nie znam podstaw! I właśnie to, że się na tym nie znam, motywuje mnie do tego, by się tego nauczyć.
airborn
  • Rejestracja:prawie 16 lat
  • Ostatnio:prawie 7 lat
  • Postów:274
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ń.

edytowany 1x, ostatnio: airborn
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 8 godzin
0

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


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
N4
:D Czy coś zrobione w Scratchu ma w ogóle prawo działać jako samodzielny system? xD
N4
A, sorry. Jak widzę "Scratch" (i jeszcze puzzle w logo), to na myśl przychodzi mi tylko http://scratch.mit.edu/ :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.