Giải thích Source code là gì? Mã nguồn mở và mã nguồn đóng là gì?

Source code là gì? Có thể không phải là lập trình viên, nhưng chắc hẳn bạn đã từng nghe các anh lập trình viên ngồi quán cà phê, trà đá nói gì đó về Source code. Qua bài viết này, bạn sẽ biết được Source code là gì, mục đích, l

Source code là gì?

Source code hay mã nguồn, là thành phần cơ bản của một chương trình máy tính chứa các mã lệnh thực thi và được tạo ra bởi các lập trình viên. Hay giải thích một cách khác thì mã nguồn, là những kí tự được con người nhập vào máy tính dưới dạng một văn bản thuần túy.

Mở rộng ra, Source code bao gồm cả mã máy (ngôn ngữ bao gồm 2 kí hiệu 0 và 1) và các kí hiệu trong ngôn ngữ đồ hoạ (ngôn ngữ gần gũi với con người), cả hai thứ trên đều không phải là văn bản.

Source-Code-la-gi
Mã nguồn là thành phần cơ bản của chương trình máy tính

Con người bình thường có thể đọc và hiểu được mã nguồn, khi lập trình viên sử dụng ngôn ngữ lập trình để viết ra những câu lệnh. Những câu lệnh được viết ra và lưu lại trong một nào đó như tệp notepad chẳng hạn, nó sẽ được gọi là tệp chứa mã nguồn.

Lập trình viên có thể sử dụng phần mềm gõ văn bản thông thường hoặc một bộ công cụ trực quan chuyên cho code, một môi trường phát triển tích hợp IDE (Integrated Development Environment); và cũng có thể là một bộ phát triển phần mềm SDK (Software Development Kit) để phát triển mã nguồn.

Có thể bạn muốn xem thêm: Source là gì? Tổng hợp các kiến thức liên quan về source

Lịch sử phát triển của Source code

Ở giai đoạn đầu khoản thập niên 1940, mã nguồn được lưu dưới dạng nhị phân bao gồm 2 kí tự 0 và 1 thông qua các bản điều khiển của máy tính. Ngôn ngữ lập trình thế hệ đầu tiên này không có sự phân biệt giữa mã nguồn và mã máy.

Trong giai đoạn này source code rất khó khăn để hiểu, nhớ và viết. Một trong những mã nguồn đầu tiên có thể được thực hiện bởi Tom Kilburn, một nhà khoa học máy tính tiên phong. Ông đã thành công khi lưu được chương trình số đầu tiên trong bộ nhớ máy tính vào 1948, và phần mềm này giải được một chương trình toán học.

Source-Code-la-gi

Vào khoản thập niên 50 và 60 của thế kỉ trước, mã nguồn đã được phát triển, tuy nhiên chúng được phát hành miễn phí. Ví dụ điển hình như IBM họ phân phối miễn phí bản quyền phần mềm, họ chỉ tính tiền phần cứng. Cho đến 1983, IBM bắt đầu tính cả phí sử dụng phần mềm.

Những tạp chí điện tử vào thời đó sẽ viết, in mã nguồn lên giấy. Khi người dùng muốn sử dụng thì họ phải gõ lại những kí tự đó để có thể sử dụng phần mềm. Sau đó đĩa mềm đã được phát triển với giá cả phải chăng cho việc chia sẻ mã nguồn trở nên dễ dàng hơn. Ở thời điểm hiện tại của chúng ta Internet đã làm việc chia sẻ mã nguồn không còn một rào cản nào nữa.

Khi trước mã nguồn được công khai và chia sẻ miễn phí. Tuy nhiên hiện tại thì phần lớn các ứng dụng mà bạn sử dụng rất hiếm được chia sẻ mã nguồn vì nó sẽ liên quan đến bản quyền và bảo mật.

Ví dụ điển hình: Bạn sử dụng hệ điều hành Window, Mac OS nhưng có bao giờ bạn thấy mã nguồn của chúng không? Bạn sử dụng các ứng dụng điện thoại chẳng hạn, bạn cũng không thể thấy được chúng.

