JohnBelushi Posted August 27, 2012 Report Share Posted August 27, 2012 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 More sharing options...
goldeneye456 Posted August 27, 2012 Report Share Posted August 27, 2012 Zrobić da się wszystko, trzeba tylko chcieć i przede wszystkim umieć języki programowania. Jak długo znasz c++? Pisałeś już inne zaawansowane programy? Link to comment Share on other sites More sharing options...
TheBiggie85 Posted August 27, 2012 Report Share Posted August 27, 2012 Próbuj i tyle, nic nie tracisz, a pewnie dużo się nauczysz. Link to comment Share on other sites More sharing options...
JohnBelushi Posted August 27, 2012 Author Report Share Posted August 27, 2012 Niestety nie umiem C++ (dopiero się będe uczył). Ale mam nadzieję, że szybko się nauczę dużo rzeczy. Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted August 27, 2012 Report Share Posted August 27, 2012 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 More sharing options...
JohnBelushi Posted August 27, 2012 Author Report Share Posted August 27, 2012 Jeśli nie C++ to co?Assembler? Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted August 27, 2012 Report Share Posted August 27, 2012 Ha! Jeśli opanujesz assemblera w wystarczającym stopniu, to branża przyjmie cie z otwartymi ramionami Rozsądnym wyborem jest czyste C. Np. jądro linuksa to w zdecydowanej większości C, do trochę wstawek w asemblerze. Link to comment Share on other sites More sharing options...
wies.niak Posted August 27, 2012 Report Share Posted August 27, 2012 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 More sharing options...
[Ekspert] Hakken Posted August 27, 2012 Report Share Posted August 27, 2012 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 More sharing options...
RAZOR026 Posted August 28, 2012 Report Share Posted August 28, 2012 Heh, ja sam chciałem robić OS-a.Głupi jestem, bo nie umiem programować;xAle potem chciałem theme pod siódemkę robić,również niewypał. Za mało czasu. Link to comment Share on other sites More sharing options...
JohnBelushi Posted August 28, 2012 Author Report Share Posted August 28, 2012 To ja się zaczynam uczyć programować. Link to comment Share on other sites More sharing options...
politan Posted August 28, 2012 Report Share Posted August 28, 2012 Bardzo dobrym sposobem jest analiza kodu źródłowego systemów "open source". Wygoogluj też sobie "Understanding Linux kernel". Od siebie mogę polecić też to: https://lwn.net/Kernel/LDD3/ Link to comment Share on other sites More sharing options...
[Ekspert] Mormegil Posted August 28, 2012 Report Share Posted August 28, 2012 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 More sharing options...
[Ekspert] Hakken Posted August 28, 2012 Report Share Posted August 28, 2012 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ęzykowejNie 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 More sharing options...
[Ekspert] Hakken Posted August 29, 2012 Report Share Posted August 29, 2012 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 More sharing options...
RAZOR026 Posted August 29, 2012 Report Share Posted August 29, 2012 Jakby ci się udało, to chętnie przetestuję Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted August 29, 2012 Report Share Posted August 29, 2012 Nigdy nie twierdziłem, że jest łatwo. Dokładnie zacytowałem co mnie rozbawiło - nauka języka trwa 3 lata ?Aby używać nowego języka na zadowalającym poziomie wystarczy kilka miesięcy. Link to comment Share on other sites More sharing options...
Lord Hrabula Posted August 29, 2012 Report Share Posted August 29, 2012 Jak trzeba to i tydzien wystarczy, zalezy jak kto sobie 'zadowalajacy poziom' przyjmie Link to comment Share on other sites More sharing options...
[Ekspert] Mormegil Posted August 29, 2012 Report Share Posted August 29, 2012 Od systemu operacyjnego oczekuję szybkości, a programy napisane w C++, obiektowo, są wolniejsze od tych napisanych w C.Czemu niby program/system napisany obiektowo w C++ miałby być wolniejszy od tego napisanego obiektowo w C. Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted August 29, 2012 Report Share Posted August 29, 2012 @MormegilNie chodzi mi o programy napisane obiektowo w C, tylko obiektowo w C++ vs. strukturalnie w C.@Hrabula"Hello World" nie jest zadowalające Link to comment Share on other sites More sharing options...
Jakobeks Posted August 29, 2012 Report Share Posted August 29, 2012 Napisać to jedno a rozumieć jak coś działa żeby wykorzystać dobrze to co innego. Link to comment Share on other sites More sharing options...
JohnBelushi Posted August 29, 2012 Author Report Share Posted August 29, 2012 Ha! Jeśli opanujesz assemblera w wystarczającym stopniu, to branża przyjmie cie z otwartymi ramionami 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? Link to comment Share on other sites More sharing options...
zizou666 Posted August 30, 2012 Report Share Posted August 30, 2012 Powodzenia Assembler to bardzo trudny język, który większości ludzi jakich znam "nie pasuje". Ale próbuj, może Tobie akurat podejdzie Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted August 30, 2012 Report Share Posted August 30, 2012 Tak jak napisałem - jeśli nauczysz się dobrze assemblera, to pracę znajdziesz - o ile nic się do tego czasu nie zmieni.Ale to średnio przyjemna sprawa IMO Link to comment Share on other sites More sharing options...
Chernobyl Posted August 30, 2012 Report Share Posted August 30, 2012 Ha! Jeśli opanujesz assemblera w wystarczającym stopniu, to branża przyjmie cie z otwartymi ramionami 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 More sharing options...