|
Незнайка
|
|
В каких программах пишут ОС?20.04.2017, 23:42. Показов 1560. Ответов 16
Метки нет (Все метки)
0
|
|
| 20.04.2017, 23:42 | |
|
Ответы с готовыми решениями:
16
На каких программах сделаны фильмы? НА КАКИЙ ПРОГРАММАХ ПИШУТ DELPHI (ДЛЯ СОЗДАНИЕ ПРИЛОЖЕНИЕ) Зачем new пишут и в каких случаях ? |
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||
| 21.04.2017, 21:30 | |||
|
0
|
|||
|
Почетный модератор
|
||
| 21.04.2017, 21:35 | ||
|
Если Вы Имеете В Виду Языки Программирования - Ассемблер, Си, никто и ничто не мешает делать это на других языках.
трудозатраты будут разные, и выхлоп (производительность) тоже.
0
|
||
|
Заблокирован
|
|
| 22.04.2017, 14:11 | |
|
Но наверняка же есть какие-то специальные приблуды для разработки ОС уровня венды?
Не верю я что венду писали в нотепаде
0
|
|
|
Модератор
|
||
| 23.04.2017, 00:07 | ||
|
Как и другие масштабные программные проекты, любая ОС состоит из множества компонентов. Это отдельные программы - ядро ОС (kernel), графическая подсистема, файловая подсистема, набор драйверов оборудования, стек TCP/IP и многое другое. В виндовсе, например, функцию ядра системы выполняют NTOSKRNL.EXE и NTDLL.DLL. А всё остальное крутится уже на них. В линухах - vmlinuz и initrd.img. И всё остальное так же крутится на основе этих компонентов. Собственно, во всех случаях - это исполняемые бинарные файлы. По сути - те же программы, как и прикладные, только на них указывает вектор в загрузчике и они в память загружаются первыми изо всего, из чего состоит ОС. Всё остальное - запускается этими двумя (в обоих случаях) компонентами по списку в конфиге(ах). Таким образом, получается, что создание любой ОС сводится к написанию программы, внутри которой будет организовываться основа системы, а всё остальное - можно прикрутить снаружи. Написание такой программы можно осуществить в любой понравившейся вам среде разработки - если нравится майкровская студия - бога ради, она отлично подойдёт! Нравится работать в MonoDevelop и вы хотите оставаться независимым и свободным? Да пожалуйста! Для компонентов требующих особо быстрого исполнения и применения Ассемблеров - также есть свои среды разработки - майкровский MASM, борландовский TASM и куча других. Для отладки так же есть, например, отличная штука SASM - там и писать проги можно, и искать баги. Для того, чтобы написанный вами код превратился в исполняемый файл, вам потребуется компиллятор. В больших и серьёзных проектах он нередко встроен в среду разработки, которая при этом уже является этаким "комбайном" - написал, откомпиллировал, запустил - почти как у Александра Македонского: "Пришёл, увидел, победил." А во время компилляции, компиллятор ещё постоянно будет выкидывать ошибки и варнинги типа: "В 42 строке ошибка в переменной"Собственно, это и есть весь процесс кодинга. Главнее, при разработке OS, как ни странно вам это может показаться, ещё до похождения в IDE расписать всю архитектуру вашей будущей OS на бумаге - нарисовать в буквальном смысле что где как и с чем будет взаимодействовать, определить общую архитектуру системы, зарезервировать файловые пути и переменные, расписать имена и назначение файлов и т.д. В общем, - продумать все мелочи архитектурного и структурного построения системы. Впрочем, это всё точно так же, как и в любом другом крупномасштабном проекте. Выбор, на каких ЯП всё это реализовывать, конечно хоть и не первоочередной, но всё же очень важный аспект: неважно на каком ЯП реализуете свой проект лично вы, важно, чтобы внутри вашего проекта поддерживалось как можно больше других языков - ведь после того, как вы завершите и зарелизите ваш проект, придут другие, которые захотят изменить его к лучшему - добавить приложения, возможно, где-то переработать некоторые оригинальные ваши компоненты и вообще - внести свой посильный вклад. Нужно добиться такой ситуации, когда для них это станет легко доступно и возможно при использовании их привычных средств работы - их привычного языка программирования, их собственных способностей и навыков. Иначе - ваш проект будет мертворождённым и не сможет развиваться, а написать весь спектр компонентов для использования их любым простопользователем в одно лицо - просто нереально. Не в силу того, даже, что это колоссальный объём работы, а в силу того, что у отдельных пользователей всегда есть собственные запросы и собственные нужды. И вы предугадать все возможные варианты использования вашей ОС просто никогда не сможете. Поэтому нужно изначально дать конечным пользователям возможность разработки приложений самостоятельно. Сюда также входит практически обязательное написание собственного компиллятора и используемых для приложений библиотек. Впрочем, этот вопрос решается в стадии проектирования и библиотеки пишутся сразу после написания ядра - именно, опираясь на них, и должна работать вся система, кроме собственно ядра (кстати да, ядро при этом тоже может юзать некоторую часть библиотек для поддержания собственной функциональности - это называется гибридным ядром). В общем и целом, писать свою ОС можно в любом текстовом редакторе - достаточно, чтобы редактор поддерживал подсветку синтаксиса, в любом IDE на ваш вкус. Ведь главное - не "в чём" делать, а "как" и "что" делать. Дерзайте! И да пребудет с вами сила!
0
|
||
| 24.04.2017, 08:50 | |
|
Не по теме: NeoMatrix, браво! :bravo:
0
|
|
|
Заблокирован
|
|
| 24.04.2017, 19:35 | |
|
NeoMatrix, а что Вы сказать-то хотели?
0
|
|
|
Модератор
|
|||
| 24.04.2017, 21:09 | |||
![]() Ответ на вопрос: "В каких программах пишут ОС?" Вот возьмём, к примеру VIM (vi) или EMACS - эти два инструмента изначально и задумывались для профессионалов для написания исходников, но в процессе разработки обросли ещё уймой фич и ништяков и тем самым кое в чём стали напоминать самостоятельные ОС. Если вы не хотите использовать какую-либо из интегрированных сред (QtCreator, VisualStudio, Eclipse, MonoDevelop и пр.), а предпочитаете, допустим, vi или вообще Gedit, то после написания текстового файла кода, вам нужно будет скормить его компиллятору и получить из него уже готовый бинарный исполняемый файл. И так нужно сделать будет с каждым новым создаваемым модулем вашего проекта, будь то ОС или новый продвинутый видеоредактор, музыкальный плеер или браузер, CAD или система навигации , файл-сервер или БД для логистики грузов... Суть как бы в том, что не имеет разницы, каким инструментом вы собираетесь воспользоваться - и в том и в любом случае имеются собственные плюсы и минусы: для использования IDE плюсами будут - удобство разработки и отладки, автоподсветка ошибок и вообще все примочки в одном месте, но минусы - возможное ограничение проекта лицензиями, ограничение используемыми библиотеками программ и уже ранее созданными кем-то компонентами с собственными лицензиями, для использования тандема текст-редактор + компиллятор плюсы - велосипедить можешь как угодно и сколько хочешь, абсолютно невзирая на EULA, но таки минусами сразу записывай - бОльшую трудоёмкость и отсутствие встроенных подсказок и автодополнения. Зато можешь создать нечто такое, до чего никогда не додумался никто и никто тебе в этом не помеха! В принципе, если уж совсем-совсем мсье знает толк в извращениях, то не грех воспользоваться и HEX-editor'ами. - там сразу можно писать в байт-код - почти то же самое, как наши бабушки компостировали перфоленты и перфокарты. Хочу подытожить: в принципе, если у вас есть хорошая задумка и хоть-какие-то наработки в проекте, да хотя бы в виде проектной документации (или даже в предпроектной!!!), то дерзайте, продвигайтесь и продвигайте - оно вернётся вам сторицей. А выбор конкретного инструмента для кодинга - не самое главное в этом деле мероприятие, хоть и не самое последнее тоже (в связи с лицензиями, хотя бы). Если вы затрудняетесь с выбором конкретной IDE, но в целом уже неплохо кодите в редакторе и у вас получается скомпиллировать код в бинарь, то вам следует задавать несколько другой вопрос: "какая IDE мне больше подойдёт при вот %таких% и %таких% параметрах?". А впрочем и лучше - читайте доки по конкретным IDE и делайте свой выбор сами. Добавлено через 1 минуту GbaLog-, спасибо!
0
|
|||
|
Заблокирован
|
||
| 24.04.2017, 21:33 | ||
|
NeoMatrix, походу Вы не курсе и просто фантазируете
Добавлено через 5 минут Это все равно что сказать "не имеет значения чем Вы будете косить поле 12000 гектар: косой ручной или трактором с косилкой". Существуют настолько сложные задачи что "врукопашную", без специальных тузлов их не решить даже теоретически
0
|
||
|
Заблокирован
|
|
| 24.04.2017, 21:38 | |
|
NeoMatrix, Если Вы хотите в одиночку разработать ОС уровня венды, и хотите потратить на это не миллион человеко-лет, а всего 2-3 месяца, то выбор инструментария играет РЕШАЮЩУЮ роль в успехе данного предприятия
0
|
|
|
Модератор
|
|||
| 24.04.2017, 21:41 | |||
![]() Так и тут: можно делать и так и сяк - результат будет всё равно одинаков. А уж в одну пару рук вам косить простой косой, али нанять совхоз с тракторами и косилками - вопрос совершенно другого плана.
0
|
|||
|
Заблокирован
|
||
| 24.04.2017, 21:43 | ||
|
Для Вас это не имеет значения? Вы бессмертный?
0
|
||
|
Модератор
|
||
| 24.04.2017, 21:53 | ||
![]() В одиночку за 2 - 3 месяца да хоть самолётом паши - не вспашешь. Особенно без наличия опыта и знаний. Торвальдс написал всего-лишь одно ядро системы. А всё остальное к нему прикрутили позже - РМС постарался и всё сообщество. В Редмонде тоже не один и не десять челов пишут ОСи и даже не "с нуля", а с использованием старых наработок. Иногда не просто "старых", а реально "древних", как динозавры. Просто перелицовывают на современный лад да и не один - три месяца большой командой девелоперов. Или вы думаете почему мягкомелкие до сих пор не открыли древние свои ВинМЕ и Вин98? Да просто потому, что частично что-то из них юзается и в Вин10.
0
|
||
|
Заблокирован
|
|
| 24.04.2017, 23:03 | |
|
0
|
|
|
Джоуи
|
|
| 25.04.2017, 23:39 | |
|
0
|
|
| 25.04.2017, 23:39 | |
|
Помогаю со студенческими работами здесь
17
На каких языках программирования пишут back-end?
В каких программах работаете вы? В каких программах можно работать с C#
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|