{"id":387,"date":"2024-07-18T11:19:28","date_gmt":"2024-07-18T09:19:28","guid":{"rendered":"https:\/\/wi.pb.edu.pl\/p\/?page_id=387"},"modified":"2024-07-18T11:19:28","modified_gmt":"2024-07-18T09:19:28","slug":"systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec","status":"publish","type":"page","link":"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/","title":{"rendered":"Systemy operacyjne 2 &#8211; pracownia specjalistyczna Plan zaj\u0119\u0107"},"content":{"rendered":"<p>Systemy operacyjne 2 &#8211; pracownia specjalistyczna<br \/>\nPlan zaj\u0119\u0107<\/p>\n<p>1. Wprowadzenie do narz\u0119dzi programisty (g\u0142\u00f3wnie make i gcc) oraz narz\u0119dzi diff i patch. Zapoznanie si\u0119 z emulatorem Microsoft Virtual PC 2004.<\/p>\n<p>2. Konfiguracja i kompilacja j\u0105dra systemu, wprowadzanie prostych modyfikacji do j\u0105dra.<\/p>\n<p>J\u0105dro konfigurujemy poleceniem:<br \/>\nmake menuconfig<\/p>\n<p>Kompilacja j\u0105dra przy pomocy polece\u0144:<br \/>\nmake depend<br \/>\nmake bzImage<br \/>\nmake modules<br \/>\nmake modules_install<\/p>\n<p>Instalacja j\u0105dra: z katalogu .\/arch\/i386\/boot przegra\u0107 do katalogu plik bzImage. Uruchomi\u0107:<br \/>\nlilo<\/p>\n<p>Przy starcie systemu z menu menad\u017cera \u0142adowania lilo nale\u017cy wybra\u0107 opcj\u0119 New.<\/p>\n<p>Usuni\u0119cie plik\u00f3w tymczasowych, w celu wygenerownia patch&#8217;a<br \/>\nmake distclean<\/p>\n<p>Zadanie dla student\u00f3w.<br \/>\nZmodyfikuj j\u0105dro tak aby przy starcie wypisywa\u0142o komunikat to jest moje j\u0105dro. Odpowiednie wywo\u0142anie funkcji printk mo\u017cesz umie\u015bci\u0107 np. w pliku .\/drivers\/block\/ide.c (sterownik kontrolera dysku typu IDE) w funkcji ide_init. Skompiluj i uruchom zmodyfikowane j\u0105dro oraz wygeneruj (a nast\u0119pnie zaaplikuj) patch.<\/p>\n<p>Praca domowa.<br \/>\nUmie\u015b\u0107 kod komunikatu w odzielnej funkcji, np void komunikat(void) znajduj\u0105cej si\u0119 w odr\u0119bnym pliku, np. komunikat.c. Funkcj\u0119 t\u0105 nale\u017cy wywo\u0142a\u0107 z ide_init. Wskaz\u00f3wka: musisz zmodyfikowa\u0107 plik Makefile w katalogu .\/drivers\/block\/<\/p>\n<p>3. Zmodyfikuj kod sterownika ring (patch do j\u0105dra znajduje si\u0119 tutaj) przedstawiony na wyk\u0142adzie, tak aby:<br \/>\nSterownik obs\u0142ugiwa\u0142 nie jeden, ale cztery niezale\u017cne bufory pier\u015bcieniowe, rozr\u00f3\u017cniane za pomoc\u0105 numeru podrz\u0119dnego urz\u0105dzenia.<br \/>\nSterownik obs\u0142ugiwa\u0142 polecenie ioctl, pozwalaj\u0105ce zmieni\u0107 dynamicznie d\u0142ugo\u015b\u0107 bufora. D\u0142ugo\u015b\u0107 bufora mo\u017ce by\u0107 dowoln\u0105 liczb\u0105 z przedzia\u0142u [256B-16KB]. Podanie innej d\u0142ugo\u015bci jest b\u0142\u0119dem. Zmiana d\u0142ugo\u015bci bufora powinna by\u0107 poprawnie wykonana, nawet gdy znajduj\u0105 si\u0119 w nim jakie\u015b znaki (uwaga na synchronizacj\u0119: kmalloc mo\u017ce spowodowa\u0107 u\u015bpienie procesu i prze\u0142\u0105czenie kontekstu).<br \/>\nInna komenda ioctl powinna pozwala\u0107 na odczyt d\u0142ugo\u015bci bufora.<br \/>\nSterownik m\u00f3g\u0142 zosta\u0107 skompilowany jako modu\u0142 j\u0105dra.<\/p>\n<p>4. Zmodyfikuj kod sterownika ring stworzony w punkcie 3, tak aby:<br \/>\nNowa komenda ioctl pozwala\u0142aby na sprawdzenie, czy znak x jest w buforze.<br \/>\nNowa komenda ioctl pozwala\u0142oby na uporz\u0105dkowanie bufora. Uporz\u0105dkowanie powinno polega\u0107 na przeniesieniu wszystkich znak\u00f3w na pocz\u0105tek bufora<\/p>\n<p>Opracowa\u0142: Wojciech Kwedlo<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Systemy operacyjne 2 &#8211; pracownia specjalistyczna Plan zaj\u0119\u0107 1. Wprowadzenie do narz\u0119dzi programisty (g\u0142\u00f3wnie make<a class=\"read-more\" href=\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/\" title=\"Poka\u017c artyku\u0142 Systemy operacyjne 2 &#8211; pracownia specjalistyczna Plan zaj\u0119\u0107\">wi\u0119cej<\/a><\/p>\n","protected":false},"author":14,"featured_media":0,"parent":323,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-387","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Systemy operacyjne 2 - pracownia specjalistyczna Plan zaj\u0119\u0107 - Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Systemy operacyjne 2 - pracownia specjalistyczna Plan zaj\u0119\u0107 - Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej\" \/>\n<meta property=\"og:description\" content=\"Systemy operacyjne 2 &#8211; pracownia specjalistyczna Plan zaj\u0119\u0107 1. Wprowadzenie do narz\u0119dzi programisty (g\u0142\u00f3wnie makewi\u0119cej\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/\" \/>\n<meta property=\"og:site_name\" content=\"Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/\",\"url\":\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/\",\"name\":\"Systemy operacyjne 2 - pracownia specjalistyczna Plan zaj\u0119\u0107 - Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej\",\"isPartOf\":{\"@id\":\"https:\/\/wi.pb.edu.pl\/p\/#website\"},\"datePublished\":\"2024-07-18T09:19:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/wi.pb.edu.pl\/p\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"dr hab. in\u017c. Wojciech Kwedlo\",\"item\":\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Dydaktyka\",\"item\":\"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Systemy operacyjne 2 &#8211; pracownia specjalistyczna Plan zaj\u0119\u0107\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wi.pb.edu.pl\/p\/#website\",\"url\":\"https:\/\/wi.pb.edu.pl\/p\/\",\"name\":\"Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wi.pb.edu.pl\/p\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Systemy operacyjne 2 - pracownia specjalistyczna Plan zaj\u0119\u0107 - Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/","og_locale":"pl_PL","og_type":"article","og_title":"Systemy operacyjne 2 - pracownia specjalistyczna Plan zaj\u0119\u0107 - Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej","og_description":"Systemy operacyjne 2 &#8211; pracownia specjalistyczna Plan zaj\u0119\u0107 1. Wprowadzenie do narz\u0119dzi programisty (g\u0142\u00f3wnie makewi\u0119cej","og_url":"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/","og_site_name":"Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej","twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"2 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/","url":"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/","name":"Systemy operacyjne 2 - pracownia specjalistyczna Plan zaj\u0119\u0107 - Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej","isPartOf":{"@id":"https:\/\/wi.pb.edu.pl\/p\/#website"},"datePublished":"2024-07-18T09:19:28+00:00","breadcrumb":{"@id":"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/systemy-operacyjne-2-pracownia-specjalistyczna-plan-zajec\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/wi.pb.edu.pl\/p\/"},{"@type":"ListItem","position":2,"name":"dr hab. in\u017c. Wojciech Kwedlo","item":"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/"},{"@type":"ListItem","position":3,"name":"Dydaktyka","item":"https:\/\/wi.pb.edu.pl\/p\/wojciech-kwedlo\/dydaktyka\/"},{"@type":"ListItem","position":4,"name":"Systemy operacyjne 2 &#8211; pracownia specjalistyczna Plan zaj\u0119\u0107"}]},{"@type":"WebSite","@id":"https:\/\/wi.pb.edu.pl\/p\/#website","url":"https:\/\/wi.pb.edu.pl\/p\/","name":"Strony pracownik\u00f3w Wydzia\u0142u Informatyki Politechniki Bia\u0142ostockiej","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wi.pb.edu.pl\/p\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"}]}},"_links":{"self":[{"href":"https:\/\/wi.pb.edu.pl\/p\/wp-json\/wp\/v2\/pages\/387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wi.pb.edu.pl\/p\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wi.pb.edu.pl\/p\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wi.pb.edu.pl\/p\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/wi.pb.edu.pl\/p\/wp-json\/wp\/v2\/comments?post=387"}],"version-history":[{"count":1,"href":"https:\/\/wi.pb.edu.pl\/p\/wp-json\/wp\/v2\/pages\/387\/revisions"}],"predecessor-version":[{"id":388,"href":"https:\/\/wi.pb.edu.pl\/p\/wp-json\/wp\/v2\/pages\/387\/revisions\/388"}],"up":[{"embeddable":true,"href":"https:\/\/wi.pb.edu.pl\/p\/wp-json\/wp\/v2\/pages\/323"}],"wp:attachment":[{"href":"https:\/\/wi.pb.edu.pl\/p\/wp-json\/wp\/v2\/media?parent=387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}