[問題] 函數是如何被實作的?

看板C_and_CPP (C/C++)作者 (sunlights)時間13年前 (2012/12/29 22:43), 編輯推噓7(7026)
留言33則, 8人參與, 最新討論串1/1
現在大略看完C的書..有些疑問還是一直存在 就是C裡面的標準函式庫是怎麼寫出來的? 還有後來有很多支援擴充的函數 像window方面就有window的標頭檔可用. 網路方面就有sock之類的標頭檔.. 這些又是如何寫出來的呢?? 有沒有相關的書籍可以參考呢?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.31.206

12/29 23:05, , 1F
system programming
12/29 23:05, 1F

12/29 23:05, , 2F
然後你會問syscall怎麼做的 答案在OS課本裡
12/29 23:05, 2F

12/29 23:06, , 3F
其實就是OS把功能都寫好了
12/29 23:06, 3F

12/30 01:12, , 4F
那如果假設是在很早期沒有win98的時候..在dos下.
12/30 01:12, 4F

12/30 01:15, , 5F
應該就沒有OS的支援..那如果要寫網路的功能寫的出來嗎??
12/30 01:15, 5F

12/30 01:21, , 6F
syscall也是一堆code,如果系統不支援就是自己寫或用別人
12/30 01:21, 6F

12/30 01:22, , 7F
寫好的
12/30 01:22, 7F

12/30 01:26, , 8F
dos是real mode,所以user program可以直接控制硬體
12/30 01:26, 8F

12/30 01:27, , 9F
DOS時期都先掛網路卡驅動程式 然後IPX 最後TCP 一層一層
12/30 01:27, 9F

12/30 01:28, , 10F
進入protected mode後,syscall不支援的就沒輒
12/30 01:28, 10F

12/30 01:29, , 11F
你要直接控制網路卡請便,一般人會用lib,比較方便。
12/30 01:29, 11F

12/30 01:30, , 12F
早期如舊版的Lotus 1-2-3等軟體還會把字元直接寫入視訊
12/30 01:30, 12F

12/30 01:30, , 13F
yeah,我的意思是lib也是直接控制硬體,中間沒經過OS
12/30 01:30, 13F

12/30 01:31, , 14F
記憶體,不透過BIOS CALL,原意是加快速度可是在中文系
12/30 01:31, 14F

12/30 01:31, , 15F
統下反而很慢。到2.0或2.2T以後才改得比較老實。
12/30 01:31, 15F

12/30 01:32, , 16F
XD 以前NCSA Telnet好像只需要掛網路卡驅動程式就可以
12/30 01:32, 16F

12/30 01:33, , 17F
運作,TCP/IP部份他自己就包在程式裡了。
12/30 01:33, 17F

12/30 15:51, , 18F
如果想學自己寫OS有沒有推薦的書呢?
12/30 15:51, 18F

12/30 17:10, , 19F
從你在板上問過的問題來看,建議先學好C,不要越級打怪
12/30 17:10, 19F

12/30 17:52, , 20F
這是很大的一個問題 如果你單純指 C 的 standard library
12/30 17:52, 20F

12/30 17:53, , 21F
裡面也有不少部份與 system call 無關, 這是library的部份
12/30 17:53, 21F

12/30 17:53, , 22F
但是裡面也有很多是系統相關的 那你想要的可能比較接近一
12/30 17:53, 22F

12/30 17:55, , 23F
般作業系統課提到的 而非"從頭寫一個OS的書"
12/30 17:55, 23F

12/30 20:33, , 24F
因為我好像有在誠品看過一本就是用C寫OS的書..但那時忘
12/30 20:33, 24F

12/30 20:34, , 25F
了記名字..我不是想越級..而是好奇吧.
12/30 20:34, 25F

12/30 20:50, , 26F
Orange's一個作業系統的實現? 一定會混用到C跟組語
12/30 20:50, 26F

12/30 21:38, , 27F
好像就是這本..謝謝樓上囉
12/30 21:38, 27F

12/30 21:50, , 28F
Orange's 那本書真的用到不少 asm !!
12/30 21:50, 28F

12/30 23:28, , 29F
寫OS在國外的學校可能是大學部專題 但不表示沒經驗可以
12/30 23:28, 29F

12/30 23:29, , 30F
幹出來 寫個shell倒是比較容易
12/30 23:29, 30F

12/31 17:56, , 31F
真的要會一些OS跟asm再去自幹OS....
12/31 17:56, 31F

12/31 17:56, , 32F
<---活生生失敗的例子Q__Q
12/31 17:56, 32F

12/31 17:59, , 33F
推樓上,不過我都很配服自幹王,雖然有時會被笑re-develop.
12/31 17:59, 33F
文章代碼(AID): #1Gtm62KR (C_and_CPP)
文章代碼(AID): #1Gtm62KR (C_and_CPP)