Linux Lexicon 4.11: Đây là các tính năng mới nhất

0
FOSSBYTES TECH SIMPLIFIED LOGO

how-linux-kernel-works Ghi chú nhanh: Nhân Linux là phần mềm được sử dụng nhiều nhất trong lịch sử điện toán. Nó ở mọi nơi. Nó có trong máy tính, máy chủ, điện thoại, TV, hộp giải mã tín hiệu số, tàu ngầm, máy bay, ô tô tự lái và thậm chí nó còn chạy cả Trạm vũ trụ quốc tế. Nhưng làm thế nào nó hoạt động? Đó không chỉ là một cái miệng, vì vậy tôi sẽ cố gắng chia nó thành một số phần dễ quản lý hơn, tại đây.

Hạt nhân Linux được tạo thành từ hơn 21 triệu dòng mã, mỗi chỉ dẫn quan trọng của riêng họ. Do khối lượng mã lớn trong nhân Linux, chúng tôi cần một bài viết dài như nhau để mô tả đầy đủ cách thực hiện chính xác từng tác vụ. Để giúp bạn tiết kiệm chi tiết, chúng tôi sẽ trình bày những điều cơ bản theo cách rất cao cấp.

Tuy nhiên, trước khi thảo luận về cách hoạt động của bất kỳ nhân hệ điều hành nào, trước tiên chúng ta nên xem xét nhân có trách nhiệm gì. Kernel cung cấp các bản tóm tắt cho các lập trình viên phát triển các ứng dụng cho nền tảng của kernel. Những sự trừu tượng này là sự đơn giản hóa để hoàn thành các nhiệm vụ phức tạp.

Bản thân hạt nhân không phải là phần mềm duy nhất trong hệ điều hành cung cấp các phần trừu tượng, nhưng nó chắc chắn là một trong những bộ trừu tượng quan trọng hơn – một phần khác là các phần mềm được cung cấp bởi trình điều khiển phần cứng. Trình điều khiển phần cứng nói ngôn ngữ của hạt nhân để hạt nhân không cần biết cách nói với mọi phần cứng từng được tạo ra. Đây là điều cho phép một nhân duy nhất chạy trên nhiều nhãn hiệu và kiểu phần cứng khác nhau.

Vì vậy, khi nói về trừu tượng, điều quan trọng là phải biết chính xác ý nghĩa của thuật ngữ. Giống như trong nghệ thuật, một phần trừu tượng hoặc một phần trừu tượng được dùng để đại diện cho một cái gì đó không phải là chất lượng vốn có hoặc bẩm sinh, một phần trừu tượng trong khoa học máy tính là một cách để che giấu số lượng chi tiết đôi khi áp đảo đằng sau một quá trình.

Lấy ví dụ, đọc và ghi các biến trong RAM. Mỗi bo mạch chủ có thể có bộ điều khiển bộ nhớ cực kỳ khác nhau, máy tính của bạn có thể chạy CPU ARM, Intel, AMD, SPARC, POWERPC hoặc MIPS, nhưng điều đó không thành vấn đề với chương trình Hello World của bạn, và điều đó không quan trọng, vì hạt nhân trừu tượng sự khác biệt về phần cứng dưới dạng một giao diện thống nhất.

Giao diện này đối với các lập trình viên giống như bất kỳ lệnh gọi hàm nào khác nhưng đặc biệt vì nó là lệnh gọi hệ thống. Một lệnh gọi hệ thống chỉ là một hàm yêu cầu một cái gì đó từ hạt nhân, đây là nơi hạt nhân sẽ thực hiện yêu cầu bất kể phần cứng bên dưới. Hạt nhân Linux thực hiện POSIX tiêu chuẩn của các lệnh gọi hệ thống.

Khuyến nghị: Hướng dẫn hoàn chỉnh để bắt đầu với Linux

Bây giờ, chúng ta cần biết hạt nhân Linux chịu trách nhiệm gì, tức là chúng ta nên mong đợi bất kỳ hạt nhân hệ điều hành hiện đại nào cung cấp cho chúng ta những yếu tố trừu tượng nào?

  • Lưu trữ dữ liệu
    • Bộ nhớ truy cập ngẫu nhiên – Đọc và ghi các biến và dữ liệu trong bộ nhớ
    • Lưu trữ vĩnh viễn – Đọc và ghi tệp trên thiết bị lưu trữ vĩnh viễn
    • Hệ thống tệp ảo
  • Truy cập mạng – Gửi và nhận dữ liệu qua mạng máy tính
    • Phương tiện vật lý bất khả tri (Ethernet, không dây, LTE, Dialup)
    • Giao thức bất khả tri một phần
  • Thỏi Lập lịch trình
    • Chia sẻ thời gian CPU
    • Cân bằng tải và ưu tiên
  • Giao thức thiết bị (USB, FireWire, Serial, Parallel)
    • Phương tiện có thể tháo rời USB
    • Webcam
    • chuột và bàn phím
  • Bảo vệ
    • Quyền của Người dùng và Nhóm
    • Quyền truy cập tài nguyên

Nhân Linux làm cho việc phát triển dễ dàng hơn bằng cách cung cấp các dịch vụ trên dưới dạng một loạt các lệnh gọi hệ thống. Chúng tôi sẽ xem xét kỹ hơn một vài trong số chúng và cách chúng giúp phát triển dễ dàng hơn và hiệu quả hơn.

Lưu trữ dữ liệu

Có hai hình thức lưu trữ dữ liệu, đó là lưu trữ tạm thời và lưu trữ vĩnh viễn. Bộ nhớ tạm thời có thể không rõ ràng đối với một số độc giả là RAM. Không phải mọi thứ đi vào RAM đều phải được lưu trữ vĩnh viễn. Một ví dụ điển hình về điều này là khi bạn duyệt Internet, bạn không muốn mọi trang web bạn truy cập được lưu trữ vĩnh viễn trên máy tính của mình. Lưu trữ vĩnh viễn, rõ ràng hơn, là ổ cứng của bạn hoặc ổ lưu trữ SSD/flash.

linux-Academy-Course Nhân Linux cung cấp khả năng đọc và ghi dữ liệu trong RAM hoàn toàn minh bạch, bất kể nền tảng phần cứng. Không quan trọng nếu bạn đang chạy Linux trên máy tính Intel i386 cũ hơn hay trên điện thoại Android dựa trên ARM mới nhất, mã không cần phải thay đổi trước khi được biên dịch để đảm bảo tính tương thích và đây là một ý tưởng rất hiệu quả. Tuy nhiên, hãy nhớ rằng nhân Linux là thứ được sửa đổi để hỗ trợ các nền phần cứng khác nhau và chính những sửa đổi của nhân cho phép nó cung cấp giao diện thống nhất mặc dù phần cứng không đồng nhất.

Hơn nữa, kernel cô lập từng tiến trình trong không gian bộ nhớ của riêng nó, có nghĩa là tiến trình không cần biết bộ nhớ thuộc về nó vì tất cả bộ nhớ hiển thị cho tiến trình đều thuộc về nó. Việc phân vùng bộ nhớ này cũng giúp nhà phát triển tăng cường bảo mật mà không phải trả thêm phí.

Tương tự, với khả năng lưu trữ vĩnh viễn, hạt nhân ẩn sự khác biệt của giao tiếp với SATA, PATA, SCSI, USB, M.2 và các giao thức lưu trữ khác và cho phép một chương trình duy nhất đọc và ghi tệp trên bất kỳ phương tiện nào được kết nối bằng bất kỳ giao thức được hỗ trợ nào và bất kỳ hệ thống tệp được hỗ trợ nào mà không có bất kỳ thay đổi nào đối với chương trình. Và điều đó đặt một lượng lớn quyền lực vào tay của cả nhà phát triển và người dùng. Điều này cũng làm tăng khả năng tái sử dụng mã và năng suất của nhà phát triển vì không cần mã chuyên biệt.

Truy cập mạng

Khi nói đến mạng, nó hơi khác một chút vì mọi giao thức đều có định dạng địa chỉ riêng, do đó, cần có mã chuyên biệt để hỗ trợ từng giao thức mạng. Rất may, chỉ IPv4 và IPv6 là phổ biến. Đối với nhiều giao thức khác đã ra đời như DECnet, IPX và AppleTalk, có hỗ trợ Linux, nhưng hầu như không có lợi khi hỗ trợ các giao thức này trong bất kỳ ứng dụng hiện đại nào.

Quay lại IPv4 và IPv6, cả hai có dạng địa chỉ IP rất khác nhau, nhưng đây chỉ là một tài sản cũng như một điều bất tiện. Địa chỉ IP có thể dễ dàng suy ra loại giao thức cần thiết. Ngoài ra, hạt nhân cung cấp hỗ trợ cho TCP, UDP, SCTP và ICMP, tất cả đều có thể dễ dàng được sử dụng bằng cách thực hiện các cuộc gọi hệ thống. Không quan trọng nếu máy tính của bạn được kết nối bằng giao thức Ethernet, LTE hay Dialup, các cuộc gọi hệ thống vẫn giống nhau.

Hãy tưởng tượng bạn cần các phiên bản Chrome hoặc Firefox khác nhau tùy thuộc vào việc bạn đang sử dụng WiFi hay Ethernet, nó sẽ cồng kềnh hơn nhiều đối với các nhà phát triển. Sự trừu tượng này, một lần nữa, rất mạnh mẽ và cung cấp tính linh hoạt, giúp tăng năng suất của nhà phát triển và tính linh hoạt của người dùng cuối.

Lập lịch tác vụ

Lập kế hoạch công việc là một chủ đề rất lớn và có rất nhiều ý kiến. Vì vậy, chúng ta sẽ không bận tâm đến các thuật toán lập lịch và chúng ta sẽ chỉ nói về trách nhiệm của hạt nhân liên quan đến việc đảm bảo mỗi quá trình được bật CPU, ngay cả khi có hàng trăm quá trình.

Mọi tiến trình đều muốn có thời gian trên CPU, và nhân là thứ đảm bảo rằng mọi người đến lượt của họ một cách kịp thời. Ngoài ra, một số quá trình yêu cầu sự chậm trễ, có thể trong khi chờ I/O, hoặc trò chơi chờ trong khoảng thời gian định giờ và điều này cũng có thể được hỗ trợ bởi hạt nhân.

Thay vì tiến trình chiếm CPU trong khi chờ đợi, một quy trình khác có thể được chạy và quy trình gốc có thể được quay lại sau thời gian cần thiết, do đó tăng hiệu suất tổng thể. Nói chung, lập lịch tác vụ có nghĩa là nhà phát triển không cần phải lo lắng về các tiến trình khác đang chạy trên máy tính, họ chỉ cần lo lắng về chương trình của mình.

This post is also available in:
Spanish German Tiếng Việt Indonesian

Leave a Reply

Your email address will not be published. Required fields are marked *