Cách tìm hiểu thêm về nhân Linux từ chính máy của bạn



Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

Học cách làm việc với GNU / Linux thường đòi hỏi học cách làm việc với 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 như nó đã từng xảy ra. Nhiều người còn đi xa hơn và học quản trị dòng lệnh Unix với Bash hoặc tcsh shell. Tuy nhiên, hiểu biết về bên trong của nhân Linux có thể giúp bạn hiểu rõ hơn về cách các phần opcode khác nhau tương tác với nhau.



Một số người cho rằng tốt nhất là nên đi thêm một số bước nữa và tìm hiểu thêm cách trình biên dịch chuyển mã C thành trình hướng dẫn máy cho bộ vi xử lý. Sau đó, những người ủng hộ mã hội sẽ cho rằng tốt nhất nên học ASM để thực sự nắm bắt được lập trình trên nền tảng x86 và x86_64. Bất kể những 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ủ chính hạt nhân. Mặc dù 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 được liên kết với 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 những 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 cái được gọi là hệ thống tệp proc, còn được gọi là procfs chứa thông tin về cách các tài nguyên khác nhau truy cập vào bộ nhớ nhân. Nó được ánh xạ tới / proc tại thời điểm hệ thống khởi động. Vì cấu trúc tệp proxy này đóng vai trò là 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 là bạn chỉ nên khám phá cấu trúc 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à bạn nên ở bên an toàn.



Điều đó đang được nói, mỗi trong số này là một tệp văn bản, vì vậy bạn có thể xem chúng nếu muốn. Sử dụng lệnh cd để nhập thư mục / proc, sau đó nhập ls để xem những gì ở đó. Sử dụng lệnh mèo, ít hơn hoặc nhiều hơn 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. Nhìn vào tệp thống kê để xem các quy trình đang chạy.

2016-11-25_020006

Việc gõ các thiết bị mèo sẽ giúp bạn biết được những thứ được gắn vào máy của bạn.



2016-11-25_020109

Nhân tiện, bạn luôn có thể đưa ra lệnh man proc để biết tóm tắt về cách cấu trúc tệp / proc liên quan đến hạt nhân. Trang được cung cấp đến từ Sách hướng dẫn dành cho lập trình viên Linux.

2016-11-25_020156

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, là một thư mục khác được ánh xạ tới cấu trúc tệp giả vờ. Điều này tuân theo khái niệm Unix chung giống như / proc, 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 hệ thống dựa trên BSD, thì bạn có thể quen thuộc hơn với việc 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 để truy cập vào thư mục và sau đó sử dụng lệnh ls hoặc dir. Bạn có thể có các thư mục có tên khối, lớp, thiết bị, fs, hạt nhân và có thể những thư mục khác. Bạn có thể khám phá các tệp này để biết thêm các tệp phẳng chứa thông tin về hệ thống, nhưng hãy làm như vậy một lần nữa từ tài khoản người dùng và giữ một cái nhìn nhưng không chạm vào tâm lý của bạn.

Phương pháp 3: Thư mục / dev

Sử dụng lệnh cd / dev để chuyển đến thư mục / dev, đây có thể là cấu trúc ảo kernel mà bạn đã quen thuộc nhất. Tên có nghĩa là thiết bị và chứa tệp đại diện cho các thiết bị được gắn vào hệ thống của bạn. Một lệnh ls trong thư mục này sẽ trả về nhiều tệp trên bản phân phối máy chủ đơn giản nhất.

2016-11-25_020242

Một vài trong số này rất đặc biệt. Tệp / dev / null là một thiết bị null không làm gì cả. Nếu bạn nhập cat / dev / null, thì bạn sẽ không nhận được gì từ nó. Nó được gọi là bit bucket 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ó tên / dev / zero không chứa gì ngoài dữ liệu 0, có thể được ghi vào đĩa để xóa nó. Tệp ngẫu nhiên và tệp urandom chứa dữ liệu rác ngẫu nhiên để tạo băm bảo mật.

Nếu bạn đã từng định dạng đĩa, thì bạn có thể có ít nhất một số kinh nghiệm với cách hạt nhân Linux xem chúng. Mỗi đĩa được gắn vào hệ thống có một 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 năng về đĩa thay vì cách chúng ta thường sử dụng thuật ngữ đó. Điều này có nghĩa là ổ cứng, SSD, thẻ SD, thẻ microSDHC, hệ thống tập tin được gắn trên điện thoại thông minh được gắn qua USB, thanh USB và thậm chí cả máy tính bảng được gắn đều là đĩa vào nhân.

