LINUX.ORG.RU
ФорумTalks

Ядро Линукс на C++

 , , ,


1

3

Тут человек с нуля написал своё ядро Линукс на C++ вместе со своей виртуальной машиной (и поддержкой динамической трансляции по заверению автора всего в 2-3 раза медленнее нативного кода) чтобы запустить Wine на разных платформах. До чего же Wine непортабельный что проще оказалось заморочиться с написанием своего Линукса… Проект называется Boxedwine и он достаточно портабельный чтобы запускаться на Haiku, Android, WASM, Windows.

★★★★★

Ответ на: комментарий от t184256

80% заглушек.

Кстати, дистрам линукса остро не хватает заглушек.
А то наприколачивают гвоздями всяких logind к другим программам, и они потом не запускаются...

Shadow ★★★★★
()
Ответ на: комментарий от X512

Да господи.

U32 KProcess::msync(U32 addr, U32 len, U32 flags) {
    BOXEDWINE_CRITICAL_SECTION_WITH_MUTEX(mappedFilesMutex);
    for (auto& n : this->mappedFiles) {
        BoxedPtr<MappedFile> m = n.second;
        if (m->address<=addr && addr+len<m->address+m->len) {
            klog("msync not implemented");
            return 0;
        }
    }
    return -K_ENOMEM;
}

U32 KProcess::writev(FD handle, U32 iov, S32 iovcnt) {
    KFileDescriptor* fd = this->getFileDescriptor(handle);

    if (fd==0) {
        return -K_EBADF;
    }
    if (!fd->canWrite()) {
        return -K_EINVAL;
    }
    return fd->kobject->writev(iov, iovcnt);    
}

(writev вызывает writeNative)

«Это враппер или заглушка?»

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

Да, о существовании гайки знает полтора человека. Это не повод тащить на форум про Линукс всякую упомянувшую её хоть словом фигню.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.