Можно ли переместить Давлика в ядро ​​Linux для производительности? - PullRequest
2 голосов
/ 03 апреля 2011

Это вопрос архитектуры очень высокого уровня. Почему JVM не была перемещена в ядро Linux, где оно может быть более эффективным (включая скомпилированный код точно в срок).

Я понимаю, что это отвратительно для поклонников минимального ядра, но Linux не является одной из тех ОС, похоже на то. Модуль ядра JVM, которым можно управлять через запись /dev, был бы возможен.

Почему бы и нет?

Ответы [ 3 ]

2 голосов
/ 03 апреля 2011

Я могу назвать как минимум несколько причин (конечно, их гораздо больше):

  1. программирование и отладка в режиме ядра намного сложнее и сложнее. То, что вы можете легко сделать в пользовательском режиме, потребует большого количества ручного кодирования и значительного времени для отладки в режиме ядра.
  2. перевод JVM в режим ядра исключит возможность использования JNI для собственных модулей.
  3. соображений безопасности - отдельные отдельные JVM работают в разных процессах, каждый из которых имеет разные разрешения. Это было бы невозможно (без большого количества дополнительного кодирования) в режиме ядра.
2 голосов
/ 03 апреля 2011

Перемещение чего-либо в ядро ​​само по себе не «заставляет работать быстрее».В некоторых исключительных случаях он может позволить использовать альтернативные подходы.Пока у вас не будет возможности воспользоваться преимуществами ядра, абсолютно бесполезно быть в ядре.

0 голосов
/ 03 апреля 2011

Это не может быть более эффективным; вполне может быть менее эффективным. Каждый раз, когда вы хотите работать с данными, данные живут вне ядра (если вы также не загружали свои программы и любые данные, которые они хотят прямо в ядро), и должны произойти как минимум два переключения контекста; если интерпретатор находится за пределами ядра, переключение контекста не требуется (если только эти данные не должны быть прочитаны откуда-либо (файл, пользователь, сеть и т. д.).

Более того, эти случаи «чтения откуда-то» повлекут за собой дополнительные переключения контекста , даже если ядро ​​запросит , потому что за кулисами происходит много вещей для получения этих данных.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...