Luận văn Tìm hiểu ứng dụng mật mã khóa công khai trong môi trường mã nguồn mở

Hiện nay trên thế giới, mạng máy tính đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, nó đã và đang trở thành phƣơng tiện trao đổi thông tin dữ liệu thì nhu cầu bảo mật thông tin đƣợc đặt lên hàng đầu. Nhu cầu này không chỉ có ở các bộ máy An ninh, Quốc phòng, Quản lý nhà nƣớc mà đã trở thành bức thiết trong nhiều hoạt động kinh tế xã hội: tài chính, ngân hàng, thƣơng mại và trong cả hoạt động thƣờng ngày nhƣ thƣ điện tử, thanh toán, tín dụng Trên thế giới hiện nay có khá nhiều giải pháp mã hóa thông tin theo công nghệ mới dựa trên các thuật toán có độ phức tạp cao và sản phẩm loại này cũng bắt đầu thƣơng mại hóa. Tuy nhiên mức độ bảo mật và tốc đ ộ xử lý của các loại sản phẩm rất khác nhau. Mặt khác dù có thuật toán tốt nhƣng chúng ta không nắm bắt đƣợc mọi khía cạnh của công nghệ bảo mật sẽ không có cách nào bịt hết đƣợc mọi kẽ hở mà các tin tặc dễ dàng tấn công.Vì vậy để bảo mật các thông tin “nhậy cảm” thì giải pháp là tự xây dựng những chƣơng trình bảo mật thông tin cho chính mình.

pdf40 trang | Chia sẻ: lvbuiluyen | Lượt xem: 2238 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Luận văn Tìm hiểu ứng dụng mật mã khóa công khai trong môi trường mã nguồn mở, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG…………….. LUẬN VĂN Tìm hiểu ứng dụng mật mã khóa công khai trong môi trường mã nguồn mở . 1 MỤC LỤC MỤC LỤC ................................................................................................. 1 MỞ ĐẦU ................................................................................................. 3 CHƢƠNG 1: TÌM HIỂU HỆ ĐIỀU HÀNH MẠNG LINUX ...................... 4 1.1. Hệ điều hành mạng........................................................................... 4 1.1.1 Hệ điều hành Linux .................................................................... 4 1.1.2 Linux và UNIX .......................................................................... 5 1.1.3 Ƣu điểm khi sử dụng Linux ....................................................... 5 1.2. Một số đặc điểm của hệ điều hành mạng Linux .............................. 7 1.2.1 Đặc điểm của hệ thống ............................................................... 7 1.2.2 Các đặc điểm phần mềm ............................................................ 8 1.2.3 Linux và mạng.......................................................................... 10 1.3. Tìm hiểu nhân của hệ điều hành Linux .......................................... 11 1.3.1 Bộ phân thời cho tiến trình (Process Scheduler - SCHED) ..... 11 1.3.2 Bộ quản lý bộ nhớ (Memory Manager - MM) ......................... 11 1.3.3 Hệ thống file ảo (Virtual File System - VFS) .......................... 11 1.3.4 Giao diện mạng (Network Interface - NET) ............................ 11 1.3.5 Bộ truyền thông nội bộ (Inter Process Communication IPC) .. 12 1.4. Các cấu trúc dữ liệu hệ thống ......................................................... 12 1.5. Cấu trúc của SCHED ..................................................................... 12 CHƢƠNG 2: MẬT MÃ KHÓA CÔNG KHAI .......................................... 14 2.1. Một số khái niệm cơ bản ................................................................ 14 2.1.1 Số học modulo ......................................................................... 14 2.1.2 Hàm Euler ................................................................................ 15 2.1.3 Thuật toán Euclide ................................................................... 15 2.1.4 Các kiến thức cần thiết khác .................................................... 17 2.2. Khái niệm mã hóa bằng khóa công khai ........................................ 18 2 2.3. Mô hình bảo vệ thông tin của mật mã khóa công khai .................. 20 2.3.1 Một số mô hình bảo vệ thông tin ............................................. 20 2.3.2 Các ứng dụng của mật mã khóa công khai .............................. 22 2.3.3 Yêu cầu đối với mật mã khóa công khai .................................. 23 2.4. Các phƣơng pháp phân phối khóa công khai ................................. 23 2.5. Dùng mật mã khóa công khai phân phối khóa bí mật ................... 24 2.5.1 Phân phối khóa bí mật đơn giản ............................................... 24 2.5.2 Phân phối khóa bí mật có bí mật và xác thực .......................... 25 2.6. Trao đổi khóa DIFFIE – HELLMAN ............................................ 26 2.7. Các hệ mật dùng khóa công khai ................................................... 27 CHƢƠNG 3: THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG TRÊN LINUX 28 3.1. Phát triển ứng dụng trên Linux ...................................................... 28 3.1.1 GNU và các sản phẩm miễn phí .............................................. 28 3.1.2 Lập trình trên Linux ................................................................. 28 3.1.3 Chƣơng trình UNIX và Linux .................................................. 29 3.2. Hệ mật khóa công khai RSA (Rivest, Shamir và Adlemam) ........ 29 3.3. Mô hình thanh toán bằng tiền điện tử ............................................ 31 3.4. Mô tả các yêu cầu đối với hệ thống ............................................... 32 3.4.1 Đối tƣợng phục vụ.................................................................... 33 3.4.2 Chức năng và thành phần của hệ thống ................................... 34 3.5. Mô hình ứng dụng RSA trong thanh toán ...................................... 34 3.6. Phạm vi ứng dụng .......................................................................... 36 3.7. Chƣơng trình ứng dụng .................................................................. 36 KẾT LUẬN ............................................................................................... 38 TÀI LIỆU THAM KHẢO ............................................................................... 39 3 MỞ ĐẦU Hiện nay trên thế giới, mạng máy tính đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, nó đã và đang trở thành phƣơng tiện trao đổi thông tin dữ liệu thì nhu cầu bảo mật thông tin đƣợc đặt lên hàng đầu. Nhu cầu này không chỉ có ở các bộ máy An ninh, Quốc phòng, Quản lý nhà nƣớc mà đã trở thành bức thiết trong nhiều hoạt động kinh tế xã hội: tài chính, ngân hàng, thƣơng mại … và trong cả hoạt động thƣờng ngày nhƣ thƣ điện tử, thanh toán, tín dụng … Trên thế giới hiện nay có khá nhiều giải pháp mã hóa thông tin theo công nghệ mới dựa trên các thuật toán có độ phức tạp cao và sản phẩm loại này cũng bắt đầu thƣơng mại hóa. Tuy nhiên mức độ bảo mật và tốc độ xử lý của các loại sản phẩm rất khác nhau. Mặt khác dù có thuật toán tốt nhƣng chúng ta không nắm bắt đƣợc mọi khía cạnh của công nghệ bảo mật sẽ không có cách nào bịt hết đƣợc mọi kẽ hở mà các tin tặc dễ dàng tấn công.Vì vậy để bảo mật các thông tin “nhậy cảm” thì giải pháp là tự xây dựng những chƣơng trình bảo mật thông tin cho chính mình. Nhu cầu đòi hỏi trên đặt ra cho các chuyên gia CNTT những thách thức mới: làm thế nào để vừa thỏa mãn các yêu cầu đòi hỏi về tốc độ xử lý, dải thông đƣờng truyền truy cập của ngƣời sử dụng, đồng thời đảm bảo an toàn và bảo mật hệ thống thông tin, với việc mở rộng kết nối tới các hệ thống khác không nằm trong tầm kiểm soát của mình, để đảm bảo cho tốc độ phát triển chung của việc khai thác các tiềm năng, hiệu quả to lớn do mạng máy tính đem lại. 4 CHƢƠNG 1: TÌM HIỂU HỆ ĐIỀU HÀNH MẠNG LINUX 1.1. Hệ điều hành mạng 1.1.1 Hệ điều hành Linux Linux bắt nguồn từ một hệ điều hành lớn hơn có tên là UNIX. UNIX là một trong những hệ điều hành đƣợc sử dụng rộng rãi nhất trên thế giới do tính ổn định và khả năng hỗ trợ của nó. Về nguyên tắc hệ điều hành cũng là một software, nhƣng đây là một software đặc biệt – đƣợc dùng để điều phối các tài nguyên (resource) của hệ thống (bao gồm cả hardware và software khác). Linux còn đƣợc gọi là Open Source Unix (OSU), Unix – like Kernel, clone of the UNIX operating system. Linux là phiên bản UNIX đƣợc cung cấp miễn phí, ban đầu đƣợc phát triển bởi Linus Torvalds năm 1991 (sinh viên trƣờng đại học Helsinki, Phần Lan). Khi Linus tung ra phiên bản miễn phí đầu tiên của Linux (0.02) trên Internet đã tạo ra một làn sóng phát triển phần mềm lớn nhất từ trƣớc đến nay trên phạm vi toàn cầu. Hiện nay Linux đƣợc phát triển và bảo trì bởi một nhóm hàng nghìn lập trình viên cộng tác chặt chẽ với nhau qua Internet. Tháng 11/1991 Linus đƣa ra bản chính thức đầu tiên của Linux (0.02), nó có thể chạy bash và gcc (trình dịch C GNU – GNU’s Not UNIX). Nhƣng hệ thống chƣa có các hỗ trợ ngƣời dùng và tài liệu hƣớng dẫn. Tháng 3/1994 phiên bản Linux 2.2.6, có thể làm việc trên môi trƣờng đồ họa với các ứng dụng cao cấp nhƣ các tiện ích đồ họa và các tiện ích khác. Linux khó có thể thành công đƣợc nhƣ hiện nay nếu không có các công cụ GNU của tổ chức phần mềm miễn phí (Free Software Foundation). Trình dịch gcc của GNU đã giúp cho việc viết mã của Linux dễ dàng hơn rất nhiều. Hiện nay Linux là một hệ điều hành UNIX đầy đủ và độc lập. Nó có thể chạy X Window, TCP/IP, Emacs, Web, thƣ điện tử và các phần mềm khác. 5 1.1.2 Linux và UNIX UNIX là một hệ điều hành mạnh, UNIX đã qua thử thách và chạy trên các máy chủ ở môi trƣờng xí nghiệp rộng rãi trong một thời gian rất dài. Hệ điều hành UNIX đến nay vẫn chƣa có đối thủ có thể đứng ngang với nó về tầm vóc cũng nhƣ sự chịu đựng về thời gian. Windows của Microsoft trƣớc đây chỉ dùng cho các máy để bàn (desktop). Họ sản phẩm của Microsoft chƣa bao giờ mang các tính năng của một máy chủ (server) thực thụ cho đến khi Windows NT và Windows 2000 ra đời. Tuy nhiên UNIX, NT và Windows 2000 đều là sản phẩm có bản quyền. Linux trở lên phổ biến rộng rãi và đƣợc sự ủng hộ của rất nhiều lập trình viên trên thế giới. Điểm nổi bật của Linux là mã nguồn mở và tính ổn định do kế thừa từ kiến trúc UNIX đã qua thử thách. Linux chỉ là hạt nhân cung cấp các chức năng cần thiết tối thiểu của một hệ điều hành tựa UNIX. Vì UNIX không có phiên bản chạy trên PCs theo kiến trúc bộ vi xử lý Intel nên Linux đƣợc xem là một sản phẩm rất giá trị. 1.1.3 Ƣu điểm khi sử dụng Linux Linux là hệ điều hành mã nguồn mở, đƣợc cung cấp miễn phí cho ngƣời sử dụng. Nó có khả năng đa nhiệm, đa xử lý, hỗ trợ mạng, khả năng tƣơng thích phần cứng và nhiều tính năng khác: Tính ổn định: Linux có tính ổn định cao, ít bị lỗi khi sử dụng so với hầu hết các hệ điều hành khác. Ngƣời sử dụng Linux không phải lo lắng đến việc máy tính của mình bị “treo cứng” khi đang sử dụng nữa. Tính bảo mật: Linux là hệ điều hành đa nhiệm, đa ngƣời dùng (nhiều ngƣời sử dụng có thể vào phiên làm việc của mình trên cùng một máy tại cùng một thời điểm). Linux cung cấp các mức bảo mật khác nhau cho ngƣời sử dụng . Mỗi ngƣời sử dụng chỉ làm việc trên một không gian tài nguyên dành riêng, chỉ có ngƣời quản trị mới có quyền thay đổi trong máy. 6 Tính hoàn chỉnh: Bản thân Linux đã đƣợc kèm theo các trình tiện ích cần thiết. Tất cả các trình tiện ích mà ngƣời sử dụng mong đợi đều có sẵn hoặc ở một dạng tƣơng đƣơng rất giống. Trên Linux, các trình biên dịch nhƣ C, C++, … các hạt nhân hay TCP/IP đều đƣợc chuẩn hóa. Tính tƣơng thích: Linux tƣơng thích hầu nhƣ hoàn toàn với một số chuẩn UNIX nhƣ IEEE POSIX.1, UNIX System V và BSD UNIX. Trên Linux cũng có thể tìm thấy các trình giả lập của DOS và Window, cho phép chạy các ứng dụng quen thuộc trên DOS và Window. Linux cũng hỗ trợ hầu hết các phần cứng máy PC. Hệ điều hành 32 bit đầy đủ: chúng ta không còn phải lo lắng về giới hạn bộ nhớ, các trình điều khiển EMM hay các bộ nhớ mở rộng… khi sử dụng Linux. Dễ cấu hình: Ngƣời sử dụng hầu nhƣ toàn quyền điều khiển về cách làm việc của hệ thống, không phải bận tâm về các giới hạn 640K và tiến hành tối ƣu hóa bộ nhớ mỗi lần cài đặt một trình điều khiển mới. Khả năng làm việc trên nhiều loại máy: Cấu hình phần cứng tối thiểu chỉ là chip 80386, 2MB bộ nhớ, 10-20 MB không gian đĩa để bắt đầu. Linux có khả năng chạy trên nhiều dòng máy khác nhau nhƣ Apple Macintosh, Sun, Dec Alpha và Power PC. Giống nhƣ UNIX, Linux là một hệ điều hành đa nhiệm, sử dụng sự quản lý bộ nhớ tinh vi và điều khiển tất cả các tiến trình, nếu một chƣơng trình nào đó bị hỏng chúng ta có thể loại bỏ nó và tiếp tục làm các công việc khác. Linux gần nhƣ miễn dịch với sự tấn công của các loại virus. Với sự phát triển và thay đổi liên tục về công nghệ và giao diện, Linux đã làm cho nhiều công ty, chính phủ, các tổ chức và ngƣời sử dụng quan tâm đến. Hàng ngàn website trên thế giới đã sử dụng Linux nhƣ một webserver, nhiều công ty lớn nhƣ HP, Ericssion đã sử dụng Linux nhƣ một hệ điều hành 7 chạy trên những sản phẩm của họ mà chúng ta đã biết thuật ngữ Linux Embedded. Gần đây chính phủ của nhiều quốc gia đã chọn Linux trong chiến lƣợc phát triển công nghệ bảo mật (security) chống lại sự tấn công của các tin tặc. Có nhiều phiên bản Linux đã phát triển thành những sản phẩm thƣơng mại có độ ổn định cao, đáp ứng nhiều công việc nhƣ Red Hat Linux, Caldera, SuSE. Với những việc làm trên, ta thấy Linux sẽ là hệ điều hành của tƣơng lai đáp ứng đƣợc nhiều yêu cầu của ngƣời tiêu dùng trên khắp thế giới. 1.2. Một số đặc điểm của hệ điều hành mạng Linux 1.2.1 Đặc điểm của hệ thống Các version khác nhau của Linux: thông thƣờng các nhân Linux (Linux kernel) có một số hiệu phiên bản riêng. Tại mỗi thời điểm có hai phiên bản mới nhất là phiên bản ổn định (Stable) và phiên bản phát triển (development). Phiên bản ổn định dành cho hầu hết ngƣời dùng, còn phiên bản phát triển thay đổi rất nhanh và đƣợc chạy thử bởi các nhà phát triển trên Internet. Phiên bản ổn định thƣờng có số hiệu nhỏ hơn. Các đặc tính của hệ thống:  Linux là hệ điều hành đa nhiệm và đa ngƣời dùng.  Tƣơng thích gần nhƣ hoàn toàn với các bản UNIX nhƣ chuẩn IEEE POSIX.1, System V, BSD.  Có thể đƣợc cài đặt cùng với các hệ điều hành khác nhƣ Windows 95/98, Windows NT, OS/2, hoặc các phiên bản khác của Linux. Chƣơng trình tải hệ thống Linux (LILO) cho phép chọn hệ điều hành khi khởi động.  Linux có thể chạy trên nhiều cấu trúc CPU khác nhau nhƣ Intel, SPAERC, Alpha, Power PC, MIPS và m68k. 8  Hỗ trợ nhiều hệ thống file khác nhau nhƣ: hệ thống file mở rộng (ext2fs) dành riêng, MS DOS file, Windows, OS2, Apple, …  Mạng là một trong những điểm mạnh của Linux. Linux cũng cung cấp đủ các dịch vụ giao thức mạng TCP/IP, bao gồm các Drive thiết bị cho card Ethernet, PPP và SLIP, PLIP (Parallel Line Internet Protocol) và NFS (Network file system). Hỗ trợ các dịch vụ nhƣ FTP, Telnet, NNTP và SMTP (Simple Mail Transfer Protocol). Kernel Linux hỗ trợ bức tƣờng lửa (firewall) cho mạng, ngƣời sử dụng có thể đặt một cấu hình một máy Linux bất kỳ nhƣ một filewall. Kernel: là phần chính, là trái tim của hệ điều hành, nó điều khiển giao diện giữa chƣơng trình ngƣời sử dụng với các thiết bị phần cứng, xếp lịch các tiến trình và nhiều tác vụ khác của hệ thống. Kernel không phải là một tiến trình chạy riêng biệt trong hệ thống mà là các tập trình đơn nằm trong bộ nhớ, mọi tiến trình đều gọi đến chúng. Trên nhiều cấu trúc máy tính, kernel có thể mô phỏng các lệnh dấu phẩy động (PFU) nếu bộ nhớ không có bộ đồng xử lý toán học. Kernel Linux cũng hỗ trợ các kỹ thuật nhƣ: phân trang bộ nhớ, bộ nhớ ảo, cache đĩa, … 1.2.2 Các đặc điểm phần mềm Các lệnh cơ bản và các tiện ích: tất cả các tiện ích và các lệnh cơ bản của UNIX đều đƣợc chuyển sang Linux. Các lệnh cơ bản nhƣ ls, awk, tr, sed, bs, more, và các phần mềm nhƣ Perl, Python, Java Deverlopment Kit. Các trình soạn thảo văn bản nhƣ: vi, ex, GNU emacs. Một trong những tiện ích quan trọng nhất trong Linux là shell. Shell là một chƣơng trình cho phép đọc và thƣc hiện các lệnh của ngƣời dùng. Trong shell ngƣời ta có thể viết các shell script, tƣơng tự nhƣ file Bat trong MSDOS, đó 9 là các tệp chứa các chƣơng trình ngôn ngữ lệnh Shell trong Linux nhƣ C shell, Bash shell (GNU Bourne Again shell), ksh (Korn shell). Các ngôn ngữ lập trình: Linux cung cấp một môi trƣờng lập trình UNIX đầy đủ, bao gồm mọi thƣ viện chuẩn, các công cụ lập trình, trình dịch và gỡ rối. Hai ngôn ngữ lập trình phổ biến nhất là C và C++ đƣợc hỗ trợ trong Linux với trình dịch gcc của GNU. Bộ Java Deverlopment Kit của Sun cũng đƣợc đƣa vào Linux. Các ngôn ngữ lập trình khác nhƣ Smalltalk, Fortran, Pascal, Lisp,… Hệ thống X Window: là giao diện đồ họa chuẩn cho các máy UNIX. Phiên bản X Window trên Linux là XFree86. Các ứng dụng chuẩn trên X Window là xterm (bộ mô phỏng đầu cuối dùng cho các ứng dụng ở các chế độ text), xdm (quản lý việc vào ra hệ thống của ngƣời dùng), xclock (đồng hồ), xman (bộ đọc trang hƣớng dẫn đồ họa). Giao diện X Window đƣợc điều khiển bởi chƣơng trình window manager (đặt các cửa sổ, cho phép thay đổi kích thƣớc, đặt biểu tƣợng, di chuyển cửa sổ,đặt kiểu của khung cửa sổ). Giao diện X Window đƣợc đảm nhiệm bởi chƣơng trình XFree86. Chƣơng trình XFree86 chứa chƣơng trình window manager chuẩn MIT twm, các thƣ viện lập trình và các file includes cho các nhà phát triển có thể phát triển các ứng dụng trên X Window. X Window cũng hỗ trợ Athena, Openlook, Xaw3D, các công cụ đồ họa 3 chiều nhƣ PEX, Mesa (phiên bản cài đặt miễn phí của OpenGL 3D). KDE và GNOME: là hai dự án quan trọng trong thế giới Linux. Hầu hết các phiên bản Linux đều cho phép đặt cấu hình một cách tự động một trong hai chƣơng trình trên. Mục tiêu chính của KDE là dễ sử dụng, ổn định và giao diện ngƣời dùng tƣơng thích với các môi trƣờng khác trong khi GNOME chú ý đến giao diện đẹp mắt và có khả năng đặt cấu hình tối đa. 10 Giao tiếp với Windows và MS-DOS: Linux có rất nhiều tiện ích cho phép có thể giao tiếp với Windows và MS-DOS nhƣ Wine – trình giả lập Microsoft Windows trên X Window trong Linux cho phép các ứng dụng trên windows có thể chạy trên Linux, trình giả lập MS-Dos trên Linux cho phép chạy các ứng dụng dƣới DOS trên Linux. 1.2.3 Linux và mạng Linux là một trong những hệ điều hành mạng mạnh nhất, hỗ trợ hai giao thức cơ bản cho các hệ thống UNIX: TCP/IP và UUCP. Hầu hết các mạng TCP/IP đều sử dụng card mạng Ethernet để kết nối. Linux hỗ trợ rất nhiều card Ethernet thông dụng cũng nhƣ các loại Fast Ethernet, Gigabit Ethernet, ATM, ISDN, mạng Lan không dây, Token Ring, packet ratio và các giao diện mạng hiệu năng cao khác. Linux cũng hỗ trợ PPP và SLIP, cho phép kết nối Internet qua modem, hỗ trợ các trình duyệt Web nhƣ: Netscape và các web server nhƣ Apache. Samba là gói phần mềm cho phép các máy tính Linux hoạt động nhƣ các file server và các print server trên Windows. NFS cho phép hệ thống có thể chia sẻ các tệp giữa các máy tính với nhau trên mạng. Với NFS cho phép nhìn các tệp ở xa giống nhƣ trên chính máy tính của ngƣời sử dụng. Giao thức FTP (File Transfer Protocol) cho phép truyền các tệp giữa các máy tính trên mạng với nhau. Các dịch vụ truyền thƣ điện tử nhƣ: Send mail, exim, Smail, các dịch vụ telnet, rlogin, ssh và rsh cho phép truy nhập và làm việc trên một máy tính khác trên mạng. Linux cũng hỗ trợ TCP/IP và cung cấp một giao diện lập trình socket chuẩn. Transmission Control Protocol và Internet Protocol là hai giao thức chính của họ TCP/IP 11 1.3. Tìm hiểu nhân của hệ điều hành Linux 1.3.1 Bộ phân thời cho tiến trình (Process Scheduler - SCHED) Các hệ điều hành đa nhiệm cho phép nhiều chƣơng trình chạy cùng một lúc bằng cách chuyển quyền thực thi qua lại giữa các chƣơng trình thật nhanh, làm cho chúng ta có cảm giác các chƣơng trình chạy cùng một lúc với nhau. 1.3.2 Bộ quản lý bộ nhớ (Memory Manager - MM) Bộ nhớ quy ƣớc (conventional memory) của PC chỉ có 640K do chƣơng trình BIOS chỉ quản lý đƣợc tới FFFFF, mà vùng nhớ cao (High memory từ A0000 trở lên) dùng để ánh xạ (map) BIOS, Video card memory và các thiết bị ngoại vi khác, vùng nhớ còn xài đƣợc (Low memory) là từ 9FFFF trở xuống. Ở chế độ bảo vệ (protect mode) của CPU 32 bit đƣa ra khái niệm virtual memory (bộ nhớ ảo). Lúc này mỗi process đƣợc cấp cho 4G virtual memory từ 00000000-FFFFFFFF. Nhƣng kernel sẽ giữ một table mô tả ánh xạ từng page của virtual memory với physical memory. Physical memory bây giờ bao gồm cả RAM và swap disk space. Tất nhiên 4G virtual memory không bao giờ đƣợc ánh xạ đầy đủ. Phần lớn mặc dù có đánh địa chỉ nhƣng chỉ khi ta đọc hoặc ghi lên đó thì kernel mới định phần từ physical memory. 1.3.3 Hệ thống file ảo (Virtual File System - VFS) Hệ thống này không chỉ cung cấp truy xuất đến hệ thống file trên harddisk mà còn cho tất cả các thiết bị ngoại vi. Ý tƣởng này bắt nguồn từ UNIX và các hệ điều hành sau này đều thiết lập theo hƣớng đấy. 1.3.4 Giao diện mạng (Network Interface - NET) Linux dựng sẵn TCP/IP trong kernel. 12 1.3.5 Bộ truyền thông nội bộ (Inter Process Communication IPC) Cung cấp các phƣơng tiện truyền thông giữa các tiến trình trong cùng hệ thống Linux. 1.4