Форум программистов, компьютерный форум, киберфорум
ОС на Assembler
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
LuzerOS

Своя ОС + компилятор + архитектура процессоров

08.10.2013, 06:41. Показов 4142. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Просьба без флуда, глупых советов мол есть уже операционки бла бла бла.... и желательно отвечать на вопросы по пунктикам.
И большинство вопросов гипотетические напиример в 1.1. ясно надо реализовать ещё и то и сё но в общем правильно или нет.

1.1. Если я в своей ОС реализую функцию WINAPI createwindow то пограмма с винды ( которая только создаёт окошко ) будет работать в винде и у меня в ОС?
1.2. Какой режим лучще защищенный или реальный ( не легче, а лучще. В каком винда, линукс работает )?
1.3. Какая лучше по битам 64-битная, 32, 16...? И чем отличается?
1.4. Что должно входить в ядро ОС? Например модульное ядро загрузилась и что далише? Функции чтения данных с накопитеелй, работа с памятью, потоки, процессы - что ещё?


2.1. Можете дать ссылку для чайника по MMX, SSE командам что с ними делать и как использовать? Нашёл - http://www.club155.ru/x86cmdmmx/PUNPCKHBW "Распаковать старшие упакованные байты" а что это безпонятия. Что-то на уровне приматов - int32 peremennaj1 = 23; как это всё записать в этих командах.
2.2. Есть у когото пример как это "int32 peremennaj1 = 23" перевести в машинный код ( в программу ) или книжки по созданию компиляторов для чайников?


3.1. На что влияет разрядность процессора 8, 16, 32, 64?
3.2. Если в 16 битном я напишу int32 о программа слетит или комп зависнит?
3.3. А если в ядре ОС сделать проверку на разрядность:
программа обьявляет int32, а ядро проверяет:
if ( проц = 32 ) то всё норм, пропустить.
if ( проц = 16 ) то обьявлять 2 переменных int16
if ( проц = 8 ) то обьявлять 4 переменных int8
и таким чудом моя ОС будет работать на всех компах ( теоритечески )?
3.4. Набор команд "MMX | MMXEXT | SSE | SSE2....." - что это? Какие команды поддерживает процессор? Например MMX поддерживает только "+", "-" и при умножении зависнит ( теоритические )?
3.5. Есть ли какой-то минимальный набор команд который поддерживается во всех процессорах?
3.6. Можно ли сделать проверку ядром ОС на поддержку SSE2 и использовать дополнительные команды если проц позволяет?
3.7. Используя минимальный набор команд в своей ОС ( +, -, *, /, и, или, =, != ) можно например взять десяток чипов ( ATMEGA32A или любых друхих ) припаять на

плату, добавить microSD ( с операционкой, драйверами, LCD экраном с планшета ) запустить и оно заработает? В принцыпи для KolibriOS надо 100MHz мало памяти, написать драйвер на маленький экран, wifi, wifi клаву и в теории запустится?
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.10.2013, 06:41
Ответы с готовыми решениями:

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

Архитектура процессоров
Очень нужна информация по архитектуре процессоров в кпк. И ещё про ассемблер.. Есть ли какие-нибудь компиляторы (ассм'ские) под них,...

Архитектура процессоров AMD и Intel
Подскажите ресурс в котором можно найти информацию об архитектуре процессоров от AMD и Intel начиная с самых первых моделей. Нужна...

7
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
08.10.2013, 10:40
1.1 - однозначно нет.Exe файлы помимо заголовка имеют другую структуру,в отличии от бинарников,которые хоть на голом железе запускай
1.2 - защищенный
1.3 - 16 бит - 1 мегабайт ОЗУ. 32 - 4 гигабайта. 64 - еще там сколько-то. Теоретически,отличаются памятью
1.4 - По крайней мере диспетчер памяти.


3.1 - помимо ОЗУ еще числом и разрядностью регистров.Т.е на 16-битном процессоре не будет работать код с применением 32-битных регистров
3.5 - точно не знаю. В старых процессорах типа 8085, на сколько помню,не поддерживаются арифметические команды типа add. В 8086 поддерживается stosb,но stosdw поддерживается только в более новых моделях.

3.7 - должно запустится. Но конфигурация ардуино слишком мала
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
08.10.2013, 16:39
LuzerOS,
а в чём ценность для остальных участников ветки этого опросника? И если ТС не нашел ответов на свои вопросы в Гугле то 100% разговоры о СВОЕЙ ОСИ так и останутся разговорами

Цитата Сообщение от mashuly Посмотреть сообщение
В старых процессорах типа 8085, на сколько помню,не поддерживаются арифметические команды типа add. В 8086 поддерживается stosb,но stosdw поддерживается только в более новых моделях.
mashuly,
старые процессоры типа 4004/8008/8080/8085 сложение и вычитание поддерживали, а вот деление и умножение — нет. Intel 8086 поддерживал и stosb и stosw. А вот команду stosdw ты придумала
0
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
08.10.2013, 20:24
Цитата Сообщение от Mikl___ Посмотреть сообщение
LuzerOS,
а в чём ценность для остальных участников ветки этого опросника? И если ТС не нашел ответов на свои вопросы в Гугле то 100% разговоры о СВОЕЙ ОСИ так и останутся разговорами

mashuly,
старые процессоры типа 4004/8008/8080/8085 сложение и вычитание поддерживали, а вот деление и умножение — нет. Intel 8086 поддерживал и stosb и stosw. А вот команду stosdw ты придумала
Для умножения,например,думаю можно в подобном случае использовать примитивный алгоритм типа:


Assembler
1
2
3
4
5
6
Mov ax,2
Mov cx,4
multiply_001:
Add bx,ax
 
loop multiply_001
хотя на столько древние процессоры достать очень трудно. интересно,современные процессоры не урезают умножение на 2? по сути,сложение действует на порядок быстрее.
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
10.10.2013, 15:27
Цитата Сообщение от mashuly Посмотреть сообщение
однозначно нет.Exe файлы помимо заголовка имеют другую структуру,в отличии от бинарников,которые хоть на голом железе запускай
при чем тут это? ТС говорит, что он сделает винапи. тутне в структуре дело, а в том, что эти функции импортируются и длл. а уже затем в ход вступает структура ехе. если организуете грамотную подгрузку длл, то смотрите в сторону РЕ файла и таблицы импорта

Добавлено через 1 минуту
хотя, пожалуй, да, Вы правы. тут и структура РЕ файла имграет роль
0
2 / 1 / 0
Регистрация: 22.04.2013
Сообщений: 18
17.12.2013, 03:11
по поводу компилятора есть такая мысль, взять FASM и заставить его работать в обратную сторону,
потом взять этот результат и превратить его в отладчик.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
17.12.2013, 19:06
LuzerOS, а ты с какой целью интересуешься? Если с целью написания собственной ОС, то с твоим уровнем знаний (а это следует из постановки вопросов) в эту область лезть рановато
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.12.2013, 19:24
Цитата Сообщение от LuzerOS Посмотреть сообщение
1.1. Если я в своей ОС реализую функцию WINAPI createwindow то пограмма с винды ( которая только создаёт окошко ) будет работать в винде и у меня в ОС?
Как по-Вашему делают React OS?

Добавлено через 4 минуты
Цитата Сообщение от LuzerOS Посмотреть сообщение
1.3. Какая лучше по битам 64-битная, 32, 16...? И чем отличается?
Адресуемой памятью. 32 бита хватает максимум на 4 гига, причём, в них должны войти: оператива, ПЗУ и "дыры" (узкие диапазоны адресов между занятыми, куда нельзя воткнуть страницу). 16 - это вообще до 665536 байт, даже винда 3.11 не вполне 16-ти битная, а на сегментном адресном пространстве, позволявшем наращивать истинную разрядность 16-ти битных адресов до 32-х бит.

Добавлено через 3 минуты
Цитата Сообщение от mashuly Посмотреть сообщение
1.1 - однозначно нет.Exe файлы помимо заголовка имеют другую структуру,в отличии от бинарников,которые хоть на голом железе запускай
А ничего, что формат PE опубликован и можно самописную ось научить его понимать? Работать будет, но одной функции для этого мало.

Добавлено через 1 минуту
Цитата Сообщение от mashuly Посмотреть сообщение
1.3 - 16 бит - 1 мегабайт ОЗУ.
Мегабайт адресуется минимум 20-ю битами.

Добавлено через 25 секунд
Цитата Сообщение от mashuly Посмотреть сообщение
64 - еще там сколько-то.
16 эксибайт минус "дыры".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2013, 19:24
Помогаю со студенческими работами здесь

У двухъядерных процессоров на каждое ядро своя частота или общая?
Здравствуйте! Я где-то слышал что у двух ядерных процессоров тактовая частота в два раза больше чем у обыкновенных! На каждый ядер по своей...

Архитектура гибридных процессоров. Где можно почитать?
Здравствуйте. Как вы поняли, я ищу информацию об архитектуре гибридных процессорах (к примеру AMD Trinity). Возможно кто-то интересовался...

Пожалуйста ответте! Как компилятор подстраивает программу под разные архитектуры процессоров?
Как компилятор подстраивает программу под разные архитектуры процессоров? Ведь на ассемблере нельзя переносить программу из одного...

Есть ли в винде ограничения на количество процессоров или ядер процессоров?
Есть ли в винде ограничения на количество процессоров или ядер процессоров? Добавлено через 12 минут Нашел для семерки...

Есть ли аппаратное различие процессоров INTEL с Hyper-threading и процессоров без него?
Всем привет, меня интересует такой вопрос. Есть ли аппаратное различие процессоров INTEL с Hyper-threading и процессоров без него?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через 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 На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru