Как стать автором
Обновить

Комментарии 242

А зачем тут тэг UNIX?
Тот кто начинает писать собственный ОС, чем-то начинает смахивать на Линуса Т. :)
Линус Торвальдс — ок. А unix-то тут причём?
Так это же обобщенное имя всех линуксов, бсд и тому подобное.
Посоветуем товарищу, пусть смахивает в другую сторону.
В топик врываются программисты из команды РеактОС.
> сделать собственный загрузчик

В общем, с этого многие начинали. На этом же и заканчивали. Я вот сам раза 3 пытался начать писать свою ОСь, но что-то не осилил. Зато осиляли другие:

Read about VGA Resources and GRUB. You have the opportunity to let the bootloader switch to graphical mode for you before your kernel is started. A color depth of 32 will avoid you further headaches. Documents about Accelerated Graphic Cards are gifts from the gods for Klik, but they're rare.
Develop (or reuse) a small library to draw lines, fill areas, copy bitmaps and draw text out of your kernel, debug it, then integrate it in your OS.
Find a friend to make a neat logo, ask GRUB to load it as if it was a module, memcpy it to screen and voilà. You can release 0.1

wiki.osdev.org/James_T._Klik
Осторожно! Посещение ссылки черевато написанием самодельных операционных систем. С нескучными обоями и загрузчиками.
Сайт потрясающий, помню, даже с его помощью написал нечто, умеющее запускать ELF-ы и работать с FAT32, страшное и многозадачное
А я умел читать разделы и fat32 кусками, даже если файловая система повреждена. Главное на сайте то, что все написано простым и доступным языком, а само описываемое действо в туториалах просто захватывает. Как-то статью James_T._Klik переводил на русский, но народ не оценил меня.
а перевод ваш не сохранился?
Где-то валяется, но думаю проще будет перевести еще раз, чем откопать в залежах на винте.
Зачем начинать написание ОС с загрузчика? Ведь ОС это только ядро, а дальше, глядишь и будет обрастать утилитами и превратится в… одну из популярных систем в настоящее время :)
Нвдо начинать всегда с эмулятора терминала, тогда точно взлетит.
Ностальгия… Помню на первых курсах универа почти год был проведен в дебрях системного программирования… В конце концов забил на неуловимом баге бросающем систему в general protection fault после пары минут работы при количестве запущенных потоков больше 4… Вот теперь опять появилось желание распотрошить архивы и попробовать починить :)
Ну уже хорошо, что не эстонский разработчик. Есть шансы.
Финнов тоже за медлительность некоторые ругают. И ничего :)
По ссылке реклама шин Nokian.
Ну что выдал гугл по запросу «финны в f1», как известно 3 фина чемпионы f1, больше ни у кого такого результата нет. Раллийных чемпионов тоже много.
> фина чемпионы f1, больше ни у кого такого результата нет
Да ну?
Бразилия 3
А ведь есть ещё:
Великобритания 10
Мне как бы эта тема далека, однако вот еще:

www.raikkonen.ru/index.php?ind=reviews&op=entry_view&iden=62
Лучшие в мире По количеству побед в F1 и WRC на душу населения финны далеко впереди
(победа на млн. чел.)
Финляндия 1:0,3 млн — 16 чемпионов
Великобритания 1:5 млн — 13 чемпионов
Германия 1:9 млн — 9 чемпионов
Австралия 1:5 млн — 5 чемпионов
Франция 1:10 млн — 6 чемпионов
Бразилия 1:23 млн — 8 чемпионов
Ну так я опровергал показатель «3 фина чемпионы f1, больше ни у кого такого результата нет», а не «количество чемпионов WRC + F1 на душу населения».
Молодец.
— почему финские автогонщики самые быстрые?
— они медленно снимают ногу с педали газа
они просто не успевают нажать на тормоз…

к устаревшей статье комментарий - они не успевают подумать о тормозе, приходится рулем крутить?
а по статье - у него хоть что-то за десятилетие получилось?

ой, кажись я третий про неуспевающих тормозить ;)

Ну Торвальдс так-то финский швед. ;)
— Хочешь выиграть гонку, найми фина. (с) Кто-то из топ-менеджмента крупной автомобильной корпорации.
Чьим вы скайпом пользуетесь? А у кого самое современное в мире электронное правительство?
А еще у эстонцев очень классный закон об оружии.
НЛО прилетело и опубликовало эту надпись здесь
Что то не вижу ни слова о GUI в посте
НЛО прилетело и опубликовало эту надпись здесь
Скучная.
даже антивируса Каксиса не будет?
Успокойтесь, под это будет зарезервирована папка /system/wallpaper
Да, это вам не BolgenOS.
Зато там есть слова «графический интерфейс». Или по-русски не воспринимается уже?
>> C++ — для графического интерфейса и прочих вещей
Ну не в теме я, что теперь выпилить меня нужно?
На заднем фоне рабочего стола будет риалтайм выводиться системны Log :-) Хотя, это скорее было бы в Notch OS.
А идея ой как неплоха кстати! возможность определять зоны с реалтаймовым выводом различных логов на рабочем столе. Я бы сделал. Главное, чтобы железо позволяло. Можно, конечно, своих костылей нагородить в том же openbox, назначив запуск терминала, убрать ему декор и прочая… но прикольней было бы как стандартный плагин к стандартным системным средствам…
Logcat live wallpaper для Андроида же
conky же
Сомневаюсь, что в современных условиях можно справиться с написанием ОС с «нуля» и с ее поддержкой…
в одиночку!
Всё зависит от поставленной планки. Он же сказал что будет писать убийцу Windows/Linux/MacOS ;)
НЛО прилетело и опубликовало эту надпись здесь
Баловался с собственной ОС во времена первых пней.
Останавливало (как, думаю, и большинство остальных осестроителей) то, что в защищённом режиме не функционируют сервисы BIOS. И нужно сразу же выдать пачку драйверов к дискам (что ещё вполне реально) и видеокартам (а вот тут уже полный ахтунг).
Я тогда даже не поленился реализовать своеобразный «гипервизор» под EV8086, дабы прямо из защищённого режима вызывать int 10h и int 13h (а попутно выяснил, что там тоже не всё так просто — для работы BIOS необходимо было рефлектить и/или эмулить обработчики как минимум таймера и контроллера флоппиков).
Сейчас ситуация только ухудшилась: зоопарк железа вырос многократно, BIOS как сервис отмирает, UEFI — тот же самый зоопарк, стандарты типа USB/SATA обновляются чуть ли не ежегодно. Ноуты — отдельная больная тема, тут инженеры творят такое, что у опенсорс-драйверописателей волосы дыбом встают, да ещё и инфа далеко не вся открыта.
В таких условиях код будет устаревать быстрее, чем программист-одиночка его пишет. Команда жизненно необходима, чтобы хотя бы успевать за прогрессом.
Так и я о том же; не пойму почему минусуют.
Поддерживаю, проблема совсем не том, что написать ОС сложно. Семафоры, переключения режимов процесса да многоядерность осилить можно. Нелегко, но можно. А вот написать пачку драйверов для всех устройств, да еще и поддерживать драйвера для постоянно выходящих сотен новых устройств — дело нелегкое и непосильное для одного человека. Учитывая, что многое в таких устройствах как видеокарта бывает сильно скрыто и не описано.
Если конечно у него есть гениальные планы как заинтересовать сразу всех вендоров устройств, что бы они скопом начали писать драйвера под его ОС, тогда да — мы вероятно через несколько лет увидим новую свежую операционную систему со своими закидонами.
А теперь еще вспоминаем про приложения, хотя бы базовый набор, без которого все это имеет смысл только «побаловатся». Потом вспоминаем про пользователей, которые не так уж легко переучиваются на новые интерфейсы. Потом вспоминаем что рынок уже давно занят, и влезть в него будет очень непросто, а если влезет то во одиночку или даже с небольшой командой поддерживать и развивать продукт будет не в состоянии. Речь как я понимаю про ось для десктопов, не серверная и не мобильники или узкоспециализированные устройства? Там хоть можно (наверное) с производителем девайсов договорится, если хороший продукт получится, а тут как? как они пользователям обьяснять что их ось лучше винды, оси или убунты и нужно вот срочно на нее переходить? А не перейдет достаточное количество, базовый набор приложений так и останется базовым.

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

Вот если бы он заявил что это будет новая ОС, с каким-то ИИ, которая сама будет изучать железяки и устанавливать дрова или вобще работать без дров, даже можно было бы как-то попытаться воспринять всерьез, а так это всего лишь громко сказано, попиариться у него получилось однозначно.
Даже если эта система будет использовать Linux (ядро), то вполне может считаться новой, если, конечно, это не форк GNU/Linux (ОС). Android, например, такая система — полноценная ОС на ядре Linux.
Это не ваш комментарий был про BolgenOS до редактирования? Может быть за то и минусовали?
НЛО прилетело и опубликовало эту надпись здесь
Насчет всей этой олдскульной мишуры я тоже часто задаюсь вопросом, только боюсь если дело выгорит придется ему дописывать все то что они считает устаревшим потому что даже я на свои несколько десятков серверов USB дисководом раз в месяц да пользуюсь и храню его почище кащея с яйцом.
А все потому что почему-то производители хардвара типа IBM, HP обожают выпускать новые прошивки в виде образов дискет. Вот хлебом их не корми, дай выпустить то BIOS, то critical прошивку BMC в виде AFUDOS.EXE и xXXX.AFU чтоб им пусто было.
Да и клавиатуры с мышами в несколькоих KVM — PS/2…
Так что порыв конечно шикарный, прям вдохновляет. Но реальность может продиктовать свои непригладные условия.

С другой стороны если разговор идет про Десктопную ОС и сервера тут не при чем — одному человеку не потянуть GUI это определенно.
он портирует туда кутю и поставит кеды, какие проблемы?
он там ещё и от posix отойти же хочет…
На сперме позикса уже 100 лет нету, а кутя есть
Минусующие, если вы верите в существование позикса на сперме, то покажите мне его
У меня была более резкая реакция на
последовательных и параллельных портах

Это ж прям фейспалм! Это «что-то» должно быть очень уж специфическим, если оно будет поддерживать только небольшой набор перечисленных портов.

… либо неверно выразился человек.
Густ Каксис, огромное тебе уважухо и спасибо за 64 бита. Я уже устал думать, что мне ставить 32 или 64.
а где нынче такая проблема возникает?
Вы когда-нить покупали Windows? Допустим я блондинка, почему мне приходится думать, какую версию Win7 мне покупать
Блондинке продавец-консультант по ответу на вопрос «когда покупали комп» сразу даст нужную версию.
А по манере отвечать — нужный комплект сопутствущего софта.
С блекджеком и шлюхами, я надеюсь?
ИМХО рассказывать о планах это он зря. Пока нет результатов его серьезно все равно никто воспринимать не будет, только хихикать.
Я не хихикаю, если человек всерьез говорит, что он напишет ОС в 29 лет это означает что у него вероятно вполне хороший багаж знаний. Проблема как описали выше немного не в самой ОС, а скорее в поддержке этой ОС линейки топовых и не очень устройств.
По описанию, мне показалось, он пытается сделать что-то в стиле старого Эппл. Т.е. Ось под конкретное железо, грубо говоря, наладить производство своей линейки девайсов на собственной оси.
По-моему вы слишком переоцениваете возраст. Я вот когда-то тоже думал, что КТН — особенные люди. Пока не познакомился с достаточным их количеством…
если человек всерьез говорит, что он напишет ОС в 29 лет это означает что у него вероятно вполне хороший багаж знаний.

