summaryrefslogtreecommitdiff
path: root/content/blog/abaos-intro.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/blog/abaos-intro.md')
-rw-r--r--content/blog/abaos-intro.md33
1 files changed, 18 insertions, 15 deletions
diff --git a/content/blog/abaos-intro.md b/content/blog/abaos-intro.md
index 714aedd..9102704 100644
--- a/content/blog/abaos-intro.md
+++ b/content/blog/abaos-intro.md
@@ -29,12 +29,13 @@ Tutorials are around everywhere, especially nice are video tutorials
of people who are actually implementing an operating system with
you "live".
-I used two of them:
+I used the following two:
- [Writing a Simple Operating System - from Scratch, Nick Blundell](https://www.youtube.com/watch?v=YvZhgRO7hL4)
- [Write your own Operating System, Viktor Engelmann](http://wyoos.org/)
-Nice web page are, two pick two of them:
+There are also nice web pages out there collecting stuff for
+OS developers, to pick too of them here:
- [OSDEV Wiki](http://wiki.osdev.org/Main_Page)
- [Lowlevel.eu](http://lowelevel.eu)
@@ -52,30 +53,32 @@ some part of a POSIX environment.
So far the simplest explanation I have for everybody using C is simple:
- the operating system has been written in C ages ago
-- every possible library build on top, and nobody wants to rewrite
- everything all the time
+- every possible library is built on top of C and POSIX, and nobody
+ wants to rewrite everything all the time
- the most prominent platform is Intel, and Intel has some special
"features" like I/O ports and alignment, packing of structures which
requires some low-level features from a language. C has those features
(alignment and packing). Other platforms may be less quirky and old
and be less demanding on the language to provide such features.
-- open API specification: Cdecl calling conversion is available everywhere.
+- open API specification: the Cdecl calling convention is available everywhere.
The reason why so many scripting languages are popular, is that they
- can reuse APIs via the Cdecl layer.
+ can reuse tons of libraries via the Cdecl API.
- there is a lot documentation about how to do operating system tasks
in C, there are not so many around for other languages.
This said, C++, D, Ada, Pascal are valid alternatives for building an
-operating system, to name two examples:
+operating system, to name two real-world examples, not just toys:
- C++ has been used for [Haiku](https://www.haiku-os.org)
- Pascal for [Ultibo](https://ultibo.org/) on RaspberryPi
-For embedded or special purpose operating systems it's more feasable
-to use another language than C.
+For embedded or special purpose operating systems it's more feasible
+to use another language than C. Exokernels especially open up a
+new area in operating system development, where relying on the past
+is not really that important.
Don't be fooled, if I say C, this doesn't mean you cannot benefit early
-with from an object oriented design, as soon PCI with loadable drivers
+from an object oriented design, as soon for instance PCI with loadable drivers
or a widget libary come into play. The following articles are useful
to build simple-inheritance with C:
@@ -89,10 +92,11 @@ in https://lwn.net/Articles/444910/.
## Status
-I'm following the Wyoss guide and try to do almost everything in C which
-was done in C++ in the tutorial. I'm also deviating a little bit by:
+I'm following the Wyoss guide and I'm trying to do almost everything in
+C which was done in C++ in the tutorial. I'm also deviating a little bit
+here and there:
-- having my own small little C library (src/libc)
+- I have my own small little C library (src/libc).
- I wrote a boot loader (yes, I know the comments on OsDev regarding
writing one). Nevertheless it's informational and has some historic
value.
@@ -101,8 +105,7 @@ was done in C++ in the tutorial. I'm also deviating a little bit by:
## Sources
-As always you can find the sources of the project on my person git
+As always you can find the sources of the project on my personal git
repository at:
http://git.andreasbaumann.cc/cgit/abaos/
-