Mỗi tên đĩa trong Linux sau đó nhận một chữ số sau nó cho biế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à ổ đĩa hợp lệ. Rất có thể 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 đã đặt / dev / sda1 thành phân vùng ext4 thực sự đã cài đặt Linux trên đó. Nhiều 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 hoán đổi. Đề án này là phổ biến, nhưng không cần thiết. Lưu ý rằng vì phân vùng hoán đổ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 5 thay vì 3 làm số của nó.

Nếu bạn muốn tìm hiểu thêm về cách hạt nhân xem và định dạng phân vùng, thì bạn thực sự có thể xem danh sách phân vùng được hỗ trợ bằng lệnh fdisk. Trong khi fdisk không viết bảng phân vùng cho đến khi bạn yêu cầu, tốt nhất vẫn nên thử điều này với thứ mà bạn không quan tâm. Bạn nên hướng nó vào một thứ giống như một thanh USB trống mà bạn có thể dễ dàng định dạng lại.

Giả sử thanh của bạn đang hiển thị dưới dạng / 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 nhập t để thay đổi loại và loại L để tải danh sách mã hex. Lưu ý rằng 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 phép gán khác nhau.

2016-11-25_020331

Thông thường, bạn sẽ có các ổ đĩa được đặt thành loại 83, dành cho ổ đĩa Linux, 82, dành cho các phân vùng trao đổi Linux hoặc một trong các loại tệp FAT. FAT có từ năm 1977 hay hình thức khác, và vẫn được ưa chuộng 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 hỗ trợ LBA.

Khi một lập trình viên thiết kế nhân cho một hệ điều hành, họ có một vài cách khác nhau để xem xét đĩa. Một là chia các đĩa thành hình trụ, đầu và các cung. Đây là cách cổ điển để chỉ ổ đĩa cứng trong thời gian dài nhất. Hình dạng đĩa chính hãng chưa bao giờ thực sự quan trọng đối với Linux và sơ đồ này không may hết địa chỉ sau khoảng 8 Gigabyte nhị phân. Cách thứ hai là sử dụng địa chỉ Logical C / H / S, thực hiện điều này, nhưng sau đó cho phép bộ điều khiển đĩa ánh xạ các số hình trụ, đầ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ề mặt lý thuyết có thể tuyên bố rằng có đầu trong thẻ SD hoặc thanh USB khi điều này là không thể.

Phương pháp thứ ba là thông qua Logical Block Addressing, là viết tắt của LBA. Mỗi khối vật lý trong một tập nhận được một chữ 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 không thực sự biết đó có phải là khối trực tiếp trên đĩa hay không. Đây là sơ đồ được sử dụng nhiều nhất hiện nay và chắc chắn 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 mà không cần đầu vào trực tiếp, nhưng tốt nhất bạn không nên quá kỳ quặc khi chọn chúng. Bạn có thể nâng cao dữ liệu của mình nếu bạn thực hiện một loại phân vùng rất lạ với lựa chọn phù hợp với hệ thống tệp.

Phương pháp 4: Lệnh gọi hệ thống từ Sách hướng dẫn lập trình viên Linux

Trình đọc trang người dùng tích hợp được bao gồm trong 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 lệnh gọi hệ thống, có thể giúp ích rất nhiều cho việc tìm hiểu về hạt nhân. Khởi động trình duyệt xman graphical man pages từ liên kết .desktop nếu bạn có hoặc cách khác bằng cách giữ phím siêu và phím R cùng lúc, sau đó gõ xman và nhấn enter. Chọn tùy chọn “Trang thủ công”, sau đó chọn “Phần” và cuối cùng là “(2) Cuộc gọi hệ thống” từ menu thả xuống.

2016-11-25_020430

Khi một tùy chọn đọc “ phần giới thiệu ”Xuất hiện, chọn mục đó. Một trang từ Sách hướng dẫn dành cho lập trình viên Linux sẽ hướng dẫn bạn khá nhiều về các lệnh gọi hệ thống sau đó sẽ chào đón bạn.

2016-11-25_020518

6 phút đọc