The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Unix-система Xv6 портирована для архитектуры RISC-V "
Отправлено Ordu, 24-Сен-19 18:08 
> а вот интел, видать, был слепой, глухой, клич-то не услышал и засунул
> бесполезный учебный миникс в самую основу своих процессорных систем.
> (дай угадаю: потому что линухная блоатварь не лезла, и к тому же
> ее сложнее было портировать)

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

>> Или даже курсовая типа "портирование драйвера клавиатуры под RISC-V". Очень удачно как в целях
>> повышения качества образования студентов, так и в целях исследования способов применения того
>> же RISC-V. Но вряд ли это полезно в каких-либо ещё целях.
> студент переходит на следующий курс, у профессора появляется еще и драйвер клавиатуры
> - обоим польза. Или ты думаешь, студент Линус писал какой-то сильно
> лучший код?

А тут дело не в качестве кода драйверов. Тут дело в том, что в учебном коде наглядность кода ставится выше его практической полезности. Я вполне могу представить себе учебную ОС, в которой качество кода выше, чем в linux -- и это будет зависеть скорее от препода, чем от студентов: любую обезьяну можно научить писать простой код качественно, если её обучать систематически на протяжении нескольких лет. Особенно в MIT, куда не так-то просто попасть совсем уж безнадёжной обезьяне.

Но при написании любого практически применимого кода, такие оптимизационные параметры кода как "наглядность", "производительность", "широта области применения" и "расширяемость" (и возможно другие -- я не претендую на полное перечисление этих параметров), вступают в конфликт друг с другом. Иногда приходится запиливать запутанный алгоритм на полсотни строк, который невозможно понять, не прочитав статью, описывающую этот алгоритм на десятке листов A4. Двойка за наглядность кода, сходу. Иногда широта области применения приводит к такому количеству специальных случаев, которые надо обрабатывать везде, что за этими специальными случаями не видно основной идеи, а даже если она видна, то страшно что-то менять, потому что невозможно угадать заранее, как специальные случаи среагируют. Иногда производительность требует в дополнение к memcpy запилить ещё inline версию memcpy, которая будет офигенно быстрее на буферах определённых размеров за счёт статически известных размеров буферов. Все эти факторы приводят к тому, что код превращается в минное поле, и чтобы понять этот код, мало быть студентом, надо над ним работать. Но студент не может работать полный рабочий день над кодом, потому что системное программирование -- лишь один из нескольких курсов, которые он в этом семестре слушает.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру