Mono (phần mềm)

Bách khoa toàn thư mở Wikipedia
Mono
Mono Project Logo.svg
Sơ đồ kiến trúc Mono
Sơ đồ kiến trúc Mono
Thiết kế bởiXimian
Phát triển bởi.NET FoundationXamarin (một công ty con của Microsoft)
Phát hành lần đầu30 tháng 6 năm 2004; 18 năm trước (2004-06-30)
Phiên bản ổn định
6.8.0.96 / 15 tháng 1 năm 2020; 2 năm trước (2020-01-15)[1]
Bản xem thử
6.6.0.156 / 15 tháng 11 năm 2019; 3 năm trước (2019-11-15)[2]
Repository Sửa dữ liệu tại Wikidata
Viết bằngC, C#, XML
Hệ điều hànhWindows, macOS, Linux
Nền tảngIA-32, x64, IA-64, ARM, MIPS, PowerPC, SPARC, S390
Thể loạiSoftware framework
Giấy phépMIT License[3]
Websitemono-project.com

Mono là một dự án tự do nguồn mở nhằm tạo ra một để tạo software framework tương thích .NET Framework tương thích tiêu chuẩn Ecma, bao gồm một trình biên dịch C#Common Language Runtime. Ban đầu bởi Ximian, nó được Novell mua lại, và bây giờ được dẫn đầu bởi Xamarin, một công ty con của Microsoft[4].NET Foundation. Mục đích đã nêu của Mono không chỉ là có thể chạy các ứng dụng đa nền tảng của Microsoft mà còn mang lại các công cụ phát triển tốt hơn cho các nhà phát triển Linux.[5] Mono có thể chạy trên nhiều hệ thống phần mềm bao gồm Android, hầu hết các bản phân phối Linux, BSD, macOS, Windows, Solaris và thậm chí một số máy chơi game như [ PlayStation 3, Wii, và Xbox 360.

Dự án Mono đã gây tranh cãi trong cộng đồng nguồn mở, vì nó triển khai các phần của .NET Framework có thể được bảo vệ bởi các bằng sáng chế của Microsoft. Mặc dù các phần của .NET Framework được tiêu chuẩn hóa được trình bày trong Microsoft Open Specification Promise—một giao ước nói rằng Microsoft sẽ không khẳng định bằng sáng chế của mình chống lại việc triển khai các thông số kỹ thuật của mình trong các điều kiện nhất định, dự án có thể trở thành mục tiêu của các vụ kiện vi phạm bằng sáng chế. Sau khi Microsoft cung cấp nguồn mở cho một số công nghệ .NET cốt lõi kể từ năm 2014 và mua lại Xamarin vào đầu năm 2016, một cam kết bằng sáng chế đã được cấp cho dự án Mono.

Logo của Mono là khuôn mặt của một con khỉ cách điệu, mono trong tiếng Tây Ban Nha nghĩa là khỉ.[6]

Lịch sử[sửa | sửa mã nguồn]

