Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

Реально ли написать свою ОС ?   Найти похожие ветки 

 
АНТИспаммер   (2005-02-21 02:30) [0]

Люди ! Рально ли написать свою ОС примерно за год ?


 
ЦУКОР5   (2005-02-21 02:33) [1]

а мозгов-то хватит?


 
АНТИспаммер   (2005-02-21 02:48) [2]

Мозгов хватит
Просто ос нужна очень специфическая


 
Knight ©   (2005-02-21 02:57) [3]

... год назад я тоже хотел написать ось , но проблема в том что я так и несмог выучит ниодного языка , в Си вобще не въезжаю с асмом тоже неполучается , едиснственное что я понял по кодингу так это прямая работа с ркгистрами+справочник (а то их все не запомниш :) ) то биш писать в HEX . Но это в винде не рулит :(
Вобщем о чём я... так энтузивсты то остались или нет ОЧЕНЬ хотелось бы знать , я тут почитываю переодически книжку "современные ОС - Э Таненбаум*ана" и по крайне мере выявил для себя что за ось по структуре я хочу видеть , и в принципе её написать можно и 1му , думаю жизни 3-4 хватит :)
вобщем главный вопрос , остались приверженцы написания ОС или всё рухнуло


:)))


 
АНТИспаммер   (2005-02-21 03:29) [4]

Или все-таки попробовать Linux приспособить ?


 
Юрий Зотов ©   (2005-02-21 05:12) [5]

> АНТИспаммер   (21.02.05 02:30)
>Реально ли написать свою ОС примерно за год?

Одному - да, другому - нет. Человеку, который об этом спрашивает - вряд ли.


 
Билл Гейтс   (2005-02-21 05:39) [6]

Реально. Бери с меня пример.


 
Kerk ©   (2005-02-21 05:50) [7]

АНТИспаммер   (21.02.05 2:30)
Рально ли написать свою ОС примерно за год ?


Реально за час-два.. Будет грузиться с дискеты и выводить на экран "Hello world". Или тебе другую ОС надо?


 
default ©   (2005-02-21 06:00) [8]

хи, я как раз эту книженцию Таненбаума чичас прикачиваю:-)


 
Бугага ©   (2005-02-21 07:25) [9]

Блин... я со стула упал...


 
вредитель ©   (2005-02-21 08:52) [10]

ИМХО написание ОС может помочь в саморазвитии, но вопрос, насколько нужна Ваша ОС. т.е. решает ли она какие-либо проблемы, которые до ее написания не были решены? Линукс, например, попыталась решить проблему свободной unix. Удалось ли ей это, даже при поддержке таких компаний как IBM, Novell?

http://www.osdev.ru/about.php


 
вредитель ©   (2005-02-21 08:53) [11]

хи, я как раз эту книженцию Таненбаума чичас прикачиваю:-)

Это откудова, если не секркт?


 
Soft ©   (2005-02-21 09:08) [12]

Если под ОС понимать только ядро(без драйверов и прикладных программ), то ОС с кооперативным параллелизмом я берусь написать за месяц.

Вставай! Бiльшого вимагай! (с) Океан Ельзи.


 
Polevi ©   (2005-02-21 09:16) [13]

на делфи


 
Kerk ©   (2005-02-21 09:21) [14]

Polevi ©   (21.02.05 9:16) [13]

Вот только ОС написанная с использованием VCL тормозить будет.. надо на чистом WinAPI писать.


 
07BB:080Dh   (2005-02-21 09:23) [15]

а оно тебе надо?


 
Soft ©   (2005-02-21 09:26) [16]

>>Polevi ©   (21.02.05 09:16) [13]
>>на делфи

На чистом Ansi С + вставки на ASM.


 
вредитель ©   (2005-02-21 09:28) [17]

Кстати, праздный вопрос, а чего это вот на Обероне ОС до черта понаписали (Oberon OS, XO/2, Bluebottle (где-то даже валяется), для вертолетов...), а на Паскале никак не соберутся?


 
Kerk ©   (2005-02-21 09:28) [18]


> а на Паскале никак не соберутся?

а нафига?


 
Vasya.ru ©   (2005-02-21 09:31) [19]

что - то не вижу в этой ветке Profi. Оптимизм иссяк?


 
вредитель ©   (2005-02-21 09:32) [20]

Kerk © [18]

а нафига?


см. [10]


 
Kerk ©   (2005-02-21 09:38) [21]

вредитель ©   (21.02.05 9:32) [20]

там нет ответа на вопрос "зачем писать ОС на Паскале?".


 
Polevi ©   (2005-02-21 09:39) [22]

>Soft ©   (21.02.05 09:26) [16]
а файловая система там будет тоже за месяц ?


 
Kerk ©   (2005-02-21 09:41) [23]

Polevi ©   (21.02.05 9:39) [22]
а файловая система там будет тоже за месяц ?


а зачем файловая система? там же драйверов и приложений не будет.


 
вредитель ©   (2005-02-21 09:42) [24]

там нет ответа на вопрос "зачем писать ОС на Паскале?".

Там есть ответ на вопрос, зачем писать ОС.
Я спросил, не "зачем писать ос на Паскале", а почему на Паскале не было написано никаких ОС. Разница заметна?


 
Kerk ©   (2005-02-21 09:43) [25]

1)

> "зачем писать ос на Паскале",

2)

> почему на Паскале не было написано никаких ОС


ответ на вопрос №2:
видимо потому что никто не знает ответа на вопрос №1


 
вредитель ©   (2005-02-21 09:45) [26]

видимо потому что никто не знает ответа на вопрос №1

Вопрос. Зачем писать ОС на Обероне?


 
Kerk ©   (2005-02-21 09:47) [27]

вредитель ©   (21.02.05 9:45) [26]
Зачем писать ОС на Обероне?


не знаю. вот кто-то захотел и написал.. вот я захочу ОС писать..может и на Паскале напишу (если подходящий компилятор найду)..


 
вредитель ©   (2005-02-21 09:50) [28]

вот я захочу ОС писать..может и на Паскале напишу (если подходящий компилятор найду)..

ИМХО тебе его самому писать придется. Ну ты меня понял.


 
Иксик2   (2005-02-21 10:04) [29]


> вредитель ©   (21.02.05 08:53) [11]

Присоединяюсь.


 
Polevi ©   (2005-02-21 10:30) [30]

>Kerk ©   (21.02.05 09:41) [23]
а что там будет и что вообще будем называть операционной системой


 
Slava ©   (2005-02-21 10:31) [31]

Вот тут давно обсуждают (первый пост  21-12-2001 15:19) :)
http://www.delphikingdom.com/asp/talktopic.asp?Count=100&PNo=1&ID=211&Order=0&msg=&ref=mess


 
Kerk ©   (2005-02-21 10:31) [32]

Polevi ©   (21.02.05 10:30) [30]

видимо будет то, что я описал в [7]
:)


 
Polevi ©   (2005-02-21 10:33) [33]

>Kerk ©   (21.02.05 10:31) [32]
да, это вполне реально :)


 
Юрий Зотов ©   (2005-02-21 10:44) [34]

> Polevi ©   (21.02.05 10:33) [33]

Не согласен. На загрузчик уйдет больше времени, а ведь еще и на саму ОС хотя бы 5 минут надо оставить.


 
Ega23 ©   (2005-02-21 10:49) [35]

2 Юрий Зотов ©   (21.02.05 10:44) [34]

http://www.citforum.ru/programming/digest/realhello.shtml

Вот она, Real Hello World


 
Polevi ©   (2005-02-21 11:31) [36]

>Polevi ©   (21.02.05 10:33) [33]
загрузчик можно взять готовый, а поместить несколько байт по b800:0000 много времени не составит, с протектед моде тоже можно не заморачиваться :)


 
Polevi ©   (2005-02-21 11:36) [37]

гы, сам с собой :)


 
TUser ©   (2005-02-21 12:04) [38]

Проект, который перерос потом в Линукс был написан Торвальдсом за очень небольшой срок - что-то околоа нескольких дней. Он переключался между двумя процессами, один из которых печатал ААА, а другой - БББ. Правда, до квалификации Л.Торвальдса многим (мне, например) еще ооочень далеко.


 
Petr V. Abramov ©   (2005-02-21 14:17) [39]

> а почему на Паскале не было написано никаких ОС
 Как это не было. Windows 1.0 и, по-моему, 2.0 тоже. Потом перешли на Си


 
Slider007 ©   (2005-02-21 14:24) [40]

Polevi ©   (21.02.05 11:36) [37]
гы, сам с собой :)

всегда приятно поговорить с умным человеком :)


 
КаПиБаРа ©   (2005-02-21 14:30) [41]

Petr V. Abramov ©   (21.02.05 14:17) [39]
Не знаю насчет 1-ой и 2-ой, но даже 3-я еще осью не была.


 
1008 ©   (2005-02-21 15:05) [42]

Вот готовая:

#define G(n) int n(int t, int q, int d)
#define X(p,t,s) (p>=t&&p<(t+s)&&(p-(t)&1023)<(s&1023))
#define U(m) *((signed char *)(m))
#define F if(!--q){
#define I(s) (int)main-(int)s
#define P(s,c,k) for(h=0; h>>14==0; h+=129)Y(16*c+h/1024+Y(V+36))&128>>(h&7)?U(s+(h&15367))=k:k

G (B)
{
 Z;
 F D = E (Y (V), C = E (Y (V), Y (t + 4) + 3, 4, 0), 2, 0);
 Y (t + 12) = Y (t + 20) = i;
 Y (t + 24) = 1;
 Y (t + 28) = t;
 Y (t + 16) = 442890;
 Y (t + 28) = d = E (Y (V), s = D * 8 + 1664, 1, 0);
 for (p = 0; j < s; j++, p++)
   U (d + j) = i == D | j < p ? p--, 0 : (n = U (C + 512 + i++)) < " " ? p |=
     n * 56 - 497, 0 : n;
}

n = Y (Y (t + 4)) & 1;
F
U (Y (t + 28) + 1536) |=
62 & -n;
M
U (d + D) =
X (D, Y (t + 12) + 26628, 412162) ? X (D, Y (t + 12) + 27653,
          410112) ? 31 : 0 : U (d + D);
for (; j < 12800; j += 8)
 P (d + 27653 + Y (t + 12) + " " * (j & ~511) + j % 512,
    U (Y (t + 28) + j / 8 + 64 * Y (t + 20)), 0);
}

F if (n)
 {
   D = Y (t + 28);
   if (d - 10)
     U (++Y (t + 24) + D + 1535) = d;
   else
     {
for (i = D; i < D + 1600; i++)
  U (i) = U (i + 64);
Y (t + 24) = 1;
E (Y (V), i - 127, 3, 0);
     }
 }
else
 Y (t + 20) += ((d >> 4) ^ (d >> 5)) - 3;
}
}

