Перейти к содержимому
RccHD

Разработка новой операционной системы. WinOS.

Рекомендуемые сообщения

Если бы я стал писать многозадачную операционку, разделение экрана я бы реализовал не как в Windows, а как в Androidе. Остальные приложения крутятся в фоне и если что-то пишут, то на свой виртуальный экран.

Но, это лишь мое скромное мнение.

Дам тебе(и другим кодерам) возможность реализовать такой оконный менеджер. Будет удобное API для описания того, как распределять пространство на экране. Все можно будет поменять через конфиг

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@@Zer0Galaxy, кстати, чет похожее писал давненько. Работало сносно, хоть это и не полноценный мультитрединг:

 

mdbvGJr.png?3 y6wh1MJ.png?2

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Графическая составляющая(оконный менеджер, буфферизация, виртуальная gpu) -- ничтожно простая часть ОС, которую я реализовал в первый же день

 

Сейчас я бьюсь над тем, чтобы разделять порты ввода-вывода программ(term, tty, sh, io, buffer)

Изменено пользователем RccHD

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На мой взгляд, разрешение ОС-монитора не такое большое, чтобы делить его на окна. Если бы я стал писать многозадачную операционку, разделение экрана я бы реализовал не как в Windows, а как в Androidе. Т.е. из всех запущенных приложение только одно захватывает экран, оно же обрабатывает события мыши и клавы. Остальные приложения крутятся в фоне и если что-то пишут, то на свой виртуальный экран. Но, это лишь мое скромное мнение.


Эта фича является под фичей фичи 5, которую RccHD обещал сделать.
Если в i3 нажать 'mode' + W, то все окна примут вид горизонтального стека. Так видно только одно окно, a остальные прячутся за ним:

jX8c25Ml.png

 

5. Можешь сделать шапки окошкам и дать возможность окошкам стакаться, разными способами?

5) да, но на счет шапок не уверен... На маленьких экранах можно будет выключить шапку

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сейчас я боюсь над тем, чтобы разделять порты ввода-вывода программ(term, tty, sh, io, buffer)

Сейчас есть желание забить на это все и сделать так

io = {
    write = nil
   ,read = nil
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда будет готов оконный менеджер(в конце недели, я занят :/ ), объявлю начало разработки конфигов к нему :)

Учасники форума смогут оформить конфиг(API я выложу) и прислать его. Им будет предоставлен ранний доступ к ОС.
Пример рабочего конфига я выложу(с мегатоннами комментов и пояснений). Чтобы было с чего "срисовывать"

Хорошие конфиги я добавлю в систему как дефолтные, один из них можно будет выбрать зайдя в настройки

Что думаете? Будет ли кто-то пилить конфиг оконного менеджера или мне сделать все самому?

P.S. Вы сможете сделать "как в андроиде",  "не как в андроиде", да вообще как захотите

Изменено пользователем RccHD

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@@RccHD, делай полноценную многозадачность с деревом процессов и сигналами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@@RccHD, делай полноценную многозадачность с деревом процессов и сигналами.

Уже готово. Дерево процессов встроено в OpenOS(неожиданно)

 

YK7HQHF.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@@RccHD, а теперь делай сигналы, SIGTERM, SIGKILL, SIGINT и другие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@@RccHD, а теперь делай сигналы, SIGTERM, SIGKILL, SIGINT и другие.

Главное не забывать, что программы пишутся под OpenOS, и если программа сама ничего с сигналами не делает, то исполнять их придётся системе. Не помню, какой там за что именно отвечает, но посылать сигнал мягкого выключения программе, которое она обработать не может, так себе идея.

Можно посылать сигнал shutdown, который имеется в openOS в качестве сигнала мягкого выключения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На написание ОС я потратил не больше двух часов за последние 3 дня, т.к лень

 

Трудно решить вопрос с io, tty и особенно term. Они реализованы так, что нигде кроме как в самой OpenOS они не будут идеально работать

 

Уже думаю просто написать свою упрощенную версию tty (не больше 10% от кода, написанного автором мода)

Изменено пользователем RccHD

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Сейчас понимаю, что написать многопоточность в OpenOS не очень сложно, но есть одна проблема: миллионы возможных багов, связанных с компонентами компа, евентами, экранами, вводом-выводом и т.д.

Я намекаю на то, что одному человеку(мне) найти и пофиксить все баги будет физически очень сложно. Все потому что под моей операционкой можно будет запустить почти любую OpenOS-программу

 

Я пытаюсь свести тему к тому, чтобы я выложил 30 сентября то, что успел сделать, а остальные доработали бы, отпалировали, баги пофиксили.

 

Я выложу именно хорошую юзабельную рабочую версию с готовым оконным менеджером, потоками, конфигами и т.п.. Участники форума скачают эту ОС и нафлудят в тему о багах(а их точно всплывет много). После этого либо я, либо сами же участники форума пофиксят баги и зальют код в мой репо. У всех, кто юзает мою ОС всплывет оповещение 'доступна новая версия ядра, <скачать>'

 

У меня просто сейчас учеба, 11класс. Мне вообще не простительно уделять много времени околоигровым вещам. Могу тратить на фикс багов где-то час-полтора и то не каждый день

 

 

P.S. надеюсь на какую-то адекватность и конструктив, я же для вас эту ОС пишу

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот важное сообщение: http://computercraft.ru/topic/2128-pishu-novuiu-os/?p=32217

Все остальные сообщения в этой теме -- пустой треп про nautilus, IPC, про сокеты и про другие термины.

Важно сейчас понять, найдется ли 2-3 человека, которые могут находить или даже фиксить баги. Все ради той заветной многопоточности, о которой многие мечтали со времен появления мода

Если никого не найдется, то я урежу возможности системы, чтобы потом меньше багов пришлось фиксить.

http://computercraft.ru/topic/2128-pishu-novuiu-os/?p=32217


 

Изменено пользователем RccHD

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот важное сообщение: http://computercraft.ru/topic/2128-pishu-novuiu-os/?p=32217

 

Все остальные сообщения в этой теме -- пустой треп про nautilus, IPC, про сокеты и про другие термины.

 

Важно сейчас понять, найдется ли 2-3 человека, которые могут находить или даже фиксить баги. Все ради той заветной многопоточности, о которой многие мечтали со времен появления мода

Если никого не найдется, то я урежу возможности системы, чтобы потом меньше багов пришлось фиксить.

 

http://computercraft.ru/topic/2128-pishu-novuiu-os/?p=32217

Полазив по этой теме я не нашёл ни одной ссылки на github, bitbucket или ещё на какой-нибудь хостинг кода. Чтобы можно было посмотреть его или скачать и запустить его. =(

Могу утверждать точно, что найдутся люди, которые пару минут потыкают в твой ui, если ты скинешь ссылку на туториал о том как поставить твой wm. А вот априорно сказать, что кто-то будет намеренно искать баги, невозможно. Так как у всех тут есть учёба, работа или ещё какие-либо дела.

Вроде как написал Объективное мнение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

А вот априорно сказать, что кто-то будет намеренно искать баги, невозможно. Так как у всех тут есть учёба, работа или ещё какие-либо дела.
Вроде как написал Объективное мнение.

Я предлагаю так: после 'релиза' все скачают мою ОС и потыкаются в ней. Если будут баги, обязательно нужно кинуть багрепорт сюда или в спец. тему
Никого фулл-тайм не нужно. Просто зараннее договоримся чтобы пофиксить 5-10 багов


Ссылка на репо закреплена в первой записи темы.
Продублирую тут:
https://github.com/RccHD/WinOS/tree/master/WinOS/dd243563-b2e6-4ba8-8c28-28ca278f0402/home/lib Изменено пользователем RccHD

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Короче я понял 
Надо сначала скинуть нормальный работающий результат, чтобы его кто-то себе установил и потыкался
А только потом искать тестеров  ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Короче я понял 

Надо сначала скинуть нормальный работающий результат, чтобы его кто-то себе установил и потыкался

А только потом искать тестеров  ;)

 

True  :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

о) что-то интересно) дистрибутив openos)
я заметил как вы там обсуждаете доступ к компонентам, я уже один раз в это уперся, как по мне решением является введение пользователей, групп и прав, так что придется пострадать)))

А по поводу графики - не разу еще не видел тут распределенных систем, что печально(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Давно не было новостей по поводу разработки этой ОС, так что вот вам СВОДКА:

 

Все готово на 80%

Ждите релиза, выложу бета-версию ОС где-то через неделю-две

 

Список того, что уже сделано:

1) фильтрация событий мыши, клавиатуры и других

2) распределение однотипных компонент компьютера между окнами

3) доработана библиотека буфферизации, добавлена возможность делать скриншоты и сохранять их в бинарный файл(формат raw-image)

4) почти доделан оконный менеджер. Особенности оконного менеджера: поддержка нескольких рабочих столов, возможность запустить несколько окон на одном рабочем столе, возможность параллельно рэндерить разные рабочие столы на разных экранах(труднореализуемо, поэтому пока в планах)

5) добавлены новые методы для gpu, обеспечивающие попиксельную отрисовку графики: gpu.setPixel(x, y, color)

6) реализовано разделение глобальных областей видимости программ(кастомные _G и _ENV для каждой программы)

7) реализованы панельки трэя сверху и/или снизу. В них можно будет отображать любую инфу: время, озу, темрературу реактора и т.д.

 

В будущем хочу взять(и частично переписать под нужды ОС) несколько библиотек от ECS и Krutoy. Например, хочу добавить в систему поддержку БОЛЬШИХ букв а также OCIF-формата, отрисовка будет через новую функцию gpu:

gpu.drawImage(x, y, OCIF[6], 'img.pic')

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...