Как Операционные системы “Сделаны”?

Примечание: использование неопределенной константы XXX - предполагается, что «XXX»

, или в PHP 7.2 или новее:

Предупреждение: использование неопределенной константы XXX - предполагаемый «XXX» ( это вызовет ошибку в будущей версии PHP)

Это уведомление возникает, когда токен используется в коде и представляется константой, но константа с этим именем не определена.

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

Например:

// Wrong
echo $array[key];

// Right
echo $array['key'];

Другие распространенные причины отсутствует значок $ (доллар) перед именем переменной:

// Wrong
echo varName;

// Right
echo $varName;

Или, может быть, у вас есть некорректная другая константа или ключевое слово:

// Wrong
$foo = fasle;

// Right
$foo = false;

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

Вопросы, относящиеся:

46
задан Jon Seigel 8 July 2010 в 18:56
поделиться

22 ответа

Ну, ответ живет в книгах: современные Операционные системы - Andrew S. Tanenbaum является очень хорошим. Иллюстрация покрытия ниже.

самое простое все же полное ядро операционной системы, подходящее для изучения или просто любопытства, Minix.
Здесь можно просмотреть исходный код .

Modern Operating Systems
(источник: cs.vu.nl)

36
ответ дан Glorfindel 26 November 2019 в 20:17
поделиться

Другая действительно маленькая операционная система, которая соответствует на одном диске, является QNX (когда я в последний раз посмотрел на него давным-давно, целая ОС, с графическим интерфейсом, веб-браузером, доступом к диску и созданным в веб-сервере, соответствии на одном дисководе для гибких дисков).

я не услышал слишком много об этом с тех пор, но это - оперативная ОС, таким образом, это разработано, чтобы быть очень быстрым.

0
ответ дан Sam Schutte 26 November 2019 в 20:17
поделиться

Прочтение здесь даст Вам общее представление о том, что оно взяло для создания Linux https://netfiles.uiuc.edu/rhasan/linux /

0
ответ дан jwpfox 26 November 2019 в 20:17
поделиться

Мое взятие на нем - то, что это похоже на Вашу собственную жизнь. Сначала, Вы знаете, что очень мало - как раз проживает. Это подобно тому, что обеспечивает BIOS - он знает достаточно, чтобы искать дисковод и прочитать информацию его. Тогда Вы изучаете немного больше, когда Вы переходите к начальной школе. Это похоже на загрузочный сектор, считанный в память и данный контроль. Тогда Вы переходите к средней школе, которая похожа на загрузку ядра ОС. Тогда Вы поступаете в институт (драйверы и другие приложения.) , Конечно, это - точка, в которой Вы склонны ОТКАЗАТЬ. HE ОН.

Нижняя строка - то, что слои все большей возможности медленно загружаются на. Нет ничего волшебного об ОС.

0
ответ дан Michael Bray 26 November 2019 в 20:17
поделиться

Вы спрашиваете , как немного байтов Вы могли поставить диск и все еще работать как ОС ? Ответ зависит от того, что Вы ожидаете своей ОС, но самое маленькое полезный ОС, о которой я знаю, помещается в 1,7 мегабайта. Это Корневая Начальная загрузка Tom диск, и это - очень хорошее если маленькая ОС со "спасательными" приложениями что соответствия на одном гибком диске . Назад в дни, когда каждая машина имела дисковод для гибких дисков, и не каждая машина имел дисковод для компакт-дисков, я раньше использовал его часто.

0
ответ дан Norman Ramsey 26 November 2019 в 20:17
поделиться

ОС является программой, точно так же, как любое другое приложение, которое Вы пишете. Основная цель этой программы состоит в том, что она позволяет Вам запускать другие программы. Современные Ose используют в своих интересах современные аппаратные средства, чтобы гарантировать, чтобы программы не сталкивались друг с другом.

, Если Вам интересно в письменной форме Ваша собственная ОС, проверьте мой собственный вопрос здесь:

, Как начать в разработке операционной системы

0
ответ дан Community 26 November 2019 в 20:17
поделиться

Вы могли бы хотеть проверить этот вопрос .

0
ответ дан Community 26 November 2019 в 20:17
поделиться

Хорошо у Вас есть что-то связывающее запуск микросхемы к "BIOS", затем к ОС, которая обычно является очень сложной задачей, сделанной большим количеством сервисов кода.

, Если бы Вы REALY хотите знать больше об этом, что я рекомендовал бы читать книгу... о microcontrllers, особенно тот, где Вы создаете маленькую ОС в c для 8051 и т.п.. или изучите некоторый x86 блок и создайте очень маленький "загрузчик ОС".

0
ответ дан DFectuoso 26 November 2019 в 20:17
поделиться

Попробуйте , Как Компьютеры Загружаются , Процесс начальной загрузки Ядра и другие похожие статьи из того же блога для краткий обзор из того, что делает компьютер, когда это загружается.

, Что делает компьютер, когда его запуск в большой степени зависит (возможно, очевидный?) на дизайн ЦП и другой "материал низкого уровня"; поэтому довольно трудно ожидать то, что Ваш делает компьютер, когда это загружается.

1
ответ дан cic 26 November 2019 в 20:17
поделиться

операционная система (OS) является слоем программного обеспечения, которое управляет аппаратными средствами. Чем более простой аппаратные средства, тем более простой ОС, и наоборот;-)

, если первые годы микрокомпьютеров, Вы могли бы вместить ОС в 16K ROM и соединить материнскую плату проводами, чтобы начать выполнять команды машинного кода в начале адресного пространства ROM. Этот процесс 'начальной загрузки' тогда загрузил бы код для драйверов для других устройств как клавиатура, монитор, дисковод для гибких дисков, и т.д., и в течение нескольких секунд Ваша машина будет загружена и готова к употреблению.

В наше время... тот же принцип, но намного все более сложные аппаратные средства;-)

1
ответ дан Steven A. Lowe 26 November 2019 в 20:17
поделиться

Я не могу полагать, что это не было упомянуто..., но классическая книга для обзора дизайна операционной системы Операционные системы - Разработка и реализация записана Andrew S Tanenbaum, создатель MINIX. Много примеров в книге приспособлено непосредственно к MINIX также.

, Если требуется учиться немного больше, , ОС Dev является великолепным местом для запуска. Особенно Wiki. Этот сайт полон информации, а также разработчиков, которые пишут персональные операционные системы для маленького проекта/хобби. Это - большой ресурс изучения также, поскольку существуют многие люди в одной лодке как Вы на OSDev, кто хочет изучить то, что входит в ОС. Вы могли бы закончить тем, что пробовали его сами в конечном счете, также!

2
ответ дан John T 26 November 2019 в 20:17
поделиться

Вы могли бы хотеть получить книгу Разработка и реализация Операционной системы FreeBSD для очень подробного ответа. Можно получить его от Amazon, или эта ссылка на сайт FreeBSD.org похожа на книгу, поскольку я помню его: текст ссылки

2
ответ дан tmeisenh 26 November 2019 в 20:17
поделиться

В основном существует много аргументов о том, что ОС на самом деле . Если Вы договорились обо всех, что ОС конкретно (это - просто ядро? все, что работает в привилегированном режиме? часть оболочки ОС? X частей ОС? действительно ли веб-браузер является частью ОС?), на Ваш вопрос отвечают! Иначе нет никакого определенного ответа на Ваш вопрос.

2
ответ дан Mehrdad Afshari 26 November 2019 в 20:17
поделиться

Один из новых проектов операционной системы, я видел это, имеет серьезную поддержку, была Научно-исследовательская работа MS, названная Особенность , который записан полностью в C#.NET с нуля.

Для понимания, сколько работы требуется существует 2 ядра devs, но у них есть до дюжины интернов в любой момент времени, и это все еще взяло их за два года до того, как они могли даже получить ОС к точке, где это загрузит и отобразит изображения BMP (это - как они используют, чтобы сделать их представления). Потребовалось намного больше работы, прежде чем они могли даже добраться до точки, где была командная строка (как приблизительно 4 года).

3
ответ дан TravisO 26 November 2019 в 20:17
поделиться
3
ответ дан mannicken 26 November 2019 в 20:17
поделиться

В основном... Ваш компьютер может просто выполнить диск потому что:

BIOS включает то дисковое устройство в порядок загрузки.

