Bosh sahifa Wiki Line mode

Line mode

Line mode — masofaviy terminal yoki buyruq kiritish tizimida belgilarni client tomonida bir satrga yig‘ib, odatda Enter bosilgandan keyin serverga uzatish rejimidir. Bu usul har tugmani alohida remote hostga yuboradigan character modega qaraganda network qatnovini kamaytiradi va yuqori kechikishli aloqada oddiy buyruq satrini qulayroq qiladi.

Satrni yig‘ish

Client kiritilgan belgilarni bufferda saqlaydi. Backspace, word erase yoki line kill kabi tahrirlash amallari serverga yetmasdan local bajariladi. Satr yakunlovchi belgi kelgach, tayyor ketma-ketlik remote dasturga yuboriladi. Local echo foydalanuvchiga yozayotgan matnini round-tripni kutmasdan ko‘rsatadi.

Satr yakuni platformaga qarab LF, CR yoki CRLF bilan ifodalanishi mumkin. Telnet Network Virtual Terminal qoidalari terminaldagi Enter va tarmoqdagi boshqaruv ketma-ketligini moslashtiradi. Noto‘g‘ri translation bo‘sh satr, birlashtirilgan buyruq yoki terminal promptining siljishiga olib keladi.

Telnet LINEMODE

Telnet LINEMODE optioni satr tahririning qaysi qismini client bajarishini muzokara qilish uchun yaratilgan. Server mode bitlari orqali local edit va signal processingni so‘rashi mumkin. Special Line Characters, ya’ni SLC, interrupt, erase va end-of-file kabi funksional belgilarni kelishtiradi.

Bu mexanizm oddiy “Entergacha yubormaslik”dan kengroq: server ayrim control belgilarni darhol olishni xohlashi mumkin. Masalan, uzoq buyruqni to‘xtatuvchi interrupt buffer tugashini kutmasligi kerak. Client local tahrir bilan urgent boshqaruv o‘rtasidagi farqni saqlaydi.

Operatsion tizim terminali

Unix canonical input rejimi line modega o‘xshaydi. Kernel terminal driveri satrni yig‘adi, erase va kill belgilarini qayta ishlaydi, so‘ng newline yoki EOF shartida read chaqiruviga data beradi. ICANON flagi o‘chirilsa dastur minimum belgilar soni va timeoutga qarab qismlarni olishi mumkin.

Remote Telnet line mode va local canonical mode bir xil qatlam emas. Client operatsion tizimi, Telnet client, server pseudo-terminali va shellning har biri buffer yoki echo sozlamasiga ega bo‘lishi mumkin. Ikki qatlam bir xil tahrirni bajarsa backspace noto‘g‘ri ishlaydi; hech biri bajarmasa control belgisi ekranda literal ko‘rinadi.

Qo‘llanish va cheklovlar

Line mode command shell, sodda forma va satrga asoslangan protokol uchun mos. U har tugmaga darhol javob beradigan full-screen editor, interactive debugger yoki tugma hodisasiga bog‘liq o‘yin uchun yaramaydi. Bunday ilova character yoki rawga yaqin rejimga o‘tadi va tugaganda terminal sozlamasini tiklaydi.

Local buffer maxfiy kiritmaga ham ta’sir qiladi. Password prompt echo ni o‘chirishi, history va logga satr tushmasligini ta’minlashi kerak. Klassik Telnetning o‘zi confidentiality bermaydi; satr bo‘lib yuborish parolni himoyalamaydi. Ishonchsiz tarmoqda SSH yoki TLS bilan himoyalangan terminal protokoli kerak.

Line buffer uchun maksimal uzunlik va xotira chegarasi belgilanadi. Juda uzun, yakunlanmagan satr memory exhaustion keltirmasligi, invalid UTF-8 yoki control sequence esa parserni buzmasligi kerak. Server tarmoq oqimida bitta read doim to‘liq satr beradi deb taxmin qilmaydi; delimiter bo‘yicha incremental parsing qiladi.

Protokol dizaynidagi qo‘llanish

SMTP, IRC va ayrim text protokollar buyruqlarni satr delimiteri bilan ajratadi, lekin ularning line framing qoidasi terminal LINEMODE bilan bir xil emas. Protocol parser maksimal satr uzunligi, ruxsat etilgan encoding va continuation qoidasini spetsifikatsiyaga muvofiq tekshiradi. TCP message boundary bermagani uchun bitta satr bir necha segmentda kelishi yoki bir read ichida bir nechta satr bo‘lishi mumkin.

Line-oriented format diagnostika uchun o‘qilishi oson, ammo binary payload, ichki newline va katta obyekt uchun escaping yoki length prefix talab qiladi. Terminal rejimini transport framingi bilan aralashtirmaslik kerak: birinchisi foydalanuvchi interaktivligini, ikkinchisi dastur xabar chegarasini belgilaydi.

Bog‘liq tushunchalar

Character mode, Telnet LINEMODE, Canonical mode, Terminal driver, Local echo, Control character, SSH