G (_);
G (o);
G (main)
{
 Z, k = K;
 if (!t)
   {
     Y (V) = V + 208 - (I (_));
     L (209, 223) L (168, 0) L (212, 244) _((int) &s, 3, 0);
     for (; 1;)
R n = Y (V - 12);
     if (C & " ")
{
  k++;
  k %= 3;
  if (k < 2)
    {
      Y (j) -= p;
      Y (j) += p += U (&D) * (1 - k * 1025);
      if (k)
 goto y;
    }
  else
    {
      for (C = V - 20;
    !i && D & 1 && n
    && (X (p, Y (n + 12), Y (n + 16)) ? j = n + 12, Y (C + 8) =
        Y (n + 8), Y (n + 8) = Y (V - 12), Y (V - 12) =
        n, 0 : n); C = n, n = Y (n + 8));
      i = D & 1;
      j &= -i;
    }
}
     else if (128 & ~D)
{
  E (Y (n), n, 3, U (V + D % 64 + 131) ^ 32);
  n = Y (V - 12);
y:C = 1 << 24;
  M U (C + D) = 125;
  o (n, 0, C);
  P (C + p - 8196, 88, 0);
  M U (Y (0x11028) + D) = U (C + D);
}
   }
}

for (D = 720; D > -3888; D--)
 putchar (D >
   0 ?
   "  )!\320\234\360\256\370\256 0\230F           .,mnbvcxz    ;lkjhgfdsa \n][poiuytrewq  =-0987654321   \357\262   \337\337 \357\272   \337\337         ( )\"\343\312F\320!/ !\230 26!/\16 K>!/\16\332 \4\16\251\0160\355&\2271\20\2300\355`x{0\355\347\2560 \237qpa%\231o!\230 \337\337\337     ,               )\"K\240   \343\316qrpxzy\0 sRDh\16\313\212u\343\314qrzy    !0( "
   [D] ^ 32 : Y (I (D)));
return 0;
}

G (o)
{
 Z;
 if (t)
   {
     C = Y (t + 12);
     j = Y (t + 16);
     o (Y (t + 8), 0, d);
     M U (d + D) =
X (D, C, j) ? X (D, C + 1025, j - 2050) ? X (D, C + 2050,
          j - 3075) ? X (D,
           C + 2050,
           j -
           4100) ?
X (D, C + 4100,
   ((j & 1023) + 18424)) ? 176 : 24 : 20 : 28 : 0 : U (d + D);
     for (n = Y (t + 4); U (i + n); i++)
P (d + Y (t + 12) + 5126 + i * 8, U (n + i), 31);
     E (Y (t), t, 2, d);
   }
}

G (_)
{
 Z = Y (V + 24);
 F Y (V - 16) += t;
 D = Y (V - 16) - t;
}

F for (i = 124; i < 135; i++)
 D = D << 3 | Y (t + i) & 7;
}

if (q > 0)
 {
   for (; n = U (D + i); i++)
     if (n - U (t + i))
{
  D += _(D, 2, 0) + 1023 & ~511;
  i = ~0;
}
   F if (Y (D))
     {
n = _(164, 1, 0);
Y (n + 8) = Y (V - 12);
Y (V - 12) = n;
Y (n + 4) = i = n + 64;
for (; j < 96; j++)
  Y (i + j) = Y (t + j);
i = D + 512;
j = i + Y (i + 32);
for (; Y (j + 12) != Y (i + 24); j += 40);
E (Y (n) = Y (j + 16) + i, n, 1, 0);
     }
 }
}

return D;
}


Зовётся: gavin

1) First, build the kernel and filesystem (just "make").  In short, you need to build this on an x86 Linux machine.  If you wish to try to compile on an OS other than Linux you may need modify the makefile to compile "sh" using a cross-compiler that produces elf binaries - i.e. a cross-compiler targeting x86 Linux.  In short, you need to build this on an x86 Linux machine.
2) Next, find a suitable machine to run the OS on.  It should be perfectly safe, and since it does not directly attempt to access any hard disk drives (only a ramdisk loaded by the bootloader) it should do no damage to your existing setup, BUT I ACCEPT NO LIABILITY FOR ANY DAMAGE DONE BY THIS PROGRAM.  Run it at your own risk.  The OS has been tested on half a dozen machines or so, and worked on all but one.  The failure came in the form of the machine rebooting itself midway through loading the OS, with no nasty side-effects.
Hardware requirements - i386 or better processor, but the GUI is surprisingly power-hungry, so I would recommend a fast p3 or p4 processor (has been tested on p3/p4/athlon machines).  Minimum RAM is something like 32MB.  PS2 mouse & keyboard required - no USB I"m afraid, and the keyboard map is for a UK keyboard.  Uses Vesa VBE 3.0, so should work on any modern graphics card (has been tested on Nvidia, Matrox, and SiS cards).
3) Now you need to setup a bootloader to load the OS.  If you have a system using a lilo bootloader you can simply add the OS to your boot menu.  Just add appropriate "image=" and "initrd=" lines to your /etc/lilo.conf, pointing at "kernel" and "fs.tar" respectively (as built by make earlier), then run lilo.  If you do not wish modify your lilo setup, one easy option is to get yourself a grub bootdisk image, and follow the instructions for grub below - debian users can simple "apt-get install grub-disk" to get themselves a grub bootdisk.
If you run grub, then at the boot menu simply hit "c" to get a console, then type "kernel=(hd0,0)/<PATH>/kernel" (substituting appropriate harddrive/partition numbers & path, or using "(fd0)" to load a kernel on the floppy), then "initrd=(hd0,0)/<PATH>/fs.tar", and finally "boot".
4) Assuming the OS has booted, what can you do now?  Well, start by trying "sh", to open another shell.  Then, try "vi prog.c" (although this file may have been re-named...), to open up the OS source in a text file viewer (up/down or pgup/pgdown to scroll).  [Note that the provided applications, "sh" and "vi" both have windows of the same size, and that open in the top left corner of the screen, so you may need drag the windows around a bit to tell them apart.]
5) To shut down - just hit the power button. :-)


 
Petr V. Abramov ©   (2005-02-21 15:33) [43]

КаПиБаРа ©   (21.02.05 14:30) [41]
> Не знаю насчет 1-ой и 2-ой, но даже 3-я еще осью не была.
 Была. Просто использовала DOS вместо загрузчика.


 
Petr V. Abramov ©   (2005-02-21 15:33) [44]

КаПиБаРа ©   (21.02.05 14:30) [41]
> Не знаю насчет 1-ой и 2-ой, но даже 3-я еще осью не была.
 Была. Просто использовала DOS вместо загрузчика.


 
Плохиш ©   (2005-02-21 15:44) [45]

>Petr V. Abramov

Не путаем понятия ОС и оболочки, а то столько ОС получится :-) NC, Xtree, DosShell ...


 
}|{yk ©   (2005-02-21 15:46) [46]

Да нет, там было свое API, свой формат исполняемых файлов, так что можно было назвать это ОС.


 
Petr V. Abramov ©   (2005-02-21 17:37) [47]

> Плохиш ©   (21.02.05 15:44) [45]
 Почитай Шульмана Inside Windows 95, потом не путай


 
Petr V. Abramov ©   (2005-02-21 17:39) [48]

> Плохиш ©   (21.02.05 15:44) [45]
 Почитай Шульмана Inside Windows 95, там и про 2.0 и про 3.1 есть, в качестве лирических отступлений.
 Если уж по-товоему "не путать", то и Win95 до OSR/1 - "оболочка"


 
default ©   (2005-02-21 17:53) [49]

http://phpdevelop.info/files/modos.pdf
на английском



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.58 MB
Время: 0.033 c
14-1108885021
boriskb
2005-02-20 10:37
2005.03.13
Ужастик


9-1103047588
FUNKy
2004-12-14 21:06
2005.03.13
Вопрос про определение дистанции до поверхности Glscene/OpenGL


3-1107975358
_Oleg1
2005-02-09 21:55
2005.03.13
Доступ к Oracle


6-1105215904
Colonel
2005-01-08 23:25
2005.03.13
Knocking to ....


8-1101346399
Ego
2004-11-25 04:33
2005.03.13
Анимированный рисунок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский