RccHD Автор темы 136 Опубликовано: 12 сентября, 2017 Если бы я стал писать многозадачную операционку, разделение экрана я бы реализовал не как в Windows, а как в Androidе. Остальные приложения крутятся в фоне и если что-то пишут, то на свой виртуальный экран. Но, это лишь мое скромное мнение. Дам тебе(и другим кодерам) возможность реализовать такой оконный менеджер. Будет удобное API для описания того, как распределять пространство на экране. Все можно будет поменять через конфиг Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 901 Опубликовано: 12 сентября, 2017 @@Zer0Galaxy, кстати, чет похожее писал давненько. Работало сносно, хоть это и не полноценный мультитрединг: 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 12 сентября, 2017 (изменено) Графическая составляющая(оконный менеджер, буфферизация, виртуальная gpu) -- ничтожно простая часть ОС, которую я реализовал в первый же день Сейчас я бьюсь над тем, чтобы разделять порты ввода-вывода программ(term, tty, sh, io, buffer) Изменено 14 сентября, 2017 пользователем RccHD Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Seryoga 184 Опубликовано: 12 сентября, 2017 На мой взгляд, разрешение ОС-монитора не такое большое, чтобы делить его на окна. Если бы я стал писать многозадачную операционку, разделение экрана я бы реализовал не как в Windows, а как в Androidе. Т.е. из всех запущенных приложение только одно захватывает экран, оно же обрабатывает события мыши и клавы. Остальные приложения крутятся в фоне и если что-то пишут, то на свой виртуальный экран. Но, это лишь мое скромное мнение. Эта фича является под фичей фичи 5, которую RccHD обещал сделать.Если в i3 нажать 'mode' + W, то все окна примут вид горизонтального стека. Так видно только одно окно, a остальные прячутся за ним: 5. Можешь сделать шапки окошкам и дать возможность окошкам стакаться, разными способами? 5) да, но на счет шапок не уверен... На маленьких экранах можно будет выключить шапку Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 12 сентября, 2017 Сейчас я боюсь над тем, чтобы разделять порты ввода-вывода программ(term, tty, sh, io, buffer) Сейчас есть желание забить на это все и сделать так io = { write = nil ,read = nil } Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 12 сентября, 2017 (изменено) Когда будет готов оконный менеджер(в конце недели, я занят :/ ), объявлю начало разработки конфигов к нему Учасники форума смогут оформить конфиг(API я выложу) и прислать его. Им будет предоставлен ранний доступ к ОС.Пример рабочего конфига я выложу(с мегатоннами комментов и пояснений). Чтобы было с чего "срисовывать"Хорошие конфиги я добавлю в систему как дефолтные, один из них можно будет выбрать зайдя в настройкиЧто думаете? Будет ли кто-то пилить конфиг оконного менеджера или мне сделать все самому?P.S. Вы сможете сделать "как в андроиде", "не как в андроиде", да вообще как захотите Изменено 12 сентября, 2017 пользователем RccHD Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 624 Опубликовано: 12 сентября, 2017 @@RccHD, делай полноценную многозадачность с деревом процессов и сигналами. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 12 сентября, 2017 @@RccHD, делай полноценную многозадачность с деревом процессов и сигналами. Уже готово. Дерево процессов встроено в OpenOS(неожиданно) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 624 Опубликовано: 12 сентября, 2017 @@RccHD, а теперь делай сигналы, SIGTERM, SIGKILL, SIGINT и другие. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 12 сентября, 2017 @@RccHD, а теперь делай сигналы, SIGTERM, SIGKILL, SIGINT и другие. Главное не забывать, что программы пишутся под OpenOS, и если программа сама ничего с сигналами не делает, то исполнять их придётся системе. Не помню, какой там за что именно отвечает, но посылать сигнал мягкого выключения программе, которое она обработать не может, так себе идея. Можно посылать сигнал shutdown, который имеется в openOS в качестве сигнала мягкого выключения. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 13 сентября, 2017 (изменено) На написание ОС я потратил не больше двух часов за последние 3 дня, т.к лень Трудно решить вопрос с io, tty и особенно term. Они реализованы так, что нигде кроме как в самой OpenOS они не будут идеально работать Уже думаю просто написать свою упрощенную версию tty (не больше 10% от кода, написанного автором мода) Изменено 13 сентября, 2017 пользователем RccHD Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 14 сентября, 2017 Сейчас понимаю, что написать многопоточность в OpenOS не очень сложно, но есть одна проблема: миллионы возможных багов, связанных с компонентами компа, евентами, экранами, вводом-выводом и т.д. Я намекаю на то, что одному человеку(мне) найти и пофиксить все баги будет физически очень сложно. Все потому что под моей операционкой можно будет запустить почти любую OpenOS-программу Я пытаюсь свести тему к тому, чтобы я выложил 30 сентября то, что успел сделать, а остальные доработали бы, отпалировали, баги пофиксили. Я выложу именно хорошую юзабельную рабочую версию с готовым оконным менеджером, потоками, конфигами и т.п.. Участники форума скачают эту ОС и нафлудят в тему о багах(а их точно всплывет много). После этого либо я, либо сами же участники форума пофиксят баги и зальют код в мой репо. У всех, кто юзает мою ОС всплывет оповещение 'доступна новая версия ядра, <скачать>' У меня просто сейчас учеба, 11класс. Мне вообще не простительно уделять много времени околоигровым вещам. Могу тратить на фикс багов где-то час-полтора и то не каждый день P.S. надеюсь на какую-то адекватность и конструктив, я же для вас эту ОС пишу Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 14 сентября, 2017 (изменено) Вот важное сообщение: http://computercraft.ru/topic/2128-pishu-novuiu-os/?p=32217Все остальные сообщения в этой теме -- пустой треп про nautilus, IPC, про сокеты и про другие термины.Важно сейчас понять, найдется ли 2-3 человека, которые могут находить или даже фиксить баги. Все ради той заветной многопоточности, о которой многие мечтали со времен появления мода Если никого не найдется, то я урежу возможности системы, чтобы потом меньше багов пришлось фиксить.http://computercraft.ru/topic/2128-pishu-novuiu-os/?p=32217 Изменено 14 сентября, 2017 пользователем RccHD Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Seryoga 184 Опубликовано: 14 сентября, 2017 Вот важное сообщение: 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. А вот априорно сказать, что кто-то будет намеренно искать баги, невозможно. Так как у всех тут есть учёба, работа или ещё какие-либо дела. Вроде как написал Объективное мнение. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 15 сентября, 2017 (изменено) А вот априорно сказать, что кто-то будет намеренно искать баги, невозможно. Так как у всех тут есть учёба, работа или ещё какие-либо дела.Вроде как написал Объективное мнение. Я предлагаю так: после 'релиза' все скачают мою ОС и потыкаются в ней. Если будут баги, обязательно нужно кинуть багрепорт сюда или в спец. темуНикого фулл-тайм не нужно. Просто зараннее договоримся чтобы пофиксить 5-10 баговСсылка на репо закреплена в первой записи темы.Продублирую тут:https://github.com/RccHD/WinOS/tree/master/WinOS/dd243563-b2e6-4ba8-8c28-28ca278f0402/home/lib Изменено 15 сентября, 2017 пользователем RccHD Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 15 сентября, 2017 Короче я понял Надо сначала скинуть нормальный работающий результат, чтобы его кто-то себе установил и потыкалсяА только потом искать тестеров Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 15 сентября, 2017 Короче я понял Надо сначала скинуть нормальный работающий результат, чтобы его кто-то себе установил и потыкался А только потом искать тестеров True Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ALeXeR 67 Опубликовано: 16 сентября, 2017 о) что-то интересно) дистрибутив openos)я заметил как вы там обсуждаете доступ к компонентам, я уже один раз в это уперся, как по мне решением является введение пользователей, групп и прав, так что придется пострадать)))А по поводу графики - не разу еще не видел тут распределенных систем, что печально( Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 16 сентября, 2017 Давно не было новостей по поводу разработки этой ОС, так что вот вам СВОДКА: Все готово на 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 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 16 сентября, 2017 (изменено) Вот какое чудо удалось сделать:Теперь каждый сможет запускать несколько lua-интерпретаторов, редакторов кода, GUI-программ и распределять их по рабочим столамЯ запускал эту программу на компе с 1МБ ОЗУP.S. Наконец-то приручил стандартный OpenOS-терминал Изменено 16 сентября, 2017 пользователем RccHD 11 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах