Dịch sách Advance Progmraming In UNIX Environment - Phần 1 Tổng quan về Hệ thống UNIX

Tổng quan về hệ thống UNIX

Giới thiệu

Tất cả các hệ điều hành cung cấp dịch vụ cho các chương trình chạy trên đó. Các dịch vụ điển hình bao gồm việc thực thi chương trình mới, mở một tập tin, đọc tập tin, cấp phát vùng nhớ, lấy thời gian hiện tại, … Mục tiêu của sách để mô tả các dịch vụ được cung cấp bởi rất nhiều phiên bản của hệ điều hành UNIX.

Việc mô tả hệ thống UNIX một cách nghiêm ngặt sẽ không được mô tả ở đây, nó gần như không thể (và nếu có thì cũng rất chán nản). Chương này giúp bạn lướt qua hệ thống UNIX từ cái nhìn của một lập trình viên. Chúng tôi sẽ gửi bạn vài nét về các tính năng và sẽ đi vào chi tiết trong các chương sau. Chương này sẽ cung cấp một giới thiệu để giới thiệu tổng quan về các dịch vụ bởi hệ thống UNIX cho các lập trình viên mới.

Kiến trúc UNIX

Một định nghĩa chuẩn, hệ điều hành có thể được định nghĩa như là một chương trình điều khiển các tài nguyên phần cứng của máy tính và cung cấp môi trường cho phép các chương trình có thể chạy trên nó. Nói chung, chúng ta có thể gọi phần mềm này là kernel, kể từ khi nó tương đối nhỏ và trú ngụ bên trong lõi của môi trường. Hình 1.1 sẽ mô tả kiến trúc UNIX.

Interface của kernel là các lớp phần mềm được gọi là system calls. Các thư viện của các hàm thường dùng được xây dựng trên system call interface, các ứng dụng có thể thoải mái sử dụng. (Chúng ta sẽ nói nhiều hơn về system calls và library fucntion). The shell là chương trình đặc biệt cung cấp một interface để chạy các ứng dụng khác.

Theo một nghĩa rộng hơn, một hệ điều hành bao gồm kernel và tất cả các chương trình tạo cho một máy tính hữu dụng và tạo ra cá tính của máy tính. Các phần mềm khác bao gồm system utilities, ứng dụng, shells, library of common function, …

Ví dụ, Linux là kernel được sử dụng bởi GNU operating system. Một vài người nhắc đến là GNU/Linux operating system, nhưng thông thường được nhắc đến đơn giản là Linux. Mặc dù cách hiểu này là không hoàn toàn đúng, nhưng nó lại dễ hiểu.

Đăng nhập

Tên đăng nhập

Khi chúng ta đăng nhập vào hệ thống UNIX, chúng ta sẽ nhập tên đăng nhập và mật khẩu. Hệ thống sẽ tìm kiếm tên đăng nhập trong password file, thường là /etc/passwd. Nếu chúng ta đọc password file, chúng ta sẽ nhìn thấy nó gồm 7 trường phân cách bởi dấu hai chấm: tên đăng nhập, mật khẩu được mã hóa, user id (205), group id(105), trường mô tả (Stephen Rago), home directory(/home/sả), shell program (/bin/kash)

sar:x:205:105:Stephen Rago:/home/sar:/bin/ksh

Tất cả các hệ thống đều di chuyển các mật khẩu được mã hóa tới các file khác. Trong chương 6, chúng ta sẽ xem các tập tin này và một vài hàm để truy cập chúng.

Shells

Mỗi lần chúng ta đăng nhập, một vài thông tin về hệ thống sẽ được hiển thị, và sau đó chúng ta có thể gõ lệnh vào shell (Một vài hệ thống bắt đầu một chương trình quản lý cửa sổ sau khi bạn đăng nhập, nhưng bạn thường kết thúc với một shell đang chạy một cửa sổ). Một shell là một trình thông dịch dòng lệnh đọc vào từ người dùng và thực thi các lệnh. Người dùng nhập lệnh tới shell thường thông qua terminal(một shell tương tác) hoặc thỉnh thoảng từ file (được gọi là shell script). Các shell thông thường có thể xem ở bảng 1.2