Re: Кто-нибудь может нормально объяснить что такое ядро?
Ядро́ — центральная часть операционной системы (ОС), обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнее аппаратное обеспечение, внешнее устройство ввода и вывода информации. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов.
Как основополагающий элемент ОС, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам системы, необходимым для их работы. Как правило, ядро предоставляет такой доступ исполняемым процессам соответствующих приложений за счёт использования механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС.
Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации.
Вика?Пед?И?Я
Однажды, ещё когда я учился в школе, мне показали одну простую игру. На обычной шахматной доске располагались три белые и три чёрные шашки следующим образом:
Ходить можно было только вперёд, на любое число клеток, не перепрыгивая через шашки противника. Победителем считался тот, кто сделал последний ход.
Игра довольно простая, если не сказать примитивная. Но когда я решил копнуть её поглубже, моя лопата вдруг звякнула обо что-то металлическое. Это оказалось ядро игры.
Что же это такое - ядро игры? Эта игра, как и многие широко известные игры, имеет логическое условие окончания - игрок или выигрывает, или проигрывает. И, в данном случае, третьего не дано. Как и любая последовательная (пошаговая) игра (например, шахматы, шашки, го), она имеет промежуточные состояния - позиции. Позиции, в которых существует такая последовательность ходов, которая приводит к выигрышу при любых действиях противника, образуют ядро (выигрышную стратегию). Например, всякий, кто увлекается шахматами, знает шахматные этюды "найти мат в 3 хода" или "белые начинают и выигрывают". Это и есть задачи на поиск ядра позиции.
Однако на сегодняшний день никто не может сказать, существует ли ядро для исходной позиции в шахматах или шашках. Как только кто-то найдёт это ядро, игра умрёт.
Возвращаясь к описанной мною игре, я вынужден признаться: я её убил. Я нашёл ядро исходной позиции и даже любой произвольной позиции на доске. И даже для любого количества пар шашек.
Итак, проведём следственный эксперимент - я расскажу вам как я убивал эту игру. Надеюсь, чистосердечное признание облегчит мою участь.
Любую позицию на доске я буду обозначать тройкой чисел A-B-C, где A - число клеток между первой парой шашек, В - между второй, а С - между третьей парой. Таким образом, исходная позиция записывается в виде 2-4-6. Порядок следования чисел не имеет никакого значения.
Сначала я обратил внимание, что позиция х-х-0 является выигрышной для игрока, ходящего вторым. Действительно, в позиции 1-1-0 он делает последний ход со всей очевидностью, а в любой другой позиции он просто выравнивает число клеток между несомкнутыми шашками.
Далее, я нашел первый кусочек ядра - позицию 1-2-3. В ней опять же побеждает игрок, ходящий вторым - любой ход противника он парирует, ставя позицию х-х-0. Проверьте!
Следующий кусочек ядра нашёлся в позиции 1-4-5. И опять второй игрок побеждает, парируя любой ход противника в позицию 1-2-3 или х-х-0.
И, наконец, исходная позиция 2-4-6 оказалась тоже принадлежащей ядру! Любой ход "белых" парируется чёрными, приводя к одной из описанных выше позиций.
Кстати, теперь можно разрешить ходить не только вперёд, но и назад: ход назад парируется ходом вперёд на то же число клеток с удержанием расстояния между ними.
Далее, я рассмотрел новую исходную позицию - 6-6-6. Все шашки стоят на первой и последней линии. И она оказалась принадлежащей ядру. Там есть промежуточный кусок ядра 3-5-6, неизбежно приводящий к 1-4-5 или 1-2-3 или х-х-0. Либо игра сводится к предыдущей 2-4-6 - всё зависит от первого хода "белых".
Итак, мы видим, что чёрные выигрывают всегда, если исходная позиция принадлежит ядру. В противном случае, всегда выигрывают белые - ведь первым же ходом они ставят подходящую "ядерную" позицию.
Теперь можно расширить игру на большее число шашек. Если оно кратно трём, игра разбивается на независимые тройки - т.е. получается всё та же игра, но в нескольких экземплярах, идущих параллельно. Если оно кратно двум, то игра разбивается на пары, в каждой из которых надо просто выравнивать число клеток. Все прочие варианты игры делятся на тройки и пары.
Вот и всё - игра убита наповал. Прошу снисхождения - я явился с повинной и чистосердечно во всём признался.
________________
Последний раз редактировалось "Unix; 18.10.2011 в 00:23.
Re: Кто-нибудь может нормально объяснить что такое ядро?
Значит ядро игры - это часть игры, отвечающая за логичное взаимодействие игрока с компьютером и адекватную реакцию последней на действия человека? Я правильно понял?
И не могли бы вы рассказать поподробнее как найти ядро какой-то игры? Не обязательно новые игры, хватит даже самых простых, системных.
________________
Бывший Ilya997, но с недавнего времени письмо с восстановлением пароля не приходит
Re: Кто-нибудь может нормально объяснить что такое ядро?
Какое ядро? Такое, которое выше описали? Ядро атома? Планеты? Сервера? Ореха? Пушечное ядро? Ядро процессора? Клетки? Галактики?
Как вообще можно спрашивать, не указав этого?
Re: Кто-нибудь может нормально объяснить что такое ядро?
Ну если я отписываюсь в разделе про mmo то при чем тут ядро планеты?
И мне казалось, что этот сайт посвящен не химии или физике, а программированию и онлайн играм...
________________
Бывший Ilya997, но с недавнего времени письмо с восстановлением пароля не приходит
Re: Кто-нибудь может нормально объяснить что такое ядро?
Цитата:
Сообщение от lcd1232
Skuka.95, о аватарку поставил
Бессмысленные сообщения, не несущие полезной информации по сути темы подлежат удалению (п. 14).
Более подробно читайте в правилах форума. Незнание правил не освобождает вас от ответственности, нарушители будут наказаны в соответствии с правилами форума.
Re: Кто-нибудь может нормально объяснить что такое ядро?
Цитата:
Сообщение от Desrpado
Бессмысленные сообщения, не несущие полезной информации по сути темы подлежат удалению (п. 14).
Более подробно читайте в правилах форума. Незнание правил не освобождает вас от ответственности, нарушители будут наказаны в соответствии с правилами форума.
это задача модераторов по идеи это сообщение то же не имело отношение к теме
----------
Вопрос:
Обьясните чайнику что такое ядро программы/операционной системы. И как так "одна программа сделана на ядре другой программы"?
Ответ:
Впринципе, операционная система -- это тоже программа. Только она составлена так, что BIOS компьютера (который -- тоже программа, только еще более специальная и запускающаяся автоматически при включении процессора) запускает ее сам.
Ядро операционной системы заведует такими вещами, как запуск программ, распределение процессорного времени между программами, завершение работы программ, распределение памяти, работа с различными устройствами посредством драйверов, написанных для них. При этом, ядро предоставляет программам возможность пользоваться своими возможностями. Эта возможность реализуется в виде прерываний и системмных функций. Программа при необходимости такого обращения должна специальным образом подготовить данные и вызвать необходимую системмную функцию или прерывание.
В свою очередь, программа может сообщить ядру операционной системы, что она способна выполнить что-нибудь полезное. Это производится посредством вызовов системмных функций. В этом случае, когда операционке потребуется, она вызовет функции вашей программы. Например, когда в программе, написанной на каком-нибудь языке программирования вам надо что-нибудь куда-нибудь вывести, то вы пользуетесь соответствующим оператором языка или функцией стандартной библиотеки. Он производит обработку ваших данных и вызывает системмную функцию, которая отправляет обработанные данные посредством драйверов на устройство-получатель.
Под ядром программы, как правило подразумевают алгоритмы, математическую модель, способы обработки данных, возможно, форматы файлов и, даже, графические решения. В ядро не включают непосредственно данные, с которыми программа работает и конкретную форму ввода/вывода информации. Если рассматривть игры, то к ядру относятся Методы описания и хранения информации об игровом мире.
Методы взаимодействия элементов игрового мира.
Методы отображения игрового мира.
Методы взаимодействия игрока с игровым миром.
Сюда не включаются непосредственно элементы игрового мира.
Что же касается выражения "одна программа сделана на ядре другой программы", то тут скорее всего имеется в виду то, что от исходной программы взяли ядро, добавили немного, а иногда и много, своего (в играх -- описание игрового мира, персонажей и пр.) сделали другую программу. Впрочем, это можно с некоторой натяжкой трактовать и так, что одна программа просто вызывает функции другой для своих целей и делает это очень активно.
Valentin <-автор ответа
Re: Кто-нибудь может нормально объяснить что такое ядро?
Цитата:
Сообщение от Desrpado
Бессмысленные сообщения, не несущие полезной информации по сути темы подлежат удалению (п. 14).
Более подробно читайте в правилах форума. Незнание правил не освобождает вас от ответственности, нарушители будут наказаны в соответствии с правилами форума.
Цитата:
Сообщения, размещенные вне раздела Free Chat и не относящиеся к теме обсуждения (и/или не несущие никакой полезной смысловой нагрузки) могут удаляться (в зависимости от содержания и на усмотрение модераторов)
Цитата:
Сообщение от lcd1232
Skuka.95, о аватарку поставил
ну я тут типо знаменит, вот решил хоть улучшить имидж, аву поставить)
________________
Почти забросил раздел Pw скажем спасибо TBX1n и серверу