Кіріспе
Unix System V framework Компьютерлік желілерде STREAMS - Unix System V-дегі таңбалық құрылғы драйверлерін, желілік протоколдарды және процестер арасындағы байланысты іске асыру үшін арналған туынды жүйе. Бұл фреймворкте ағын - бағдарлама мен құрылғы драйвері (немесе бағдарламалардың жұбы) арасындағы хабарламаларды өткізетін coroutines тізбегі. STREAMS 8-ші Research Unix нұсқасында пайда болды, Streams (ағаштық емес). STREAMS-тың дизайны - ядро мен құрылғы драйверлері арасындағы толық дуплексті I/O-ны іске асыру үшін модульдік архитектура. Оның ең жиі қолданылуы терминал I / O (желілік тәртіп) және желілік жүйелерді әзірлеуде болды. System V Release 4-те STREAMS-ті қолдана отырып, терминал интерфейсі қайта іске асырылды. STREAMS-тағы маңызды тұжырымдама - бұл драйверлерге арнаулы код модульдерін жіберу мүмкіндігі, олар желі интерфейсінің немесе басқа құрылғының функционалдығын бірге стек құру үшін өзгерте алады. Осы дирижерлердің бірнешеуін біріктіріп тізбекпен байлауға болады.
In computer networking, STREAMS is the native framework in Unix System V for implementing character device drivers, network protocols, and inter process communication. In this framework, a stream is a chain of coroutines that pass messages between a program and a device driver (or between a pair of programs). STREAMS originated in Version 8 Research Unix, as Streams (not capitalized). STREAMS's design is a modular architecture for implementing full duplex I/O between kernel and device drivers. Its most frequent uses have been in developing terminal I/O (line discipline) and networking subsystems. In System V Release 4, the entire terminal interface was reimplemented using STREAMS. An important concept in STREAMS is the ability to push drivers custom code modules which can modify the functionality of a network interface or other device together to form a stack. Several of these drivers can be chained together in order.
Тарих
STREAMS Денис Ричидің Research Unix (V8) сегізінші нұсқасында енгізілген Streams I/O жүйеге негізделген, онда ол терминал I/O жүйеге және Интернет протоколы жиынтығына пайдаланылған. Бұл нұсқа әлі STREAMS деп аталмаған, қолданыстағы құрылғы I/O жүйелік шақырулары (ашық, жабық, оқу, жазу және ioctl) бойынша жаңа функционалдылыққа сәйкес келеді және оның қолданылуы терминал I/O және құбыр сияқты I/O семантикасын қамтамасыз ететін протоколдармен шектелген. Бұл I/O жүйесі System V Release 3 -ке Роберт Израиль, Гил Макграт, Дейв Оландер, Хер Доу Че және Мори Бах арқылы TCP, ISO Class 4 транспорты, SNA LU 6.2, және AT&T NPACK протоколы (RFS-те пайдаланылады) сияқты әртүрлі тасымалдау протоколдарын қолдау үшін жасалған кең ауқымды шеңбердің бөлігі ретінде портталды. Ол алғаш рет UNIX System V Release 3 желілік қолдау құралдары (NSU) пакетімен бірге шығарылды. Бұл порт Беркли сокетінен жіберілген, қайта алынған және таңдалған шақыруларға мақсатты түрде тең болатын putmsg, getmsg және poll жүйелік шақыруларды қосты. putmsg және getmsg жүйелік шақырулары бастапқыда send және recv деп аталды. System V Release 4 жүйесінде STREAMS кеңейтіліп, терминал I/O фреймворкі мен құбырлары үшін пайдаланылды, бұл екі бағыттағы құбырлар мен файл дескрипторларын өткізу сияқты пайдалы жаңа функционалдылықты қамтамасыз етті. System V Release 3 портымен бір уақытта AT&T OSI моделінің сілтеме, желі және тасымалдау қабаттары үшін (қабаттар 2-4), протоколды тәуелсіз STREAMS хабарламаларын өткізу нұсқауларын әзірледі. Белгілі бір протокол стекіндегі желілік және тасымалдау протоколдарының әдеттегі тығыз іске асырылу қосындысына және ядродан тыс 5-7 қабаттарды іске асырудың әдеттегі практикасына байланысты, кейінірек X/Open тек сілтеме STREAMS қызмет интерфейстерін стандарттады. Транспорттық хабарламаларды беру моделімен бірге, Транспорттық қабат интерфейсі (кейін X/Open Transport Interface ретінде қабылданған) қосымшаларды әзірлеу үшін тәуелсіз транспорттық протокол API-ін қамтамасыз ету үшін анықталды. Сонымен қатар, сессия, презентация және қолданба қабаттарын қолдайтын кітапхана анықталды және кейіннен The Open Group стандарттады. STREAMS Single UNIX Specification нұсқаларына 1 (UNIX 95) және 2 (UNIX 98) сәйкес келу үшін талап етілді, бірақ BSD және Linux әзірлеушілерінің STREAMS ұсынудан бас тартуы нәтижесінде, 3-ші нұсқада (UNIX 03) POSIX сәйкестігі үшін Austin Group-тің нұсқасы ретінде таңдалды. POSIX.1 2008 with TC1 (IEEE Std 1003.1, 2013 басылымы) STREAMS-ті "белгілі түрде ескірген" деп белгіледі, яғни аталған функционалдық ерекшеліктің болашақ нұсқасында алынып тасталуы мүмкін. Алайда, "жасырын" деген сөздің нақты анықтамасы POSIX-ке сәйкес келетін қолданбалар "жасырын мүмкіндіктерді қолданбауы тиіс" деп айтады.