Синтаксис на основе класса ES6 намного лучше, чем традиционный подход к прототипу,
Так что, если вас не волнует перекрестный браузер, а затем пойти с синтаксисом на основе классов.
Счастливое кодирование !!
Операционная система - это слой между вашим кодом (пользовательским кодом) и аппаратным обеспечением.
ОС отвечает за управление физическими компонентами и предоставляет вам простой (надеюсь) API, на основе которого можно строить. Она определяет, какие программы запускаются, когда, кто первый, как обрабатывается память, кто получает память, отрисовка видео и все прочее.
Например, при создании графического интерфейса вместо того, чтобы посылать каждый бит на монитор, вы говорите ОС (или менеджеру окон) создать окно. Затем вы говорите ей поместить кнопку в окно. Затем ОС обрабатывает рисование окна, перемещение окна, перемещение кнопки (но удерживая ее там, где она должна быть в окне).
Теперь вы можете программировать операционную систему на C++, но это нелегко. Вы должны разработать ядро и прочее, найти способ взаимодействия с аппаратным обеспечением, а затем предоставить этот интерфейс пользователям и их программам.
Итак, по сути, ОС управляет взаимодействием между программным обеспечением и аппаратурой и управляет вашими физическими ресурсами. Программы на C++ могут выполняться в ОС или, при достаточной работе, работать сами по себе или даже быть ОС.
конечно, http: //en.wikipedia.org / wiki / Operating_system
Операционная система - это программное обеспечение на компьютере, которое управляет тем, как различные программы используют его оборудование, и регулирует способы, которыми пользователь управляет компьютером. Операционные системы можно найти практически на любом устройстве, содержащем компьютер с множеством программ - от сотовых телефонов и игровых консолей до суперкомпьютеров и веб-серверов. Некоторые популярные современные операционные системы для персональных компьютеров включают Microsoft Windows, Mac OS X и Linux (см. Также: список операционных систем, сравнение операционных систем).
Я имею в виду описание операционной системы, что она делает, когда и почему выходит далеко за рамки ответа на этом сайте imho.
Операционная система, а точнее ее ядро, разрабатывается на таком языке, как C. И компилируется в машинный код, как и любая другая программа. Основное различие между основной ОС и некоторым кодом, который вы пишете на C, заключается в том, что код на C будет выполняться в режиме таймшера через планировщик CPU ОС. Также учтите, что ОС запускается первой и способна создать такую среду, в которой она полностью контролирует и ограничивает все, что запускает. Также следует помнить, что системные вызовы - это то, как процесс может общаться с ОС, а все остальное - это обычные машинные инструкции, которые могут выполняться на любом другом процессоре этого типа.
Несколько ключевых функций, которые предоставляет любая основная ОС:
Операционная система - это просто программное обеспечение, которое является интерфейсом между вашим оборудованием и вашим программным обеспечением. Она делает абстракцию этого оборудования, чтобы упростить его использование. Например, вам не нужно читать состояние клавиатуры в ваших программах, чтобы проверить, нажал ли пользователь на клавишу. Вы можете думать об этом как о множестве кирпичиков, сложенных вместе и нагроможденных друг на друга, от очень точного представления аппаратного обеспечения до очень абстрактного представления (от битов, до окон или кнопок... например)
Вам не обязательно программировать операционную систему на каком-то конкретном языке, но большинство из них написаны на C по причинам эффективности и удобства. Вы можете программировать (свои собственные приложения) на любом языке при условии, что в операционной системе установлены нужные библиотеки.
Не существует «четкого» определения того, каковы обязанности ОС. Он может включать следующее:
В двух словах ОС - это программа, которая позволяет пользователю для управления оборудованием компьютера относительно простым способом
По сути, ОС - это программа, внутри которой выполняются все остальные программы. Это буквально первая программа, которую запускает ваш компьютер при загрузке. Как таковая, она контролирует все аппаратное обеспечение и действует в качестве привратника для других программ для доступа к этому оборудованию. Она также контролирует (или, по крайней мере, должна контролировать) все программы, которые работают под ее управлением - когда они запускаются, как останавливаются и к каким ресурсам имеют доступ. Вы можете назвать его "Главной управляющей программой" :)
Прочитав вопрос, я понял, что вы хотите спросить. Вы спрашиваете, нужна ли программам на C/C++ ОС для работы. Ответ - нет. C/C++ - это компилятор, который переводит человеческий язык в машинный. Он не требует конкретной операционной системы. Однако, если вы компилируете, скажем, в Visual Studio, полученный исполняемый машинный код не может работать ни на чем, кроме Windows.
В частности, код на C/C++ обычно переносимый, так как если у вас есть компилятор для операционной системы, вы можете скомпилировать его, и он будет работать так же. Однако, иногда у вас есть код, специфичный для конкретной машины (или ОС), например, windows-приложение, использующее windows-интерфейсы, которые не могут быть перенесены на другую операционную систему. Некоторые примеры, которые я могу вспомнить, например, операции с каталогами обычно не переносятся и зависят от того, на какой ОС вы работаете. Однако большинство файловых операций, например fopen, переносимы.
ОС - это немного другое. Для нее требуется другой компилятор, и она требует другого способа загрузки. Большинство ОС создаются на C/C++, затем компилируются компилятором, после чего распространяются. Например, Microsoft написала Windows 95 на C/C++, они пропустили ее через компилятор, затем записали полученный исполняемый код на CD-ROM, затем продали его вам, вы вставили диск, и он скопировал полученный исполняемый код на вашу машину, и вы его использовали.
Они не дают вам исходный код, а затем ваш компьютер компилирует его; обычно они дают вам результирующий исполняемый код.
На самом деле, сам стандарт C ++ может что-то сказать по этому поводу. §1.4 / 7:
Определены два типа реализаций: размещенная и автономная. Для размещенной реализации этот международный стандарт определяет набор доступных библиотек. Автономная реализация - это реализация, в которой выполнение может происходить без использования операционной системы, и имеет набор библиотек, определяемый реализацией, который включает определенные библиотеки поддержки языка (17.4.1.3).
И в 17.4.1.3,
Автономная реализация имеет набор заголовков, определяемый реализацией. Этот набор должен включать как минимум следующие заголовки, как показано в таблице 13:
Table 13—C++ Headers for Freestanding Implementations
_______________________________________________
Subclause Header(s)
18.1 Types <cstddef>
18.2 Implementation properties <limits>
18.3 Start and termination <cstdlib>
18.4 Dynamic memory management <new>
18.5 Type identification <typeinfo>
18.6 Exception handling <exception>
18.7 Other runtime support <cstdarg>
Поставляемая версия заголовка должна объявлять как минимум функции abort (), atexit () и exit () (18.3).
Эти заголовки либо определяют константы, либо предоставляют базовую поддержку компилятору. На практике некоторые языковые функции будут отсутствовать, пока ОС не завершит некоторую инициализацию, например new
и catch
.
На самом деле ОС - это просто программа, которая запускает другие программы и управляет аппаратными ресурсами для них.
Если вы действительно серьезно хотите разобраться во внутренностях, я бы рекомендовал прочитать книгу Understanding the Linux Kernel.
С точки зрения программирования операционные системы в первую очередь обеспечивают абстракцию. Абстракция от деталей центрального процессора и управления памятью, абстракция от работы с аппаратными устройствами, абстракция от деталей стека сетевых протоколов.
Операционная система предоставляет интерфейс программирования более высокого уровня, часто стандартизированный для нескольких операционных систем, как POSIX для всех версий Unix.
Термин "операционная система" в применении к ПК обычно означает современную операционную систему с "защищенной памятью", которая обеспечивает не только базовый набор системных служб, но и полноценный пользовательский интерфейс:
сочетание ядра, драйверов устройств и системных служб, которые обеспечивают защиту памяти, задачи, которые не могут вмешиваться в память друг друга, и потоки, которые являются единицами выполнения внутри процесса, а также способы для потоков и задач общаться друг с другом и получать доступ к общим ресурсам, таким как файловые системы, которые содержат файлы на устройствах хранения данных, таких как жесткий диск вашего ПК, фактически являются ядром операционной системы.
"Оболочка" поверх этой операционной системы может быть простой, как текстовая командная строка "command.com" в DOS (помните " C:> _ "?) или сложной, как оболочка Windows, включая ее панель управления, и т.д.
Иногда "дистрибутив linux" содержит гораздо больше, чем операционная система, но неофициально называется одним именем (например, Ubuntu), поэтому грань между тем, что представляет собой операционная система (ядро linux и стандартные библиотеки, возможно) и приложениями, которые просто поставляются с этой операционной системой (среды Gnome и KDE в Linux), довольно серые.
Отличный способ узнать, что на самом деле представляет собой операционная система, - это прочитать одну из книг Танненбаума об операционных системах. Я считаю, что он подробно описывает реализацию своего ядра "minix". Другая книга - "Linux Kernel Internals". Если вы сможете справиться с техническими деталями в такого рода книгах, тогда вы сможете действительно понять, что такое "ядро" операционной системы, а затем начать разбираться в слоях вокруг этого ядра.
Я не знаю ни одной коммерческой или открытой операционной системы, которая была бы написана в основном на C++. Такое программирование на уровне системы чаще всего выполняется на смеси чистого ANSI C и ассемблера/машинного языка. Низкоуровневые биты ассемблера часто участвуют в таких задачах, как обработка прерываний, инициализация оборудования и загрузка системы. Пока у вас нет кучи, стека и рабочей системы виртуальной памяти, вы не захотите использовать объекты C++ или даже некоторые функции языка C, такие как malloc. Ваши ресурсы и ваш дизайн должны быть ограничены критериями производительности, и любой вид дополнительных накладных расходов, даже семантических, должен вызывать сожаление".
Недавно Линус Торвальдс знаменито оскорбил C++ и описал в списке рассылки, почему он никогда не будет использовать его для ядра Linux. Однако я считаю, что C++ делает успехи в областях, которые обычно были прибежищем "чистого Си". Например, команда Gnu GCC, наконец, готова допустить C++ в кодовую базу GCC.