Lịch sử phát hành[7]
Ngày Phiên bản[8] Ghi chú
2004-06-30 1.0[9] Hỗ trợ C# 1.0
2004-09-21 1.1[10]
2006-11-09 1.2[11] Hỗ trợ C# 2.0
2008-10-06 2.0[12] API của Mono hiện tương đương với .NET 2.0. Giới thiệu trình biên dịch C# 3.0 và trình biên dịch Visual Basic 8. API dành riêng cho Mono mới: Mono.Cecil, Mono{.Cairo and Mono.Posix. Gtk# 2.12 được phát hành. Công cụ xác minh Gendarme và Mono Linker được giới thiệu.
2009-01-13 2.2[13] Mono chuyển engine JIT của nó sang một miêu tả mới[14] giúp tăng hiệu suất và giới thiệu hỗ trợ SIMD trong Mono.Simd[15] Mono.Simd namespace.
Mono introduces Full Ahead of Time compilation that allows developers to create full static applications and debuts the C# Compiler as a Service[16] and the C# Interactive Shell[17] (C# REPL)
2009-03-30 2.4[18] This release mostly polishes all the features that shipped in 2.2 and became the foundation for the Long-Term support of Mono in SUSE Linux.
2009-12-15 2.6[19] The Mono runtime is now able to use LLVM as a code generation backend and this release introduces Mono co-routines, the Mono Soft Debugger and the CoreCLR security system required for Moonlight and other Web-based plugins.
On the class library System.IO.Packaging, WCF client, WCF server, LINQ to SQL debut. The Interactive shell supports auto-completion and the LINQ to SQL supports multiple database backends. The xbuild build system is introduced.
2010-09-22 2.8[20] Defaults to .NET 4.0 profile, C# 4.0 support, new generational garbage collector, includes Parallel Extensions, WCF Routing, CodeContracts, ASP.NET 4.0, drops the 1.0 profile support; the LLVM engine tuned to support 99.9% of all generated code, runtime selectable llvm and gc; incorporates Dynamic Language Runtime, MEF, ASP.NET MVC2, OData Client open-source code from Microsoft;. Will become release 3.0
2011-02-15 2.10[21]
2012-10-18 3.0[22] C# 5.0 support, async support, Async Base Class Library Upgrade and MVC4 - Partial, no async features support.
2013-07-24 3.2[23] Default Garbage Collector is now the SGEN, instead of Boehm
2014-03-31 3.4[24]
2014-08-12 3.6[25]
2014-09-04 3.8[26]
2014-10-04 3.10[27]
2015-01-13 3.12[28]
2015-04-29 4.0[29] Defaults to .NET 4.5 profile and ships only .NET 4.5 assemblies, defaults to C# 6.0. First release to integrate Microsoft open-source .NET Core code
2017-05-10 5.0[30] Shipping Roslyn C# compiler to enable C#7 support; Shipping msbuild and deprecating xbuild for better compatibility; Enabling concurrent SGen garbage collector to reduce time spent in GC; Introducing the AppleTLS stack on macOS for HTTPS connections; Continued Progress on .NET Class Library convergence; Updated libjpeg in macOS package
2017-07-14 5.2[31] Support for .NET Standard 2.0, strong assembly names, and experimental default interface members.
2017-10-05 5.4[32] The JIT Runtime now supports concurrent method compilation and various other Performance Optimisations;
2018-02-01 5.8[33] Initial WebAssembly port; Modes for the SGen GC; Includes Roslyn’s csi (C# interactive) REPL tool
2018-02-26 5.10[34] The Interpreter is now included in the default installation; runtime now supports Default Interface Methods; WebAssembly considered reliable now; Support for .NET 4.7.1 / C# 7.2 / F# 4.1
2018-05-08 5.12[35] Port to IBM AIX/i; now includes VB.NET compiler; option to use jemalloc
2018-08-07 5.14[36] Major Windows.Forms update to improve compatibility with .NET
2018-10-08 5.16[37] Hybrid suspend garbage collector; Client certificate support; C# 7.3 support
2018-12-21 5.18[38] .NET 4.7.2 support; more CoreFX code is used
2019-07-17 6.0.0 C# compiler defaults to version C# 8.0 RC; Various stability improvement in debugger support; Mono Interpreter is feature complete and stable

Khi Microsoft lần đầu thông báo về .NET Framework vào tháng 6 năm 2000, nó được mô tả như là "một nền tảng mới dựa trên những tiêu chuẩn của Internet",[39] và vào tháng 12 cùng năm, Common Language Infrastructure (cơ sở hạ tầng ngôn ngữ dùng chung) đã được xuất bản dưới dạng một tiêu chuẩn mở, "ECMA-335",[40] mở ra triển vọng mới cho việc hiện thực hóa một cách độc lập.[41] Lập trình viên Miguel de Icaza tại Ximian tin rằng .NET có những tiềm năng giúp tăng hiệu suất làm việc của các lập trình viên, và anh đã bắt đầu nghiên cứu xem liệu một phiên bản dành cho Linux có thể được thực hiện.[42] Sau khi đội ngũ phát triển nhận ra với quy mô nhỏ hẹp sẽ không thể trông chờ vào việc xây dựng và hỗ trợ một sản phẩn hoàn chỉnh, vào ngày 19 tháng 07 năm 2001 tại hội nghị O'Reilly, dự án mã nguồn mở Mono đã chính thức được khởi động.

Sau ba năm xây dựng, phiên bản Mono 1.0 đã được phát hành vào ngày 30 tháng 06 năm 2004.[43] Từ trọng tâm ban đầu là nền tảng dành cho các nhà phát triển ứng dụng máy tính chạy trên Linux, Mono đã mở rộng sang hỗ trợ một loạt các kiến trúc và hệ điều hành - bao gồm cả hệ thống nhúng.[44]

Vào tháng 8 năm 2003, Novell đã mua lại Ximian. Sau khi chính Novell được The Attachmate Group mua lại vào năm 2011, Attachmate đã thông báo hàng trăm vụ sa thải trong thành phần lao động của Novell,[45] và vì thế cũng đặt ra một dấu hỏi lớn về tương lai sau này của Mono.[46][47]

Ngày 16 tháng 05 năm 2011, Miguel de Icaza đã thông báo trên blog của mình, rằng Mono sẽ tiếp tục được hỗ trợ bởi Xamarin, một công ty được chính Miguel de Icaza thành lập sau khi anh bị sa thải khỏi Novell. Đội ngũ phát triển gốc của Mono cũng đã chuyển đến công ty mới này. Xamarin dự kiến sẽ tiếp tục phát triển Mono, và bên cạnh đó công ty cũng đã lên kế hoạch viết lại từ đầu các stacks độc quyền của riêng .NET dành cho hệ điều hành iOS and Android, bởi vì Novell vẫn đang sở hữu MonoTouch và Mono for Android vào lúc đó.[48] Sau thông báo này, tương lai của dự án vẫn còn bị đặt câu hỏi, khi MonoTouch và Mono for Android nằm trong thế cạnh tranh trực tiếp với những dịch vụ thương mại bấy giờ đã thuộc quyền sở hữu của Attachmate, và đội ngũ tại Xamarin có thể sẽ gặp khó khăn khi phải chứng minh rằng họ không sử dụng lại những công nghệ mà trước đây họ đã phát triển khi còn làm cho Novell.[49] Tuy nhiên, vào tháng 07 năm 2011, Novell, giờ đây đã là công ty con của Attachmate, và Xamarin, thông báo rằng họ đã cấp một giấy phép vĩnh viễn cho Xamarin đối với Mono, MonoTouch và Mono for Android, từ đó Xamarin chính thức tiếp quản lại toàn bộ dự án.[50][51]

Tham khảo[sửa | sửa mã nguồn]

  1. ^ “Mono 6.8.0 Release Notes”. Truy cập ngày 21 tháng 1 năm 2020.
  2. ^ https://github.com/mono/website/commit/5b09541ab4837703d413a071658a5ac8e0634ed3
  3. ^ “FAQ: Licensing – Mono”. Truy cập ngày 19 tháng 11 năm 2016.
  4. ^ “Microsoft to acquire Xamarin and empower more developers to build apps on any device”. Official Microsoft Blog. Truy cập ngày 24 tháng 2 năm 2016.
  5. ^ “Mono Project aims to bring .Net apps to Linux”. ZDNet. 29 tháng 10 năm 2001. Called the Mono Project, this effort encompasses creating a development environment that will allow applications developed for .Net to run on Linux systems as well as at Windows systems. Mono originated out of a need for improved development tools for the GNOME community and for Ximian specifically, according to Miguel de Icaza, Ximian's chief technical officer.
  6. ^ “Ximian's Mono project: .NET for monkeys, penguins, and gnomes”. TechRepublic. Lưu trữ bản gốc ngày 10 tháng 4 năm 2016.
  7. ^ “Mono Releases - Mono”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015.
  8. ^ “OldReleases - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013.
  9. ^ “Mono 1.0 Release Notes”. Go-mono.com. Truy cập ngày 17 tháng 7 năm 2013.
  10. ^ “Mono 1.1.1: Development Release: Features and Known Issues”. Go-mono.com. Truy cập ngày 17 tháng 7 năm 2013.
  11. ^ “Mono 1.2: Release Notes”. Go-mono.com. Truy cập ngày 17 tháng 7 năm 2013.
  12. ^ “Release Notes Mono 2.0 - Mono”. Mono-project.com. 6 tháng 10 năm 2008. Truy cập ngày 17 tháng 7 năm 2013.
  13. ^ “Release Notes Mono 2.2 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013.
  14. ^ “Linear IR - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013.
  15. ^ “Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza”. Tirania.org. 3 tháng 11 năm 2008. Truy cập ngày 17 tháng 7 năm 2013.
  16. ^ “Mono's C# Compiler as a Service on Windows. - Miguel de Icaza”. Tirania.org. 27 tháng 4 năm 2010. Truy cập ngày 17 tháng 7 năm 2013.
  17. ^ “CsharpRepl - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013.
  18. ^ “Release Notes Mono 2.4 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013.
  19. ^ “Release Notes Mono 2.6 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013.
  20. ^ “Release Notes Mono 2.8 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013.
  21. ^ “Release Notes Mono 2.10 - Mono”. Mono-project.com. Truy cập ngày 17 tháng 7 năm 2013.
  22. ^ “Release Notes Mono 3.0”. Mono-project.com. Truy cập ngày 23 tháng 9 năm 2013.
  23. ^ “Release Notes Mono 3.2”. Mono-project.com. Truy cập ngày 23 tháng 9 năm 2013.
  24. ^ “Release Notes Mono 3.4”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015.
  25. ^ “Release Notes Mono 3.6”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015.
  26. ^ “Release Notes Mono 3.8”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015.
  27. ^ “Release Notes Mono 3.10”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015.
  28. ^ “Release Notes Mono 3.12”. Mono-project.com. Truy cập ngày 4 tháng 4 năm 2015.
  29. ^ “Release Notes Mono 4.0”. Mono-project.com. Truy cập ngày 3 tháng 5 năm 2015.
  30. ^ “Release Notes Mono 5.0”. Mono-project.com. Truy cập ngày 13 tháng 5 năm 2017.
  31. ^ “Mono 5.2.0 Release Notes”.
  32. ^ “Mono 5.4.0 Release Notes”.
  33. ^ “Mono 5.8.0 Release Notes”.
  34. ^ “Mono 5.10.0 Release Notes”.
  35. ^ “Mono 5.12.0 Release Notes”.
  36. ^ “Mono 5.14.0 Release Notes”.
  37. ^ “Mono 5.16.0 Release Notes”.
  38. ^ “Mono 5.18.0 Release Notes”.
  39. ^ Bonisteel, Steven (23 tháng 6 năm 2000). “Microsoft sees nothing but .NET ahead”. ZDNet. Bản gốc lưu trữ ngày 5 tháng 11 năm 2011. Truy cập ngày 7 tháng 2 năm 2020.
  40. ^ “ECMA-335-Part-I-IV - ECMA-335, 1st edition, December 2001” (PDF).
  41. ^ Wilcox, Joe; Shankland, Stephen (28 tháng 6 năm 2001). “Microsoft edges into sharing code”. ZDNet.
  42. ^ “[Mono-list] Mono early history”. 13 tháng 10 năm 2003. Bản gốc lưu trữ ngày 6 tháng 6 năm 2011. Truy cập ngày 7 tháng 2 năm 2020.
  43. ^ “OSS .NET implementation Mono 1.0 released - Ars Technica”. ArsTechnica. Truy cập ngày 23 tháng 10 năm 2009.
  44. ^ “Supported Platforms”. Mono website.
  45. ^ Koep, Paul (2 tháng 5 năm 2011). “Employees say hundreds laid off at Novell's Provo office”. KSL-TV. Truy cập ngày 7 tháng 5 năm 2011.
  46. ^ J. Vaughan-Nichols, Steven (4 tháng 5 năm 2011). “Is Mono dead? Is Novell dying?”. ZDNet. Truy cập ngày 7 tháng 5 năm 2011.
  47. ^ Clarke, Gavin (3 tháng 5 năm 2011). “.NET Android and iOS clones stripped by Attachmate”. The Register. Truy cập ngày 7 tháng 5 năm 2011.
  48. ^ “Announcing Xamarin - Miguel de Icaza”. Tirania.org. 16 tháng 5 năm 2011. Truy cập ngày 17 tháng 7 năm 2013.
  49. ^ “The Death and Rebirth of Mono”. infoq.com. 17 tháng 5 năm 2011. Truy cập ngày 29 tháng 5 năm 2011. Even if they aren't supporting it, they do own a product that is in direct competition with Xamarin's future offerings. Without some sort of legal arrangement between Attachmate and Xamarin, the latter would face the daunting prospect of proving that their new development doesn't use any the technology that the old one did. Considering that this is really just a wrapper around the native API, it would be hard to prove you had a clean-room implementation even for a team that wasn't intimately familiar with Attachmate's code.
  50. ^ “SUSE and Xamarin Partner to Accelerate Innovation and Support Mono Customers and Community”. Novell. 18 tháng 7 năm 2011. Truy cập ngày 18 tháng 7 năm 2011. The agreement grants Xamarin a broad, perpetual license to all intellectual property covering Mono, MonoTouch, Mono for Android and Mono Tools for Visual Studio. Xamarin will also provide technical support to SUSE customers using Mono-based products, and assume stewardship of the Mono open source community project.
  51. ^ de Icaza, Miguel (18 tháng 7 năm 2011). “Novell/Xamarin Partnership around Mono”. Truy cập ngày 18 tháng 7 năm 2011.

Liên kết ngoài[sửa | sửa mã nguồn]

Bản mẫu:Common Language Infrastructure