LINUX.ORG.RU

Вышел KolibriN 8.1

 , ,


4

4

Многие уже слышали про Колибри — операционную систему написанную на ассемблере и умещающуюся на одну дискету. И это с целой кучей софта в комплекте! Завораживает? Возможно, но наши дети уже не знают зачем эти черные квадратики, да и Колибри давно уже выросла из дискеты размером 1.44 Мб — это и послужило причиной появления KolibriN Upgrade Pack, который призван собрать воедино все разбросанные по свету программы и наработки для KolibriOS.

Что сделано:

  • добавлены тени и полупрозрачность;
  • красивые обои и скины, которые можно легко менять через контекстное меню рабочего стола;
  • в поставку входят игры, среди которых Doom, Loderunner, Pig, Jumpbump и эмуляторы игровых консолей NES, SNES, Gameboy;
  • эмуляторы DosBox и ZX Spectrum позволят запустить сотни старых приложений и игр;
  • просмотрщик изображений zSea, графический редактор GrafX2, почтовый агент Liza, просмотрщик документов формата PDF, видеоплеер FPlay и многие другие программы.

Более того, вам не нужно прописывать ассоциации для этих программ в файловых менеджерах вручную — установщик сделает это сам.

>>> Скриншоты на официальном сайте

>>> Ссылка на закачку

>>> Подробности



Проверено: post-factum ()
Последнее исправление: Klymedy (всего исправлений: 8)
Ответ на: комментарий от Badboy

Объясните мне, почему.

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

Я уверен, что вы об этом не думаете и представляете себе процессор как последовательное исполняющее устройство.

namezys ★★★★
()

Классно. Жду CD-образа. Как раз готова виртуалка для этого. Сегодня докупил +4 гига оперативы.

pacify ★★★★★
()
Ответ на: комментарий от pacify

Встречайте KolibriN 8.2. Изменения:
- по запросам трудящихся, теперь в ISO;
- добавлена документация как запустить в эмуляторах и с флешки/жестяка/флопика;
- отображение хода копирования в установщике;
- обои пережаты, удалён TinyC;
- многие просили версию в 7z - сделано;
- другие мелкие исправления.

Спасибо Ване advertlimark за донейт, он пока первый и единственный.

Badboy
() автор топика
Ответ на: комментарий от Badboy

Спасибо Ване advertlimark за донейт, он пока первый и единственный.

Скажи номер карты VISA, я переведу немножко на хостинг.
P.S. Отправил ещё немножко на WMID:168014588366 (это твой аттестат?).
P.P.S. Красивостями сайта лучше не увлекайся. Делай в академическом стиле - люди оценят. И будь ближе к народу.
От меня просьба - чтобы там была более-менее быстрая графическая подсистема с прямым доступом к видеобуферу, работала сеть и флешки.

pacify ★★★★★
()
Последнее исправление: pacify (всего исправлений: 2)
Ответ на: комментарий от Badboy

Я попробовал запустить установку с ISO под VirtualBox 4.2.6_OSE/Debian 6.0.6 amd64, linux 3.4.32.
Загрузка остановилась на такой картинке.
См. остальные скриншоты первой попытки

Если не нажимать никакие кнопки при инсталляции, то по-дефолту всё загрузилось: картинка
Загрузилось за одно мгновение =)

Буду пробовать. Есть ещё такая замечательная штука как BareMetal OS (для amd64), но она без GUI.

pacify ★★★★★
()
Последнее исправление: pacify (всего исправлений: 1)
Ответ на: комментарий от pacify

Я стараюсь делать просто и со вкусом, где код, юзабилити, скорость и стабильность всегда на первом мечте. Красивости потом. Единственное исключение - это программа завершения работы: работает медленно.

Прямой доступом к видеобуферу есть. Сетью сейчас занимается наш друг из Бельгии hidnplayer - пишет новый стек. Для флешек нужен USB, который сейчас тоже активно развивается в бранче, его пилит девушка CleverMouse :)

168014588366 - да, это мой, перевод пришёл. Ты второй... Спасибо. На страничке http://kolibri-n.org/donate.php есть пункт «Банковский перевод» - кажется это VISA, хотя может и мастер кард. Сейчас в гостях, вечером посмотрю точно.

Badboy
() автор топика
Ответ на: комментарий от pacify

Забыл сказать - полсле изменения настроек оно спрашивает: «Сохранить их?», так вот сохранять их нельзя. Настройки будут приняты на этот сеанс, а при попытке сохранить оно пробует записать изменения на СД-диск, что приводит к ошибке. Я попробую это исправить.

P.S. Надеюсь, ты нажал на кнопку «KolibriN»?))

Badboy
() автор топика
Ответ на: комментарий от Badboy

полсле изменения настроек оно спрашивает: «Сохранить их?», так вот сохранять их нельзя.

Да, именно так и зависает.

Я попробую это исправить.

Хорошо.

Сетью сейчас занимается наш друг из Бельгии hidnplayer - пишет новый стек.

Какой ориентировочно API у вас? Где посмотреть manual на интерфейс?

его пилит девушка CleverMouse :)

rulez :) девушки - это гуд. Кстати, под какую архитектуру затачиваетесь пока? i386?
Если вы не против, я тоже кое-что начал бы разрабатывать для вашей системы, но мне нужно посмотреть API ядра или системных библиотек. Я начинал что-то писать для линукса, но тут как-то всё огорожено ... я привык писать на асме под i80286, и на Turbo Pascal/C++ под MS DOS.

pacify ★★★★★
()
Ответ на: комментарий от Badboy

есть пункт «Банковский перевод» - кажется это VISA, хотя может и мастер кард.

Да, похоже что ACCOUNT (16-значный код) - это номер карты. Завтра попробую туда закинуть немного, на развитие взаимодействия в community.

pacify ★★★★★
()
Ответ на: комментарий от pacify

Раньше было i386, сейчас i586.
Системные функции: kolibri-n.org/files/kol_func.chm а ещё можно в программе DocPack в колибри http://vk.com/kolibri_os?z=photo-48924138_297094010/album-48924138_169168508/rev

Могу кинуть исходники почтового клиента Liza.

Badboy
() автор топика
Ответ на: комментарий от Badboy

Могу кинуть исходники почтового клиента Liza.

Нет, не надо. На первое время достаточно туториала.
Ещё: вы ассемблер Yasm не пробовали?

Раньше было i386, сейчас i586.

Окей, это хорошо. А работа с жестким диском и флешками - через примерно какой API будет делаться?

pacify ★★★★★
()
Ответ на: комментарий от dmfd

хороший программист и не пишет на асме

доооо.

а берёт хороший компилятор от производителя своего процессора и заостряет внимание на самом алгоритме.

тебя угнетает мысль что кто-то пишет на ассемблере?) Религия?

anonymous
()
Ответ на: комментарий от namezys

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

Хоть я и не разраб Колибри, отвечу. Полный контроль возможен только при работе с машинным кодом. Множество байтиков, которое может быть сгенерировано компилятором языка высокого уровня из исходного кода, всегда будет подмножеством байтиков, которые можно написать напрямую в машинном коде. Компиляторы несовершенны, приходится использовать всякие SSE интринсики и ассемблерные вставки, чтобы заставить их генерить хороший код. Вот ссылки, если что http://blog.lexa.ru/2012/12/26/opyat_o_sovremennykh_cpu.html http://blog.lexa.ru/2011/09/01/o_kompilyatorakh_i_protsessorakh.html

Ну и цитата оттуда:

Получается удивительно: для целочисленного случая Intel размешивал load/store и вычисления нормально, даже лучше всех, а для плавучки (и очень похожего кода) это умение у него испортилось. А с gcc - наборот. Флаги компиляции при этом одинаковые для разных фрагментов, все бенчмарки считаются одним запуском исполняемого файла.

SZT ★★★★★
()
Ответ на: комментарий от Badboy

дрова для радеонов тоже есть.

На основе VBE, ага. Но всё равно круто, успехов в нелёгком труде. :)

anonymous
()
Ответ на: комментарий от acukac

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

Чушь. Компилятор сидит, и уныло применяет сотни алгоритмов оптимизации на всех этапах компиляции. Человек никогда так делать не будет. Напротив, он уменьшит оптимизацию по скорости в угоду читаемости и логичности кода, а компилятор на это клал.

anonymous
()
Ответ на: комментарий от Badboy

Звук должен быть

А на писиспикере умеете нормальный звук играть? Нет? Даже этого нет?? :))

anonymous
()
Ответ на: комментарий от Badboy

Для флешек нужен USB, который сейчас тоже активно
развивается в бранче, его пилит девушка CleverMouse :)

Ничего не имею против девушек, но 124 коммита за 4 года - такими темпами usb стек не скоро будет допилен.

anonymous
()

Годная замена DOS'у с DosBox, теперь то точно все узнают, что это не просто ось на ассемблере, это ось на ассемблере с DosBox'ом!)

Sharezil
()
Ответ на: комментарий от Badboy

i586

жаль. У меня в подвале хранится 486 ноутбук с флоппиком. Думал, на нем смогу попробовать. А до какой версии было 386?

alt-x ★★★★★
()
Ответ на: комментарий от namezys

Даже если предположить, что компиляторы до сих пор настолько тупые, что производят код в 2-3 раза медленнее (а это давно не так), все равно вложенный в «ручная оптемезацию» труд никогда не окупится. Тем более на ассемблере x86. Битожуйство в квадрате.

Я как-то случайно беседовал с одним из сабжевых разработчиков. Недолго, т.к. глаза его горели «ручной оптемезацией», а о понятии вычислительной сложности он узнал от меня только что.

anonymous
()
Ответ на: комментарий от anonymous

Я как-то случайно беседовал с одним из сабжевых разработчиков. Недолго, т.к. глаза его горели «ручной оптемезацией», а о понятии вычислительной сложности он узнал от меня только что.

Так экспоненциальный алгоритм на асме выполняется за линейное время, фигли думать-то.

dmfd
()
Ответ на: комментарий от SZT

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

Как и то, что может написать человек.

Компиляторы несовершенны, приходится использовать всякие SSE интринсики и ассемблерные вставки, чтобы заставить их генерить хороший код.

А вот не правда. Мы заставляем его делать специфичные вещи в этом случае.

namezys ★★★★
()
Ответ на: комментарий от anonymous

Даже если предположить, что компиляторы до сих пор настолько тупые, что производят код в 2-3 раза медленнее

Не в 2-3, а в 3-4 если сравнивать код с интринсиками и без них http://blog.lexa.ru/2012/12/26/opyat_o_sovremennykh_cpu.html

все равно вложенный в «ручная оптемезацию» труд никогда не окупится.

Расскажи это разрабам GMP, код которых используется в Mathematica и Maple

http://gmplib.org:8000/gmp/file/c8f61f840be8/mpn/x86_64

SZT ★★★★★
()
Ответ на: комментарий от namezys

А вот не правда. Мы заставляем его делать специфичные вещи в этом случае.

До которых он без нашей помощи додуматься не может

SZT ★★★★★
()

Готов к десктопу

FiXer ★★☆☆☆
()
Ответ на: комментарий от SZT

Не в 2-3, а в 3-4 если сравнивать код с интринсиками

А, ну тогда ок, бросаю кнута, ушол учить язык ассемблер :)

Расскажи это разрабам GMP, код которых используется в Mathematica и Maple

А без ассемблер-гуру-левел оптимизаций эти проекты надо понимать не взлетели бы? И я что-то не вижу раскиданных префетчей, шедулинга и векторизации. Вместо этого там каждые 5 строчек cmovcc, который slow и pipeline-blocking.

anonymous
()
Ответ на: комментарий от SZT

Не переживай, когда это станет настолько критично, что кто-то будет готов дать на это денег, какие-нибудь толковые ребята тут же убьют вопрос. Вместе с вашими поделками. В HLSL тоже никто не верил поначалу.

anonymous
()
Ответ на: комментарий от SZT

Вы бы еще попросили компилятор вместо пузырька использовать быструю сортировку

namezys ★★★★
()
Ответ на: комментарий от namezys

в 2-3 раза быстрее кода на С? они это говорят?

http://gmplib.org/manual/Assembly-Coding.html#Assembly-Coding

The assembly subroutines in GMP are the most significant source of speed at small to moderate sizes. At larger sizes algorithm selection becomes more important, but of course speedups in low level routines will still speed up everything proportionally.

Carry handling and widening multiplies that are important for GMP can't be easily expressed in C. GCC asm blocks help a lot and are provided in longlong.h, but hand coding low level routines invariably offers a speedup over generic C by a factor of anything from 2 to 10.

SZT ★★★★★
()
Ответ на: комментарий от anonymous

А, ну тогда ок, бросаю кнута, ушол учить язык ассемблер :)

У Кнута есть свой особый MIX ассемблер, если ты не знал :)

SZT ★★★★★
()
Ответ на: комментарий от vilisvir

Там по ссылкам это:

Внимание, на это изображение были поданы жалобы от некоторых пользователей ресурса. Данное изображение отправлено на проверку администрации ресурса, и на данный момент это изображение не желательно к просмотру. Уберите от экранов беременных женщин и детей. )

FiXer ★★☆☆☆
()
Ответ на: комментарий от anonymous

Ничего не имею против девушек, но 124 коммита за 4 года - такими темпами usb стек не скоро будет допилен.

Она не комиттит, она выкладывает на ftp: http://ftp.kolibrios.org/users/CleverMouse/usb/

Badboy
() автор топика
Ответ на: комментарий от pacify

А работа с жестким диском и флешками - через примерно какой API будет делаться?

Функция 70.1: прочитать файл с диска (любого):
eax = 70 - номер функции
ebx = указатель на информационную структуру
Формат информационной структуры:
+0: dword: 0 = номер подфункции
+4: dword: позиция в файле (в байтах)
+8: dword: 0 (зарезервировано под старший dword позиции)
+12 = +0xC: dword: сколько байт читать
+16 = +0x10: dword: указатель на буфер, куда будут записаны данные
+20 = +0x14: ASCIIZ-имя файла, правила формирования имён указаны в общем описании
или

+20 = +0x14: db 0
+21 = +0x15: dd указатель на ASCIIZ-строку с именем файла
Возвращаемое значение:
eax = 0 - успешно, иначе код ошибки файловой системы
ebx = число прочитанных байт или -1=0xffffffff, если файл не найден

Может кого-то и отпугнут эти «+20 = +0x14: db 0», но в реальности всё очень просто.
mov eax, 70
mov ebx, read_buf
int 0x40
Программисты на Си используют обёртки для подобных функций.

Badboy
() автор топика
Ответ на: комментарий от Badboy

ebx = указатель на информационную структуру

Понятно. Насколько я понял по исходникам, ядро написано на FASM. И, с целью быстрой работы, является монолитным (то есть не на messages, как микроядра).

Development kit: code editor with a macro-assembler (FASM) integrated.

А каким образом вы перевели FASM в свой формат исполняемых файлов? Какой формат кодогенерации он использует у вас? (я не нашёл в дереве SVN)

Собираетесь ли пилить драйвер для xfs, ext3/ext4?

Планируете ли раработку какого-либо компилятора для своих нужд?

pacify ★★★★★
()
Ответ на: комментарий от pacify

В ядре я слабо разбираюсь. Да, оно монолитное, но часть драйверов вынесено из него.

Исполняемый файл Колрибри фактически представляет собой 32-битный двоичный файл с небольшим заголовком, загружаемый, начиная с нулевого адреса. Начало example.asm
[code]
use32 ; включить 32-битный режим ассемблера
org 0x0 ; адресация с нуля

db 'MENUET01' ; 8-байтный идентификатор Kolibri/Menuet
dd 0x01 ; версия заголовка (всегда 1)
dd START ; адрес первой команды
dd I_END ; размер программы
dd 0x1000 ; количество памяти
dd 0x1000 ; адрес вершины стэка
dd 0x0 ; адрес буфера для параметров
dd 0x0 ; адрес буфера для пути програграммы
[/code]
Посмотри svn\programs\develop\examples\example\trunk

Собираетесь ли пилить драйвер для xfs, ext3/ext4?

Так ext2/3/4 есть же, правда только чтение. Сегодня в нём было
исправлено несколько ошибок:
ext2 fix bug: bad error checking in ext2_get_inode_block and in ext2_HdRead
----
ext2 fix stack inconsistent in ext2_find_lfn
----
ext2 fix stack inconsistent in ext2_HdRead
----
ext2: fix bug in file read
----
Насчёт xfs не знаю.

Планируете ли раработку какого-либо компилятора для своих нужд?

Дела муторное. Есть портированный TinyC, его можно развивать. Ядро Колибри можно собрать из самой системы на FASM'e - так что фактически она самодостаточная система. Tinypad обладает отличной подсветкой синтаксиса ассемблера.

Badboy
() автор топика
Ответ на: комментарий от Badboy

Дела муторное.

Я во ВКонтакте отписался по поводу прошивок под ARM. А насчёт компилятора - я подумаю, но пока ничего не обещаю.

pacify ★★★★★
()

Я тут немного почитал http://wiki.kolibrios.org/wiki/New_stack

Мало сетевых карт поддерживается. Почему бы не сделать враппер типа NDISwrapper, чтобы можно было поддерживать больше сетевых карт? Есть вариант WATTCP, который работает в 32 bit protected mode http://home.broadpark.no/~gvanem/ , можно попробовать использовать его. Или сделать такое же или похожее апи к сетевым картам, как в ядре Linux, после чего использовать драйвера от него. В каком сейчас состоянии поддержка TCP/IP-стека? Возможно ли будет в будущем использовать вашу ОС как фаервол/роутер? Как с реалтаймовостью?

SZT ★★★★★
()
Ответ на: комментарий от SZT

как только они туда смогут засунуть что нить сложно, типа NDISwrapper, у них сразу пропадет их скорость работы.

namezys ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.