При начальной загрузке, BIOS сканирует все загрузочные устройства в порядке, как дисковод для гибких дисков, жесткий диск и CD-ROM. Каждый доступы к устройствам его медиа и проверки трудно кодированное местоположение (обычно сектор, на диске или устройстве CD) для цифрового отпечатка, который определяет медиа и перечисляет местоположение для перехода к на диск (или медиа), где инструкции запускаются. BIOS говорит устройству двигать своей головой (или безотносительно) к указанному местоположению на медиа и читать большой блок инструкций. BIOS передает те инструкции к ЦП.

ЦП выполняет эти инструкции. В Вашем случае эти инструкции собираются запустить ОС Ubuntu. Они могли точно также быть инструкциями остановиться или добавить 10+20, и т.д.

Как правило, ОС начнется путем взятия большого блока памяти (снова, непосредственно от ЦП, так как команды библиотеки как 'GlobalAlloc' и т.д. не доступны, поскольку им предоставляет yet-to-be-loaded-OS), и начинает создавать структуры для самой ОС.

ОС обеспечивает набор 'функций' приложений: управление памятью, файловая система, ввод/вывод, планирование задач, сети, графическое управление, доступ к принтерам, и так далее. Это - то, что это делает перед Вами, 'получают контроль': создание/запуск всех сервисов, которые поэтому более поздние приложения могут выполнить вместе, не затоптать на памяти друг друга и иметь хороший API к ОС, предоставило услуги.

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

, Например, без ОС, каждое приложение должно было бы справиться с ситуацией, где другая программа пытается распечатать, и 'делают что-то' как печать так или иначе или отменяют другое задание, и т.д. Вместо этого только ОС должна иметь дело с ним, в приложениях просто говорится ОС, 'печатают этот материал', и ОС гарантируют одну печать приложения, и все другие приложения просто должны ожидать до первых концов или пользователя отменяет его.

наименьшее количество суммы байтов, чтобы быть ОС действительно не имеет смысла, поскольку "ОС" могла подразумевать многих, или очень немногих, функции. Если бы все, что Вы хотели, должно было выполнить программу от CD, который был бы очень очень немногими байтами. Однако это не ОС. Задание ОС должно предоставить услуги (я называл их функциями) позволить большому количеству других программ работать и управлять доступом к тем сервисам для программ. Это твердо, и чем больше совместно используемых ресурсов, Вы добавляете (сети, и Wi-Fi, и средства записи CD, и джойстики, и iSight видео и парные мониторы, и т.д., и т.д.), тем тяжелее это добирается.

4
ответ дан 26 November 2019 в 20:17
поделиться

Операционная система, просто, что уполномочивает Ваше программное обеспечение управлять аппаратными средствами. Очевидно некоторые Ose более сложны, чем другие.

В его очень базовом, запуски компьютера, выполняющиеся в фиксированном адресе, означая, что, когда запуски компьютера, это устанавливает счетчик команд на предопределенный адрес, и только начинает выполнять машинный код.

В большинстве компьютеров, этот процесс "начальной загрузки" сразу инициализирует известные периферийные устройства (как, скажем, дисковод). После того, как инициализированный, процесс начальной загрузки будет использовать некоторую предопределенную последовательность для усиления тех периферийных устройств. Используя дисковый драйвер снова, процесс мог бы считать код из первого сектора жесткого диска, поместить его в знать пространство в RAM, и затем перейти к тому адресу.

Они предопределили последовательность (запуск ЦП, загрузка диска) позволяет программистам звезде, добавляющей все больше кода в началах запуска ЦП, который со временем может, в конечном счете, запускать очень сложные программы.

В современном мире, со сложными периферийными устройствами, усовершенствованными архитектурами ЦП и обширными, обширными ресурсами (ГБ или RAM, ТБ Диска и очень быстрые центральные процессоры), операционная система может поддерживать довольно мощные абстракции для разработчика (несколько процессов, виртуальной памяти, загружаемых драйверов, и т.д.).

, Но для простой системы, со снабженным ограниченным, Вам действительно не нужно много для "ОС".

Как простой пример, много маленьких компьютеров контроллера имеют очень маленькую "ОС" es, и некоторых можно просто считать "монитором", предлагая немного больше, чем легкий доступ к последовательному порту (или терминал или жидкокристаллический дисплей). Конечно, нет большого количества потребностей в большой ОС в этих условиях.

