Làm thế nào để tìm hiểu thêm về hạt nhân Linux từ máy riêng của bạn
Học cách làm việc với GNU / Linux thường đòi hỏi phải học cách làm việc với một môi trường máy tính để bàn. Công nghệ chủ đề cho phép các môi trường máy tính để bàn này bắt chước giao diện của các thiết bị iOS, Microsoft Windows và OS X. Điều này giúp giảm thiểu điều này. Nhiều người đi xa hơn và học quản trị dòng lệnh Unix với vỏ Bash hoặc tcsh. Tuy nhiên, việc hiểu biết về các phần bên trong của hạt nhân Linux có thể giúp bạn hiểu rõ hơn về cách các phần khác nhau của opcode tương tác với nhau.
Một số người cho rằng nó sẽ là tốt nhất để đi một vài bước xa hơn và bổ sung tìm hiểu làm thế nào trình biên dịch chuyển mã C vào giảng viên máy cho một bộ vi xử lý. Những người ủng hộ mã hội sẽ lập luận rằng tốt nhất là học ASM để nắm vững lập trình trên các nền tảng x86 và x86_64. Không phân biệt các vị trí này, các lệnh Linux cơ bản có thể cung cấp nhiều thông tin về cách hạt nhân nhìn thấy máy tính của bạn. Học qua một cái nhìn nhưng không chạm vào mô hình là một cách tuyệt vời để làm chủ bản thân hạt nhân. Trong khi tài khoản gốc đã được sử dụng cho các ví dụ trên trang này, chúng tôi khuyên bạn chỉ nên xem các thư mục liên kết hạt nhân thông qua tài khoản người dùng.
Phương pháp 1: Thư mục / proc
Thư mục / proc nằm ở một trong các vùng chính của thư mục gốc cấp cao nhất trong bất kỳ cấu trúc tệp Unix nào. Nó chứa những gì được gọi là hệ thống tập tin proc, tốt hơn được gọi là procfs có chứa thông tin về cách thức các nguồn tài nguyên khác nhau truy cập bộ nhớ hạt nhân. Nó được ánh xạ tới / proc tại thời điểm khởi động hệ thống. Vì cấu trúc tệp proxy này đóng vai trò như một giao diện cho cấu trúc dữ liệu nội bộ bên trong nhân Linux, một lần nữa tốt nhất chỉ để khám phá điều này thông qua tài khoản người dùng. Hầu hết các tệp được phân loại theo cấu trúc tệp hệ thống hiển thị là chỉ đọc, nhưng tốt nhất là nên ở bên an toàn.
Điều đó đang được nói, mỗi trong số này là một tập tin văn bản, vì vậy bạn có thể xem chúng nếu bạn muốn. Sử dụng lệnh cd để vào thư mục / proc, sau đó phát hành ls để xem cái gì ở đó. Sử dụng con mèo, ít hoặc nhiều lệnh với bất kỳ tệp nào để xem chúng. Tệp cpuinfo là một nơi tốt để bắt đầu, vì nó hiển thị cách hạt nhân xem bộ vi xử lý của bạn. Xem tập tin stat để xem các tiến trình đang chạy.
Nhập thiết bị mèo sẽ cung cấp cho bạn cái nhìn về những thứ được gắn vào máy của bạn.
Nhân tiện, bạn luôn có thể đưa ra lệnh proc của người dùng để biết tóm tắt về cách cấu trúc tập tin / proc liên quan đến hạt nhân như thế nào. Trang được cung cấp đến từ Sổ tay Lập trình viên Linux.
Phương pháp 2: Thư mục / sys
Điểm dừng tiếp theo của bạn trong chuyến tham quan hạt nhân của bạn là / sys, một thư mục khác được ánh xạ tới cấu trúc tệp giả vờ. Điều này theo cùng khái niệm Unix chung như / proc thực hiện, nhưng thay vào đó nó chủ động xuất thông tin về các ổ đĩa thiết bị liên quan và một số hệ thống con hạt nhân. Nếu bạn đã từng làm việc với một hệ thống dựa trên BSD, thì bạn có thể quen thuộc hơn với sysctl cung cấp các chức năng này. Các thiết bị bus PCI, USB và S / 390 đều được ánh xạ tới thư mục / sys.
Sử dụng cd / sys để đi đến thư mục và sau đó đưa ra lệnh ls hoặc dir. Bạn có thể có các thư mục có tên là block, class, devices, fs, kernel và có thể là các thư mục khác. Bạn có thể khám phá những tệp phẳng này để có thêm thông tin về hệ thống, nhưng một lần nữa làm như vậy từ tài khoản người dùng và giữ một cái nhìn nhưng đừng chạm vào tâm lý về bản thân bạn.
Phương pháp 3: Thư mục / dev
Sử dụng lệnh cd / dev để đi đến thư mục / dev, có thể là cấu trúc ảo hạt nhân mà bạn quen thuộc nhất. Tên này có nghĩa là các thiết bị, và có chứa phần trình bày tập tin của các thiết bị được gắn vào hệ thống của bạn. Lệnh ls trong thư mục này sẽ trả về nhiều tệp ngay cả khi phân phối máy chủ đơn giản nhất.
Một vài trong số này rất đặc biệt. Tệp / dev / null là một thiết bị rỗng không làm gì cả. Nếu bạn gõ cat / dev / null, thì bạn sẽ không nhận được gì ngoài nó. Nó được gọi là xô bit, và đầu ra có thể được chuyển hướng đến nó để giữ cho màn hình sạch sẽ. Một tệp được gọi là / dev / zero không chứa gì ngoài dữ liệu 0, có thể được ghi vào đĩa để không có nó. Các tệp ngẫu nhiên và urandom chứa dữ liệu rác ngẫu nhiên để tạo các băm bảo mật.
Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đâyNếu bạn đã từng định dạng một đĩa, thì bạn có thể có ít nhất một số kinh nghiệm với cách nhân Linux xem chúng. Mỗi đĩa được gắn vào hệ thống sẽ có tên như sda, sdb, v.v. cho mỗi đĩa. Các loại đĩa khác nhau có tên khác nhau. Hãy nhớ rằng thư mục / dev sử dụng một định nghĩa khoa học máy tính chính thức tiềm tàng của đĩa chứ không phải cách chúng ta thường sử dụng thuật ngữ đó. Điều này có nghĩa là ổ đĩa cứng, SSD, thẻ SD, thẻ microSDHC, hệ thống tập tin điện thoại thông minh được gắn kèm qua USB, thanh USB và thậm chí cả máy tính bảng được gắn đều là ổ đĩa cho hạt nhân.
Mỗi tên đĩa trong Linux sau đó nhận được một chữ số sau khi nó chỉ ra một số phân vùng. Nếu bạn có một SSD với hai phân vùng chính, thì bạn có thể có / dev / sda1 và / dev / sda2 là các ổ đĩa hợp lệ. Nhiều khả năng nếu bạn đang chạy Linux từ máy tính để bàn hoặc máy tính xách tay có phân vùng kiểu MBR, thì bạn có / dev / sda1 được đặt thành phân vùng ext4 thực sự đã cài đặt Linux trên đó. Nhiều hơn khả năng / dev / sda2 là một phân vùng mở rộng, sau đó chứa / dev / sda5 làm phân vùng trao đổi. Đề án này là phổ biến, nhưng không cần thiết. Lưu ý rằng kể từ khi phân vùng trao đổi trong ví dụ phổ biến này là một đĩa logic bên trong một phân vùng mở rộng, nó nhận được 5 thay vì 3 là số của nó.
Nếu bạn muốn tìm hiểu thêm về cách các hạt nhân xem và định dạng phân vùng, sau đó bạn thực sự có thể xem danh sách phân vùng được hỗ trợ với lệnh fdisk. Trong khi fdisk không viết các bảng phân vùng cho đến khi bạn nói với nó, thì tốt nhất bạn nên thử với cái gì đó mà bạn không quan tâm đến việc nướng. Đó là khuyến cáo để chỉ nó vào một cái gì đó giống như một thanh USB trống, bạn chỉ có thể dễ dàng định dạng lại.
Hãy nói rằng thanh của bạn được hiển thị như / dev / sdc, sau đó bạn có thể sử dụng sudo fdisk / dev / sdc để tải nó lên. Nếu bạn có một phân vùng hợp lệ trong đó, hãy gõ t để thay đổi kiểu và loại L để tải một danh sách mã hex. Lưu ý rằng các lược đồ phân vùng MBR và GUID nói chuyện với hạt nhân khác nhau, và do đó có các nhiệm vụ khác nhau.
Thường xuyên hơn bạn sẽ không có ổ đĩa được thiết lập để gõ 83, đó là cho các ổ đĩa Linux, 82, đó là cho phân vùng trao đổi Linux, hoặc một trong các loại tập tin FAT. FAT ngày trở lại trong một số hình thức này hay cách khác đến năm 1977, và vẫn được ưa thích cho nhiều loại thiết bị di động cũng như nhiều ổ đĩa di động. Lưu ý rằng một số loại phân vùng, chẳng hạn như loại 0x0c, có tính năng được gọi là hỗ trợ LBA.
Khi một lập trình viên thiết kế một hạt nhân cho một hệ điều hành, họ có một vài cách khác nhau mà họ có thể nhìn vào đĩa. Một là chia các đĩa cứng thành các trụ, đầu và các phần. Đây là cách cổ điển để tham khảo các ổ đĩa cứng trong thời gian dài nhất. Hình học đĩa chính hãng chưa bao giờ thực sự quan trọng đối với Linux, và chương trình này không may hết các địa chỉ sau khoảng 8 Gigabyte nhị phân. Cách thứ hai là sử dụng địa chỉ logic C / H / S, thực hiện điều này, nhưng sau đó cho phép bộ điều khiển đĩa lập bản đồ các số xy lanh, đầu và khu vực bất cứ nơi nào họ muốn. Đây là lý do tại sao một hệ điều hành về lý thuyết có thể khẳng định có đầu trong một thẻ SD hoặc một thanh USB khi điều này là thể chất không thể.
Phương pháp thứ ba là thông qua địa chỉ khối lôgíc, đó là những gì LBA là viết tắt của. Mỗi khối vật lý trong một ổ đĩa nhận được một số trong lược đồ này. Hệ điều hành yêu cầu bộ điều khiển đĩa ghi vào một khối được đánh số nhất định, nhưng thực sự không biết đó là khối trực tiếp trên đĩa. Đây là chương trình được sử dụng nhiều nhất hiện nay, và nó chắc chắn đã được sử dụng trên phần lớn các đĩa cứng kể từ giữa những năm 1990.
Linux cung cấp hỗ trợ hạt nhân để gắn kết nhiều loại phân vùng khác nhau mà không cần nhập trực tiếp, nhưng tốt nhất là không quá kỳ dị khi chọn chúng. Bạn có thể nướng bánh mì dữ liệu của mình nếu bạn tạo một loại phân vùng rất lạ để chọn lựa lựa chọn phù hợp với hệ thống.
Phương pháp 4: Các cuộc gọi hệ thống từ Sổ tay lập trình viên Linux
Các trình đọc trang của người đàn ông đi kèm với phần lớn các bản phân phối Linux thực sự có thể cung cấp cho bạn một khóa học về các cuộc gọi hệ thống, điều này có thể giúp ích rất nhiều cho việc học về hạt nhân. Bắt đầu trình duyệt xman đồ họa trang người đàn ông hoặc từ một liên kết .desktop nếu bạn có một, hoặc cách khác bằng cách giữ phím siêu và R cùng một lúc sau đó gõ xman và đẩy nhập. Chọn tùy chọn Manual Page (Trang Thủ công) và sau đó chọn Section (Phần) và cuối cùng (2) System Calls (Cuộc gọi Hệ thống) từ trình đơn thả xuống.
Khi tùy chọn đọc phần giới thiệu xuất hiện, hãy chọn phần giới thiệu đó. Một trang từ Sổ tay Lập trình viên Linux sẽ dạy bạn một chút về các cuộc gọi hệ thống sau đó sẽ chào đón bạn.
Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây