Определение ОС несколько нечеткое, однако ядро, безусловно, является частью ОС. Я думаю, было бы общепринято, что ОС не просто работает на вершине ядра.
Нечеткость определения заключается в том, какая часть неядерного программного обеспечения считается частью ОС по сравнению с другой библиотекой/сервисом/сервером. Настольная машина и мой Android-телефон запускают Linux, но в целом они будут считаться запущенными различными ОС.
Является ли libc частью настольной ОС? Наверное, да, так как он обеспечивает API, ожидаемый приложениями, ориентированными на ОС, а внутри libc - это то, где фактически выполняются системные вызовы в ядро. Является ли Dalvik VM частью ОС Android? Наверное, да, потому что все приложения для Android содержат код, который может быть выполнен только с помощью Dalvik VM.
Удалите libc, и нет никаких приложений, которые могут запускаться, потому что никакое практическое программное обеспечение напрямую не нацелено на интерфейсы ядра Linux. Удалите Dalvik VM, и Android-приложение не будет запущено. Поэтому, возможно, эти основные части должны быть названы частью ОС.
Как насчет не столь существенных частей, с которыми мог бы справиться некоторый набор программ? Там он становится нечетким. Если вы считаете ОС тем, что предлагает и разрешает доступ к общим ресурсам, таким как аппаратное обеспечение между несколькими программами, тогда вы должны учитывать программы и библиотеки пользовательского пространства, которые делают то же самое или являются стандартным способом доступа к интерфейсам ядра, как и большая часть ОС.
Очень хороший ответ. – joe