Mono (phần mềm)

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# và 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.

Mono
Thiết kế bởiXimian
Phát triển bởi.NET Foundation và Xamarin (một công ty con của Microsoft)
Phát hành lần đầu30 tháng 6 năm 2004; 19 năm trước (2004-06-30)
Phiên bản ổn định
6.8.0.96 / 15 tháng 1 năm 2020; 4 năm trước (2020-01-15)[1]
Bản xem thử
6.6.0.156 / 15 tháng 11 năm 2019; 4 năm trước (2019-11-15)[2]
Kho mã nguồn
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

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ử

Lịch sử phát hành[7]
NgàyPhiên bản[8]Ghi chú
2004-06-301.0[9]Hỗ trợ C# 1.0
2004-09-211.1[10]
2006-11-091.2[11]Hỗ trợ C# 2.0
2008-10-062.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-132.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-302.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-152.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-222.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-152.10[21]
2012-10-183.0[22]C# 5.0 support, async support, Async Base Class Library Upgrade and MVC4 - Partial, no async features support.
2013-07-243.2[23]Default Garbage Collector is now the SGEN, instead of Boehm
2014-03-313.4[24]
2014-08-123.6[25]
2014-09-043.8[26]
2014-10-043.10[27]
2015-01-133.12[28]
2015-04-294.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-105.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-145.2[31]Support for .NET Standard 2.0, strong assembly names, and experimental default interface members.
2017-10-055.4[32]The JIT Runtime now supports concurrent method compilation and various other Performance Optimisations;
2018-02-015.8[33]Initial WebAssembly port; Modes for the SGen GC; Includes Roslyn’s csi (C# interactive) REPL tool
2018-02-265.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-085.12[35]Port to IBM AIX/i; now includes VB.NET compiler; option to use jemalloc
2018-08-075.14[36]Major Windows.Forms update to improve compatibility with .NET
2018-10-085.16[37]Hybrid suspend garbage collector; Client certificate support; C# 7.3 support
2018-12-215.18[38].NET 4.7.2 support; more CoreFX code is used
2019-07-176.0.0C# 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

Liên kết ngoài

Bản mẫu:Common Language Infrastructure