argon bulletin board

Експертно търсене  

Новини:

Регистрирането на нови потребители е временно деактивирано.

Автор Тема: как да си направим операционна система?  (Прочетена 25458 пъти)

ExpertOne

  • Неактивен Неактивен
  • Публикации: 17
Re: как да си направим операционна система?
« Отговор #60 -: 28.09.2005, 21:46:09 »

Абе, JOKe - ти ли скофти форума. Пък аз си помислих че мие е гръмнал браузъра :-)
Слагай малко интервали в бозата, че ми трябва 29" монитор да чета поста.

Аз твоето мнение за .net-а го знам, но не е задължително да е на .net, ако не ви харесва.

Та основното което исках да кажа с първия си пост е че би било добре, като се прави ОС от нулата, да се направи един добър обектно-ориентиран дизайн (ядро, драйвери, и т.н). Да не се хвърляте да пишете на парче (било на Assembler, C, или C++).

Всъщност аз се радвам, че от много години насам в ПУ има студенти, които искат да се занимават с нещо сериозно макар и мнозина (отчасти и аз) да не им се вярва, че ще успеете. Но според мен (особенно в случая) по-важен е пътя, по който ще вървите до целта, а не това дали изобщо ще стигнете до нея.
« Последна редакция: 28.09.2005, 21:53:26 от ExpertOne »
Активен
ExpertOne

COLD_FIRE

  • Неактивен Неактивен
  • Публикации: 29
Re: как да си направим операционна система?
« Отговор #61 -: 29.09.2005, 01:46:49 »

Абсурдно е да се прави ос на .нет, изобщо под уиндоус е лудост(не че не може), С++ си е достатъчно обектно ориентиран. Колкото до JAVA OS до колкото се запознах на това нещо пак ще му трябва виртуална машина която ще превежда за дадената архитектура и най-гадното е, че е бавно. Пак повтарям нищо не пречи ако сме толкова навити да правим и двете неща(ос и дистро, те нямат нищо общо-едното е системно програмиране, а при другото може да се наложи да се направи някой друг GTK прозорец).
Активен
- България над всичко и всички.
- Информацията трябва да е свободна, всеки който не мисли така е мой враг!
- По добре да ме уважават от колкото обичат!

- Свободния софтуер е като секса, най-добре е като е безплатен(Линус Торвалдс).

ExpertOne

  • Неактивен Неактивен
  • Публикации: 17
Re: как да си направим операционна система?
« Отговор #62 -: 29.09.2005, 10:35:15 »

Да на JavaOS му трябва VM, ако компютъра на който работи не изпълнява направо ByteCode. Разбира се че още е бавно, ако това е интерпретатор, но при JIT (който в .нет е задължителен, дето се казва) е по-добре. Разбира се никой неможе да сравнява C и C++ като скорост с Java и .net

Мисля че достатъчно ясно казах, че не става въпрос да се прави ОС под ОС/Windows. Освен това и на Assembler да се пише ОС-а няма да стане по-бърз, ако няма достатъчно добра концепция.

Между другото аз не разбрах на какво ще се пише ОС-а кокто смятате да правите.  Под какво IDE/Compiler/OS ще се прави разработката? Каква ще е ОС - еднопотребителска/многопотребителска, еднозадачна/многозадачна, за една платформа/за много платформи, еднопроцесорна/многопроцесорна и т.н.?

Относно дистрибуцията - аз също не съм против.
Активен
ExpertOne

COLD_FIRE

  • Неактивен Неактивен
  • Публикации: 29
Re: как да си направим операционна система?
« Отговор #63 -: 29.09.2005, 11:00:51 »

Linux environment(тип правиш файл, пишеш в него с GEDIT или КАТЕ). Компилатори  gcc, g++(za C++),gas(za asembler at&t style syntax), ld(linker za vrazkite mejdu asembler code i kodovete ot po visoko nivo).Normalno e da pishem za ia32 arhitektura se pak takiwa polzvame. A koncepciqta e multiuser, multiprocess, monolitic kernel(unix like), moje nqkoi da napishe i modul za zarejdane na 4asti kod kam kernela(modules) .... w procesa na  rabota moje i microkernel da stane.
Активен
- България над всичко и всички.
- Информацията трябва да е свободна, всеки който не мисли така е мой враг!
- По добре да ме уважават от колкото обичат!

- Свободния софтуер е като секса, най-добре е като е безплатен(Линус Торвалдс).

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: как да си направим операционна система?
« Отговор #64 -: 29.09.2005, 11:50:38 »

ExpertOne
 onova bez intervalite sedq tochno 1min +:P) v foruma nenzam kak uspq da go hvanesh

kolkoto do JIT-a a ve ot Java 2 koeto e versiq 1.2 na VM vinagi VINAGI VINAGI e imalo JIT v java narechen e hotspot oshte se smqta za nai byrziq JIT pisan nqkoga .

p.s. za Java dokolkoto mi e izvesno GCJ makar i oriazano kompilira do native no ne sym siguren ( inache ima i "classpath" koeto e dobra alternativa na Sun VM )
btw samo za shouto kakvo shte kajete da se pishe OS za mobile devices ? PDA CDA eventualno GSM ?

p.s.2 :
GCJ: The GNU Compiler for Java

Както и си пише на сайта, GCJ може три неща:



от Java сорс да ти вади машинен код, за съответната архитектура и ОС

от Java сорс да ти вади жаба байт-код (.клас файлове)

от Java байт-код да ти вади машинен код

Активен

ExpertOne

  • Неактивен Неактивен
  • Публикации: 17
Re: как да си направим операционна система?
« Отговор #65 -: 29.09.2005, 12:41:42 »

Цитат
onova bez intervalite sedq tochno 1min +:P) v foruma nenzam kak uspq da go hvanesh
Ами просто съм много бдителен, хе хе  :-)

Знам за JIT-a, но аз лично като си говорим за бързина предпочитам Assembler.

Цитат
btw samo za shouto kakvo shte kajete da se pishe OS za mobile devices ? PDA CDA eventualno GSM ?
Направо ми го взе от устата (т.е. от мозъка, де).

PS. Пък аз вече казах, че не съм голям фен на Java и за нея не ми се говори.
Активен
ExpertOne

ExpertOne

  • Неактивен Неактивен
  • Публикации: 17
Re: как да си направим операционна система?
« Отговор #66 -: 29.09.2005, 12:55:17 »

Linux environment(тип правиш файл, пишеш в него с GEDIT или КАТЕ). Компилатори  gcc, g++(za C++),gas(za asembler at&t style syntax), ld(linker za vrazkite mejdu asembler code i kodovete ot po visoko nivo).Normalno e da pishem za ia32 arhitektura se pak takiwa polzvame. A koncepciqta e multiuser, multiprocess, monolitic kernel(unix like), moje nqkoi da napishe i modul za zarejdane na 4asti kod kam kernela(modules) .... w procesa na  rabota moje i microkernel da stane.
А, ето това вече е приказка. Конкретни неща. Те разбира се ще се обсъждат още, но е едно добро начало.
За ia32 е така, но мисълта ми беше дали още от сега ще се прави така, че да може лесно да се портне ОС-а в последствие или се вкопчваме с зъби и нокти за Intel (т.е. Intel forever).
Активен
ExpertOne

Gruntz

  • Неактивен Неактивен
  • Публикации: 31
Re: как да си направим операционна система?
« Отговор #67 -: 29.09.2005, 13:40:31 »

ExpertOne, можеш ли да програмираш на Assembler? Защото точно такъв човек ни трябва  :-D. Немисля да се "вкопчваме" в интел. По добре да е лесно преносима ОС. А конкретизацията на инструментите койте ще използваме ще направим в последствие,  първо да решим какво ще се прави изобщо. Сега неразбрах как се реши спора, нова ОС или Linux дистрибуция? Какво решихте, или още мислите.
Активен
И въпреки всичко България ще пребъде...

ExpertOne

  • Неактивен Неактивен
  • Публикации: 17
Re: как да си направим операционна система?
« Отговор #68 -: 29.09.2005, 13:55:30 »

Мога да програмирам на Assembler, обаче не ми се захваща и с ОС (т.е. имам в предвид и с ОС освен всичките други неща които ми са на главата :-) ). Обаче, както казах ще помагам с каквото мога. Аз всъщност се надявам да няма много Assembler в този ОС.

А за спора ОС/Дистрибуция - аз не виждам спор. Просто казах, че аз по скоро съм за ОС.
Активен
ExpertOne

Gruntz

  • Неактивен Неактивен
  • Публикации: 31
Re: как да си направим операционна система?
« Отговор #69 -: 29.09.2005, 16:06:17 »

ExpertOne, ти си пич :-P. Помоща ти ще е от голяма полза. Няма да има много асемблер, само за boot-ването ще трябва ( или поне така си мисля ). За ОС или дистрибуция имаше спор по-рано. И  то небеше спор а просто две гледни точки.   :-D
Активен
И въпреки всичко България ще пребъде...

COLD_FIRE

  • Неактивен Неактивен
  • Публикации: 29
Re: как да си направим операционна система?
« Отговор #70 -: 29.09.2005, 19:17:33 »

Асемблер трябва почти навсякаде където са нужни по системни регистри различни от тези с които С++ работи, но ще трябва да знаем АТ&Т синтаксиса защото се използва като вътрешен когато се пише в директивата asm(); в С++. Общо разликата е тази:
INTEL:
mov cs, ax

AT&T(gas)
movw %ax, %cs
mov %ax, %cs
има и малки разлики в обръщенето към паметта(малко странно ми изглежда на български затова indirect/direct addressing)
« Последна редакция: 29.09.2005, 19:42:43 от COLD_FIRE »
Активен
- България над всичко и всички.
- Информацията трябва да е свободна, всеки който не мисли така е мой враг!
- По добре да ме уважават от колкото обичат!

- Свободния софтуер е като секса, най-добре е като е безплатен(Линус Торвалдс).

ExpertOne

  • Неактивен Неактивен
  • Публикации: 17
Re: как да си направим операционна система?
« Отговор #71 -: 30.09.2005, 08:39:35 »

Да в boot-loadera е задължително. При мултитаскинга също. Хубаво е (както правят хората) да се изнесат системно/асемблер зависимите неща в отделни модули и там кадето са необходими да се викат. В последствие когато трябва да се портва се пренаписват само тези части, а не се рови на 1000 места в сорса.
Друго което сам виждал е пише се например на C функцията, след това се компилира, взема се асемблерския листинг и се оптимизира на ръка. После във функцията се слага един гооолям коментар на C кода и се заменя с оптимизирания асемблер, и ... воала! После ако трабва нещо да се промени се променя C кода и отново се оптимизира на ръка и т.н. Така не е необходимо да се оплиташ в асемблера след 10-20 промени. Освен това C кода си остава винаги като един много добър коментар на асемблерската функция.

PS. Между другото на български във всички книги дето съм чел си пише непряка/пряка адресация или дори индиректна/директна адресация. Обаче важното е да те разберат (правилно), така че и ndirect/direct addressing е добре и разбираемо. :-)
Активен
ExpertOne

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: как да си направим операционна система?
« Отговор #72 -: 30.09.2005, 09:46:11 »

lol :+)

eto otnovo si spomnih zakvo zarqzah neshta kato c i asm :)
Активен

ExpertOne

  • Неактивен Неактивен
  • Публикации: 17
Re: как да си направим операционна система?
« Отговор #73 -: 30.09.2005, 09:54:12 »

Радвам се за приятния (или "приятния" :wink:) спомен.
Активен
ExpertOne

JOKi

  • Гост
Re: как да си направим операционна система?
« Отговор #74 -: 02.10.2005, 17:40:47 »

ot 2 dni pak sanuvam koshmari ujas P:)
COLD_FIRE : q se izkaji ti po vaprosa prednite vaprosi de
Активен

kondio_i_lia

  • Гост
Re: как да си направим операционна система?
« Отговор #75 -: 03.10.2005, 18:12:58 »

do nikade ne e dokarwate :)
Активен

COLD_FIRE

  • Неактивен Неактивен
  • Публикации: 29
Re: как да си направим операционна система?
« Отговор #76 -: 04.10.2005, 18:01:01 »

ot 2 dni pak sanuvam koshmari ujas P:)
COLD_FIRE : q se izkaji ti po vaprosa prednite vaprosi de
koi predni vaprosi???
Активен
- България над всичко и всички.
- Информацията трябва да е свободна, всеки който не мисли така е мой враг!
- По добре да ме уважават от колкото обичат!

- Свободния софтуер е като секса, най-добре е като е безплатен(Линус Торвалдс).

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: как да си направим операционна система?
« Отговор #77 -: 05.10.2005, 10:16:17 »

imam predlojenie
Aide na bira da obsydim neshtata nqkoq sabota za sq predlagam da ne e tazi sybota a sledvashtata
demek : 15.10.2005
kak vi se vijda kato data ?
ochakvam predlojeniq za miasto i chas ako datata se prieme
Активен

SodomGomor

  • Неактивен Неактивен
  • Публикации: 126
Re: как да си направим операционна система?
« Отговор #78 -: 05.10.2005, 13:07:13 »

Аз съм ЗА.
Час - 18.00.
Място - пред самия вход на Синдикалния /Профсъюзния/ дом.

ОК?
Активен
Значи кучета и котки може, а прасета не може!!?

Gruntz

  • Неактивен Неактивен
  • Публикации: 31
Re: как да си направим операционна система?
« Отговор #79 -: 05.10.2005, 16:29:03 »

Ето това вече е нещо. Много се радвам че няма да е тази събота и неделя, защото ме няма. За другата е супер, но каде е този "Синдикалния /Профсъюзния/ дом". Аз не съм от пловдив и незнам. Дайте на някое по известно място. Аз предлагам да е пред пощата примерно.
Активен
И въпреки всичко България ще пребъде...