Re: [閒聊] 大家公司會有喜歡分享知識的人嗎
※ 引述《ggg12345 (ggg)》之銘言:
: : 當 receive packet 常常會當掉.
: : 找到最後是少下二個指令, sti 和 cli.
: : 這很重要嗎? 不, 一點也不, 雖然花了很多時間, 但是一點也不重要
: : 分享的結果大家要嘛都是早知道, 要就是無所謂.
: 細問一下, 能把情況環境說得更清楚嗎?
: 這個是在 protection mode 時代之前, 還是之後的故事?
: window95 之後, 像 packet driver 之類的就很難隨意掛上去.
: network NAT 流行應該是 window9X 年代. 若只說 少了 cli sti
: 指令, 聽的人能抓住要害嗎? 有聽能懂的會很多嗎?
我那時候己經有 Windows 95 了, 不過寫專題控制環境
當時在 DOS 下使用網卡的 Packet driver 收 Packet .
至少所有的 Packet 可以自己處理, 做轉址做 UDP 收送沒有什麼問題.
當時會這樣做的原因是, DOS 下其實並沒有什麼 OS 的概念, 這一部
份 DOS 不會幫你處理掉, 所以在我們的程式內仍然要做這件事情
至於 Windows 95 的話, 我寧願用 Linux 吧, 至少目前正在搞的也是類似的東西.
如果今天還要自己刻的話,
在 netif_rx 和 netif_receive_skb + 寫一個 virtual interface 有自己的 xmit
這樣會容易很多.
: 這不應該說是不重要的問題或方法. 這根本是涉及 driver 的重要
: 功能--中斷的及時處理及不當的干擾.
剛剛翻了一下 Linux 這邊的做法, 看起來應該都不是做全系統的 local_irq_disable
而是偏向 disable device 的 irq mask 和 unmask .
sti/cli 看起來是做其他部份, 大家有空好好追 code ;p
: 在現在的 window os/linux os, user mode 程式是無法下這兩個
: 指令的, 但難道不會碰上同樣問題.
可以寫個 polling 程式呀, 要不然 message box .
Virtualization driver . 都會用到類似的技巧.
(如果 Virtualization 沒有 HW 支援時)
: 這種答法, 好像跟沒講差不多. 但會的, 不講還是猜得到. 這不太
: 像教導學習. 或許給 source code 去試是最現實的分享?
那醜堪骯髒的 DOS source code 應該要埋起來.
千百年後如果有外星人找到, 應該會被困惑, 我們怎麼可以寫出這麼爛的東西.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.22.92
推
11/21 01:01, , 1F
11/21 01:01, 1F
→
11/21 02:04, , 2F
11/21 02:04, 2F
→
11/21 02:05, , 3F
11/21 02:05, 3F
→
11/21 02:05, , 4F
11/21 02:05, 4F
推
11/21 07:55, , 5F
11/21 07:55, 5F
→
11/21 08:20, , 6F
11/21 08:20, 6F
→
11/21 08:21, , 7F
11/21 08:21, 7F
→
11/21 08:21, , 8F
11/21 08:21, 8F
推
11/21 09:14, , 9F
11/21 09:14, 9F
→
11/21 23:53, , 10F
11/21 23:53, 10F
→
11/21 23:53, , 11F
11/21 23:53, 11F
→
11/22 01:21, , 12F
11/22 01:21, 12F
→
11/23 02:12, , 13F
11/23 02:12, 13F
→
11/23 02:24, , 14F
11/23 02:24, 14F
→
11/23 02:24, , 15F
11/23 02:24, 15F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 15 之 17 篇):