The OpenNET Project / Index page

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



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

Исходное сообщение
"Принято решение об официальной поддержке архитектуры kFreeBS..."
Отправлено Bulgarin, 18-Окт-09 15:07 

>Шинно-классово-древовидную топологию устройств придумали давно, если не изменяет память еще в Беркли
>в 80-x, писатели Linux kernel таки решили толи выпендрится, то ли
>от великого ума, и сделали именование network interfaces гм... другим.

"Тихо сам с собой я веду беседу". А там глядишь, кто и прочитает :)

Но самому захотелось освежить в памяти, и посмотрел код
- BSD 2.9..2.11 (~82-93гг,DEC PDP11),
- BSD4.2-4.4 (~82-94гг, DEC VAX) и
- Linux kernel 1.0...1.3 (~93-96гг,Intel i386).

Действительно, имена драйверов в его дескриптор struct somedev_softc{} были введены примерно в 83-84 году.
4.2BSD, фрагменты:
---
/*      if_en.c 6.1     83/07/29        */
#include "en.h"
/*
* Xerox prototype (3 Mb) Ethernet interface driver.
*/
struct uba_driver endriver =
        { enprobe, 0, enattach, 0, enstd, "en", eninfo };

struct  en_softc {
        struct  ifnet es_if;            /* network-visible interface */
        struct  ifuba es_ifuba;         /* UNIBUS resources */
        short   es_delay;               /* current output delay */
        short   es_mask;                /* mask for current output delay */
        short   es_lastx;               /* host last transmitted to */
        short   es_oactive;             /* is output active? */
        short   es_olen;                /* length of last output */
} en_softc[NEN];

enattach(ui)
        struct uba_device *ui;
{
        register struct en_softc *es = &en_softc[ui->ui_unit];
        es->es_if.if_unit = ui->ui_unit;
        es->es_if.if_name = "en";
        es->es_if.if_mtu = ENMTU;
        es->es_if.if_init = eninit;
        es->es_if.if_output = enoutput;
        es->es_if.if_ioctl = enioctl;
        es->es_if.if_reset = enreset;
        es->es_ifuba.ifu_flags = UBA_NEEDBDP | UBA_NEED16 | UBA_CANTWAIT;
#if defined(VAX750)
        /* don't chew up 750 bdp's */
        if (cpu == VAX_750 && ui->ui_unit > 0)
                es->es_ifuba.ifu_flags &= ~UBA_NEEDBDP;
#endif
        if_attach(&es->es_if);
}
---

Благодаря именованию появилась возможность собирать устойства c одним драйвером в субклассы вне зависимости от шинной топологии, и в дальнейшем - и вне зависимости от типа шины (1982-83гг и по настоящее время).
В Linux kernel 1.3 (~1996г) данное именование напрочь отсутствует.

Почему Торвальдс (или T&К?) в 93-94гг решил примитивно именовать сетевые интерфейсы в соотвествии с type of network frame of level 2 - аллах акбар, не знаю. Может просто потому что плохо знал-понимал основы сетевой коммуникации? :)

Теперь "linux-кульное поколение" говорит что это фича, и придумывает AI-костыли для обхода косяков непродуман... пардон - базарной архитектуры.

А модифицировать механизм ассоциации некому, и много зацепок вылезает, да и бардак в драйверах, там воистине китайская классификация - "животные делятся на шестиногих, драконов, летающих, принадлежащих Императору, ...".
Поверх это громоздится HAL, с ничем кроме Linux kernel нормально не работающая...
"Кино и немцы".

---

PS К вопросу об имени UNIX/BSD, репринт этикетки с ленты:
Back of tape:
        4.3 RENO        6250 VAX
        30 JUL 90        Distribution Master
Front of tape:
        4.3BSD-RENO Vax UNIX System 7/1/90
        7 files on tape
        1 bootstrap FS,  bs=1024
        2 mini root,  bs=10240
        3 root dump,  bs=10240
        4 /usr
        5 /usr/src
        6 /usr/src/sys
        7 /usr/src/contrib

На других аналогично, в 80-е писали просто - BSD lalala UNIX.

 

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



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

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