Slide bài giảng hệ điều hành
21.14. H i u hành Linuxệ đ ề4. H i u hành Linuxệ đ ề 21.2H i u hành Linuxệ đ ềH i u hành Linuxệ đ ề■L ch s Linuxị ử■Nguyên t c thi t kắ ế ế■L p trình Kernel Modulesậ■Qu n lý quá trìnhả■nh th i Đị ờ■Qu n lý b nh ả ộ ớ■H th ng fileệ ố■H th ng xu t nh p (I/O)ệ ố ấ ậ■Truy n thông liên quá trìnhề■C u trúc m ngấ ạ■B o m tả ậ 21.3M c tiêuụM c tiêuụ■Kh o sát l ch s h i u hành Unix - ngu n g c c a Linux và m t ả ị ử ệ đ ề ồ ố ủ ộs nguyên t c b t bu c thi t k Linuxố ắ ắ ộ để ế ế■Nghiên c u mô hình x lý Linux b ng vi c minh h a cách nh th i ứ ử ằ ệ ọ đị ờcác quá trình và cung c p truy n thông liên quá trình.ấ ề■Xem xét cách qu n lý b nh trong Linuxả ộ ớ■Tìm hi u xem Linux hi n th c h th ng file và qu n lý các thi t b ể ệ ự ệ ố ả ế ịxuât nh p nh th nàoậ ư ế 21.4L ch sị ửL ch sị ử■Linux là m t h i u hành tiên ti n và mi n phí d a trên tiêu chu n ộ ệ đ ề ế ễ ự ẩUnix■Ban u Linux phát tri n nh . n n m 1991 Linus Torvalds k t đầ ể ỏ Đế ă ếh p thêm kernel(nhân) v i m c ích chính là có kh n ng thích h p ợ ớ ụ đ ả ă ợv i Unixớ■L ch s cho th y Linux là s c ng tác c a nhi u ng i s d ng ị ử ấ ự ộ ủ ề ườ ử ụtrên toàn th gi i, h u h t h trao i u qua internetế ớ ầ ế ọ đổ đề■Linux c thi t k có th ch y hi u qu trên nh ng ph n c ng đượ ế ế để ể ạ ệ ả ữ ầ ứmáy tính thông th ng, h n n a Linux còn có th ch y trên nhi u ườ ơ ữ ể ạ ền n ph n c ng khác.ề ầ ứ■Nòng c t c a h i u hành Linux kernel là toàn b nguyên b n, ố ủ ệ đ ề ộ ảnh ng nó có th ch y nhi u ph n m m Unix mi n phí, ó là k t ư ể ạ ề ầ ề ễ đ ếqu c a vi c tích h p code có th thích h p Unix.ả ủ ệ ợ để ể ợ■Thêm vào ó, thay i Linux bao g m cung c p thêm kernel, các đ đổ ồ ấng d ng, và các công c qu n lýứ ụ ụ ả 21.5The Linux KernelThe Linux Kernel■Phiên b n 0.01 (5-1991) không có m ng, ch có th ch y trên ả ạ ỉ ể ạ80386- t ng thích v i vi x lý intel và trên ph n c ng máy tính, ươ ớ ử ầ ức bi t b gi i h n trong giao ti p device-drive, và ch cung đặ ệ ị ớ ạ ế ỉc p cho h th ng file Minixấ ệ ố■Linux 1.0 (3-1994) có thêm m t s tính n ng m i:ộ ố ă ớ●H tr thêm giao th c m ng TCP/IP theo chu n UNIXỗ ợ ứ ạ ẩ●Các ch ng trình m ng c h tr giao ti p socket t ng ươ ạ đượ ỗ ợ ế ươthích BCD●H tr giao ti p Device-driver có th ch y IP trong ỗ ợ ế để ể ạm ng Ethernetạ●T ng c ng h th ng fileă ườ ệ ố●H tr cách s p x p cho i u khi n SCSI giúp t ng hi u ỗ ợ ắ ế đề ể ă ệqu truy xu t a.ả ấ đĩ●H tr thêm ph n c ngỗ ợ ầ ứ■Phiên b n 1.2 (5-1995) là b n Linux kernel cho PC cu i cùngả ả ố 21.6Linux 2.0Linux 2.0■6-1996, 2.0 thêm 2 tính n ng m i:ă ớ●H tr thêm c u trúc ph c t p, bao g m c ng Alpha 64-bitỗ ợ ấ ứ ạ ồ ồ●H tr c u trúc a vi x lý.ỗ ợ ấ đ ử■Các tính n ng khác:ă●C i thi n mã qu n lý b nhả ệ ả ộ ớ●C i thi n hi u su t TCP/IP ả ệ ệ ấ●H tr vào nhân(kernel) s c p các lu ng, và t ng n p các ỗ ợ ơ ấ ồ ự độ ạmodule theo yêu c uầ●Giao di n c u hình chu nệ ấ ẩ■c dùng cho Motorola 68000-series vi x lý, h th ng Sun Sparc, Đượ ử ệ ốPC và h th ng PowerMacệ ố■2.4 và 2.6 t ng thêm h tr SMP, thêm nh t ký trong h th ng file, u ă ỗ ợ ậ ệ ố ưtiên kernel, h tr b nh 64-bitỗ ợ ộ ớ 21.7H th ng Linuxệ ốH th ng Linuxệ ố■Linux dùng nhi u công c gi ng nh : h th ng Berkeley’s BSD,h ề ụ ố ư ệ ố ệth ng MIT’s X Window, và d án Free Software Foundation's GNU ố ự■M t th vi n nh c b t u b ng d án GNU, và c ng ng ộ ư ệ ỏ đượ ắ đầ ằ ự ộ đồLinux ã d n d n c i thi n.đ ầ ầ ả ệ■M ng Linux-công c qu n lý c b t ngu n t mã 4.3BSD; ạ ụ ả đượ ắ ồ ừNgu n g c c a mã BSD g n ây nh Free BSD ã m n l i t ồ ố ủ ầ đ ư đ ượ ạ ừb ng mã này c a Linuxả ủ■Các h th ng Linux c duy trì b i m t m ng l i l ng l o c a ệ ố đượ ở ộ ạ ướ ỏ ẻ ủcác c ng tác trên Internet, v i m t s l ng nh c a các trang ộ ớ ộ ố ượ ỏ ủweb công c ng ho t ng v i tiêu chu n th c tộ ạ độ ớ ẩ ự ế 21.8Linux DistributionsLinux Distributions■T p h p các gói tr c khi biên d ch hay ậ ợ ướ ị distributions, bao g m h ồ ệth ng Linux c b n, cài t h th ng, qu n lý ti n ích và c ch ố ơ ả đặ ệ ố ả ệ ơ ếs n sàng cài t các gói c a công c ti n íchẵ để đặ ủ ụ ệ■Các phân ph i u tiên qu n lý các gói b ng cách n gi n là ố đầ ả ằ đơ ảcung c p ph ng ti n bung t t c các t p tin vào n i thích h p; ấ ươ ệ để ấ ả ậ ơ ợcác phân ph i sau này bao g m các gói qu n lý nâng caoố ồ ả■M i nhà phân ph i bao g m SLS và Slackware ỗ ố ồ●Red Hat và Debian là các nhà phân ph i ph bi n bao g m ố ổ ế ồcác ngu n th ng m i và không th ng m iồ ươ ạ ươ ạ■Gói nh d ng file RPM cho phép tích h p gi a các nhà phân ph i đị ạ ợ ữ ốLinux 21.9Gi y phép Linux ấGi y phép Linux ấ■Nhân Linux c phân phát b i GNU General Public License đượ ở(GPL), các i u kho n trong ó c t ra b i Free Software đ ề ả đ đượ đặ ởFoundation ■B t c ai s d ng Linux, hay t o ra các ng d ng c a Linux, có ấ ứ ử ụ ạ ứ ụ ủth làm m t ngu n g c c a các s n ph m c quy n; ph n m m ể ấ ồ ố ủ ả ẩ độ ề ầ ềphát hành d i GPL có th không c c p phát l i nh là s n ướ ể đượ ấ ạ ư ảph m binary-onlyẩ 21.10Nguyên t c thi t kắ ế ếNguyên t c thi t kắ ế ế■Linux là m t h th ng a tác v , a ng i dùng v i t p h p các ộ ệ ố đ ụ đ ườ ớ ậ ợcông c thích h p v i Unixụ ợ ớ■Các h th ng t p tin c a nó tôn tr ng tri t UNIX semantic ệ ố ậ ủ ọ ệ đểtruy n th ng , và nó th c hi n y các tiêu chu n mô hình ề ố ự ệ đầ đủ ẩm ng UNIXạ■M c tiêu thi t k chính là t c , hi u qu và tiêu chu n hóaụ ế ế ố độ ệ ả ẩ■Linux c thi t k có th tuân th v i các tài li u liên quan đượ ế ế để ể ủ ớ ệposix ; ít nh t có hai phân ph i Linux ã chính th c c c p gi y ấ ố đ ứ đượ ấ ấch ng nh n posix. Giao di n l p trình Linux tuân th SVR4 UNIX ứ ậ ệ ậ ủsemantics, h n là ho t ng BSD.ơ để ạ độ [...]... nóủ ● H th ng crediting này t ng dánh u tiên các ti n trình t ng ệ ố ự độ ư ế ươ tác hay I/O-bound priority 2 credits : credits += 21.36 Chia B Nh thành m t Buddy Heapộ ớ ộ Chia B Nh thành m t Buddy Heapộ ớ ộ 21.3 M c tiêuụ M c tiêuụ ■ Kh o sát l ch s h i u hành Unix - ngu n g c c a Linux và m t ả ị ử ệ đ ề ồ ố ủ ộ s nguyên t c b t bu c thi t k Linuxố ắ ắ ộ để ế ế ■ Nghiên c u mơ hình x lý Linux b ng... trong nh ng file này, ữ ệ đượ đọ ừ ộ ữ proc thu th p thơng tin thích h p, nh d ng nó thành v n b n và t nó ậ ợ đị ạ ă ả đặ vào buffer c c a ti n trình yêu c uđọ ủ ế ầ 21.18 Qu n lý ti n trìnhả ế Qu n lý ti n trìnhả ế ■ Qu n lý ti n trình Unix chia vi c t o quá trình và vi c ch y các quá ả ế ệ ạ ệ ạ trình m i thành hai thao tác c l p.ớ độ ậ ● Câu l nh ệ fork t o quá trình m iđể ạ ớ ● M t ch ng trình... ch t ng t c a BSD Fast File System (ffs) cho ộ ơ ế ươ ự ủ vi c nh v các block d li u t i m t file xác nhệ đị ị ữ ệ ớ ộ đị ■ Khác bi t chính gi a ext2fs và ffs liên quan t i cách c p phát a c a ệ ữ ớ ấ đĩ ủ chúng ● Trong ffs, a c c p phát t i file theo block 8Kb, v i các block đĩ đượ ấ ớ ớ c chia nh thành các phân m nh 1Kb l u tr các file nh đượ ỏ ả để ư ữ ỏ hay các block c làm y m t ph n cu i fileđượ... ấ đượ ế ế để đặ ề lu n lý c a m t file vào các block k v t lý trên a, do ó nó có ậ ủ ộ ề ậ đĩ đ th ch p nh n m t yêu c u I/O cho vài block a nh m t thao ể ấ ậ ộ ầ đĩ ư ộ tác nđơ 21.2 H i u hành Linuxệ đ ề H i u hành Linuxệ đ ề ■ L ch s Linuxị ử ■ Nguyên t c thi t kắ ế ế ■ L p trình Kernel Modulesậ ■ Qu n lý quá trìnhả ■ nh th i Đị ờ ■ Qu n lý b nh ả ộ ớ ■ H th ng fileệ ố ■ H th ng xu t nh p (I/O)ệ... UNIX, m t ch ng trình bao g m t t c các thông tin ph i ộ ươ ồ ấ ả ả duy trì t track ch a các b i c nh c a m t hi n th c n trong để ứ ố ả ủ ộ ệ ự đơ q trình nđơ ■ Trong Linux, c tính c a q trình chia thành 3 nhóm: c tính đặ ủ đặ c a q trình, mơi tr ng, và b i c nh.ủ ườ ố ả 21.31 nh Th i Ti n TrìnhĐị ờ ế nh Th i Ti n TrìnhĐị ờ ế ■ Linux dùng hai gi i thu t nh th i ti n trình:ả ậ đị ờ ế ● M t gi i thu... ng file khác nhau thông qua m t l p tr u t ng, ó là, h th ng ố ộ ớ ừ ượ đ ệ ố file o ả virtual file system (VFS) ■ Linux VFS c thi t k quanh các nguyên t c h ng i t ng đượ ế ế ắ ướ đố ượ và g m có hai thành ph n :ồ ầ ● M t t p h p các nh ngh a xác nh m t file object ( c cho ộ ậ ợ đị ĩ đị ộ đượ phép) trông nh th nàoư ế Các c u trúc ấ Inode-object và file-object bi u di n các file ể ễ riêng bi cệ file... Software đ ề ả đ đượ đặ ở Foundation ■ B t c ai s d ng Linux, hay t o ra các ng d ng c a Linux, có ấ ứ ử ụ ạ ứ ụ ủ th làm m t ngu n g c c a các s n ph m c quy n; ph n m m ể ấ ồ ố ủ ả ẩ độ ề ầ ề phát hành d i GPL có th khơng c c p phát l i nh là s n ướ ể đượ ấ ạ ư ả ph m binary-onlyẩ 21.41 B Nh o (tt)ộ ớ Ả B Nh o (tt)ộ ớ Ả ■ Khi th c thi m t ch ng trình m i, ti n trình c cho m t khơng ự ộ ươ ớ ế đượ... ể ị ế ư ở ế trình khác khi m t time-sharing scheduling interrupt xu t hi nộ ấ ệ 21.24 nh th iĐị ờ nh th iĐị ờ ■ Nhi m v là ch nh th i gian CPU cho các tác v khác nhau ệ ụ ỉ đị ờ ụ trong ph m vi h i u hành ệ đ ề ■ Trong khi nh th i th ng c xem nh là vi c ch y và ng t các đị ờ ườ đượ ư ệ ạ ắ quá trình. Trong Linux, vi c ch y các ch n trình c ng bao g m ệ ạ ươ ũ ồ các tác v kernel khác nhauụ ■ Vi c ch... ng t x y ra trong khi ch ng trình ang th c thi ộ ắ ả ươ đ ự m t tác v c a h th ng nhân, c ộ ụ ủ ệ ố ờ need_resched c a kernel ủ c b t lên b nh th i s ch y system call n khi hoàn đượ ậ để ộ đị ờ ẽ ạ đế thành và i u khi n tr v ch ng i s d ngđ ề ể ả ề ế độ ườ ử ụ 2. K thu t th hai là vùng tranh ch p x y ra trong service routineỹ ậ ứ ấ ả – b ng cách dùng ng t vi x lý i u khi n không cho ng t ằ ắ ử để đ ề... p, kernel m b o r ng nó có th ả ấ đả ả ằ ể x lý mà khơng có m t l i nào do các c u trúc d li u chia x ử ộ ỗ ấ ữ ệ ẻ truy su t cùng lúcấ 21.38 21.07 21.07 21.4 L ch sị ử L ch sị ử ■ Linux là m t h i u hành tiên ti n và mi n phí d a trên tiêu chu n ộ ệ đ ề ế ễ ự ẩ Unix ■ Ban u Linux phát tri n nh . n n m 1991 Linus Torvalds k t đầ ể ỏ Đế ă ế h p thêm kernel(nhân) v i m c ích chính là có kh n ng thích . 21.14. H i u hành Linuxệ đ ề4. H i u hành Linuxệ đ ề 21.2H i u hành Linuxệ đ ềH i u hành Linuxệ đ ề■L ch s Linuxị ử■Nguyên. để ạ độ 21.11Các thành ph n h th ng Linuxầ ệ ốCác thành ph n h th ng Linuxầ ệ ố 21.12Các thành ph n h th ng Linux(Cont.)ầ ệ ốCác thành ph n h th ng