А давайте сделаем 64-битную KolibriOS!
-
Признаюсь, я просто всех задолбал со своим флудом, но ИМХО, я думаю что птичке пора переходить на другую разрядность. В ближайшее время постараюсь помочь с асемблерным кодом (активно изучаю fasm).
Алекс, если колибри будет выходить на реальное железо, я бы голосовал за кроссбитную ОС, в которой хард, или флешку с компьютера можно переставить в другой компьютер, и независимо от того что разрядность окружения изменится - система загрузится с предыдущего сохраненного состояния - это конечно раздует ядро в 2 раза. Но 64 разрядные приложения не всегда быстрее, а зачастую они в 1,25 раза медленнее, и расход энергии на единицу производительности у них в 1,5 раза выше.
Ну и чтоб в системе присутствовала функция переключить режим процессора по распознаванию последовательности инструкций из 64 в 32 и обратно.
На примере менуэта видно что это все дело влазиет в 1,44 Мб. Если аналогичный функционал вместится в хотя бы 3 Мб - будет здорово.
А еще если в 32-разрядное ядро закинуть эмуляцию выполнения 64разрядных приложений (что конечно, не эффективно) - то это будет и вовсе вау. - Полная мимикрия под окружение и использование максимальных возможностей аппаратно или посредством эмуляции. Это откроет дорогу к поддержке эмуляции других архитектур.
Ну и чтоб в системе присутствовала функция переключить режим процессора по распознаванию последовательности инструкций из 64 в 32 и обратно.
На примере менуэта видно что это все дело влазиет в 1,44 Мб. Если аналогичный функционал вместится в хотя бы 3 Мб - будет здорово.
А еще если в 32-разрядное ядро закинуть эмуляцию выполнения 64разрядных приложений (что конечно, не эффективно) - то это будет и вовсе вау. - Полная мимикрия под окружение и использование максимальных возможностей аппаратно или посредством эмуляции. Это откроет дорогу к поддержке эмуляции других архитектур.
64-битный код раздуется не вдвое. и не втрое.[b][u]diamond[/u][/b] когда-то очень давно wrote: "Колибри позиционируется не только как очень быстрая,
но и как очень маленькая ОС"
и тормозить он будет совсем не на 25%, а в разы.
а главное - зачем?
кому-то тесно в 2ГБ юзерспейсе?
Насколько я знаю menuet os имеет 64-битные версии и она же является прародителем kolibri, так зачем делать то что уже есть, зачем изобретать велосипед?
KolibriOS for Windows http://мс-дос.рф/kolibrios.php
Предком (теперь уже - давно забытым предком) Колибри был кривой как козлиный рог МеОС-32.
64-битную версию Вилле Т. клепал уже после Большого Форка,
полностью закрыв исходный код.
и без особого успеха за все прошедшие 15 лет...
64-битную версию Вилле Т. клепал уже после Большого Форка,
полностью закрыв исходный код.
и без особого успеха за все прошедшие 15 лет...
Евангелие от Иоанна: стих 1[/size]
Code: Select all
; В начале было Слово:
B32: mov ax, os_stack ; Selector for os
art_zh, А как же обработка широкополосного объема информации? Куда будут помещаться все эти BIG DATA?
Можете пожалуйста откомментировать код ядра КолибриОС?
Alex2003
ты опять нифига не понял.
неблагодарное это занятие - писать для людей, которые не умеют читать.
с AI-ботами общаться и то интереснее
- они не употребляют абсурдных оборотов вроде "широкополосный объём"
и хоть как-то умеют выстраивать примитивные логические цепочки
ты опять нифига не понял.
неблагодарное это занятие - писать для людей, которые не умеют читать.
с AI-ботами общаться и то интереснее
- они не употребляют абсурдных оборотов вроде "широкополосный объём"
и хоть как-то умеют выстраивать примитивные логические цепочки
art_zh,
Чего я не понял и не прочитал?
Я уже давным-давно прочитал код ядра КолибриОС на SVN, и даже скопировал его себе куда только можно. Но я так и не понял: где у него разрядность? Или же весь код - это микропроцессорные команды?
P.S. Иногда я настолько туп, что даже родители не могут меня понять
Чего я не понял и не прочитал?
Я уже давным-давно прочитал код ядра КолибриОС на SVN, и даже скопировал его себе куда только можно. Но я так и не понял: где у него разрядность? Или же весь код - это микропроцессорные команды?
P.S. Иногда я настолько туп, что даже родители не могут меня понять
Alex2003,Alex2003 wrote:Но я так и не понял: где у него разрядность?
steps to answer your question:
- Open fasm programmer's manual;
- Read there about formatter directives (the whole document is worth reading);
- Find these directives in the kernel source.
[quote=dunkaist]Alex2003,
шаги, чтобы ответить на ваш вопрос:
Открыть руководство программиста fasm;
Прочитайте там о директивах форматирования (весь документ стоит прочитать);
Найдите эти директивы в исходном коде ядра.
Я также рекомендую прочитать «Руководство программиста по архитектуре AMD64, том 2: Системное программирование», по крайней мере, до главы 1.3 «Режимы работы».[/quote]
Спасибо большое!
Big thank!
шаги, чтобы ответить на ваш вопрос:
Открыть руководство программиста fasm;
Прочитайте там о директивах форматирования (весь документ стоит прочитать);
Найдите эти директивы в исходном коде ядра.
Я также рекомендую прочитать «Руководство программиста по архитектуре AMD64, том 2: Системное программирование», по крайней мере, до главы 1.3 «Режимы работы».[/quote]
Спасибо большое!
Big thank!
А если сделать такую фишку?
В образе лежат два ядра: kernel32.mnt и, соответственно kernel64.mnt. При запуске любой программы 32-ое ядро проверяет заголовок файла; если заголовок use 32 - программа работает на изначальном ядре; если use 64 - запускается скрипт, подгружающий в память 64-разрядное ядро, и программа запускается при его помощи. При этом у обоих ядер одно адресное пространство, и когда одно ядро начинает записывать в ячейку памяти информацию, оно ограничивает к ней доступ (допустим, только для чтения) и проверяет ячейку на наличие информации; если же ячейка занята, ядро идёт по памяти дальше, перебирая ячейки; найдя подходящую, она записывает в неё инфу, ставит метку разрядности и снимает ограничение доступа к ячейке. Таким образом, если 64-битное ядро изменило ячейку, записав в неё свою информацию, 32-битное ядро, наткнувшись на эту инфу проверяет метку разрядности. Допустим, 64 бита обозначаются a, тогда 32-разрядное ядро проверив ячейку памяти, обнаружила метку а, она пропускает эту ячейку и идёт по памяти дальше, ища свою или пустую.
P.S. Прошу не кидаться в меняговном помидорами, всё придумано буквально только что. И да: я понимаю, что это дико костыльно.
В образе лежат два ядра: kernel32.mnt и, соответственно kernel64.mnt. При запуске любой программы 32-ое ядро проверяет заголовок файла; если заголовок use 32 - программа работает на изначальном ядре; если use 64 - запускается скрипт, подгружающий в память 64-разрядное ядро, и программа запускается при его помощи. При этом у обоих ядер одно адресное пространство, и когда одно ядро начинает записывать в ячейку памяти информацию, оно ограничивает к ней доступ (допустим, только для чтения) и проверяет ячейку на наличие информации; если же ячейка занята, ядро идёт по памяти дальше, перебирая ячейки; найдя подходящую, она записывает в неё инфу, ставит метку разрядности и снимает ограничение доступа к ячейке. Таким образом, если 64-битное ядро изменило ячейку, записав в неё свою информацию, 32-битное ядро, наткнувшись на эту инфу проверяет метку разрядности. Допустим, 64 бита обозначаются a, тогда 32-разрядное ядро проверив ячейку памяти, обнаружила метку а, она пропускает эту ячейку и идёт по памяти дальше, ища свою или пустую.
P.S. Прошу не кидаться в меня
если есть идея - делай, не болтай.
когда покажешь хоть что-нибудь интересное и работающее - тогда и поговорим
когда покажешь хоть что-нибудь интересное и работающее - тогда и поговорим
Евангелие от Иоанна: стих 1[/size]
Code: Select all
; В начале было Слово:
B32: mov ax, os_stack ; Selector for os
Ещё раз.Alex2003 wrote:А если сделать такую фишку?
Есть ли такая задача (решение) которой тесно в рамках текущих 32-а бита в рамках KolibriOS?
Может отсутствие 64-х битности в проекте это не такая текущая существенная опция в отсутствии других "опций"?
И что мне сначала написать - механизм одновременной работы двух (и более) ядер в одном адресном просиранстве, или же 64 битное ядро?
Kopa, что было неоднократно высказано на форуме? Правильно, каждый делает то, что считает нужным! А я уже зае++++я доказывать себе и другим, что этот подход неправильный!
Kopa, что было неоднократно высказано на форуме? Правильно, каждый делает то, что считает нужным! А я уже зае++++я доказывать себе и другим, что этот подход неправильный!
Who is online
Users browsing this forum: No registered users and 1 guest