|
|
|
4.16, freehck (ok), 13:12, 23/07/2016 [^] [^^] [^^^] [ответить] [↓] [↑] [п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴┬ п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴╔п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б√⌠п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я▐Б√▓я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я├Б∙╔я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б■■п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б√▓]
| +1 +/– |
> Просто удивляет когда описание гипервизора выглядит так:
>
> 1) написан на модном С++14 (и чо ?)
> 2) использует стильные смартпойнтеры и контейнеры (и чо ?)
> 3) у нас своя молодежная система сборки (свсм упрлс ?)
> 4) у нас есть замечательные юнит-тесты (ну да, гипервизору без них прям не жиздь)
Я в новости вижу вещи посущественнее, но даже если и так, то почему бы и нет?
Когда проект стартует, там на самом деле надо решить хренову кучу вопросов микроменеджмента:
Как хранить параметры? Какие из них сделать конфигурируемыми извне?
Как устроить логгирование? В каждом месте пуст каждый сам решает, как рапортовать об ошибке, или напишем модуль для группировки оных?
Как собирать проект? Иногда в существующих системах сборки обнаруживается какая-нибудь неприятная особенность, с которой после некоторого времени уже никак нельзя смириться, так что иногда можно и свою замутить. Хотя в случае C++ я не уверен, почему бы не взять существующую.
Обвешивать ли всё юнит-тестами сразу, или воплотить сначала идею, отшлифовать, а уже потом тесты сделать?..
И так далее, далее... Все эти вопросы - часть архитектуры проекта, и в совокупности своей довольно немаленькая.
И в общем-то, поскольку это первая версия, а стало быть, прототип, именно эти вопросы и имеют первостепенную важность для тех, кто будет сейчас вливаться в проект. Это - внимание к мелочам.
| |
|
|
|
|
2.8, Аноним (-), 08:55, 23/07/2016 [^] [^^] [^^^] [ответить] [п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴┬ п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴╔п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б√⌠п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я▐Б√▓я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я├Б∙╔я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б■■п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б√▓]
| +4 +/– |
Раньше (во второй половине 90ых) школьники начинали изучать C, чтобы написать собственную игруху - тогда игры были гораздо проще и разработка собственной выглядела более-менее реалистично. Поэтому на форумах регулярно появлялся школьник, собирающийся запилить наиновейшую супер-пуппер-мегаигру, в которой "бандиты набигают и можно грабить корованы" (цэ).
Аналогично с системами: линукс был молодым, а сеть была телефон (у кого она была), поэтому у всех была коварная виндуза и - у ряда передовых гиков - полуось.
Поэтому написанием "систем" студенты/старшешкольники занимались до года этак 2005го - одни из таких "системы" переходили в защищённый режим из-под доса (как ранние виндузы) и выводили на экран точку в графическом режиме - графический api сильно трудозатратен, поэтому редкая система доживала даже до точки; другие ограничивались "мощным" бутлодером, который в 512 байтах кроме самого бутлодера содержит ещё и менюху загружаемых систем (и интерфейс навигации по ней), и на саму систему разработчика уже не хватало.
Сейчас все системы - это линукс, фря или openbsd; все браузеры - хромиум; игры реализуемы только табуном специалистов; языков - великое множество и каждый обладает некоторым множеством юных изучателей, искренне верящих во всемогущество этого языка и инвалидность всех остальных.
Поэтому вот как-то так...
| |
|
3.19, Аноним84701 (?), 15:07, 23/07/2016 [^] [^^] [^^^] [ответить] [↓] [↑] [п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴┬ п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴╔п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б√⌠п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я▐Б√▓я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я├Б∙╔я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б■■п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б√▓]
| +6 +/– |
> другие ограничивались "мощным" бутлодером, который в 512 байтах кроме самого бутлодера
> содержит ещё и менюху загружаемых систем (и интерфейс навигации по ней),
> и на саму систему разработчика уже не хватало.
Это не так уж и мало, если учитывать отсутствие возможности скопипаст^W черпать вдохновение из сети )
Да что там "вдохновение" — банально документацию найти не так-то и просто, если доступ в сеть дорог (и его, в зависимости от места проживания, сперва нужно где-то найти, потом по быстрому искать и качать).
Да и при ошибках не "загуглишь" что да как, а ведь даже в банальном загрузчике нужна пара-тройка костылей для некоторых байосов.
А еще — о виртуалках никто слыхом не слыхивал, да и второй "писюк" тоже роскошь, так что все тесты с перезагрузкой, нормально дебажить тоже нельзя …
В общем, это сейчас можно довольно просто написать "классический" загрузчик для x86, а тогда "обычный школьник" вполне мог этим гордиться )
| |
|
4.36, ffirefox (?), 11:38, 25/07/2016 [^] [^^] [^^^] [ответить] [п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴┬ п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴╔п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б√⌠п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я▐Б√▓я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я├Б∙╔я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б■■п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б√▓]
| +2 +/– |
Да, ладно! Раньше было проще т.к. предметная область была обозримой. Документации, может быть, было меньше (документация на MASM/NASM и т.д. были, Interrupt List резидентный, по CGA/EGA/VGA/SVGA документации тоже навалом было (по EGA уж точно)), зато и информационного шума было меньше. Опять же интернет был не у всех, а в FIDO было порядка больше и размазанность ресурсов меньше. Люди, как правило, дорожили своей репутацией и отвечали по существу.
PS:
С игрух начинали писатели на Pascal/C/C++, а начинавшие с ассемблера (или приходившие с синклера) начинали с резидентов (руссификаторов со своими крютыми шрифтами), загрузчиков и демок.
| |
|
5.39, Аноним84701 (?), 16:44, 25/07/2016 [^] [^^] [^^^] [ответить] [п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴┬ п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴╔п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б√⌠п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я▐Б√▓я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я├Б∙╔я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б■■п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б√▓]
| +2 +/– |
> Да, ладно! Раньше было проще т.к. предметная область была обозримой. Документации, может
> быть, было меньше (документация на MASM/NASM и т.д. были, Interrupt List
> резидентный, по CGA/EGA/VGA/SVGA документации тоже навалом было (по EGA уж точно)),
> зато и информационного шума было меньше.
Так-то да, скачал Ralf Brown's Interrupt List и считай что половина нужных доков у тебя есть.
Но это если уже знаешь, что именно нужно искать. Ведь даже той же википедии не было (в которой все же можно довольно быстро получить представление о том, куда копать дальше).
> Опять же интернет был не
> у всех,
Как и телефон. Возможность поиска нужной информации от силы пару раз в неделю, если не реже, все же очень не хилый тормоз/отсевающий фактор.
> С игрух начинали писатели на Pascal/C/C++, а начинавшие с ассемблера
Гм, у меня в книжке по паскалю были и ассемблерные вставки (для считывания клавиатуры и быстрого/прямого копирования "отрисованного" в видеопамять), видимо поэтому первыми "шыдеврами" были тетрис и "самодостаточный" (т.е. способный грузиться биосом напрямую и занимющий аж 2048 байт, т.е. примерно столько, сколько занимают одни только хидеры и выравнивания в современных бинарниках) heх-просмотрщик дисков )
| |
|
|
|
|
|