Форум программистов, компьютерный форум, киберфорум
ОС на Assembler
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278

Написание позиционно-независимых приложений

04.04.2014, 08:34. Показов 1330. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени.

Продолжаю написание ОС. И именно возникли вопросы касаемо написания приложений под нее. Как писать приложения для однозадачных ОС - это понятно, но как быть, если задач несколько? Неужели придется вручную корректировать адреса данных, вычислять смещения и т.д? Возможно ли это обойти?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2014, 08:34
Ответы с готовыми решениями:

Написание приложений под Android на Lazarus-е
Здравствуёте! Хотел бы поделиться своим впечатвлением о написании приложений под Android на Lazarus-е. Гуру Delphi и Lazarus-а прошу...

Книга по написание клиент-серверных приложений
Есть ли русская книга по написание клиент-серверных приложений на Java?

Написание приложений для windows mobile
Здравствуйте. Хочу начать писать приложения для кпк на пл-ме вин. моб.. Соответственно вопрос - какая среда программирования мне в этом...

15
programmer
 Аватар для Thread
2391 / 525 / 69
Регистрация: 01.06.2011
Сообщений: 3,639
04.04.2014, 12:07
Защищенный режим || real mode ?
Пусть выполняються каждый в своем пространстве.в чем дело то?

Вопрос бы как нибудь развернуть поконкретней,тогда будет понятно,что Вас беспокоит.
0
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
04.04.2014, 12:18  [ТС]
Цитата Сообщение от Thread Посмотреть сообщение
Защищенный режим || real mode ?
Защищенный. Без страничной адресации и привилегий.

Цитата Сообщение от Thread Посмотреть сообщение
Пусть выполняються каждый в своем пространстве.в чем дело то?
У меня запуск программ реализован примитивно, просто копирует задачу с определенным смещением от предыдущей. А писать позиционно-независимый код весьма затруднительно.
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
04.04.2014, 13:59
надо делить проге сегменты.
0
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
04.04.2014, 22:19  [ТС]
Цитата Сообщение от Мотороллер Посмотреть сообщение
надо делить проге сегменты.
Пилить размер сегмента в GDT и после менять значение CS?
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
05.04.2014, 00:07
Naydli, именно так. без виртуализации я не знаю как делать иначе
0
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
05.04.2014, 01:33  [ТС]
Мотороллер, конкретно нет идей по реализации этой штуки?

Думаю, многозадачность переписывать не понадобится, ибо iretd восстанавливает CS из стека. Получится нечто вроде:


Assembler
1
2
3
4
5
6
7
8
9
10
11
12
Mov ax,1
Cld
 
Pushfd
Push ax ;CS
Push task1
 
Mov ax,2
 
Pushfd
Push ax ;CS
Push task 2
И если распилить сегмент, скажем, на 8 мегабайт, то начало каждой задачи будет задаваться просто с нулевым смещением. Возникнут траблы с видеопамятью?
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
05.04.2014, 12:23
Naydli, видеопамять можно пихать в GS/FS
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
05.04.2014, 13:34
видеопамять можно не давать проге. написать системный вызов для вывода сообщений

Добавлено через 26 секунд
ну или если очень надо можно попросить у оси видеопамять.
0
programmer
 Аватар для Thread
2391 / 525 / 69
Регистрация: 01.06.2011
Сообщений: 3,639
05.04.2014, 13:47
Naydli

для начала нормальное ядро спроектируй и реализуй,тогда таких вопросов возникать не будет.
А то получаеться "из огня да в полымя".Книжек почитай.В инете инфы по этому вопросу достаточно.
Я в свое время интересовался написание ОС с нуля на примере 3 осей.Но меня интересовало совсем другое,поэтому осталась только теория.
0
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
05.04.2014, 16:23  [ТС]
Thread, откровенно бесполезный совет. Честно. Я написала порядка 5-6 ядер и последнее практически обогнало по функционалу MS-DOS, косяк остался лишь в том, что программировать под нее достаточно сложно. Хотя судя по ответам, это еще перышки по сравнению с сегментами и селекторами.

Цитата Сообщение от Мотороллер Посмотреть сообщение
видеопамять можно не давать проге. написать системный вызов для вывода сообщений
Именно так я реализовала. Интересно, что код:

Assembler
1
2
3
4
5
6
7
8
9
10
Mov ax,18h ;Селектор видео
Mov ds,ax
Mov ebx,120
 
Mov dword [ds:ebx],'bla1'
 
Mov ax,10h ;Селектор данных
Mov ds,ax
Mov edi,0xb8000
Mov dword [edi],'1234'
Стабильно работает.
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
05.04.2014, 18:09
Naydli, лол, приложение и видеосегмент в одном кольце?
0
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
05.04.2014, 18:11  [ТС]
Цитата Сообщение от Мотороллер Посмотреть сообщение
Naydli, лол, а ты начало сегмента и пределы как расставила?
Стандартный дескриптор под максимальный размер сегмента. 8h - код, 10h - данные, 18h -видеопамять. Я определенно ничего не знаю о работе сегментов и просто ставлю опыты.

Добавлено через 1 минуту
Цитата Сообщение от Мотороллер Посмотреть сообщение
Naydli, лол, приложение и видеосегмент в одном кольце?
Верно. К черту кольца.
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
05.04.2014, 18:12
Цитата Сообщение от Naydli Посмотреть сообщение
К черту кольца.
тогда не обижайся

Добавлено через 55 секунд
Цитата Сообщение от Naydli Посмотреть сообщение
Я определенно ничего не знаю о работе сегментов и просто ставлю опыты.
Цитата Сообщение от Naydli Посмотреть сообщение
Я написала порядка 5-6 ядер и последнее практически обогнало по функционалу MS-DOS
0
 Аватар для Naydli
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
05.04.2014, 18:19  [ТС]
Цитата Сообщение от Мотороллер Посмотреть сообщение
тогда не обижайся
Уволь меня от своего быдлоюмора и представлений. У меня все работало.
0
05.04.2014, 18:23

Не по теме:

Цитата Сообщение от Naydli Посмотреть сообщение
Уволь меня от своего быдлоюмора и представлений. У меня все работало.
простите, простите, многоуважаемый и всеми любимый осеписатель, за то, что указываю на ваши ошибки. куда мне до вас :senor: за сим удаляюсь

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.04.2014, 18:23
Помогаю со студенческими работами здесь

Правильное написание кода динамических приложений с большим количеством элементов
Здравствуйте. Может кто подсказать как правильно писать динамические приложения. Точнее я знаю как создавать элементы и помещать их на...

Написание приложений для доступа к базе данных MS SQL Server 2008 r2
Доброе времени суток! Понимаю что задача возможно простая, но подобного рода задания я еще не выполнял. Вопрос в следующим в локальной сети...

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

Посоветуйте литературу по написание основам написание плагинов
пишу курсовую на тему, основы написание плагинов. Посоветуйте литературу.

2 независимых DNS
Здравствуйте! Есть 2 сервера 192.168.0.1 и 192.168.0.2 на которых AD, DHCP, DNS. они связаны полностью между собой, то есть если...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru