Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pisanie os w Assemblerze

Ostatnio zmodyfikowano 2011-12-22 13:57
Autor Wiadomość
RazzorFlame
Temat założony przez niniejszego użytkownika
Pisanie os w Assemblerze
» 2011-12-22 09:24:29
Czytałem temat który był związany z pisaniem Systemów Operacyjnych. Mam do Was wiele pytań co do tego.

1. Jesli sie ma bootloadera w formacie .bin to jak go otworzyc?
2. Jakiego formatu musi byc kernel do wlasnego systemu?
3. Jakim cudem da się w systemie plików zrobic plik wykonywalny ( program ). Czy trzeba znac system binarny?
4. Skad BIOS wie ze uruchamia bootloadera? ( nie wiem chyba bo ma zawsze rowne 512bajtow )
5. Jak zrobic aby OS był wielozadaniowy? TZN. chodzi o to jak np zrobic aby uz. mogl wpisywac komendy.
6. Czy jak się włącza wlasnego os'a na np Windowsie to wtedy windows sie wylacza a wlacza ten wlasny?

To są na razie moje pytanie ( pewnie będę miał ich więcej ).

PS. Jesli temat jest w złym dziale to przepraszam.
P-46031
DejaVu
» 2011-12-22 09:34:32
Pobierz Linuksa, pogrzeb w jego źródłach to się dowiesz jak mniej więcej się pisze system operacyjny. Powiem tylko, że nie ma najmniejszego sensu pisać 'nowego' systemu operacyjnego. Siłą rzeczy będziesz zmuszony do stosowania jakiegoś standardu, który narzucają sterowniki producentów sprzętu, więc siłą rzeczy uzyskasz drugiego Windowsa bądź n-tego Linuksa. Liczba rzeczy do oprogramowania idzie w tysiące, a pierwszym lepszym przykładem jest chociażby oprogramowanie zarządzania pamięcią RAM.

/edit:
Dodam jeszcze, że jakbyś chciał mieć faktycznie własny system operacyjny to zmuszony byłbyś do napisania własnego kompilatora C++, który tłumaczyłby kod na taką postać jakiej oczekuje system (chociażby do alokacji pamięci). Jeżeli nie napiszesz kompilatora, to będziesz zmuszony do stosowania istniejących kompilatorów co spowoduje, że niczym się nie będzie różnił od Linuksa bądź Windowsa - zależnie od obranej ścieżki.
P-46033
RazzorFlame
Temat założony przez niniejszego użytkownika
» 2011-12-22 10:01:48
Kompilator by sie jakos zrobilo. Poza tym dopuki sie nie naucze co najmniej w 90% assemblera to nie sądze czy chodzby bootloadera napisze. Ja jeszcze mam sie bardzo dużo nauczyć... C++ znam w jakis 50% to jeszcze troche se poźniej podłucze. Jak bym zrobił kompilator ( w co sam bardzo wątpie ) to najpierw do C a później do C++. I te najważniejsze pytanie. Jakim cudem można zrobić plik wykonywalny. Trzeba znac system binarny?
P-46034
DejaVu
» 2011-12-22 10:24:09
Jak zrozumiesz czym jest assembler to zrozumiesz czym jest aplikacja wykonywalna.
P-46036
RazzorFlame
Temat założony przez niniejszego użytkownika
» 2011-12-22 10:27:46
Heh :D Chodzi o to ze ja nie wiem czy na kazdym systemie pisze sie tak samo programy tylko ze pod innym rozszerzeniem. Ja mysle że się nie da tak ale do konca nie wiem.
P-46037
ison
» 2011-12-22 11:56:30
Kompilator by sie jakos zrobilo.
proszę, powiedz, że to prowokacja :D

Trzeba znac system binarny?
ok, to jest prowokacja :p
P-46038
RazzorFlame
Temat założony przez niniejszego użytkownika
» 2011-12-22 12:21:07
Ison. Z twojej "bardzo wyczerpującej odpowiedzi" wynika ze trzeba znać :D
P-46041
akwes
» 2011-12-22 12:28:08
Kompilator pokroju C++ pisze zespół ludzi przez co najmniej rok. Ekspertów swojej dziedzinie. Przez rok aby otrzymać coś czego można używać. C++ jest rozwijany cały czas, i cały czas wychodzą nowe standardy, wiec wybacz. Nie ma "napisze sie"

Żeby napisać kompilator C++ musiałbyś znać assemblera, o którym wiesz pewnie niewiele. A to dlatego że C++ podczas kompilacji jest rozkładany na kod Assemblera.

Pamiętaj że pisanie pod assemblerem jest uzależnione od sprzętu jaki posiadasz.

Więc ogólnie mówiąc.

Zacznij od zbudowania systemu na kernelu linuksa, albo chociaz zmodyfikuj i skompiluj jądro.


Ison. Z twojej "bardzo wyczerpującej odpowiedzi" wynika ze trzeba znać :D

Co znaczy znać kod binarny? Ja znam. Połowa forum zna. Ale nie znamy procedur, odwołań i poleceń, które są w aplikacjach wynikowych.
P-46043
« 1 » 2
  Strona 1 z 2 Następna strona