Source-Code-la-gi
Hình nền quá quen thuộc của một hệ điều hành nào đó mà bạn từng sử dụng

Vậy mục đích của mã nguồn là gì? Và phần mềm khi đến tay của bạn sử dụng có còn được gọi là mã nguồn hay không?

Mục đích của mã nguồn

Mục đích chính của mã nguồn là làm nền tảng để tạo ra các phần mềm. Ngoài ra mã nguồn còn có nhiều mục đích khác như: hạn chế cho những người có kĩ năng mới có thể truy cập, những người có quyền hạn với mã nguồn mới có thể truy cập, điều chỉnh và cài đặt phần mềm.

Một mục đích khác nữa là giúp các nhà phát triển, lập trình viên khác có thể tiếp tục xây dựng chương trình tương tự trên các hệ điều hành khác, hoặc nâng cấp phiên bản hiện tại lên.

Tuy nhiên cũng là một bài toán, với lập trình thì sẽ có vô vàn cách giải quyết, thế nên việc ghi chú lại mục đích của dòng mã là rất cần thiết. Để các lập trình viên, các nhà phát triển khác hiểu người đi trước đã làm gì, sau đó họ sẽ tiếp bước thực hiện công việc.

Source code và bản quyền

Có 2 loại mã nguồn là mã nguồn đóng và mã nguồn mở. Điểm khác biệt chính giữa chúng là chi phí cho bản quyền và mục đích thực hiện.

Mã nguồn mở

Với mã nguồn mở, cộng đồng có thể tham gia vào chỉnh sửa, đóng góp sao cho phần mềm, ứng dụng đó tốt hơn; hoặc tuỳ chỉnh để phù hợp với mục đích sử dụng.

Mã nguồn mở giúp cho các sinh viên, học sinh và những người muốn tìm hiểu về lập trình có một bộ mã hoàn chỉnh để tham khảo cũng như phục vụ mục đích học tập.

Mã nguồn mở và phần mềm mã nguồn mở thường được phát hành dưới giấy phép như GNU General Public License. Để người dùng có thể tải về sử dụng, tuỳ biến một cách hoàn toàn hợp pháp.

Mã nguồn đóng

Mã nguồn đóng ở xung quanh bạn, chúng là những ứng dụng, phần mềm bạn đang sử dụng như: Window, Office, Photoshop,… Chúng là những phần mềm có bản quyền và được đóng gói lại, khi đến tay bạn chúng chỉ có các lệnh thực thi chứ không có mã nguồn.

Source-Code-la-gi
Cần rất nhiều thứ để máy có thể hiểu được lệnh của con người

Có nhiều lý do những nhà phát triển đó không giao mã nguồn cho bạn, trong đó có 2 lý do chính là:

  • Bảo vệ quyền sở hữu trí tuệ.
  • Ngăn chặn khách hàng sử đổi mã nguồn gây hư hại phần mềm hoặc tạo ra những cuộc tấn công có quy mô.

Với giấy phép độc quyền mã nguồn, đồng nghĩa các hành vi cố tình xem mã nguồn để khám phá hoặc cố ý sửa đổi mã nguồn là phạm pháp. Nhờ các công nghệ mã hoá mã nguồn ngày một hiện đại sẽ làm việc xem hay tác động sẽ trở nên cực kì khó khăn, và đôi khi là không thể ở một số thời điểm.

Cấu trúc của mã nguồn

Mỗi một chương trình sẽ có một bộ mã nguồn riêng. Chúng có thể được lưu trong một hoặc nhiều file khác nhau. Thông thường với những chương trình phức tạp mã nguồn sẽ được lưu riêng biệt từng tệp với từng chức năng tạo thành một cây khổng lồ được gọi là cây nguồn (tree source).

Mã nguồn thường sẽ được lưu trong ổ cứng của máy tính, usb, đĩa hoặc bất cứ nơi nào có thể lưu trữ dữ liệu một cách an toàn.

Cách mã nguồn thực thi

Để có thể hiểu được cách giao tiếp giữa mã nguồn với máy tính, ta cần phải tìm hiểu thêm về mã máy.

Mã máy là gì?

Mã máy hay machine code là một loại ngôn ngữ được sử dụng để “nói chuyện” với CPU và “giao việc” cho CPU thực hiện. CPU chỉ có thể hiểu được duy nhất loại ngôn ngữ này, có 2 hệ mà CPU có thể hiểu là hệ nhị phân chỉ gồm 0 và 1; hệ cơ số 16 Hexadecimal bao gồm 0123456789ABCDEF.

Source-Code-la-gi
Hệ nhị phân

CPU có thể hiểu ngay tức khắc và thực thi mã này mà không cần một quá trình trung gian nào cả. Để viết chương trình bằng loại mã như thế này thật sự rất khó, chúng không hề thân thiện với con mắt và bộ não của chúng ta.

Source-Code-la-gi
Hệ thập lục phân

Do đó, chúng ta có mã nguồn, nhưng CPU lại không đọc được mã nguồn.

Cách mã nguồn được CPU thực thi

Một trình biên dịch (compiler) được dựng nên để trở thành “thông dịch viên” biến mã nguồn được thực hiện bằng một ngôn ngữ lập trình sang một chương trình tương đương ở dạng ngôn ngữ máy để CPU có thể hiểu được.

Qua bài viết, chắc bạn cũng đã biết thêm về mã nguồn và những kiến thức mở nguồn đóng, mã nguồn mở. Hi vọng bạn sẽ tìm thêm được nhiều điều mới khác trong cuộc sống nhé.

Câu hỏi thường gặp

Làm sao để đánh giá được mã nguồn có chất lượng hay không?

Có rất nhiều tiêu chí để đánh giá mã nguồn đó có chất lượng hay không. Ví dụ: mã nguồn đó có làm chính người viết khó khăn trong việc bảo trì, sửa lỗi hay không các quy ước về mã hoá và những quy ước riêng của ngôn ngữ lập trình; quy ước riêng về các biến của người viết mã đó,…

Làm thế nào để xem mã nguồn của các phần mềm tôi mua về sử dụng?

Câu trả lời tuỳ thuộc vào phần mềm bạn sử dụng. Nếu bạn mua bản quyền để sử dụng các phần mềm được thì khả năng rất cao bạn sẽ không thể xem mã nguồn của phần mềm đó, lý do là vì họ đã mã hoá mã nguồn và chỉ để lại những phần đủ để thực hiện nhiệm vụ phục vụ người dùng.

Nếu phần mềm đó được ghi là mã nguồn mở hoặc bạn tìm thấy chúng trên Github hoặc Gitlab thì chúc mừng, tỉ lệ cao là bạn sẽ có thể xem và chỉnh sửa mã nguồn đó tuỳ vào mục đích của bạn.

Tôi có thể tái sử dụng mã nguồn cho một phần mềm khác hay không?

Tất nhiên là có, hầu hết các lập trình viên thường xuyên điều chỉnh mã nguồn từ phần mềm này để sử dụng trong các dự án phần mềm khác. Việc này được gọi là tái sử dụng phần mềm, việc này giúp tiết kiệm được thời gian và chi phí thực hiện dự án phần mềm.

Ngôn ngữ lập trình cấp cao là gì? Ngôn ngữ lập trình cấp thấp là gì?

Ngôn ngữ lập trình cấp cao hay ngôn ngữ lập trình bậc cao là những ngôn có hình thức gần với ngôn ngữ tự nhiên của con người nhất, có tính độc lập cao và ít phụ thuộc vào các loại thiết bị hay trình biên dịch.

Hiện tại có hơn 245 ngôn ngữ lập trình bậc cao và nó vẫn đang tiếp tục tăng lên.

Ngôn ngữ lập trình cấp thấp hay ngôn ngữ lập trình bậc thấp được sử dụng để phát triển hệ điều hành mới hay sử dụng trong viết mã chương trình cơ sở, CPU máy tính chỉ có thể hiểu duy nhất loại ngôn ngữ này.


Thủ Thuật Hay

470 Blog posts

Comments