Upgrade to Pro — share decks privately, control downloads, hide ads and more …

I made my own Operating System and you can too

I made my own Operating System and you can too

Presentation about my journey creating an operating system

Events:
Pataconf 2017

Giovanny Gongora

May 24, 2018
Tweet

More Decks by Giovanny Gongora

Other Decks in Programming

Transcript

  1. I am Giovanny Gongora My name is Giovanny Gongora, I

    am Support Engineer at NodeSource. I spend time coding, giving talks at events and doing random stuff. Formerly Mozilla.
  2. • Windows Wolf FTW! • My first attempt on Windows

    “Desatendidos” • Booting multiple Windows was not enough • So what? What is the purpose? • Moved to Linux \o/ • Started with Linux Remastering
  3. Stop here If you are interest in Linux Distro development

    you definitely check LFS. Is hard, is a pain, but you will learn, that’s what is important :)
  4. Fun Fact #1 On the LFS irc channel I asked:

    Should I copy the entire command with the $, as the book shows? Why it keeps failing. The answer was: Please, learn some basic Linux and then come back
  5. • Found some hobby OS developed by a Cuban guy

    • Tried for first time OS development with C • I got obsessed with LFS again • More LFS • LFS on the dinner, lunch, breakfast…
  6. Fun Fact #2 I spent Christmas compiling LFS stuff, and

    New Year celebrating that my custom LFS system was actually booting
  7. The hard truth Operating System development is truly unparalleled since

    it requires a big amount of patience, careful code design and returns very little “instant gratification”.
  8. • I will bring the next revolution of computing. •

    Working from scratch is for n00bs, will work based on Linux sources and tweak them until I get something I like. • I want to become proficient with a programming language, and need some challenging exercises. • I can learn Computer Science and no need of a school degree.
  9. • I am looking for a cool job. • Algorithms

    and Data Types, I am going to learn that on the way. • I don’t like X feature in Linux/Windows/mac OS/FreeBSD, someone needs to re done this. • And then, exists this reason…
  10. Not at all • IoT Companies are always looking for

    Low Level developers. • IBM a good example of IoT OS developers hired. • IoT expansion is letting create new startups, so expect new companies looking for ninja-hacker-power-ranger OS designer/developer. • TIP: Usually, interviews are about Memory Allocation, so be prepared :)
  11. Fun Fact #3 My first serious job at a company

    (Mozilla) was related to operating system development ¯\_(ツ)_/¯
  12. • I want to experiment with OS design • I

    am not experienced with a language and want to challenge myself • I’ve been working already developing OS • I am looking for exciting hobby
  13. Writing an OS is not a beginner's task. Failure to

    comply will make you look silly.
  14. "Required" Knowledge • Basic Computer Science • Language and Vocabulary

    • Assembly • Programming experience/practices • UNIX experience • Toolchain • Emulators • Formats • The concept
  15. Consider this as a guide for your next OS project

    • Define the limits for your first OS project • Define your OS structure • What kind of kernel are you going to develop? • Prepare a Toolchain for your new OS • Familiarize with Emulators and Virtualizers (qemu)
  16. • Don't try to use a custom/own Bootloader, don't re-

    invent the wheel (yet) • Work on init scripts • Get basic input working • Get a cli style interface for your OS • Congratulations, your v1.0 is ready!
  17. Algorithms and Data Structures Author(s): Niklaus Wirth Opinion: The highest

    value of the book is not the particular methods explained, but the good style and the way of thinking about programs that the book teaches
  18. Structured Computer Organization, 6th ed. Author(s): Andrew S. Tanenbaum, and

    Todd Austin Opinion: This book takes a modern structured, layered approach to understanding computer systems
  19. Modern Operating Systems, 3rd ed. Author(s): Andrew S. Tanenbaum Review:

    The widely anticipated revision of this worldwide best-seller incorporates the latest developments in operating systems (OS)technologies.
  20. wiki.OSDev.org • This will be your reference for almost anything

    • Forum is full of weird people, take care there • Don't expect super simple guides, expect good explained guides • You can learn about a lot of things, it's up to you when to stop.
  21. Useful links • Books recommendations: http://wiki.osdev.org/Books • What order should

    I make thinks: http://wiki.osdev.org/ What_order_should_I_make_things_in • GCC Cross Compiler: http://wiki.osdev.org/GCC_Cross- Compiler • Beginner Mistakes: http://wiki.osdev.org/Beginner_Mistakes • The BabyStep Tutorial: http://wiki.osdev.org/ Category:Babystep