MichOS, nowy system operacyjny

0

Witam.

Mam 15 lat i zbyt duza liczbe wolnego czasu, dla tego pragne stworzyc swoj wlasny system operacyjny.
Moj system ma byc pisany z zalozenia na architektore amd64.
Jadro ma byc mikrojadrem, oczywiscie sterowniki w przestrzeni uzytkownika, chociaz moze 2 najwazniejsze nie.
Jako format wykonywalny bedzie uzywany format elf, ale stworze nowy system plikow dla tego systemu.
Nie bedzie on w zaden sposob kompatybilny binarnie lub w jakikolwiek inny sposob z systemami unixowymi, choc bedzie uzywal czesciowo unixowej terminologii.
Bylbym zapomnial: mam zamiar go pisac w jezyku c++.
Assemblera, jako jezyk bez ktorego nawet nie zaczne, wymieniac nie musze, prawda?
Wiem ze duzo sie z takiego pisania naucze, ale jesli mi sie uda, chcialbym aby ten system byl funkcjonalny i stabilny.

Czy ma ktos jakies pomysly na to, co w takim osie moglbym umiescic?
Pare rzeczy wymyslilem, nie koniecznie innowacyjnych, ale jednak potrzebuje paru nowych pomyslow na fajne funkcje na pozniej.

Z gory dziekuje za odpowiedz i pozdrawiam.

0
webczat napisał(a)

Czy ma ktos jakies pomysly na to, co w takim osie moglbym umiescic?

Wszystko.
Zacznij od trybu tekstowego i skup się nad menedżerem pamięci, obsługą przerwań i wielozadaniowością.

0

Czy system w trybie tekstowym moze byc konkurencyjny?

0

Ty już o konkurencyjności myślisz? To nie zapomnij zaimplementować IEP i quicksorta...

0

Zle wroze temu Twojemu systemowi, jesli na etapi pomyslow myslisz o pieniadzach i konkurencji.
Od razu mowie, ze nie nie bedzie konkurencyjny nawet jakby i GUI posiadal, poniewaz zycia Ci nie starczy na dogonienie konkurencji.
Dajmy na to, ze Twoj system bedzie za kilka lat do uzytku i bedzie mniej wiecej taki jak dzisiejsze, ale te dzisiejsze juz nie beda takie same ;)
Hipotetycznie oczywiscie, patrzac realnie to nie kilka lat, a kilkanascie raczej.

0

ok, z konkurencja lekka przesada :d

0

Chyba nie myślałeś, że w pojedynkę osiągniesz to co sztab jednych z lepszych umysłów tego świata i to co planują inne wielkie korporacje już od wielu lat??? Na początku zalecałbym naukę języków a OESa zostawił sobie na później...

0

a niby czemu mam caly zespol zatrudniac do napisania podstawowego jadra? jak bede mogl juz drivery pisac to wtedy sobie inne osoby bede probowal znalezc

0

Oczywiście myślisz, że napisanie kilku tysięcy linii kodu załatwi wszystko? Inni mają pisać drivery? Najpierw musisz mieć faktycznie działający system - poza jądrem to będzie kilkadziesiąt modułów co najmniej. Wracając nieco do pierwszego postu - assemblera praktycznie rzecz biorąc używać nie musisz, tylko kilka wstawek, nic więcej.

0

po pierwsze, mikrojadro nie ma modulow.
po drugie, to raczej kilkadziesiat tysiecy linijek.
po trzecie, jakies tam moduly musze miec, a raczej serwery, i nie mowie ze wszystkie drivery beda mi inni pisali, tylko ze bede je pisal tez, ale bede szukal developerow do zespolu.
co do assemblera to pisanie bootloadera nie jest trudne, ale jest wieksze niz mala wstawka assemblerowa.

0

Serwery/usługi nie są modułami? A to ciekawe... Jest kilka mikrojąder mających po kilka-kilkanaście tysięcy linii kodu. Po jakiego wała pisać własny bootloader?

0

od kiedy to program, dzialajacy jako osobny program, jest modulem jajka?
co do loadera: a po jakiego wala go nie pisac?
chce wlasny fs, wlasne api, czemu wlasnego loadera mam nie miec?

0

Gdzie napisałem 'moduł jądra'? Napisałem tylko, że podstawowy system to będzie co najmniej kilkadziesiąt modułów - programów, usług, jak zwał tak zwał.

Czemu bootloadera nie pisać? To nie ma sensu, szczególnie, że i tak jest LILO/GRUB, z którymi prędzej czy później będziesz to potrzebował poskładać.

0

przez chainloading zaladuje

0
webczat napisał(a)

od kiedy to program, dzialajacy jako osobny program, jest modulem jajka?
co do loadera: a po jakiego wala go nie pisac?
chce wlasny fs, wlasne api, czemu wlasnego loadera mam nie miec?

Docelowo może.
Ale na razie lepiej podczep się pod jakiś gotowy loader.

To samo filesystem, na pewno lepiej wyjdziesz gdy zaczniesz np. od FAT (nawet bez długich nazw plików na początku). Po prostu coś, do czego będziesz miał od początku normalny, nieograniczony dostęp.

0

Najpierw zacznij pisać, i pochwal się swoimi pierwszymi, małymi kroczkami. I więcej pokory przed samym sobą.
A pisanie systemu w C++ nie jest najlepszym pomysłem, uwierz mi.. Myślałem kiedyś podobnie. Powodzenia.

0

w c sie da, w c++ tez sie da. co do szybkosci nie wiem.
Jesli chodzi o bootloader:
dla czego sie nie podczepie? poniewaz nie chce. dla czego nie chce? bo chce miec swoj loader. takie w stylu jak cos moge napisac to nie uzywam gotowca.
Co do filesystemu:
Fat by sie nie nadawal. ext2 by sie nie nadawal. a jak juz napisalem specyfikacje partycji bootowalnej to fs tez napisze

0

na razie jestem prawie gotowy na rozpoczecie projektu, tzn na napisanie bootloadera.

0

Jak idzie praca ?

0

na razie jestem na etapie planowania oraz pisania narzedzi podstawowych, ktore umozliwia mi instalowanie loadera na dysku

po prostu planuje nieco inaczej niz powinienem.
Pokaze tu cos jak bedzie co.
Chyba ze ktos chce zobaczyc jak moj kernel ma byc bootowany.

0

ps. do flame może przenieść?

Jakoś mało tu flejmu :/ Nikt nie chce już gasić domorosłych geniuszy myślących że pobiją Microsoft w 4 tygodnie...

Powiedziałbym tak: napisz żeby się czegoś nauczyć, ale nie licz na nic więcej.

(Albo dołącz do szymkity i razem pracujcie nad IEP!!1)

0

Alez tak, oczywiscie!
IEP to najlepsza technologia na swiecie! d:d.
Tak na powaznie, to na nic innego poza nauka nie licze, ale bede pisac tak, zeby dalo sie tego uzywac normalnie

0

ale bede pisac tak, zeby dalo sie tego uzywac normalnie

No, inaczej to ciężko pisać ;)

Chodzi o to że przy pisaniu programów po przejściu pierwszych 90% okazuje się że zrobiło się dopiero 10%. A pisanie OSa jest jeszcze gorsze. (nawet nie mam siły wymieniać różnych terminów)

Co nie zmienia faktu że jak napisałeś, pisanie OSa jest bardzo edukacyjne i nawet jeśli nie skończysz pracy to zawsze będziesz miał solidne podstawy do napisania czegoś innego.

Więcej raczej w wątku wypowiadać się nie będę, tak czy inaczej życzę powodzenia [soczek]

0

Moj blog znajduje sie na http://webczat.jogger.pl/, to dla zainteresowanych tym projektem.

Na razie nic ciekawego nie ma napisanego ale juz sie robii rozwija.

Jak ktos woli kod (na razie kod narzedzi ale bedzie i osa), mozna zajrzec do mojego repo.
http://gitorious.org/michos

0

Hehe, chyba projekt niewypalil ;p Jakos ani blog ani repo nie istnieja ;)

0

Kolejny polski OS zrobił spektakularne IEP...

0

Ja radzę zapozanć się z negatywnym przykładem pisania systemu operacyjnego słowo kluczowe: PowerTeam. Jeśli zobaczysz, że jesteś do nich podobny to powinna ci zaświtać lampa, że coś jest nie tak z twoim pomysłem.
Za nim będziesz brał się za pisanie OS to odpowiedz sobie na pytania minimum:

  1. czy posługujesz się debuggerem
  2. czy masz pojęcie o zarządzaniu pamięcią?
  3. czy napisałeś jakikolwiek kod powyżej 5000 linii, który działał poprawnie?
  4. czy kiedykolwiek korzystałeś z przerwań?
  5. czy pisałeś kiedyś testy jednostkowe?

Jeśli na którekolwiek z tych pytań odpowiesz NIE, to znaczy, że wybierasz się z motyką na słońce.
A to są pytanie minimum, które mają jedynie sprawdzić czy masz pojęcie o skali problemu jakim jest pisanie własnego OS-a.

0

@MarekR22: Co do przeciwwskazan to bym nie przesadzal, bo jak ktos sie za to zabiera to raczej chodzi o rozwoj i nauke, a nie o podbijanie swiata, bo samemu to mozna napisac kernela, ale nie drivery do wszystkiego, czy obsluge 10 systemow plikow(chyba, ze ktos kilka lat ma na to). Tak na dobra sprawe to nakodzisz menadzer pamieci, jakas obsluge jednego systemu plikow, driver klawiatury i jakby nie bylo masz juz system, w ktorym mozesz cos tam zrobic(hehe, skopiowac plik z miejsca na miejsce ;p).

Dlatego, testy jednostkowe bym wywalil z tej listy, poniewaz piszac samemu system i jeszcze do wszystkiego te testy mozna sie zalamac i radosc z naukowego projektu znika, ale tak ogolnie to przydalo by sie miec do czynienia z tymi punktami, ktore wymieniles. Natomiast jak juz o "prawdziwym" kodzeniu systemu mowimy to liste trzeba poszerzyc ;p

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