2021-05-02 16:02:00 +00:00
# Writing an Operating system
2021-05-03 00:22:12 +00:00
## As a learning experience!
Inspired by people like Linus Torvalds and Andreas Kling
2021-05-26 18:51:35 +00:00
< svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg8"
version="1.1"
viewBox="65 50 155 100"
height="350px"
width="350px">
< defs
id="defs2" />
< metadata
id="metadata5">
< rdf:RDF >
< cc:Work
rdf:about="">
< dc:format > image/svg+xml< / dc:format >
< dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
< dc:title > < / dc:title >
< / cc:Work >
< / rdf:RDF >
< / metadata >
< g
transform="translate(0,-87)"
id="layer1">
< flowRoot
transform="matrix(0.26458333,0,0,0.26458333,110.06159,147.58623)"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
id="flowRoot3766"
xml:space="preserve">< flowRegion
id="flowRegion3768">< rect
y="80.042259"
x="121.21831"
height="47.477169"
width="202.03049"
id="rect3770" />< / flowRegion > < flowPara
style="fill:#ffffff"
id="flowPara3772">BarinkOS< / flowPara > < / flowRoot > < path
id="path3776"
d="m 178.80053,176.68888 c -4.18903,-4.53128 5.28921,-8.31027 3.48568,-1.22375 -0.17749,1.70638 -2.30144,2.41277 -3.48568,1.22375 z"
style="fill:#2b0000;stroke-width:0.26726952" />
< path
id="path3778"
d="m 151.5566,177.29399 c -2.23182,-3.34608 6.06539,-1.97125 0.67105,0.13802 L 151.5566,177.294 Z"
style="fill:#2b0000;stroke-width:0.06681738" />
< path
id="path3780"
d="m 144.25341,172.42168 c 0.30999,-3.79446 5.87707,2.22391 0.26155,1.13572 -0.5841,0.19411 -0.10839,-0.867 -0.26155,-1.13572 z"
style="fill:#2b0000;stroke-width:0.06681738" />
< path
id="path3782"
d="m 144.25341,175.85737 c -0.18623,-4.25034 6.8357,1.95298 0.67824,1.37517 -1.18316,0.31507 -0.50167,-0.71815 -0.67824,-1.37517 z"
style="fill:#2b0000;stroke-width:0.06681738" />
< path
transform="scale(0.26458333)"
id="path3792"
d=""
style="fill:#2b0000;stroke-width:0.06313454" />
< path
transform="scale(0.26458333)"
id="path3796"
d=""
style="fill:#2b0000;stroke-width:0.06313454" />
< path
transform="scale(0.26458333)"
id="path3800"
d=""
style="fill:#2b0000;stroke-width:0.06313454" />
< path
id="path3842"
d="m 208.71194,149.20223 c 0.0131,-0.004 8e-4,0.006 0,0 z"
style="fill:#2b0000;stroke-width:0.00292326" />
< path
id="path3844"
d="m 208.07142,149.06532 c -0.19737,-0.0756 0.21336,0.0689 0,0 z"
style="fill:#2b0000;stroke-width:0.00103353" />
< path
transform="scale(0.26458333)"
id="path3850"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
id="path3852"
d="m 208.16356,149.09515 c -0.0135,-0.007 0.0236,0.008 0,0 z"
style="fill:#2b0000;stroke-width:0.00103353" />
< path
transform="scale(0.26458333)"
id="path3862"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3864"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3870"
d=""
style="fill:#2b0000;stroke-width:0.00552427" />
< path
transform="scale(0.26458333)"
id="path3892"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3894"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3902"
d=""
style="fill:#2b0000;stroke-width:0.0078125" />
< path
transform="scale(0.26458333)"
id="path3904"
d=""
style="fill:#2b0000;stroke-width:0.0078125" />
< path
transform="scale(0.26458333)"
id="path3912"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3918"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3920"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3922"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
id="path3924"
d="m 205.56448,147.92944 c -0.0102,-0.007 0.0111,-0.003 0,0 z"
style="fill:#2b0000;stroke-width:0.00103353" />
< path
id="path3926"
d="m 205.56035,147.92059 c 0.002,-0.003 0.001,0.004 0,0 z"
style="fill:#2b0000;stroke-width:0.00103353" />
< path
transform="scale(0.26458333)"
id="path3930"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3932"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
id="path3940"
d="m 204.19828,150.00483 c -0.0979,-0.006 0.48891,-0.0134 0,0 z"
style="fill:#2b0000;stroke-width:0.00206706" />
< path
id="path3942"
d="m 204.70057,149.86835 c 0.47197,-0.33711 0.28564,-0.15715 0,0 z"
style="fill:#2b0000;stroke-width:0.00206706" />
< path
transform="scale(0.26458333)"
id="path3944"
d=""
style="fill:#2b0000;stroke-width:0.0078125" />
< path
transform="scale(0.26458333)"
id="path3958"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3960"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3962"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3964"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
transform="scale(0.26458333)"
id="path3968"
d=""
style="fill:#2b0000;stroke-width:0.00390625" />
< path
id="path4789"
d="m 215.28709,146.75103 c -1.04532,-0.1314 -1.78177,-0.66492 -2.43151,-1.61951 l -0.11274,-0.42121 0.31402,0.0267 c 0,0 0.46878,0.0433 0.68934,-0.0699 1.17068,-0.60126 2.16328,-0.87452 2.88555,-0.79436 0.95867,0.10638 1.37286,0.48112 1.54071,1.6089 0.0414,0.27844 0.12037,0.65507 0.0733,0.80927 0.0332,0.0721 0.005,0.17687 0.005,0.17687 0,0 0.0585,0.14281 0.0373,0.15961 -0.009,0.007 -0.75751,0.11426 -1.29745,0.16586 -0.49331,0.0471 -1.25772,0.0242 -1.55522,-0.0132 z"
style="fill:#2b0000;fill-opacity:1;stroke-width:0.02348712" />
< path
id="path4801"
d="m 203.2657,149.80312 c -0.53663,-0.0643 -0.87149,-0.29735 -0.87374,-0.60811 -0.002,-0.25245 0.24493,-0.663 0.60499,-1.00655 0.64314,-0.61366 1.48852,-1.03478 2.07723,-1.03478 0.27818,0 0.41124,0.0445 0.57002,0.19049 0.10938,0.10053 0.1484,0.16301 0.19967,0.31892 0.0568,0.17276 0.0619,0.23219 0.0467,0.54529 -0.0181,0.37199 -0.075,0.64834 -0.22857,1.11047 -0.0705,0.21209 -0.1065,0.28226 -0.15332,0.29869 -0.0969,0.034 -0.95439,0.15685 -1.30517,0.18697 -0.36245,0.0311 -0.67019,0.0307 -0.9378,-0.001 z"
style="fill:#2b0000;fill-opacity:1;stroke-width:0.02786683" />
< path
id="path4803"
d="m 207.68239,151.42604 c -0.89313,-0.20185 -1.40558,-0.40251 -1.71112,-0.67004 -0.52019,-0.45544 -0.21368,-1.09 0.77282,-1.59996 0.81795,-0.42284 1.92233,-0.60911 2.5693,-0.43336 0.38029,0.10331 0.63077,0.29411 0.76306,0.58129 0.1716,0.37252 0.0966,0.97932 -0.19818,1.6045 l -0.0923,0.19569 -0.43112,0.12923 c -0.3988,0.11955 -0.47447,0.1323 -1.00954,0.1701 -0.31815,0.0225 -0.58475,0.0396 -0.59251,0.0381 -0.008,-0.002 -0.0394,-0.009 -0.0705,-0.0155 z"
style="fill:#2b0000;fill-opacity:1;stroke-width:0.02902764" />
< path
id="path4805"
d="m 211.0107,150.43626 c -0.777,-0.38328 -1.28201,-0.76802 -1.48655,-1.13253 -0.1218,-0.21706 -0.15028,-0.50142 -0.0702,-0.70156 0.21454,-0.53672 1.11077,-1.01488 2.17251,-1.1591 0.84963,-0.1154 1.60576,0.0834 1.85442,0.48753 0.079,0.12837 0.0895,0.17609 0.0871,0.39375 -0.002,0.17448 -0.0234,0.29808 -0.0723,0.41824 -0.10413,0.25541 -0.35206,0.64794 -0.59294,0.93866 -0.20349,0.24559 -0.2451,0.27712 -0.81788,0.61965 -0.33192,0.1985 -0.60729,0.36051 -0.61193,0.36002 -0.004,-3.5e-4 -0.2126,-0.10158 -0.46212,-0.22466 z"
style="fill:#2b0000;fill-opacity:1;stroke-width:0.03167402" />
< path
id="path4807"
d="m 209.46285,153.4305 c -0.42234,-0.099 -0.58844,-0.11741 -1.32483,-0.14697 -1.45904,-0.0586 -2.22916,-0.20706 -2.37623,-0.4582 -0.0615,-0.10494 -0.0356,-0.17457 0.10611,-0.28553 0.38202,-0.29918 1.29414,-0.49577 2.29487,-0.49461 1.31168,0.002 2.26998,0.32514 2.89114,0.97633 0.0783,0.0821 0.14239,0.1635 0.14239,0.1809 0,0.0497 -0.27069,0.22471 -0.44682,0.28887 -0.25658,0.0935 -0.72244,0.0714 -1.28663,-0.0608 z"
style="fill:#2b0000;fill-opacity:1;stroke-width:0.03078529" />
< path
id="path3774"
d="m 69.258921,224.93573 c 6.836541,-5.15334 14.09304,-9.79172 20.762708,-15.14417 7.156981,-6.8613 14.555861,-13.53903 21.562431,-20.51447 3.43173,-6.34502 6.59802,-12.89886 10.19353,-19.11504 4.36601,-3.83525 8.71024,-7.69553 13.10523,-11.49758 6.48317,-1.73978 13.06433,-3.16547 19.67279,-4.34368 10.02263,1.65778 20.30246,2.65074 29.74067,6.66749 4.93004,0.18216 11.64542,-5.02559 14.27063,-8.69356 -0.88302,-3.10757 -1.60657,-6.55766 2.87583,-5.64728 2.79575,-3.52653 7.55631,-2.57721 11.3001,-1.93713 1.42106,2.44206 3.36004,1.97191 5.50792,1.7574 1.13323,5.3871 -5.75382,9.02971 -3.35584,14.72213 0.49573,3.42545 0.43567,6.82486 -0.43043,10.18651 -0.28078,4.12674 -3.46589,7.17187 -5.2308,10.74591 -1.62,2.85957 -3.91582,5.48393 -3.76346,8.96037 0.008,4.86341 -2.64925,12.65802 2.55475,15.29336 2.34404,0.93759 7.88393,2.6095 2.06078,2.11246 2.98567,0.29697 5.76843,2.78879 1.02736,1.9507 -3.4207,-2.68381 -8.72017,-3.07807 -12.07723,-5.22919 -1.24988,-8.78532 1.22212,-17.69442 4.1215,-25.74896 -3.44434,5.14589 -4.04446,11.59816 -5.22875,17.5523 0.1938,2.95225 0.0393,5.96035 0.64334,8.86164 2.34008,1.70303 10.94272,2.4526 9.23791,5.34526 -2.04957,-1.44522 -6.64291,-3.07253 -1.92206,-0.15476 1.96303,2.64946 -9.39286,-4.0804 -4.18426,-0.33405 2.24533,2.43077 -8.458,-0.48713 -9.67644,-3.36446 -1.8457,-1.78539 -0.14003,-5.14046 -0.79239,-7.4647 -0.4571,-3.65114 -7.75289,-1.15069 -10.9895,-2.91699 -2.46379,-0.64142 -4.86505,-0.51488 -7.17159,0.57814 -4.12112,0.40161 -13.73228,6.11912 -12.20298,-2.0045 0.18187,-6.07509 -2.73789,-11.54343 -7.0169,-15.68315 -0.54812,1.63432 6.98063,7.85629 6.07755,12.64261 -0.15889,2.67318 1.34004,6.37544 -0.45204,8.53097 -5.07369,4.00638 -8.51672,9.52163 -10.87423,15.46283 4.71618,-0.27586 10.65807,0.89913 15.6827,2.53375 2.26307,-0.13056 7.92452,1.46606 3.30554,2.71228 -9.39465,-0.38492 -18.83935,-0.19504 -28.25509,-0.56204 -1.34814,-1.5722 -3.69115,-2.67851 -3.23818,-5.09411 -0.0856,-5.00386 -1.58073,-9.81252 -2.0735,-14.73506 0.46483,-3.12243 0.59148,-6.81075 -1.94723,-2.14913 -3.53345,4.05086 -5.61823,9.82454 -10.334,12.55157 -6.61319,3.13449 -13.41414,5.8385 -20.65617,7.08536 -11.195949,2.57794 -22.380282,5.2145 -33.612551,7.6288 0.444961,-0.66871 1.187969,-1.03986 1.782352,-1.54783 z M 146.7476,178.11459 c 2.95881,-1.4262 1.53694,-5.25358 0.66967,-7.44905 -3.13344,-1.23341 -5.16712,-0.19091 -4.27781,3.14442 0.19702,2.11968 -1.05968,5.8369 2.48018,4.48145 z m 6.53914,0.004 c 5.76274,0.63398 -1.65321,-10.14093 -2.50526,-4.66096 3.52156,-0.93781 3.42301,1.6088 -0.18328,1.52038 -2.22154,1.82889 0.80252,4.23436 2.68854,3.14058 z m 4.55255,-1.68898 c 0.0863,-3.63044 4.36154,-3.99498 -0.53454,-4.20215 -1.51271,0.70415 0.0679,9.91683 0.53454,4.20215 z m 4.48552,-1.19856 c 1.07479,-2.66615 -1.76227,-4.482 -1.27829,-0.93179 -0.65157,2.25179 1.21308,6.20367 1.25339,1.76777 z m 2.94342,0.88158 c 0.44069,-6.04058 3.59505,-0.34836 3.26184,2.26203 3.08299,-3.28867 -2.0887,-8.59519 -4.54358,-5.42631 -0.43835,2.09569 0.75591,8.2329 1.28174,3.16428 z m 6.73634,0.84316 c -0.63633,-3.07442 6.25181,4.58738 2.52275,-0.46114 -4.31256,-1.2232 3.82822,-4.62405 -0.0813,-3.98827 -3.86907,4.57912 -0.91101,-2.22664 -3.7778,-2.41707 0.36115,2.18015 -0.98045,8.66483 1.17595,7.64903 z m 9.91407,1.00499 c 6.21034,-3.86639 -3.35949,-12.27618 -5.26104,-4.62567 -0.92037,3.01367 2.31518,6.28782 5.26104,4.62567 z m 7.95894,-0.22348 c 4.00693,-3.6813 -7.82443,-5.43472 -1.34513,-6.42205 5.28178,-0.14976 -6.2438,-2.9303 -3.18643,2.30589 1.95376,0.66 6.24801,3.3181 1.63665,3.58594 -4.63539,-0.95236 1.26048,2.86571 2.89491,0.53022 z m -27.49471,-6.97983 c -1.59789,-2.55231 -1.54031,2.44613 0,0 z m 48.64305,-17.75447 c -1.83494,-1.64037 -8.87896,-0.0294 -2.80168,0.0605 0.89118,-0.0875 2.01318,0.46117 2.80168,-0.0605 z m -1.58604,-1.89924 c 2.10603,-4.01782 -7.07214,-0.70124 -1.70311,0.26731 l 0.96482,-0.0593 z m 3.21522,-1.34515 c 3.05563,-3.49242 -5.78873,-1.61357 -0.86863,0.54313 z m -7.35613,-0.33155 c 1.89685,-5.53756 -6.65547,1.39649 0,0 z"
style="fill:#2b0000;stroke-width:0.26726952" />
< / g >
< g
transform="translate(0,-87)"
id="layer2">
< path
id="path4003"
d="m 213.56397,167.40743 c -3.40205,-0.24448 -6.898,-3.80563 -9.52068,-5.61735 -2.84098,-1.94126 -3.89659,-5.38121 -5.78294,-8.11365 2.00674,-6.43619 4.73543,-10.70324 9.0582,-8.84775 -1.0234,2.59733 11.26012,21.3702 6.24542,22.57875 z"
style="fill:#916f6f;fill-opacity:1;stroke-width:0.03307291" />
< / g >
< g
transform="translate(0,-87)"
id="layer3">
< path
id="path3990"
d="m 207.76665,151.31103 c -4.32411,-2.76655 6.53898,-1.89768 0.93494,0.001 l -0.93495,-0.001 z"
style="fill:#1a1a1a;stroke-width:0.02338609" />
< path
id="path3992"
d="m 210.10526,153.84295 c -2.7764,-0.26583 -7.87775,-0.63249 -1.88102,-0.77905 -0.1211,0.063 3.50673,0.47696 1.88102,0.77905 z"
style="fill:#4d4d4d;stroke-width:0.00826823" />
< path
id="path3984"
d="m 205.29897,149.42746 c -4.47497,-3.13541 5.2901,-2.16371 0,0 z"
style="fill:#000000;stroke-width:0.01653646" />
< path
id="path4005"
d="m 212.6551,149.75901 c -3.81968,-1.07144 -2.18286,-3.01827 1.21145,-2.3919 1.03353,0.0249 1.05155,1.53972 -0.0448,1.93129 z"
style="fill:#552200;fill-opacity:1;stroke-width:0.01169304" />
< g
transform="translate(34.139044,121.71322)"
id="g4785">
< path
style="fill:#000000;stroke-width:0.01653646"
d="m 178.32175,27.992046 c -0.42875,-0.282627 -0.87534,-0.582805 -1.15566,-1.024218 -0.12582,-0.19563 -0.17666,-0.4692 -0.0315,-0.668981 0.19996,-0.273574 0.54634,-0.380412 0.86279,-0.450798 0.54106,-0.102914 1.11213,-0.09726 1.64065,0.06691 0.22771,0.07857 0.49113,0.20279 0.56275,0.454211 0.0564,0.247531 -0.12016,0.471542 -0.28341,0.636135 -0.45652,0.434014 -1.03366,0.716237 -1.59566,0.986737 z"
id="path3986" />
< / g >
< / g >
< / svg >
2021-05-03 00:22:12 +00:00
________________________
### Screenshot(s)
2021-05-03 18:46:11 +00:00
< img src = "screenshots/Screenshot1.png" > < / img >
The first scrolling boot screen. 😲
2021-05-03 00:22:12 +00:00
________________________
2021-05-02 16:02:00 +00:00
### The goal
Writing a hobby operating system to better understand the basic building blocks of any operating system.
2021-05-03 00:22:12 +00:00
________________________
### Operating System Technical specs/details
The operating system can print strings to the
screen. The terminal/screen has scrolling so the latest messages are visible on the screen.
2021-05-02 16:02:00 +00:00
2021-05-03 00:22:12 +00:00
________________________
### Planning
[See TODO ](TODO.md )
________________________
### Docs
[Intro ](docs/Intro.md ) \
[Manuals ](docs/Manuals.md ) \
[Project structure ](docs/ProjectStructure.md )
________________________
2021-05-02 16:02:00 +00:00
### Resources:
2021-05-03 00:22:12 +00:00
#### General kernel stuff
2021-05-02 16:02:00 +00:00
[wiki.osdev.org/Main_Page ](wiki.osdev.org/Main_Page )
[Modern Operating Systems [book]](https://www.amazon.com/Modern-Operating-Systems-Tanenbaum-Andrew/dp/1292061421/ref=sr_1_1?__mk_nl_NL=%C3%85M%C3%85%C5%BD%C3%95%C3%91& dchild=1& keywords=Modern+Operating+systems& qid=1619967779& sr=8-1)
2021-05-02 19:53:31 +00:00
2021-05-03 00:22:12 +00:00
[whiteheadsoftware.dev ](https://whiteheadsoftware.dev/operating-systems-development-for-dummies/ )
#### More specific stuff
[VFS explained: science.unitn.it ](https://www.science.unitn.it/~fiorella/guidelinux/tlk/node102.html )
2021-05-02 19:53:31 +00:00