ฉันตัดสินใจที่จะใช้ความพยายามในการสร้างเว็บเบราว์เซอร์ตั้งแต่เริ่มต้น อะไรคือฟังก์ชันสถาปัตยกรรมและคุณสมบัติทั่วไปของเว็บเบราว์เซอร์สมัยใหม่ที่ฉันควรรู้ก่อนเริ่มต้นใช้งาน
คำแนะนำใด ๆ ขอชื่นชมอย่างมาก!
ฉันตัดสินใจที่จะใช้ความพยายามในการสร้างเว็บเบราว์เซอร์ตั้งแต่เริ่มต้น อะไรคือฟังก์ชันสถาปัตยกรรมและคุณสมบัติทั่วไปของเว็บเบราว์เซอร์สมัยใหม่ที่ฉันควรรู้ก่อนเริ่มต้นใช้งาน
คำแนะนำใด ๆ ขอชื่นชมอย่างมาก!
คำตอบ:
แบ่งมันออกเป็นชิ้น ๆ เว็บเบราว์เซอร์คืออะไร? มันทำอะไร? มัน:
และนั่นก็คือเว็บเบราว์เซอร์โดยสรุป ตอนนี้งานบางอย่างมีความซับซ้อนอย่างไม่น่าเชื่อ แม้แต่คนที่ฟังง่ายก็ยาก ดึงเนื้อหาภายนอก คุณต้องจัดการกับกรณีการใช้งานเช่น:
เหตุผลที่ฉันและคนอื่น ๆ เลิกคิ้วของเราอย่างจริงจังก็คือเอ็นจิ้นการเรนเดอร์นั้นยาก (และอย่างที่มีคนตั้งข้อสังเกตว่ามนุษย์ได้พัฒนาไปหลายปีแล้ว) เอ็นจิ้นการเรนเดอร์หลัก ๆ ได้แก่ :
สามอันดับแรกต้องถือเป็นเอนจิ้นการเรนเดอร์หลักที่ใช้ในปัจจุบัน
เอ็นจิ้น Javascript ก็ยากเช่นกัน มีหลายอย่างที่มักจะเชื่อมโยงกับเอ็นจิ้นการเรนเดอร์เฉพาะ:
และแน่นอนว่ามีอินเทอร์เฟซผู้ใช้ทั้งหมด: การนำทางระหว่างหน้า, ประวัติหน้า, การล้างไฟล์ชั่วคราว, การพิมพ์ URL, การเติม URL อัตโนมัติและอื่น ๆ
นั่นเป็นจำนวนมากของการทำงาน
ดูเหมือนเป็นโครงการที่น่าสนใจจริงๆ แต่คุณจะต้องลงทุนมหาศาล
ไม่ใช่เรื่องง่าย แต่จากมุมมองทางวิชาการคุณสามารถเรียนรู้ได้มากมายจากมัน
แหล่งข้อมูลบางอย่างที่คุณสามารถตรวจสอบได้:
แต่เมื่อมองจากมุมมองที่เป็นจริงความพยายามอย่างมากในการเขียนโค้ดตั้งแต่เริ่มต้นทำให้ฉันนึกถึงการ์ตูนเรื่องนี้:
(ที่มา: geekherocomic.com )
โชคดี :-)
เว็บเบราว์เซอร์ที่ทันสมัยส่วนใหญ่เป็นสัตว์ร้ายขนาดยักษ์และอาจได้รับการออกแบบมาไม่ดีนักเนื่องจาก (และตัวเว็บเอง) พัฒนาไปในทางที่ค่อนข้างจับจด
คุณต้องเริ่มต้นด้วยการกำหนดเป้าหมายของโครงการของคุณก่อน (และสิ่งที่คุณหวังว่าจะบรรลุ) ให้ชัดเจนมาก นี่เป็นสิ่งที่คุณทำเพื่อความสนุกสนานหรือคุณคาดหวังให้คนอื่นใช้เบราว์เซอร์ของคุณ? หากคุณคาดหวังให้คนอื่นใช้มันแรงจูงใจสำหรับพวกเขาจะเป็นอย่างไร? เป็นเรื่องไม่จริงที่จะคาดหวังว่าคุณจะพัฒนาเบราว์เซอร์ใหม่ตั้งแต่เริ่มต้นซึ่งทุกคนจะสามารถใช้แทน Chrome, Safari, Firefox, IE, Opera และอื่น ๆ โครงการทั้งหมดนี้มีระยะเวลาเริ่มต้น 10-15 ปี คุณและเมื่อคุณตามทันพวกเขาอีก 10-15 ปีข้างหน้าคุณ นอกจากนี้พวกเขายังมีพลังของมนุษย์อีกมากมายที่อยู่เบื้องหลังพวกเขาดังนั้นหากคุณต้องการให้โครงการของคุณประสบความสำเร็จคุณจะต้องมีพลังของผู้ชายคนนั้นในบางจุด
นี่คือเหตุผลที่ Apple และ Google บริษัท ใหญ่ที่มีทรัพยากรมากมายไม่ได้เริ่มต้นใหม่ตั้งแต่ต้น แม้กระทั่ง Microsoft ไม่ได้เริ่มต้นใหม่ตั้งแต่ต้น IE ดั้งเดิมนั้นใช้ Mosaic เบราว์เซอร์สำคัญเพียงตัวเดียวที่ยังคงมีอยู่ในปัจจุบันซึ่งเริ่มต้นตั้งแต่เริ่มต้น ได้แก่Opera , KonquerorและLynxซึ่งน่าเสียดายที่ทุกคนมีส่วนแบ่งการตลาดน้อย ลองลืมเกี่ยวกับ Lynx ไปสักครู่เนื่องจากมันเป็นเบราว์เซอร์แบบข้อความเท่านั้นและน่าจะเป็นเหตุผลเดียวที่ยังคงอยู่เพราะมันทำหน้าที่เฉพาะเจาะจงนั้น Opera เป็นหนึ่งในเบราว์เซอร์ที่ดีที่สุดเท่าที่เคยมีมา แต่ก็ไม่เคยมีส่วนแบ่งการตลาดที่ดีเยี่ยมดังนั้นอย่าลืมว่าความสำเร็จและนวัตกรรมไม่ใช่สิ่งเดียวกัน KHTML เป็นเครื่องมือที่อยู่เบื้องหลัง Konqueror ซึ่งไม่เคยประสบความสำเร็จมากนัก แต่เป็นพื้นฐานของ WebKit ที่ทั้ง Apple และ Google ใช้ ฉันคิดว่าอาจมีใครโต้แย้งได้อย่างแน่นอนว่าหากไม่เคยมีการสร้าง KHTML ก็จะไม่มีทั้ง Safari หรือ Chrome ที่น่าสนใจคือทั้ง KHTML และ Opera ส่วนใหญ่ผลิตโดยโปรแกรมเมอร์ชาวนอร์เวย์ที่ทำงานในอาคารเดียวกันในออสโล
คุณต้องดูการสร้างเว็บเบราว์เซอร์เช่นการสร้างระบบปฏิบัติการเพราะโดยพื้นฐานแล้วเบราว์เซอร์คือระบบปฏิบัติการสำหรับเรียกใช้เว็บแอป และเช่นเดียวกับระบบปฏิบัติการเว็บเบราว์เซอร์เป็นซอฟต์แวร์ที่ซับซ้อนมากซึ่งมีส่วนประกอบมากมาย แน่นอนว่าผู้คนประสบความสำเร็จในการสร้างระบบปฏิบัติการใหม่ตั้งแต่เริ่มต้น Linus Torvalds อยู่ในใจ เขาสร้างลินุกซ์ซึ่งเป็นหนึ่งในระบบปฏิบัติการที่ประสบความสำเร็จมากที่สุด
แน่นอนว่าคุณต้องเผชิญกับความท้าทายเพิ่มเติมซึ่งทำให้การสร้างเบราว์เซอร์ใหม่ที่ประสบความสำเร็จนั้นยากกว่าการสร้างระบบปฏิบัติการใหม่ที่ประสบความสำเร็จ คาดว่าเบราว์เซอร์จะเรียกใช้โค้ดดั้งเดิมทั้งหมดที่ลอยอยู่บนเว็บได้อย่างไม่มีที่ติ ตอนนี้สมมติว่า Linus Torvalds ได้รับแจ้งว่าระบบปฏิบัติการใหม่ของเขาจะไม่สำคัญเว้นแต่ว่าจะเข้ากันได้กับ UNIX หรือระบบปฏิบัติการที่มีอยู่เดิม ฉันสงสัยว่าเขาคงรำคาญและ Linux อาจจะไม่มีอยู่ในวันนี้ ตามความเป็นจริงแล้วเหตุผลเดียวที่ Linux เป็นที่นิยมก็เพราะว่าได้รับการออกแบบมาอย่างดีและโครงการ GNU สามารถสร้างเครื่องมือสำหรับการย้ายรหัสที่มีอยู่จำนวนมากไปยัง Linux ได้ หากไม่มีการสนับสนุนทางอุดมการณ์ของ GNU สำหรับ Linux ก็จะไม่มีโอกาส
ดังนั้นสมมติว่าคุณจริงๆมีความทะเยอทะยาน (หรือบ้าบิ่น) พอที่จะพยายามที่จะทำให้ประสบความสำเร็จในเบราว์เซอร์ใหม่สิ่งที่คุณควรจะเน้นเป็นสถาปัตยกรรมและการออกแบบ ไม่มีเหตุผลที่เป็นประโยชน์ในการสร้างเบราว์เซอร์ใหม่ตั้งแต่ต้นเว้นแต่คุณจะแน่ใจว่าสามารถปรับปรุงการออกแบบเบราว์เซอร์ที่มีอยู่ได้ไม่ทางใดก็ทางหนึ่ง นั่นหมายความว่าคุณต้องทำความคุ้นเคยกับรหัสของWebKitและGeckoให้มากพอที่จะเข้าใจการตัดสินใจในการออกแบบ แต่คุณไม่ควรพยายามคัดลอกการออกแบบของพวกเขาเพราะไม่เช่นนั้นคุณก็อาจใช้รหัสของพวกเขาได้เช่นกัน
ความคิดส่วนตัวของฉัน (โดยไม่ได้ทำการวิจัยมากพอ) คือเบราว์เซอร์ในปัจจุบันยังไม่สามารถแยกส่วนได้เพียงพอ ถ้าฉันจะสร้างเบราว์เซอร์ใหม่ฉันจะหาวิธีทำให้ง่ายต่อการสลับสิ่งต่างๆเข้าและออก (เช่นแทนที่ JavaScript engine หนึ่งกับอีกอันหนึ่ง) และให้ผู้ใช้ควบคุมได้มากกว่าที่มีอยู่ในเบราว์เซอร์ที่มีอยู่ในปัจจุบัน . เบราว์เซอร์และนักออกแบบเว็บไซต์สมัยใหม่ได้ควบคุมผู้ใช้ไปเกือบทั้งหมด เหตุใดผู้ใช้จึงไม่สามารถบอกเว็บเบราว์เซอร์ได้ว่าต้องการให้แสดงเนื้อหาที่แสดงบนเครื่องของฉันอย่างไร HTML ดั้งเดิมให้แนวทางในการจัดโครงสร้างเนื้อหาเท่านั้นและเมื่อเวลาผ่านไปมาตรฐานใหม่ ๆ ก็มีมากขึ้นเรื่อย ๆ จนถึงจุดที่ผู้ใช้อยู่ในความเมตตาโดยรวมของนักออกแบบเว็บไซต์ ความน่าสนใจของ Linux คือมันให้การควบคุมกลับไปยังผู้ใช้และนั่นคือ '
อีกอย่างที่ฉันจะใช้เวลาค้นคว้าถ้าฉันเป็นคุณคือหลักการออกแบบระบบปฏิบัติการ การออกแบบเบราว์เซอร์ที่ดีอย่างน้อยก็ควรจะต้องใช้หลักการเดียวกันกับการออกแบบระบบปฏิบัติการที่ดีโดยเฉพาะอย่างยิ่งในเรื่องของกระบวนการที่เกิดขึ้นพร้อมกันรูปแบบความปลอดภัย
ในที่สุดหลังจากทำการวิจัยมากมายแล้วนี่คือจุดที่คุณควรเริ่มเขียนโค้ดฉันคิดว่า:
ออกแบบโมเสกใหม่แต่ด้วยแนวคิดการออกแบบของคุณเอง นี่คือสิ่งที่ฉันจะแนะนำหากคุณแค่ทำเพื่อความสนุกสนานหรือประโยชน์ทางการศึกษาของคุณเอง อ่านข้อกำหนด HTML 1.0 และ HTML 2.0 ดั้งเดิมตลอดจนข้อกำหนด HTTP 1.1 และข้อกำหนด URI ปัจจุบันและตรวจสอบว่าเบราว์เซอร์ของคุณปฏิบัติตามข้อกำหนดเหล่านั้นทั้งหมด แน่นอนคุณสามารถดาวน์โหลดซอฟต์แวร์ที่มีอยู่ซึ่งจัดการโปรโตคอลการขนส่งอนุสัญญา URI และอื่น ๆ อยู่แล้ว แต่ถ้าคุณจริงจังกับการออกแบบเบราว์เซอร์ของคุณเองฉันคิดว่ามันเป็นแบบฝึกหัดที่ดีที่จะทำสิ่งเหล่านี้ตั้งแต่เริ่มต้นเช่นกันดังนั้นคุณจะได้รับ ความรู้สึกที่ดีว่าชิ้นส่วนปริศนาทั้งหมดเข้ากันได้อย่างไร ในตอนท้ายของขั้นตอนที่ 0 คุณควรมีเบราว์เซอร์ที่เทียบเคียงได้กับสิ่งที่ล้ำสมัยในยุค 90 เป็นอย่างน้อย นี่เป็นก้าวแรกที่ดี และคุณสามารถดาวน์โหลด Mosaic ดั้งเดิมได้ที่ftp://ftp.ncsa.uiuc.edu/Mosaic/และดูว่าเปรียบเทียบกับเบราว์เซอร์ของคุณอย่างไร นอกจากนี้ยังเป็นแบบฝึกหัดที่ดีในการดูว่าเว็บไซต์ปัจจุบันแสดงผลอย่างไรในเบราว์เซอร์โบราณเช่น Mosaic
เพิ่มการรองรับ DOM ให้กับเบราว์เซอร์ของคุณ มุ่งเน้นไปที่ W3C DOM ระดับ 1 และระดับ 2 ก่อนเนื่องจากเบราว์เซอร์ปัจจุบันเกือบทั้งหมดรองรับเบราว์เซอร์เหล่านี้อย่างสมบูรณ์ จากนั้นดูที่ระดับ 3 และระดับ 4 DOM เป็นพื้นฐานอย่างยิ่งสำหรับการเขียนโปรแกรมบนเว็บดังนั้นหากคุณกำลังจะสร้างเว็บเบราว์เซอร์ที่ทันสมัยการออกแบบทั้งหมดจะต้องคำนึงถึงสิ่งนี้ด้วย เนื่องจากคุณกำลังเขียนเบราว์เซอร์ใน C # คุณอาจต้องพิจารณาว่าคุณจะใช้ประโยชน์จากโมเดลอ็อบเจ็กต์. NET ที่มีอยู่ให้เป็นประโยชน์ได้อย่างไร
ดูเครื่องมือการเขียนสคริปต์ที่มีอยู่และดูว่าคุณสามารถย้ายไปยังโครงการของคุณได้หรือไม่ ฉันไม่แนะนำให้คุณเขียนล่าม JavaScript ของคุณเองไม่ใช่เพียงเพราะเป็นโปรเจ็กต์ที่ใหญ่มากในตัวเอง แต่เนื่องจากมีงานมากมายในการเพิ่มประสิทธิภาพคอมไพเลอร์ JS (เช่น V8) ดังนั้นหากคุณไม่ได้เป็นกูรูด้านการออกแบบคอมไพเลอร์ล่าม JS ที่สร้างขึ้นด้วยมือของคุณอาจด้อยกว่าสิ่งที่มีอยู่แล้วแม้ว่าจะเป็นไปตามข้อกำหนด EMCAScript อย่างไม่มีที่ติ อีกครั้งฉันคิดว่าเอ็นจิ้นการเขียนสคริปต์ควรเป็นโมดูลที่แยกจากเบราว์เซอร์จริงโดยสิ้นเชิงดังนั้นฉันคิดว่ามันจะมีประโยชน์มากกว่าที่จะมีเฟรมเวิร์กที่ช่วยให้คุณสามารถแทนที่เอ็นจินการเขียนสคริปต์ใด ๆ แทนที่จะสร้างเอ็นจินการเขียนสคริปต์ ที่ใช้งานได้กับเบราว์เซอร์ของคุณเท่านั้น
ดูซอร์สโค้ด HTML / CSS / JS สำหรับเว็บไซต์ 10-20 อันดับแรกในอเมริกาเหนือ (Google, Facebook, YouTube, Twitter, Wikipedia, Amazon, แพลตฟอร์มบล็อกยอดนิยม ฯลฯ ) และออกแบบเบราว์เซอร์ของคุณให้ทำงานได้ดีกับไซต์เหล่านี้ . นี่เป็นปัญหาที่ค่อนข้างแก้ไขได้ง่ายกว่าการสร้างเบราว์เซอร์ที่เป็นไปตามมาตรฐานที่มีอยู่ทั้งหมด (สิ่งที่เบราว์เซอร์ปัจจุบันยังทำได้ไม่สมบูรณ์) น้อยกว่าการสร้างเบราว์เซอร์ที่แสดงผลเว็บไซต์ทั้งหมดบนเว็บอย่างถูกต้อง (ไม่มีใครทำได้ ทำอย่างนั้น). ผู้คนจะบ่นว่าเบราว์เซอร์ของคุณละเมิดมาตรฐานและอื่น ๆ แต่นั่นไม่ใช่ปัญหาใหญ่เท่าที่มีคนบ่นว่าไม่สามารถเข้าถึง Google หรือ Facebook ด้วยเบราว์เซอร์ของคุณ ฉันไม่สามารถนึกถึงเบราว์เซอร์ใด ๆ ที่ปฏิบัติตามมาตรฐานทั้งหมด (หรือส่วนใหญ่) อย่างถูกต้องในรุ่นแรกดังนั้นฉันจึงบอกว่าไม่ต้องพยายามเลย
คุณหมายถึงการเขียนเอนจิ้นการเรนเดอร์ของคุณเองหรือเปล่า?
ฉันพูดได้แค่ว่าโชคดี หลายปีที่ผ่านมามนุษย์ได้เข้าสู่เบราว์เซอร์ที่หลากหลายในปัจจุบันหากคุณต้องการที่จะทำได้ดีกว่าตัวใดตัวหนึ่งคุณจะต้องมีทักษะที่จริงจัง หากคุณต้องถามว่าจะเริ่มจากตรงไหนคุณอาจต้องศึกษามากกว่าสองสามปีก่อนที่จะลองทำภารกิจดังกล่าว
ที่กล่าวว่านี่คือตัวชี้ (ชัดเจน) บางส่วน:
แก้ไขด้านล่างที่นี่
ฉันไม่ได้ตั้งใจให้มันเป็นแรงจูงใจหรือลดแรงจูงใจ แต่เป็นเพียงความพยายามที่จะแสดงให้คุณเห็นว่าเบราว์เซอร์เป็นโครงการที่ใหญ่มากและโครงการใหญ่ ๆ นั้นต้องใช้ความคิดเป็นอย่างมาก ความซื่อสัตย์ตรงไปตรงมาโรยด้วยอารมณ์ขัน
ฉันเขียนโปรแกรมมานานกว่าสองในสามของชีวิตแล้วและฉันชอบคิดว่าฉันเป็นโปรแกรมเมอร์ที่ดีทีเดียว แต่ฉันคงโง่ที่คิดว่าฉันมีโอกาสครึ่งหนึ่งในการเขียนเว็บเบราว์เซอร์ที่ดีตั้งแต่เริ่มต้น .
แน่นอนว่าหากนี่คือสิ่งที่คุณต้องการทำอย่าปล่อยให้ความคิดเห็นของฉันขวางทางคุณ คุณอาจทำได้ดีกว่า Internet Explorer
เป็นโครงการที่มีความทะเยอทะยานอย่างมาก (โดยเฉพาะสำหรับนักพัฒนารายเดียว) แต่สิ่งที่ฉันอยากจะทำในสักวันหนึ่งคุณจะได้เรียนรู้มากมายจากมัน
ฉันไม่รู้มากเกี่ยวกับวิธีการทำงานของโปรโตคอล (สิ่งที่คุณต้องค้นคว้าอย่างแน่นอน) หรือเกี่ยวกับสิ่งที่เกิดขึ้นในเบราว์เซอร์ แต่จุดเริ่มต้นที่ดีคือที่มาของเบราว์เซอร์โอเพนซอร์สซึ่งส่วนใหญ่เป็น Chrome และ Firefox Chrome เป็นโครงการที่ดีอย่างยิ่งในการพิจารณาเนื่องจากพวกเขาทำในสิ่งที่ฉันคาดหวังให้คุณเริ่มต้นด้วย Chrome และแบ็กเอนด์ของเบราว์เซอร์ ลืมการสร้างเอนจิ้นการเรนเดอร์ในตอนแรก - ใช้ Webkit หรือ Gekko
อย่างที่ใคร ๆ พูดไปแล้วเว็บเบราว์เซอร์เป็นโครงการขนาดใหญ่ คุณต้องกังวลเกี่ยวกับ tcp / ip & sockets การแสดงผล html การใช้ css การสร้างแบบจำลอง DOM การเรียกใช้จาวาสคริปต์การจัดการกับมาร์กอัปและโค้ดที่ผิดรูปแบบและการจัดการไฟล์ทุกประเภทก่อนที่คุณจะสามารถคิดถึงทุกสิ่งที่ผู้คนคาดหวัง เบราว์เซอร์ (เช่นบุ๊กมาร์กประวัติการท่องเว็บแบบส่วนตัวความปลอดภัย ฯลฯ ) เป็นโครงการขนาดใหญ่
ที่กล่าวมานั้นสามารถทำได้ ข้อเสนอแนะของฉันคือไปดูที่มาของ Firefox ฉันรู้ว่าคุณบอกว่าคุณต้องการสร้างเบราว์เซอร์ตั้งแต่เริ่มต้น แต่จะมีประโยชน์มากที่จะเรียนรู้จากโครงการโอเพนซอร์สก่อน
ฉันจะดาวน์โหลดซอร์สไฟร์ฟอกซ์และค่อยๆถอดออก กล่าวอีกนัยหนึ่งฉันจะใช้แหล่งที่มาและลบฟังก์ชันการทำบุ๊กมาร์กทั้งหมด จากนั้นฉันจะลบความสามารถในการจัดการ addons จากนั้นฉันจะลบรหัสทั้งหมดเกี่ยวกับการบันทึกไฟล์ ผมจะดำเนินการขั้นตอนนี้จนกระทั่งผมได้มากเว็บเบราว์เซอร์ขั้นพื้นฐาน ฉันจะดูรหัสนั้น
จากนั้นฉันจะเริ่มสร้างของตัวเอง ฉันจะนำความรู้ที่ได้รับจากการแยก Firefox ออกและนำไปสร้างเบราว์เซอร์ใหม่
ขอให้คุณโชคดี !
exe
ไฟล์เมื่อติดตั้งซึ่งฉันได้รับโฟลเดอร์ซอร์สที่มีdll
ไฟล์จำนวนมาก ฉันจะศึกษารหัสจริงที่ทำสิ่งนี้ได้อย่างไรและตรรกะที่อยู่เบื้องหลังสิ่งนี้
ตอนนี้ Udacity มีหลักสูตรที่ชื่อว่า "การสร้างเว็บเบราว์เซอร์" - https://www.udacity.com/course/programming-languages--cs262
คุณสามารถเริ่มต้นด้วย XHTML ที่มีรูปแบบดีและถูกต้องซึ่งน่าจะง่ายกว่าแท็กที่เบราว์เซอร์ของคุณจะพบใน "ชีวิต" จริง
จากนั้นคุณต้องหาวิธีที่จะทำให้ HTML จริงจากเว็บเป็นไปตามความต้องการของคุณ
แต่อย่าล้อเลียนตัวเอง: เบราว์เซอร์ไม่ใช่โครงการขนาดเล็ก
... จากนั้นเริ่มกังวลเกี่ยวกับความปลอดภัย
(โดยทั่วไปควรคำนึงถึงข้อกังวลเกี่ยวกับการไม่ใช้งานและการตัดข้ามก่อน :))
โครงการที่มีความทะเยอทะยานมาก แต่นักพัฒนารายหนึ่งไม่สามารถทำสิ่งนี้ได้โดยลำพังคุณต้องมีทีม (ผู้จัดการโครงการผู้ทดสอบ ... ) และบางทีคุณควรตรวจสอบตัวเลือกภาษา c # ที่ใช้งานได้บน windows เท่านั้น (ฉันรู้ว่าโมโนบน linux แต่ไม่ใช่ เหมือนกัน) อย่างไรก็ตามฉันขอให้คุณโชคดีและฉันยินดีที่จะใช้เบราว์เซอร์ของคุณ: D
คุณมีเวลาว่างอยู่ในมือจริงๆใช่ไหม? AFAIK เบราว์เซอร์ส่วนใหญ่เขียนด้วย C ++ ไม่ใช่ผู้ใช้ทุกคนที่ติดตั้ง. NET framework บนคอมพิวเตอร์และหากทำเช่นนั้นอาจไม่ใช่เวอร์ชันที่คุณต้องการ
อาจใช้เวลาหลายปี แต่อย่างไรก็ตามมีเบราว์เซอร์โอเพ่นซอร์สมากมายเช่น FireFox, Google Chrome .. ฯลฯ คุณสามารถเริ่มต้นด้วยการดูรหัสขอให้โชคดี :)