Планирую написать свою ОС.С чего начать?Какие подводные?p.s. асм и си знаю.
>>1063026 (OP)>асм и си знаюПруф или не знаешь.
>>1063026 (OP)> p.s. асм и си знаю.Нет, не знаешь.> С чего начать?Таненбаум.> Какие подводные?Положишь хуй, когда поймешь, что пора портировать компилятор и станартную библиотеку, а у тебя нихуя не работает.
>>1063034сажа приклеилась
>>1063034>пора портировать компилятор и станартную библиотекуЗачем в 2017 году нужен еще один клон UNIX?
>>1063028Лол, будто знание этих языков что-то совершенно непостижимое и мистическое, что я должен каждому доказывать что я действительно знаю их.Во-первых, на с и с++ я пишу уже более 10 лет и зарабатываю этим.Во-вторых, я очень часто дизассемблирую свой код, для того чтобы убедиться что компилятор все правильно делает и генирирует правильный ассемблер.Да и на ассемблере я изредка по приколу пишу, вот недавно писал мандельброта на AVX/FMA3 пикрил. Кстати вышло очень даже неплохая скорость, выдавал на моем i5 4670k 60+ фпс при 1024x1024.>>1063034>Таненбаум.Не знаю, что-то полистал оглавление его книги и мне она показалась для совсем новичков, мне бы что-нибудь более практическое с примерами типа как загрузиться, как там MMU программировать и всякие такие низкоуровневые штуки с железом.>>1063034>портировать компиляторНахуя мне портировать компилятор, я же не новую процессорную архитектуру буду изобретать, а x86 совместимую ОС. Да и со стандартной библиотекой это тоже ты загнул, думаю она даже не потребуется. Т.к я не собираюсь писать какую-то серьезную ОС чтобы составить конкуренцию линуксу или что-то такое, мне это интересно в качестве самообразовательных целей.
>>1063066Ты слишком успешный, здесь нет никого твоего уровня.
>>1063066Делай forth-машину и расширяй ее, куда тебе вздумается.
>>1063066>Во-первых, на с и с++ я пишу уже более 10 лет и зарабатываю этим.Научи. Как стать таким же, как ты?
>>1063026 (OP)>>1063066Ты не по адресу, тебе нужно например к этим деятелям http://board.kolibrios.org/ посмотри исходники этой питухОС, я уверен там есть все, что тебе нужно - загрузка, низкоуровневый анал-карнавал с любым железом и т.д.
>>1063120>kolibri>питухОСДа ты охуел. А ну извинись!
>>1063026 (OP)Что ты подраземеваешь под "своей ОС"?
>>1063066Вопрос снят. Читай osdev wiki, выполняй все по инструкции.
>>1063026 (OP)https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System
>>1063218Там недописана самая интересная часть про портирование стандартной библиотеки, системные вызовы и т.д.
>>1063026 (OP)>Какие подводные?Ты не напишешь свою ОС.Мимо писал ОС на асме в технаре.
>>1063066> как там MMU программировать и всякие такие низкоуровневые штуки с железом.Не трать время. Все равно не осилишь. На дворе далеко не 1990г. когда комплюхтер был простой и можно было самому спаять.
>>1063026 (OP)А зачем? Что даст новая ОС, какие перимущества перед остальными?
>>1063066> x86 совместимую ОСПффф. Вот тут-то все ответы мне и показались верными.А то я зашёл тебе посоветовать в качестве ниши RTOS для ARM (альтернативу FreeRTOS или лучше RIOT-OS), но иди тогда ты нахуй.
>>1063026 (OP)Гугли- Bugurtos Лучше помоги анону.
Вкатись в компиляторы. Всего один норм учебник на весь мир.Вкатись в ReactOS, Kolibri OsПочитай Танненбаума.Пиши систему с самых низких уровней. Например взаимодействие контроллера - диска
В качестве дополнения к советам выше очень рекомендую посмотреть исходники bolgenOS для лучшего понимания как писать осы профессионально, со всеми новейшими лучшими практиками и учетом ошибок популярных осей типа линукса или винды.
>>1065871Так RTOS отличает только по идее цпу шедулер и остальные функции памяти, процесса, стека и т.п для уменьшения латенси.Как я уже писал я хочу написать свою ОС, чтоб познать дзен, это следующая ступень в моем мастерстве программирования.Компилятор я уже писал,3Д двиган делал в студенческие годы.Хай лод сервера писал на работе.Алгоритмы уже все выдрочены и написаны свои версии по 5 раз.Думаю теперь пришло время валить рейд босса - написать свою ОС.На ARM писать не могу ибо у меня нету ARM нигде кроме USB модема, да и архитектуру арм не знаю, в отличии от х86.Тем более архитектурные особенности это всего лишь нижний слой абстракции, основной то слой где работает само ядро с шедулерами, менеджерами памяти и т.п. находиться выше архитектуры CPU.
>>1063026 (OP)Начни с загрузчика/thread
>>1066171Вообще накатай LispOS и делов то
>>1063066>Да и со стандартной библиотекой это тоже ты загнул, думаю она даже не потребуетсяТы заебешься без неё писать, хотя бы частичная реализация нужна.
>>1063026 (OP)Очередной монолит? Фичи-то будут?
>>1063026 (OP)Watch out for the CIA niggers. They glow in the dark.
>>1063026 (OP)Начни с драйвера дисковода. Это работает, гарантирую результат.
>>1063026 (OP)Попов, уймись
>>1063026 (OP)Главное, чтобы обои были не скучные
>>1063026 (OP)Вот полноценная ОС на Сишке#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(16c+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;FU (Y (t + 28) + 1536) |=62 & -n;MU (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;}
>>1063026 (OP)>Планирую написать свою ОС.>С чего начать?Закончить школу.