﻿{"id":37,"date":"2026-01-27T21:36:22","date_gmt":"2026-01-27T21:36:22","guid":{"rendered":"https:\/\/pamietnik.ovh\/?p=37"},"modified":"2026-02-26T19:51:47","modified_gmt":"2026-02-26T19:51:47","slug":"flyingsquirrel-os-czyli-system-ktory-nie-istnieje","status":"publish","type":"post","link":"https:\/\/pamietnik.ovh\/index.php\/2026\/01\/27\/flyingsquirrel-os-czyli-system-ktory-nie-istnieje\/","title":{"rendered":"FlyingSquirrel OS, czyli system kt\u00f3ry nie istnieje"},"content":{"rendered":"\n<p>Moja robota z prac\u0105 nad systemami operacyjnymi zacze\u0142a si\u0119 gdzie\u015b w po\u0142owie 2025. Zacz\u0105\u0142em si\u0119 interesowa\u0107 systemami operacyjnymi jak robi\u0142em w\u0142asny interpreter w Pythonie dla mojego j\u0119zyka podobnego do BASIC, tego kt\u00f3rego Commodore korzystaj\u0105 i wiele innych retro urz\u0105dze\u0144. Widz\u0119 tutorial od takiego go\u015bcia, wchodz\u0119 w jego kana\u0142 i widz\u0119: Jak zrobi\u0107 sw\u00f3j w\u0142asny system operacyjny: Cz\u0119\u015b\u0107 1. No to tak se sprawdzam, i widz\u0119 \u017ce u\u017cywa\u0142 Dockera, GRUBa, i przeskakiwa\u0142 do 64-bitowego trybu w tylko 2 odcinki, ale seria MIA\u0141A tylko 2 odcinki. No c\u00f3\u017c, posprawdzam sobie inne. Nauczy\u0142em si\u0119 o bootloaderach i 16-bitowym asemblerze, wi\u0119c zacz\u0105\u0142em. Nauczy\u0142em si\u0119 o 16-bitach (na 16-bitach np. chodzi\u0142 DOS), 32-bitach (dla Windows\u00f3w to by\u0142y Windows NT 3.1 a\u017c do Windowsa XP, ostatnia wersja w 32-bitach), i w ko\u0144cu 64-bitach (Windows XP 64-bit Edition i dalej). 64-bit, tzw. Long Mode by\u0142 jedn\u0105 z najmniej opanowanych rzeczy przeze mnie, z takich powod\u00f3w jak stronicowanie, 2 wej\u015bcia dla TSSu (TSS to jest podstawowa cz\u0119\u015b\u0107 GDT kt\u00f3ra jest w stanie zmieni\u0107 stos podczas przerwania), itd. Natomiast wzi\u0105\u0142em kod 64-bitowy z tego tutorialu, i akurat gra\u0142em w gr\u0119 zwan\u0105 jako &#8220;There Is No Game: Wrong Dimension&#8221;, w kt\u00f3rej (uwaga spoilery) w 1 rozdziale by\u0142 fa\u0142szywy system operacyjny. No i tak my\u015bl\u0119, gram sobi\u0119, no i zdecydowa\u0142em si\u0119 \u017ce ten system b\u0119dzie prawdziwy. Wzi\u0105\u0142em rekwizyty, odpali\u0142em framebuffer w GRUBie (framebuffer to jest taki du\u017cy zbi\u00f3r warto\u015bci kt\u00f3re odpowiadaj\u0105 jakiemu\u015b pikselowi), ale chwila &#8211; jak ja mam renderowa\u0107 grafiki, jak ja nie mam nawet dost\u0119pu do dysku, nawet PNG lub innych! Tutaj przyszed\u0142 Python z pomoc\u0105 i to &#8211; \u017ce gra by\u0142a pikselowana. Napisa\u0142em program w Pythonie kt\u00f3ry zamienia plik PNG na m\u00f3j format, kr\u00f3tko m\u00f3wi\u0105c, header\u00f3w w C. Zamieniam ka\u017cdy piksel na jedn\u0105 struktur\u0119: x, y, kolor. 3 warto\u015bci, na ka\u017cdy piksel, z wyj\u0105tkiem niewidzialnych piksel\u00f3w. No to posz\u0142o, da\u0142em rad\u0119, i zacz\u0119\u0142o si\u0119. Grafika i GDT posz\u0142y najszybciej, problem by\u0142 w IDT. Min\u0105\u0142 tydzie\u0144 a ja si\u0119 podda\u0142em bo nigdy nie pr\u00f3bowa\u0142em 64-bitowego IDT. Obecnie (27 Stycznia, 2026) pr\u00f3buj\u0119 wgra\u0107 ruch myszk\u0105. <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Moja robota z prac\u0105 nad systemami operacyjnymi zacze\u0142a si\u0119 gdzie\u015b w po\u0142owie 2025. Zacz\u0105\u0142em si\u0119 interesowa\u0107 systemami operacyjnymi jak robi\u0142em<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-37","post","type-post","status-publish","format-standard","hentry","category-flyingsquirrel"],"_links":{"self":[{"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/posts\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/comments?post=37"}],"version-history":[{"count":1,"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/posts\/37\/revisions"}],"predecessor-version":[{"id":38,"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/posts\/37\/revisions\/38"}],"wp:attachment":[{"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/media?parent=37"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/categories?post=37"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pamietnik.ovh\/index.php\/wp-json\/wp\/v2\/tags?post=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}