> man operating_systems
Переход на страницу  [1] 2 3
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
Dreamer
Понедельник 18.07.2005 10:38

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
В концепции 3OS читал, что все в 3OS - это объект. Это хорошо, но возникает такая проблема. На каком языке не была бы написана ОС, обычный способ доступа к объекту (т.е. класс.метод или класс.переменная) сделать невозможно, т.к. объекты хранятся не в программе, а непосредственно в операционной системе. В таком случае, если выстраивать концепцию объекта, то как должна программа изменять переменные, исполнять методы класса, создавать его экземпляры и выполнять операцию наследования? Может быть, кто-то знает, как такое устроено в системе Oberon или других объектно-ориентированных ОС?

Жизнь на Линуксе есть!
Наверх
Dron
Понедельник 18.07.2005 12:04


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Я думаю по любому надо создать экземпляр объекта...

А изменение переменных напрямую - давить!!!
только методы.

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Alexandoros
Понедельник 18.07.2005 12:44
ID пользователя #329
Зарегистрирован: Среда 01.06.2005 10:01
Местонахождение: Ukraine
Сообщений: 14
Dron написал(а) ...

А изменение переменных напрямую - давить!!!
только методы.


Это зависит от проектирования интерфейса. Как разработчик считает нужным. А тебе Дрон нада каток подарить

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

Наверх
mzprog
Понедельник 18.07.2005 14:27
ID пользователя #306
Зарегистрирован: Четверг 05.05.2005 10:16
Сообщений: 23
Dreamer написал(а) ...
В концепции 3OS читал, что все в 3OS - это объект. Это хорошо, но возникает такая проблема. На каком языке не была бы написана ОС, обычный способ доступа к объекту (т.е. класс.метод или класс.переменная) сделать невозможно, т.к. объекты хранятся не в программе, а непосредственно в операционной системе.


Операционная система - это тоже программа! Объясни, почему обычный способ доступа к объекту (т.е. класс.метод или класс.переменная) сделать невозможно? Мне кажется ты ошибаешься...
Наверх
Сайт
Dreamer
Понедельник 18.07.2005 16:09

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
mzprog написал(а) ...
Операционная система - это тоже программа! Объясни, почему обычный способ доступа к объекту (т.е. класс.метод или класс.переменная) сделать невозможно? Мне кажется ты ошибаешься...


Нет. Представь, что ты - программист программы для объектной системы. Есть только один язык - Си (без плюсов). Как обращаться к объектам? Стандартный Си даже не знает такой конструкции с точками, исключая работу со структурами.

Даже если использовать C++, то все равно, как работать с объектом? Объект-то хранится непосредственно в системе, и в процессе компиляции компилятор о нем ровным счетом ничего не знает. Создавать свой компилятор для меня дорого в плане времени. Можно было бы, конечно, попробовать что-то вытянуть из языка 'Active Oberon', но все равно это дорого.

2Dron: А чем плохо непосредственное изменение переменных? Все же меньшая трата времени.

Жизнь на Линуксе есть!
Наверх
Dron
Понедельник 18.07.2005 16:49


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Не надо думать о времени... надо думать о надежности. Ж)

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Wanderer
Понедельник 18.07.2005 16:56

ID пользователя #2
Зарегистрирован: Вторник 29.06.2004 20:13
Местонахождение: Беларусь, Гомель
Сообщений: 76
Dron написал(а) ...
Не надо думать о времени... надо думать о надежности. Ж)

Я что-то пропустил? Перегрузку уже отменили?
[ Редактирование понедельник 18.07.2005 16:58 ]

Доказывая идиоту, что он идиот, ты сам становишься идиотом.
Наверх
Сайт
Dron
Понедельник 18.07.2005 17:04


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Дример, ты меня удивляешь...
а как COM работает под C?
Не, никаких проблем не вижу и в си... хотя объекты для него мягко сказать неестественны...

Не, объектность это подход... ядро линукс например объектное... хотя и не написано на C++... и нафиг не надо.

мое ядро кстати тоже объектное.

Wanderer: перегрузку чего?

class a { int i; } a_;

a_.i;

можно но зачем? давить... Aleksandros, где мой каток??? Жду...

[ Редактирование понедельник 18.07.2005 17:07 ]

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Wanderer
Понедельник 18.07.2005 18:46

ID пользователя #2
Зарегистрирован: Вторник 29.06.2004 20:13
Местонахождение: Беларусь, Гомель
Сообщений: 76
В оригинале - перегрузку методов. get* и set*. Никаких лишних затрат времени: если есть get- или set- метод, то вызываем его. Если нет, то тихо-мирно возвращаем или устанавливаем свойство. В твоем примере - перегрузку свойств.
И никаких проблем.
А если писать все эти getter'ы и setter'ы вручную, то вот здесь действительно мне нужно будет позаимствовать у тебя каток.
Думаю, привязывать, тех, кто использует твой класс к определенной модели поведения - это тоже глупо. Пусть юзер делает, как хочет. А ты внутри класса всего несколькими строчками сделаешь так, что правильно будут обрабатываться оба возможных варианта. И не надо никого давить. Меньше работы тебе, юзерам и катку.
[ Редактирование понедельник 18.07.2005 18:50 ]

Доказывая идиоту, что он идиот, ты сам становишься идиотом.
Наверх
Сайт
captain cobalt
Понедельник 18.07.2005 19:00

ID пользователя #12
Зарегистрирован: Воскресенье 04.07.2004 21:44
Местонахождение: /ru/perm
Сообщений: 144
Dreamer написал(а) ...
объекты хранятся не в программе, а непосредственно в операционной системе.
В обычных системах системные вызовы тоже "хранятся в системе", но процессам как-то удаётся их вызывать.

Память тоже "хранится в системе", но процессам как-то удаётся её использовать.

Процессор - аналогично.

Как всё это сделано - можно подсмотреть у других систем.

А теперь обобщить на объекты.

Объекты - это сущности, которые храняться в памяти, у которых можно вызывать методы, которые исполняет процессор.
Dreamer написал(а) ...
Есть только один язык - Си (без плюсов).
Будь пр0клято то место, в котором есть только один этот язык.

bluebottle.ethz.ch - Bluebottle. Швейцария. Сделано с умом.
Наверх
Сайт
Переход на страницу  [1] 2 3  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.