С чего бы?
Где вы узрели этот багаж? Пока что он сам пишет что _только собирается изучать_ как написать загрузчик или как обработать прерывания, не знает что такое GDT.
Интересующиеся люди всё это выучили в 18.
Ах, извиняюсь, упустил эту информацию из виду, ну что ж, тогда да…
> если человек всерьез говорит, что он напишет ОС в 29 лет это означает что у него вероятно вполне хороший багаж знаний

Хочется ответить на это цитатой из Ильфа и Петрова: «Далеко не каждый поминутно смеющийся человек оптимист. Иногда это просто идиот».

Возраст != опыт и знания. Каюсь, впервые слышу об этом программисте (может он невероятно крут) но сам вывод «раз ему 29 лет, то решение написать ОС — серьезный, продуманный шаг с 100% вероятностью успеха» считаю ошибочным. Заблуждаться и переоценивать свои силы можно в любом возрасте.

Имхо, такие заявления надо делать хотя бы после реализации загрузчика, а еще лучше — после прототипа хотя бы на отдельно взятом железе. Мне кажется автор таким заявлением хочет увидеть поддержку, которая будет его стимулировать (это означает что никакой мотивации кроме пиара у него нет, а значит дело тухлое).
Если человек не видит, что такие ОС уже есть (например, Haiku практически точно подходит под его описание) — ну, какой ещё багаж?
Из комментариев:
“…I’m targeting realtime data processing. …I wouldn't even call my idea an OS, as it’s targeted into very specific field of data processing and not for general public”
Болдом выделено добавленное мной, т.к. автор, похоже, опечатался.
Интересно, а шутки про автора поста до сих пор актуальны? :)
Давно пора шутки, основанные на стереотипах, признать deprecated
Ко времени первой альфа версии Ivy Bridge будет далеко не современной.
Он пишет, что использует Windows XP. Теперь все понятно — так как поддержка XP заканчивается, он решил написать новую ОС:)
Настоящий программист, чо ;)
Лучше бы он поучаствовал в проекте ReactOS — там и работы много, но с другой стороны, и сделано уже много, и команда работает.
При желании он вполне мог бы найти в ReactOS над чем работать, и получать фан (никто не запрещает взять себе какую-то одну часть, и переделать её на своё усмотрение, кто знает — может что-то полезное выйдет).
Я немогу. Заголовок да и статья — класс. А я приступил к поеданию обеда. Новость будет когда он напишет и этой осью начнут более менее пользоваться. У меня диплом был — собственная ось — могла запускать ELF в многозадачном режиме и частично посих поддерживала. Кому это нужно-то без внедрения?
Тут пишут, что этот ваш линупс до сих пор нигде внедрить не могут и предлагают пройти курсы одной конторки из редмонда, для гос.учереждений со скидкой 99.999%. Ну кому нужна операционка без фотошопа, автокада и активной папки?
Скажите это моим роутерам)
А также подавляющему большинству эмбеддед девайсов)
[изображая маркетолога]
А сколько ваши роутеры за этот самый линукс заплатили? Пиратка поди, да?
Самый что ни есть лицензионный, прямо лично у Линуса купленный, пингвином заверенный)
поддерживаю, те кто гонят на линукс вероятно не знаю, что он их окружает в большинстве устройств. Сколько можно повторять — Линукс это не оконный менеджер, это не Unity и уж точно не фотошопы. Это ядро. Все что выше — уже надстройка над ядром.
Я в серьезном бизнесе работаю,
Деньги все умеют здесь считать,
Быть хорошим может только платное,
Буду эту матру повторять!

Папка, активная, ты моя, дивная!
В линупсе нет такой! Ололо отсос!
Игры на сперме есть, кады и визио,
Переустановить? Это не вопрос!

(что-то не могу найти линк на саму песенку)
ок, ок…
Если бы не глупые стишки сочиняли, а реально задумывались бы над вещами, то понимали бы, что открытость не есть бесплатность. То есть открытые проекты не обязательно бесплатны. А насчет все-таки внедрения, который вы имели в виду где-нибудь в системе образования или в вооруженных силах, то рак мозга не лечится, пока что…
Дык про внедрение не я начал, будте внимательней. Что же касаемо лицензий, то скажем GPLv3 мне нравится больше всего, хотя мне там кое-чего нехватает.
Линукс вообще няшка, он по сути ВЕЗДЕ в подавляющем количестве используется, исключение лишь десктоп.
у меня на десктопе и еще примерно у 20 моих знакомых, у которых я бывал дома… Да — не программистам проще использовать винду, но программистов сейчас в мире не так уж и мало и говорить, что linux не используется на десктопах, вы уж меня простите, сущая ересь.
Linux уже давно дорос до юзабилити, когда нужно минимум знаний что бы им пользоваться.
Да, забыл сказать — моя мама любит линукс! Она домохозяйка.
Так я и не говорю, что линукс не используется на десктопе, я констатирую факт, что только на десктопе доля линукса не значительна в отличии от всех остальных областей где он преобладает в абсолютном эквиваленте.
В таком случае, извините, не правильно Вас расценил. Да — полностью с Вами согласен.
Сейчас как Андроид ворвется сначала в сектор нетбуков, а потом и десктопов — и ситуация изменится ;)
Так андроид это андроид, а линупс это линупс :)
Так андройд и есть линукс)
Да, но, к примеру, Убунта не есть Андроид (: Всё таки приложения совершенно разные, идеология разная, и т.д.
Вот если я возьму Ubuntu, выкорчую из него Unity и напишу свою графический интерфейс, и запилю его API под приложения под Андройд, вы тоже скадете, что это не линукс? Линукс тем и хорош, что он не зависит от оконных менеджеров и экосистемы вокруг себя. Все что вас ограничивает при работе с ним — это ваш полет фантазии, ну и вероятно технические воможности вашего железа.
API сначала запилите) Когда системы будут бинарно совместимы для приложений, тогда можно говорить о том, что Андроид это линукс. А так, macos можно freebsd называть, че толку?

Да и андроид под декстоп так себе, с его типично телефонно-планшетной многозадачностью.
Не-не-не. У Вас просто некошерная терминология. Есть Android/Linux, а есть GNU/Linux. Linux — это ядро. И он реально и в Android, и в Ubuntu одинаковый, при чём даже с бинарной совместимостью. Ибо на ядро, используемое в Android Ubuntu встаёт нативно.
Не устали применять этот аргумент? Программы с одной ОС на другую не переносимы (часто даже с пересборкой), толку с того, что ядро общее?
При том, что всё и так бинарно совместимо, и не надо ничего запиливать.
И как на андроиде запустить elf файл?
Ну да, а для программ под windows ставим windows, в чем смысл? Ладно, перефразирую, как он одной и той-же ОС запускать и elf и андроидовские исполняемые файлы без эмуляторов?
Так это не эмулятор. Это набор библиотек, чтобы была стандартное POSIX-окружение. Но если Вам надо просто некий сферический elf запустить без связей с другими библиотеками, то вот gw1 рассказал. Респект ему :)
elf-файл проще всего запустить из консоли.

Шелл /system/bin/sh есть в каждом андроиде (интерфейс к нему на устройстве)

Можно в настройках включить галочку «Отладка по USB» и система будет слушать определённый порт и запускать шелл при коннекте (с компа зайти можно командой adb shell) — это удобнее, т.к. будет полноценная клавиатура и большой экран.

Можно из Android-приложения, в java:
Runtime.getRuntime().exec("cp /system/etc/hosts /sdcard/")


Если приложение графическое и использует оконный менеджер, нужно запустить соответствующий оконный менеджер. Реализация подобного менеджера есть в уже упомянутом проекте Ubuntu for Android. Это ни в коем случае не эмуляция. Менеджеру доступен OpenGL и прочие низкоуровневые графические инструменты
ubuntu for android сохраняет возможность нативного запуска андроидовских приложений, без отката назад на просто андроид?
Так параллельно всё работает, перезагружаться не надо.
Естественно, на экране Ubuntu невозможно вывести виджет, написанный под UI Android.

Но это как в Windows 8 — «плиточный» интерфейс и обычный :)
А почему они должны быть переносимы? Сами же говорите, что это разные ОС.
Когда говорят о популярности linux, это в том числе влияет и на выбор платформы для программиста. Допустим 1% десктопов и сотни миллионов девайсов, это совсем разные цифры. Допустим, кто-то услышит последнюю цифру и захочет сделать ставку на эту ОС (например, заплатит за поддержку linux в своем софте), а потом окажется что весь его вклад совместим лишь с 1% десктопов, а не теми сотнями миллионов устройств на «линуксе».

Потому и важно акцентировать внимание на том, что андроид хоть на ярде линукса и основан, но от ОС linux он отличается достаточно сильно и это совсем не одно и тоже.
А какая разница? Большинство приложений, написанных под Linux шикарно работают и в Windows благодаря всяким Cygwin-ам. Принимая решение ориентироваться на Linux, разработчик только лишь приобретает огромный набор доступных инструментов программирования и библиотек. Ну, и дополнительный 1% инсталляций, что тоже не плохо :)
Ну не знаю, насчет шикарно. Отличной работы gui я не замечал, да и консольные работают далеко не всегда. Виндовые приложения тоже через wine работают (и нормально работающих больше, чем через cygwin), но эта работа несколько отличается от нативной.
А примеры можно? У меня такого опыта нет. Если программа (Tk, Qt, GTK) компилируется и работает в Linux, то она компилируется и работает в Cygwin.
По моим наблюдениям, кроссплатформенные обёртки (Qt, java swing и т.п.) слегка подтормаживают в винде. Буквально на грани восприятия, на 100-200 ms окошки дольше открываются, комбо-боксы медленнее выпадают.

Скорее всего, в обёртках используются контролы со стилем SS_OWNERDRAW и рисуется всё это в software.
Тогда надо просто писать GNU/Linux во втором случае.
Не надо, linux это ос, если не уточнили обратное. Иначе бы небыло понятия «ядро linux». Дистрибутив linux, у меня стоит linux и т.д.
У меня заводились мелкие консольные утилитки, собранные под ARM из стандартных исходников: SQLite3, tune2fs, resize2fs.
Ой, вам бы памятник поставили за откручивание Unity и вкручивании Gnome 2!!!
Хех, сколько внедренцев тут обитают!
Еще и не-позикс. И для чего она позиционируется тогда, кроме как самого автора развлечь?
Ядро ОС без окружения — бесполезный хлам. Без большого количества драйверов периферии, без большого количества пользовательского софта.
Я прекрасно его понимаю, внутренняя архитектура линукса много кого не устраивает, безусловно. Безусловно хочется чего-нибудь более современно исполненного, без оглядки на обратную совместимость с 90-ми.
Но при этом надо также понимать, что какое бы классное ядро ты не написал, против тебя будет огромная кодовая база линукса, плюс база вообще решений на нем — никто не променяет это на абстрактное «у меня ядро внутри красивее», дешевле будет покопаться в готовых решениях под Linux, допилить и собрать интересующее тебя под свою задачу, чем писать с нуля под ах-какое-классное ядро.
Ну слой совместимости с POSIX он не отметает. И вообще с линуксом конкурировать не собирается.
А, РТОС…
Ну тогда он будет конкурировать с QNX)
В линупсе самое ценное — это драйвера. Равно как и самое сложное для любого ОСеписателя.

Я вот мечтал в свое время о ОС без файловой системы, смотрел на аналоги и фапал на них. Смотрел на антагонистов вроде Plan9 и тоже фапал. Но если бы я начал поддерживать уже готовый софт — мне срочно надо было бы изобретать файловые системы и ввергнуть себя в пучину легаси ради совместимости. Авторы (те самые ДЕВЕЛОПЕРС-ДЕВЕЛОПЕРС) бы видели, что «а там и так все работает» и не пользовались бы моими замечательными идеями, т.е. как нативными API, так и преимуществом подхода при создании приложений. В результате нативного софта бы почти не стало. Равно как и смысла в самой системе. Собственно, полуось так и померла.
Дрова, но базу софта тоже со счетов списывать не стоит. К «софту» я отношу не только итоговые продукты но и библиотеки для тех самых девелоперз. Всякие там ОпенХХХ и иже с ними.
Конечно, те, что без сильной привязки к системному АПИ можно и портировать будет, но все равно это еще одно лишнее препятствие.
А можно спросить, как работала бы ОСь без файловой системы? Просто я не могу понять принципа этого концепта…
Ну вон, FreeRTOS работает же… ФС нет, даже HAL почти нет — тем не менее это ОС. Даже реал-тайм.
В памяти?
Этот концепт сделали пацаны из одной лавочки в Редмонде: download.microsoft.com/download/c/e/2/ce28874c-4f44-4dbd-babb-727685e2be96/WinFS_IWish_720x486_2mbs.wmv
Это не совсем замена файловой системе, скорее оверлей над нею.
Хотели внедрять еще в win2000, но столкнулись с проблемой совместимости. Но не осилили до сих пор.
во-первых, это файловая система. Под определение вполне подходит.

Во-вторых, как придумали, так и забыли. Обещали, кажись, году к 2003 внедрить. Потом говорили «в лонгхорн встроим». Уже восьмёрка — и где оно?
ru.wikipedia.org/wiki/IBM_System_i

Юникс-подобные операционные системы используют парадигму «все есть файл» («everything is a file»), тогда как System i использует принцип «все есть объект». Операционной системой предоставляется сборщик мусора и сохранение объектов.
как в фрибсд называется файл, соответствующий первой сетевой плате?
а в линуксе?
Из оригинала —
Avoid the use of GRUB or any other multiboot bootloader – make my own and allow only my own OS on the system – yeah that’s ego centric decision, but I’m going to use CPU for my self and this blog is all about getting from power button directly to my C code executed as the only code on the CPU
— дикий бред. Автор, похоже, не отличает multiboot и виртуализацию
И боится писать на ассемблере, ага :-)
С чего бред-то? Он не хочет, чтобы на CPU выполнялся какой-либо код, кроме его собственного. Он же не говорит ничего про одновременность. UEFI, правда, его почему-то не смущает.
НЛО прилетело и опубликовало эту надпись здесь
Судя по профилю на гитхаба(https://github.com/gusc) человек может приступить к написанию ОС на php.
Тогда его точно поддержат, народ любит ПХП)
Представляете — драйверы на ПХП, прикладной софт на ПХП — мечта для ПХПшников.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
нет, в этой оси ПХП будет нативным кодом, поэтому мод_пхп будет чисто формальной прослойкой
НЛО прилетело и опубликовало эту надпись здесь
ребят, вы сделали мой день! =)
эээ, но ведь это же макось! Каждый пункт соответствует.
А не тот ли это Гус, что сборную России возглавлял?
/applications – пользовательские приложения
/configuration – конфигурационные файлы
/documents – документы пользователя
/system – системная директория, доступная только для драйверов и ядра
/system/configuration – конфигурационные системные файлы
/system/devices – директория для доступа к устройствам
и так далее.


а чем эта структура отличается от mac os x, я не имею ввиду название?
НЛО прилетело и опубликовало эту надпись здесь
скорее всего, только в apple работает 63 тысячи сотрудников, и то ели успевают обновления выкатывать, но если он один ее напишет в приемлемые сроки, то место в apple ему гарантировано.
Похоже, что он нашел таки фатальный недостаток
Вы про «написано не нами»?
а разве бывают другие фатальные недостатки?
> и почему конфиги нужно хранить в /etc…

поздравляю Дениску Куста, он изобрёл макось и gobolinux
О, я уже месяц пытался вспомнить название гоболинупса, спасибо
>Ему 29 лет, то есть о юношеском максимализме речи не идёт.

не знаю, не знаю… Когда говорят о программистах, то, ИМХО, как раз таки и идет об этом речь :)
Кто не знает про оптимистичный подход к оценке собственных сил у программиста?
В начале 2000-х я написал «свою ОС» в браузере — на JS. Там была своя файловая система, фоновые процессы (корявые), свой аналог bash, утилиты командной строки (например, sed был), свой собственный формат сжатия, работа с клавиатуры (даже буфер обмена, выделение слова, копирование) и т.п. За год управился :)

Так что пусть бросает свой Си и пишет на JS :) Благо современные браузеры умеют куда больше, чем они умели 10 лет назад.
Чем умели, в общем-то, даже компьютеры лет двадцать-тридцать назад.
НЛО прилетело и опубликовало эту надпись здесь
JUnix он назывался :) На вебархиве до сих пор можно посмотреть его :)
Сейчас с написанием собственной OS есть некая концептуальная проблема. Драйвера значительного количества устройств, в частности видеокарты и контроллеры, закрытые. И не потому, что производители злые, а потому что патентное законодательство. Как говорят производители — «Открыть драйвера — не проблема. После чего мы получим миллион входящих исков о патентах, которые нарушает наш код и наши устройства. А пока драйвера закрыты — что-либо доказать крайне трудно». Сейчас драйвера как-то делают для windows, osx, *nix. Никто не будет делать еще и для haiku/whatever. А добавить полную совместимость с моделью драйверов той же windows — очень тяжелая задача.

Предвосхищая вопросы о «opensource драйверах к видеокартам под linux». Там некоторая часть open source. Интерфейсная. А в центре — скомпилированный производителем бинарник :).
НЛО прилетело и опубликовало эту надпись здесь
Это не от производителя видеокарт. И делают их как раз из-за борьбы с блобами. И, насколько я помню, сильно страдают от того, что производитель не раскрывает спецификации карт. Поправьте меня, если я не прав.
НЛО прилетело и опубликовало эту надпись здесь
Но постепенно информация становится доступной, так или иначе. Linux поддерживает достаточно число устройств, чтобы можно было рассчитывать на него как на источник знаний для создания системы общего назначения.
Неплохо бы из Linux сделать не источник знаний, а источник драйверов — тогда затея может сработать.
К примеру, если исходники драйверов после их незначительного причесывания работали бы в Latvian!OS.
Так им и отвечают — да хрен с ним с кодом, не показывайте. Покажите спецификацию. И тут они такие: «э....». И всё. Вон, AMD сподобилось.
Как я и написал, код скрывают не только потому, что в самом коде может быть нарушение патентов. В работе железки может быть нарушение патентов — из когда это будет видно. Из спецификации это будет точно так же видно :(. Поэтому не дадут.
По факту, код действительно не дают под предлогом «патенты», а на вопрос о спецификациях — никак не объясняют, просто «не дадим», а то и отмалчиваются.
Лучше бы он написал систему виртуализации драйверов.
Чтоб один бинарник байткод запускался под Win, OSX и всё семейство *nux.
Понятно, что производительность в таком случае пострадает, зато вендор любой железки сможет выпускать всего три версии драйвера — две оптимизированны под Win/Mac и одна универсальная под все остальные ОС. Даже еще не написанные.

Но для этого надо хорошо знать ассемблер, да…
вроде UEFI для того и задуман был, не? чтобы модули драйверов абстрагировать от ОС
А вот в Вики написано: «основное предназначение: корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы.» и что UEFI просто замена BIOSа.

Насколько я понял, что-то похожее называется EFI Byte Code (EBC). И еще Open_Firmware.

В общем, всё уже придумано, но где, черт побери, реализация?!
Хых. Не взлетит. Ибо операционная система — это прежде всего API. Начинать разработку надо с него, а не с заявлений о том, что с BIOS и PS/2 она работать не будет.
Мне кажется, без вопросов, которые он там сам себе задаёт, перевод будет неполным ;)
Итак, с того же сайта gusc.lv/2012/11/im-writing-my-own-os/

Мои исследования:

Как написать свой MBR и записать его на диск под Windows

Как на Си написать функцию ядра
Как написать naked-функцию на Visual Studio под Windows

Непонятно, как перейти от MBR к Bootloader и к ядру

Неясно, что такое GDT и IDT и как это выглядит на Си и Ассемблере

Как переключиться в реальный режим?

Как обрабатывать прерывания на Си? Это что, какие-то callback-и, из которых надо вернуть значение или надо обязательно что-то написать на ассемблере?

Можно ли написать MBR на Си? Достаточно ли просто написать org 7c00h и какие-то специальные инструкции на ассемблере или же это можно написать на Си, а внутри написать что-то на ассемблере?


Какая частая ошибка: когда не знаешь темы, это кажется простым. Сложности начинаются когда начинаешь глубоко вникать в тему.
Или, по другому, «чем больше знаешь, тем шире граница незнания».

Наверняка, в каких-то областях этот «зрелый 29-летний юноша» действительно созрел, но очевидно, это не область операционных систем :)
Обычные люди взрослеют в 20 лет, а программисты в 0x20 :)
(но на самом деле такие люди мне нравятся, я и сам такой, иначе было бы не так интересно жить)
Ой. С такими вопросами — не взлетит. Я думал человек Таненбаума прочёл и под DOS программировал, знает хотя бы что такое прерывания. Ожидал вопросы: как обеспечить наиболее эффективное переключение ring0–ring3.
Плох тот программист, который не хотел написать собственную OS. Но плох тот программист, который все же ее написал.
Из вашего заявления следует, что хороший программист — тот, кто хотел написать свою ОС, но не сделал этого. Что-то тут не так.
Тут как раз все правильно ;-)
Жизни так коротка и лучше всего не начинать строить пирамиду Хеопса, положив в ее основание всего два блока из 2 миллионов и остановившись на этом. Современные OS требуют миллионы часов человеческого труда и один человек просто не в силах сделать собственную современную OS, даже имея пару-тройку единомышленников
Лучше выстроить свой маленький домик, но с трубой и крышей, в котором можно будет жить.
OS бывают разные. Пишут же люди Haiku или ReactOS. И там коллективы много меньше, чем в Microsoft или у ядра Linux. Да и потом, если цель жизни — построить свой домик — то зачем идти окольными путями и тратить своё время на программирование? Неплохо денег можно заработать и будучи строителем :) А если человек выбрал программирование, то почему бы и не разработать свою OS? Ни Windows, ни UNIX не идеальны. А, например, в embedded-секторе из-за суровых ограничений и разношерстности оборудования народ постоянно пишет свои системы или серьёзно допиливает полуфабрикаты. Эти проекты и исследовательские пишутся весьма скромными силами. Первый релиз модной ныне Contiki написал один человек.

Миллион человеко-часов требовался в прошлом, когда дизайн железа имел недостатки, когда люди вообще плохо себе представляли, как OS пишутся, и базовые алгоритмы переписывали по 100 раз. На современном уровне с кучей доступных библиотек и исходников, которые можно использовать, QEMU с отладкой через GDB (очень важная штука), возможностью использовать скриптовые языки для кучи системных утилит всё не так трудоёмко, как кажется.
Пример ReactOS показателен. Десяток лет работы, и все еще альфа.
Да, ребята положили 200 блоков из 2'000'000.

Это нормально конечно, если относится к этому как к развлечению.
Эмс. Ну. А там сейчас всё намного лучше, после слияния в едином порыве с WiNE :) Я просто не в курсе. Но на самом деле ReactOS показательна совсем другим. Ребята смогли своими силами сделать альфа-версию, которая во многом воспроизводит WinAPI, над реализацией которого трудилась целая Microsoft. Это как раз показывает возможности небольших коллективов. Если бы у них была цель разработать свою OS, они бы вполне её написали, мне кажется. Есть же и другие примеры: QNX, RiscOS и т.д. Все вполне стабильные, написаны коллективами <20 человек, достаточно широко используются.
Плох тот программист, который вовремя не понял что реально а что нет делать в одиночку…
После пятого пункта плана я перестал воспринимать это всерьез и не стал дальше читать…

Даже если предположить, что сей товарищ всё-таки адекватен, то в качестве основной эту ОС никто в здравом уме на начальном этапе ставить не будет. А в качестве второй системы он «принципиально » не встанет в силу п.5…

Может быть в виртуалке… Но зачем?
Почему-то в голове мелькнула мысль об оси, у которой окружение предполагается унифицированным черех виртуализацию. А вслед за ней мысль о троллейбусе из буханки хлеба.
Название дирректорий для конфигов уже придумал, половина работы сделана, дело за малым.
Новые обои будут? Я волнуюсь.
Ему 29 лет, то есть о юношеском максимализме речи не идёт

Ну-ну :)
Мы тут все ржом над ним, а он возьмёт и напишет! :)
Дэн, это ты?
(например, непонятно, чем отличается /usr/bin от /usr/local/bin и почему конфиги нужно хранить в /etc). Здесь всё будет проще:

/configuration – конфигурационные файлы

/system/configuration – конфигурационные системные файлы



ого, серьезно взялся, будет реально проще. А настройки всех пользователей будут в /configuration или система будет однопользовательская?
НЛО прилетело и опубликовало эту надпись здесь
В наши годы такую ОС писал каждый второй, кто занимался программированием. :)
Очередной хвастун.
Хе-хе, и я писал; у нас даже какой-то простенький сетевой стек и веб-сервер на ней работал :)
лучше бы было собраться и допилить Inferno OS — которая (1) уже есть (2) портирована на все что можно (3) самая правильная реализация в UNIX-style (все это файлы)
К сожалению сейчас Inferno для продакшена не лучший вариант, но думаю со временем будет несколько лучше.
Тут уже написали, что возраст — не показатель умения планировать, серьезности отношения и вообще трезвости рассудка? Ну и не стоит исключать того, что он или выдуман или просто троллит своих читателей.
> Перейти на C как можно быстрее — автор говорит, что боится работать с ассемблером.
чего мелочиться. сразу бы и от C и C++ отказался. сделал сразу интерпретатор C# и писал бы всё на нём.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Зачем вы дали этот линк? Я ж теперь не усну.

предлагаю проверять языки программирования на слух. Загружайте в ваш любимй звуковой редактор бинарный файл (не исходник, чтобы избежать обманного эффекта псевдопростоты) и нажимайте play.
Вот спасибо за ссылку! Посмеялся.

Вот пример:
Период полураспада — время за которое от программа будет стерта с жестких дисков половины её первоначальных пользователей.
У меня стресс и депрессия © от оформления сайта белым на шрифтом на синем фоне
А я с ностальгией вспомнил тасм на спектруме. Эх сколько было в нем времени проведено…
Напомнило в начале нулевых чувак из Украины писал ОС на… Pascal :) Щас погугли, теперь он ее называет «оболочкой для DOS», но в статье «Мой компьютер» это называлось не иначе как OS (хоть и не скрывалось что стартует под DOS-ом, хотя если 95-ой винде так можно было, то чего стеснятся :)

кому интересно: bespin.org/~polit/
Лучше уже на этом или на этом.
НЛО прилетело и опубликовало эту надпись здесь
Программист из Латвии приступил к написанию современной ОС…
… Но пока выходят только шпроты…

Простите трудно удержатся было ^_^
"Можно забыть о старых интерфейсах вроде PCI, IDE, PS/2"
Смешной… PCI? Забыть? IDE? Тогда нужно сразу забыть про все промышленные компьютеры.
И вообще есть ощущение, что товарищ плохо разбирается в вопросе (например, как он собирается «забыть» PCI — пусть пересчитает количество PCI-мостов в его навороченном компе).
Это пока только эксперимент. Естественно желание сэкономить, причём экономия на устаревших портах вполне оправдана. PCI не столь уже распространён, почти все устройства есть в версии для PCI-Express. IDE в последних компах почти не используется.
Вопрос к минусующим: в чём несогласие? Отставим в сторонку вопрос, что данный человек вряд ли всё же напишет ОС. Предположим, что некто, имеющий знания в данной области начнёт писать ОС. Он прекрасно понимает, что даже через 5 лет она не станет популярна. Вряд ли ранее чем через год, она будет похожа хоть на что-то. А теперь открываю свой комп 2008 года сборки (Core 2 Quad) и смотрю что там используется, а что нет. PCI порты свободны, PCIe — есть устройства. IDE занят только один, DVD приводом. Винты и DVD (второй) висят на SATA. Последний комп, который собирал знакомым на Core i3 шёл уже с UEFI. Всё на SATA. Если писать ОС в одиночку, то затраты времени на всё второстепенное действительно не оправданы. При попытке поднять большой проект сначала нужно реализовать главное. Вспомним с чего начинался Linux — была поддержка только одного типа винчестера и только i386. Но оно оказалось рабочим.
Наверное, потому что вы не поняли смысл комента, на который отвечали.

