Jump to content

Archived

This topic is now archived and is closed to further replies.

JohnBelushi

Robię system operacyjny.

Recommended Posts

Chciałbym zrobić jakiś system operacyjny na jądrze Linuxa (ale to potem)...

Myślę, żeby zrobić takiego... hmm... dosa na początek.

W C++ bym go miał zamiar zrobić...

Co wy na to? Da się? Albo nie: Co o tym sądzicie?

Dla niedowiarków:

Bill Gates, Steve Jobs zaczynali sami w dwie-trzy osoby....

Link to comment
Share on other sites

W C++ nie pisze się OS, jest zdecydowanie za mało wydajny.

Zacznij uczyć się programować, zacznij uczyć się teorii OS. Zrozumiesz, że "zrobienie prostego DOSa na początek" wcale nie jest takie łatwe jak się wydaje.

Trzeba myśleć o wielu problemach: o sposobie przechowywania plików, o komunikacji z podzespołami i komunikacji z użytkownikiem.

Link to comment
Share on other sites

Hakken -> O ile pamiętam, znaczna część jądra linuksowego jest napisana w C++, a tylko najbardziej core'owe rzeczy w asemblerze.

JohnBelushi -> Najpierw poćwicz programowanie w jakimkolwiek języku przez czas dłuższy niż parę miesięcy, a wtedy weź się za pisanie własnego systemu operacyjnego. Polecam google z hasłem "własny system operacyjny" lub podobnie. Pytań takich jak Twoje są dziesiątki. Jaki język się uczyć? FAQ Ci powie.

Poczytaj też http://wiki.osdev.org/Expanded_Main_Page

Link to comment
Share on other sites

Hakken -> O ile pamiętam, znaczna część jądra linuksowego jest napisana w C++

Źle pamiętasz ;). Jądro jest napisane prawie w całości w C, do tego trochę asemblera.

C++ jest zdecydowanie za mało wydajne do pisania OS, zbyt wysokopoziomowe.

Link to comment
Share on other sites

W sumie dobrze, ze ten temat powstał, to nie będę robił offtopu w temacie o studiach.

Co jest takiego skomplikowanego przy pisaniu OSu? Moja intuicja mówi mi, że korzystając z funkcji zwrotnych i uchwytów byłbym w stanie zrobić bardzo zgrabny modułowy system.

Problemem jest oczywiście interakcja ze sprzętem, ale to nie jest komplikacja natury językowej, a wiedzy/czasu na opracowanie sterowników.

C++ jest zdecydowanie za mało wydajne do pisania OS' date=' zbyt wysokopoziomowe.[/quote']Co to znaczy zdecydowanie? Co to znaczy za mało wydajne? Co jest mało wydajne w C++? W czym C++ ustępuje C pod względem wydajności?
Link to comment
Share on other sites

Co to znaczy zdecydowanie? Co to znaczy za mało wydajne? Co jest mało wydajne w C++? W czym C++ ustępuje C pod względem wydajności?

Od systemu operacyjnego oczekuję szybkości, a programy napisane w C++, obiektowo, są wolniejsze od tych napisanych w C.

Trzeba się zapytać, ile chce się napisać/wymyślić samemu, a ile użyć gotowych rozwiązań.

Przyjmując, że znaczną część weźmiemy gotową, to oczywiście trudność takiego przedsięwzięcia maleje (ale też nie do tego stopnia, żeby osoba która nigdy nie miała styczności z programowaniem, ani informatyką jako taką, mogła za szybko zacząć).

Teraz wypunktuje to, co według mnie sprawiałoby problemy (przyjmując, że wszystko robimy sami):

- Komunikacja ze sprzętem, o czym wspomniałeś

- Własny system plików

- komunikacja z użytkownikiem

- bootloader (teoretycznie nie może zajmować więcej niż 512b)

To podstawa, potem należałoby się jeszcze pobawić w chociażby zabezpieczenia.

nie jest komplikacja natury językowej

Nie mówię, że jest to problem z językiem C++ czy jakimkolwiek innym, mówię o systemie operacyjnym jako takim.

Link to comment
Share on other sites

nauka jednego języka programowania to tak 3 lata jeśli chcesz pisać coś więcej niż kalkulator.

A mnie to rozwaliło.

Do odważnych świat należy, jak ktoś jest ambitny i pracowity to da radę napisać i więcej niż prostego DOS-a

Link to comment
Share on other sites

Ha! Jeśli opanujesz assemblera w wystarczającym stopniu, to branża przyjmie cie z otwartymi ramionami wink_prosty.gif

Jeśli to co napisałeś jest prawdą, to może ja zacznę się Assemblera od razu uczyć, z myślą o przyszłości?

Assembler to język niskiego poziomu.Jeśli nie miałeś styczności z programowaniem i nie rozumiesz jak działa komputer to będzie ciężko.Jeśli chcesz zacząć przygodę z programowaniem, to kup sobie książkę, czytaj powoli i ze zrozumieniem.A Język wybierz sobie zależnie od tego co chcesz robić.Jeśli chodzi o pisanie programów to możesz się uczyć np. Pythona,LUA, C, C++, Pascala itd. Jeśli chcesz pisać strony internetowe to ucz się np. Ruby, Pearl, PHP, JavaScript itd. dodatkowo w tym przypadku przyda Ci się znajomość HTML/XHTML i CSS.Znaczniej łatwiej jest nauczyć się tworzyć strony, niż pisać programy.Chociaż możesz zacząć od C++, nikt Ci nie zabrania, ale wszystko musisz raczej robić ze zrozumieniem.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...