Wiele wody upłynie, zanim będziesz rozumował działanie kernela… Zakładam, że jak coś o pascalu gadasz, to raczej nie znasz zasad składni żadnego języka (chyba że polskiego ;P). Ucz się najpierw HLL’a takiego jak C++, Python. Później zaczytaj się w asemblerze pod architekturę x86. Aha - i potrzebna będzie znajomość działania OS’a.
Trzeba znać architekturę sprzętu, kilka języków programowania (chociaż niekoniecznie, wszystko da się zrobić w ASM), a na początek przeczytać taką książkę: http://www.twojaksiazka.com.pl/x_C_I__P_423324.html
Biorąc pod uwagę to, że nad Windowsem pracuje klika tysięcy osób przez klika lat, to sensowny termin napisania tego samemu to jakieś kilkanaście tysięcy lat.
Pewnie przyda się także http://www.amazon.com/Operating-Systems-Design-Implementation-3rd/dp/0131429388 (nie mam pojęcia, czy w Polsce w ogóle jest dostępne 3-cie wydanie). Książka omawia, oprócz samej teorii związanej z projektowaniem, w praktyce zaimplementowany przez autora książki system operacyjny - MINIX 3, w skrócie klon UNIXa oparty o mikrojądro, zgodny z POSIXem.
Nie wiem skąd te gadki o długiej nauce ?!? osa napisałem w 2 tyg. będąc w gimnazjium
Poszukaj tutoriali o OS programming np. na binboy był dobry po polsku. Postępuj dokładnie tak jak piszą a coś napiszesz. A przy okazji sam się przekonasz o Co biega.
PS tutoriale zazwyczaj możesz przepisywać na ślepo (ja tak zrobiłem choć 95% rozumiałem) dzięki temu przynajmniej nauczysz się co trzeba się nauczyć
Coś w rodzaju Win. XP? Chyba sobie żartujesz. Jeśli napiszesz coś w rodzaju DOSa, to będzie to wielkie osiągnięcie, ale nie przyjdzie Ci to prędko i łatwo. Będziesz musiałbyś samemu pisać sterowniki pod sprzęt, zaprogramować obroty dysku i wiele, wiele innych rzeczy. A język, który musisz znać to Assembler, za pomocą którego można łatwo rozwalić komputer, dodatkowo wskazany byłby C.
Wiem, że Unix a Linux to co innego, ale czemu by nie napisać czegoś, co pozwoli autorowi zrozumieć, że to nie jest łatwe. Linus Torvalds jądro Linuksa pisał przez 9 lat samemu, a przynajmniej tak gdzieś kiedyś czytałem (to była zaufana strona).
The art of Unix programmig. W 2 pierwszych rozdziałach szukaj. Choć od razu dodam że masz rację że nie od razu zbudowano Rzym. I ten Unix też wszystkiego nie miał.
Normalna konsola Ty wpisujesz tekst a a monitorze pokazuje się to co wpiszesz. (Oczywiście w kolorkach) Asembler tylko jako podstawka C dla obsługi przerwań i “terminala”.
PS jest taka stronka gdzie można dużo się dowiedzieć (polecam):
Add 1 wtedy niczego innego nie było. Więc sarkazm Ci się nie udał. Zaimplementowali obsługę dysku i podejście wszysko jest plikiem.
Wcześniej mieli burzę mózgów prze 2 dni.
Oszczędź sobie i innym a poczytaj książkę o podanym tytule.
Add 2 Widzę. Ale co to ma wspólnego ?? Jak chcesz zostać pilotem to nie zaczynasz od stwierdzenia co zrobić aby sterować modelem samolotu, Li tylko pytasz się jak zostać pilotem Boeinga 707. (Widzisz analogię ??) A później się uczysz, uczysz i uczysz.
Na moje oko to jest prosty program, który z racji braku wsparcia systemu operacyjnego mocno się rozrósł. Oracle kiedyś wspierał takie rozwiązanie, że dało się uruchomić bazę danych bez OS’a, ale to nie czyniło go OS’em.
Nieprawdą jest, że niczego innego nie było. Jeśli chodzi o nośniki danych, to dyski twarde były na pewno, a FDD właśnie wynaleziono.
Porównujesz pisanie systemu operacyjnego na PC i na PDP-7, co zbytniego sensu nie ma.
Ponadto powołujesz się na źródła, których nawet nie jesteś skłonny podlinkować, co jest niezbyt wiarygodne.
Zwracasz nam uwagę, że piszemy o potrzebie długiej nauki. Bo tak jest.
Można napisać “OSa” w dwa dni korzystając przy tym z tutoriala, nawet nie rozumiejąc o co w tym chodzi. Wszystko co on zrobi, to zabootuje się i wyświetli komunikat na ekranie.
Ale jeśli chcemy napisać coś funkcjonalnego i potrafiącego cokolwiek ponad to, to będzie trzeba dużo czasu i przede wszystkim wiedzy. O to pytał autor tego wątku.
Nie chodzi o to, że ma robić przy projekcie nie wiadomo co ale na przykład mógłby pisać łatki czy coś w tym stylu albo mógłby zacząć chociażby przeglądać sobie kod źródłowy, w taki sposób też się można czegoś nauczyć.