, Но также и рассматривают что-то как классическая система Forth. Здесь, у Вас есть система с "ОС", которая дает Вам дисковый ввод-вывод, консоль I/O, управление памятью, плюс фактический язык программирования, а также ассемблер, и это помещается в меньше, чем 8K памяти на 8-разрядной машине.

или былые времена CP/M с его BIOS и BDOS.

CP/M является хорошим примером того, где простая ОС работает хорошо уровнем абстракции, чтобы позволить портативным программам работать на обширном массиве аппаратных средств, но даже тогда система взяла меньше, чем 8K RAM, чтобы запустить и работать.

большая разница А по сравнению с MBS памяти используется современными Ose. Но, честно говоря, у нас ЕСТЬ MBS памяти, и наши жизни НАМНОГО НАМНОГО более просты (главным образом) и намного более функциональны из-за него.

Запись ОС является забавой, потому что интересно сделать АППАРАТНУЮ печать "Привет Мировыми" пихающимися данными 1 байт за один раз некоторый неясный порт I/O или наполнение его в к некоторому волшебному адресу памяти.

Получают x86 эмулятор и сторону, вниз заставляющую загрузочный сектор сказать Ваше имя. Это - смешливая обработка.

9
ответ дан Will Hartung 26 November 2019 в 20:17
поделиться

ПК знает для рассмотрения определенного сектора диска для инструкций по запуску. Эти инструкции тогда скажут процессору, что на данных прерываниях процессора, определенный код нужно назвать. Например, на периодической галочке, назовите код планировщика. Когда я получу что-то от устройства, назовите код драйвера устройства.

Теперь, как ОС настраивает все с системой? Хорошо аппаратные средства имеют API также. Они записаны с программистом Systems в памяти.

я видел много базовой ОС, и это - действительно абсолютное ядро. Существуют, многие встроили ОС собственной разработки, что это - все, что они делают и ничто иное.

Дополнительные функции, такие как требование, чтобы приложения попросили у операционной системы памяти или требования специальных полномочий для определенных действий, или даже обрабатывают, и сами потоки являются действительно дополнительными, хотя реализовано на большей части архитектуры ПК.

11
ответ дан Doug T. 26 November 2019 в 20:17
поделиться

Если бы Вам действительно любопытно, я направил бы Вас к Linux с нуля как хорошее место для изучения полных входов и выходов операционной системы и как все части совмещаются. Если это - больше информации, чем Вы ищете тогда , эта статья Wikipedia об операционных системах могла бы быть хорошим местом для запуска.

12
ответ дан Andrew Hare 26 November 2019 в 20:17
поделиться

Операционные системы являются огромной темой, лучшая вещь, которую я могу рекомендовать Вам, если Вы хотите пойти действительно подробно о том, как операционные системы разработаны и construced, это - хорошая книга:

Operating System Concepts

Понятия Операционной системы

18
ответ дан Community 26 November 2019 в 20:17
поделиться

О, это - забавное. Я сделал все это однажды или другого, и был там через значительную часть эволюции.

В целом, Вы начинаете писать новую ОС путем начинания с малого. Самой простой вещью является программа начальной загрузки, которая является маленьким блоком кода, который втягивает блок кода и выполняет его. Когда-то давно, с Новинкой или компьютерами PDP, Вы могли ввести программу начальной загрузки через переднюю панель: Вы ввели шестнадцатеричный номер инструкций шестнадцатеричным числом. Загрузчик, чем чтения некоторый носитель в память и набор счетчик команд к начальному адресу того кода.

, Что блок кода обычно загружает что-то еще, но это не имеет к: можно записать программу, это предназначено для работы чистого металла. Такая программа делает что-то полезное самостоятельно.

А реальная операционная система больше, и имеет больше частей. необходимо загрузить программы, поместить их в память и выполнить их; необходимо обеспечить код для выполнения устройств IO; поскольку это становится больше, необходимо управлять памятью.

, Если Вы хотите действительно изучить, как это работает, найдите книги Xinu Doug Comer , и Andy Tannenbaum новейшая книга операционной системы по Minix.

1
ответ дан Charlie Martin 26 November 2019 в 20:17
поделиться

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

0
ответ дан 26 November 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: