国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 操作系統(tǒng) > 正文

進(jìn)程關(guān)系之網(wǎng)絡(luò)登錄

2024-06-28 13:28:31
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
進(jìn)程關(guān)系之網(wǎng)絡(luò)登錄

通過(guò)串行終端登錄至系統(tǒng)和經(jīng)由網(wǎng)絡(luò)登錄至系統(tǒng)兩者之間的主要(物理上的)區(qū)別是:通過(guò)網(wǎng)絡(luò)登錄時(shí),終端和計(jì)算機(jī)之間的連接不是點(diǎn)對(duì)點(diǎn)連接。在這種情況下,login只是一種可用的服務(wù),這與其他網(wǎng)絡(luò)服務(wù)(例如FTP或SMTP)的性質(zhì)相同。

在終端登錄中,init知道哪些終端設(shè)備可用來(lái)進(jìn)行登錄,并為每個(gè)設(shè)備生成一個(gè)getty進(jìn)程。但是在網(wǎng)絡(luò)登錄情況下,所有登錄都經(jīng)由內(nèi)核的網(wǎng)絡(luò)接口驅(qū)動(dòng)程序(如以太網(wǎng)驅(qū)動(dòng)程序),事先并不知道將會(huì)有多少這樣的登錄。我們不是使一個(gè)進(jìn)程等待每個(gè)可能的登錄,而是必須等待一個(gè)網(wǎng)絡(luò)連接請(qǐng)求的到達(dá)。

為使同一軟件即能處理終端login,又能處理網(wǎng)絡(luò)login,系統(tǒng)使用了一種稱為偽終端(pseudo terminal)的軟件驅(qū)動(dòng)程序,它仿真串行終端的運(yùn)行行為,并將終端操作映射為網(wǎng)絡(luò)操作,反之亦然。

1、BSD網(wǎng)絡(luò)登錄

在BSD中,有一個(gè)稱為inetd的進(jìn)程(有時(shí)稱之為因特網(wǎng)超級(jí)服務(wù)器),它等待大多數(shù)網(wǎng)絡(luò)連接。

作為系統(tǒng)啟動(dòng)的一部分,init調(diào)用一個(gè)shell,使其執(zhí)行shell腳本/etc/rc。由此shell腳本啟動(dòng)一個(gè)守護(hù)進(jìn)程inetd。一旦此shell腳本終止,inetd的父進(jìn)程就變成init。inetd等待TCP/ip連接請(qǐng)求到達(dá)主機(jī),而當(dāng)一個(gè)連接請(qǐng)求到達(dá)時(shí),它執(zhí)行一次fork,然后生成的子進(jìn)程執(zhí)行適當(dāng)?shù)某绦?/strong>。

我們假定到達(dá)了一個(gè)針對(duì)TELNET服務(wù)進(jìn)程的TCP連接請(qǐng)求。TLENET是使用TCP協(xié)議的遠(yuǎn)程登錄應(yīng)用程序。在另一臺(tái)主機(jī)(它通過(guò)某種形式的網(wǎng)絡(luò)與服務(wù)進(jìn)程的主機(jī)相連接)上的用戶,或在同一臺(tái)主機(jī)上的用戶啟動(dòng)TELNET客戶端進(jìn)程,由此啟動(dòng)登錄過(guò)程:

telnet hostname

該客戶進(jìn)程打開一個(gè)到hostname主機(jī)的TCP連接,在hostname主機(jī)上啟動(dòng)的程序被稱為TELNET服務(wù)進(jìn)程。然后,客戶進(jìn)程和服務(wù)進(jìn)程之間使用TELNET應(yīng)用協(xié)議通過(guò)TCP連接交換數(shù)據(jù)。所發(fā)生的是啟動(dòng)客戶進(jìn)程的用戶現(xiàn)在登錄到了服務(wù)進(jìn)程所在的主機(jī)。(自然,用戶需要在服務(wù)進(jìn)程主機(jī)上有一個(gè)有效的賬號(hào))。

然后,telnetd進(jìn)程(TELNET服務(wù)進(jìn)程)打開一個(gè)偽終端設(shè)備,并用fork分成兩個(gè)進(jìn)程。父進(jìn)程處理通信網(wǎng)絡(luò)連接的通信,子進(jìn)程則執(zhí)行l(wèi)ogin程序。父、子進(jìn)程通過(guò)偽終端相連接。在調(diào)用exec之前,子進(jìn)程使其文件描述符0、1、2與偽終端相連。如果登錄正確,login就執(zhí)行與終端登錄中同樣的步驟:更改當(dāng)前工作目錄為起始目錄,設(shè)置登錄用戶的組ID和用戶ID,以及登錄用戶的初始環(huán)境。然后login調(diào)用exec將其自身替換為登錄用戶的登錄shell。

需要理解的重點(diǎn)是:當(dāng)通過(guò)終端或網(wǎng)絡(luò)登錄時(shí),我們得到一個(gè)登錄shell,其標(biāo)準(zhǔn)輸入、輸出和標(biāo)準(zhǔn)出錯(cuò)連接到一個(gè)終端設(shè)備或者偽終端設(shè)備上。這一登錄shell是POSIX.1會(huì)話的開始,而此終端或偽終端則是會(huì)話的控制終端。

2、linux網(wǎng)絡(luò)登錄

除了使用擴(kuò)展的因特網(wǎng)服務(wù)守護(hù)進(jìn)程xinetd替代inetd進(jìn)程外,Linux網(wǎng)絡(luò)登錄的其他方面與BSD相同。xinetd進(jìn)程對(duì)它所啟動(dòng)的各種服務(wù)的控制比inetd提供的更加精細(xì)。

本篇博文內(nèi)容摘自《UNIX環(huán)境高級(jí)編程》(第二版),僅作個(gè)人學(xué)習(xí)記錄所用。關(guān)于本書可參考:http://www.apuebook.com/。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长垣县| 新泰市| 丹江口市| 通城县| 彭山县| 怀集县| 夹江县| 鹿泉市| 固始县| 改则县| 乐亭县| 阿巴嘎旗| 安庆市| 自治县| 姚安县| 壤塘县| 泽普县| 上高县| 准格尔旗| 南城县| 怀仁县| 渭源县| 远安县| 子洲县| 台前县| 资源县| 桃园县| 哈尔滨市| 赤壁市| 奉化市| 于田县| 辉县市| 徐闻县| 紫金县| 桐乡市| 梅河口市| 新竹县| 萝北县| 冕宁县| 平安县| 高邑县|