Протоколы, привязанные к устаревшим интерфейсам и устаревшему железу, вполне живы на новом железе и как базовый уровень более современных протоколов.
Например, IDE(PATA)/SATA используют одни протоколы ATA/ATAPI.

То есть, различия возможны в программировании шины для передачи команд протокола.
В legacy mode SATA/PATA программируются через одинаковые порты.
Расширенные режимы же привязаны к чипсету и начинать затачивать новую ось под конкретные чипсеты, полностью игнорируя везде работающий legacy mode, довольно странно.

Аргумент насчёт pci-мостов состоял в том, что многие новые девайсы видны програмно как pci-девайсы и сэкономить в ОС на «устаревшем железе» ну совсем сложно (разве что флоппи-диски упразднить)
Если мы говорим о серьёзной ОС, то Вы несомненно правы. Но если мы говорим об эксперименте, чем и является на данный момент обсуждаемая система, то это всё не надо. Надо, чтобы заработали те устройства, которые есть у автора. Это в первую очередь. А остальное добавится, когда/если в этом будет необходимость.
Положим, у автора на компьютере нет PCI-слотов.
Однако, код лдя работы с «устаревшей» PCI-шиной ему так или иначе придётся писать, т.к. контроллер USB-портов, интегрированный в чипсет, виден програмно как PCI-устройство. Аналогично контроллер SATA.
Именно как PCI? Хотелось бы ссылок. Т.е. мы правда не сможем реализовать работу с USB и SATA не реализовывая весь функционал PCI?
Откройте в Windows диспетчер устройств, выберите в меню View — Devices by connection.
Посмотрите, что сидит на PCI шине.
Ну… я сделал lspci :) Да, там есть USB и SATA. Но вопрос о необходимости полной поддержки остаётся в силе.
>> Т.е. мы правда не сможем реализовать работу с USB и SATA не реализовывая весь функционал PCI?

SATA в legacy mode, пожалуйста — напрямую в IDE порты
Ещё раз, мы говорим о минимальном функционале, достаточном, чтобы завести ОС и оборудование на современном компе с отключённым legacy mode.
Гхм… Мост PCI-Express отличается от моста PIC?
Я не знаю подробностей о мостах, не специалист. Просто вижу, что разница в работе есть:
В отличие от шины PCI, использовавшей для передачи данных общую шину, PCI Express, в общем случае, является пакетной сетью с топологией типа звезда.
Вот в том-то и дело, что «программист из Латвии» тоже не специалист. Но зато, как всякий порядочный школьник рвётся написать своё, совершенно не понимая, что несёт откровенную чушь.
PCI отличается от PCE-E, но видится это всё, как старый добрый мост-PCI.
Вот потому я и ржал, когда читал — человек явно не имеет совершенно базовых представлений о системной программировании, но зато гонору — ого-го-го! Он же ни одного драйвера ни для одного устройства не написал — какая ОС?!
например, непонятно, чем отличается /usr/bin от /usr/local/bin

Тем, что /usr/local используется для всего, что устанавливается в обход пакетного менеджера. Вроде очевидное различие.
Странно. Он Линусу не родственник? Мне кажется что Фантом Завалишина не вызывал такой бури комментариев. Ждем статей:
«Инженер из Латвии приступил к разработке современного колёсного транспортного средства, приводимого в движение мускульной силой человека через ножные педали»
Ну, Завалишин всё-таки знает что делает и у него интересная основная идея. А тут ноль.
>3. Перейти на C как можно быстрее — автор говорит, что боится работать с ассемблером.
окай.jpg
с таким же успехом, мог бы и на java начинать писать, если асма боится
Можно и на на java, но и в там не без асма.
Вспомнилась ссылка (ОС реального времени с поддержкой мыши)
Да, любят наши ребята велосипеды изобретать
Линукс классная ось. Но вот что меня в ней очень бесит так это система каталогов. Я уже даже не пробую разобраться что к чему. Просто надеюсь что со временем привыкну.
Зря Вы это сказали, сейчас начнется холивар :-)
Лично по мне, так в линуксе все просто и лаконично.
Вот что меня действительно бесит в винде (между прочим, я маздайщик со стажем :)))):
1) дефолтные пути с пробелами
2) пути с кириллическими символами (с учетом того, что локаль != utf-8)
3) слэши «не православно unix-овые» 8-)
4) другое

> например, ему непонятно, чем отличается /usr/bin от /usr/local/bin

По историческим причинам — /usr/bin помещались на ВСЕ дискеты с операционной системой, поскольку там были нужные постоянно программы, а /usr/local/bin были только на одной дискете. (upd: или это отличие от /bin? в любом случае)

Не то чтобы это было так уж нужно сейчас — но все привыкли. Но показательно незнание.

Разберу коротко его статью:

> No Unix directory tree. I hate it
Отличный аргумент.

> No POSIX — as I have some ideas of my own on how to create APIs.
Аахахахаха что ты делаешь прекрати

> Last but not least – GUI from the start. Tell BIOS to display a cute logo and try to avoid any flickering
Окей, подытожу. Чувака раздражает мелькающий логотип биоса и поэтому он напишет свою ОС.

Готов спорить, что дальше этапа «окей, я вроде бы перешёл в защищенный режим» он не пройдёт.
По-моему не хватает обоснования. Да и посыла в топике как-то нет — «хочу писать ОС, придумал, какие там папки будут, и вот документацию откопал, почти все понял». Но как видно, свежие идеи востребованы…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории