os-tutorial | How to create an OS from scratch | Learning library

 by   cfenollosa C Version: Current License: BSD-3-Clause

kandi X-RAY | os-tutorial Summary

kandi X-RAY | os-tutorial Summary

os-tutorial is a C library typically used in Tutorial, Learning applications. os-tutorial has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

How to create an OS from scratch!.

            kandi-support Support

              os-tutorial has a medium active ecosystem.
              It has 25082 star(s) with 3137 fork(s). There are 817 watchers for this library.
              It had no major release in the last 6 months.
              There are 64 open issues and 98 have been closed. On average issues are closed in 70 days. There are 49 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of os-tutorial is current.

            kandi-Quality Quality

              os-tutorial has no bugs reported.

            kandi-Security Security

              os-tutorial has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              os-tutorial is licensed under the BSD-3-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              os-tutorial releases are not available. You will need to build from source code and install.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of os-tutorial
            Get all kandi verified functions for this library.

            os-tutorial Key Features

            No Key Features are available at this moment for os-tutorial.

            os-tutorial Examples and Code Snippets

            No Code Snippets are available at this moment for os-tutorial.

            Community Discussions


            Xib file UITableViewCell outlets are nil
            Asked 2021-Mar-23 at 15:22

            This is a bit of an ongoing topic, but my situation is slightly different. I'm working with this tutorial. I have a view controller, that has it's own storyboard, this view controller has table view. The view controller is this table's delegate and data source. I need to add different kinds of cells to this table, and I'm using cell view model as well for this.




            Answered 2021-Mar-23 at 15:22


            Assembler messages: no such instruction: 'endbr64' when compiling C - GCC 9.3.0, Ubuntu 20.04
            Asked 2021-Mar-22 at 09:22

            I'm trying to compile a hello world program in C using gcc

            I'm using gcc 9.3.0 & ubuntu 20.04

            this is my c program 'hello.c'



            Answered 2021-Feb-07 at 08:29

            The issue was mentioned by @AnttiHaapala: By the instructions ask you to set the prefix to /usr/local/i386elfgcc - maybe you've accidentally dropped this out from the binutils config and installed binutils in /usr/bin instead

            The solution was uninstalling the binutils and install it again

            • sudo apt-get remove binutils

              sudo apt-get remove --auto-remove binutils

              sudo apt install build-essential

            Now the binutils version is 2.34, earlier it was 2.24

            Source https://stackoverflow.com/questions/66081739


            Invalid Op Code Exception when implementing IRQs
            Asked 2021-Mar-06 at 22:12

            I have been trying to loosely follow this tutorial on basic kernel dev. Currently, the target architecture is i386.

            The implementation of IRQs is causing me issues ; my interrupt handler reports a cascade of Invalid Op Code exceptions whenever I try to pass registers (defined as a struct) as an argument to a function. Here is the code for the interrupt handler which raises the exception:



            Answered 2021-Mar-06 at 22:12

            @Ross Ridge figured it out (thanks to him!). The details below are what I learned from the OSDev wiki

            The Streaming SIMD Extension (SSE) expands the set of instructions recognized by the CPU with some 70 additional instructions and adds some more registers. SSE needs to be enabled before its instructions and registers can be used. The compiler generates machine code which can include SSE instructions and therefore, SSE needs to be enabled.

            In the code above, the passing of struct to the function was compiled into machine code which involved the xmm0 register, which is part of the SSE.

            The assembly code to enable SSE is given below (adapted from the OSDev wiki). I added it to my bootloader, right after entering the 32-bit protected mode and before entering the kernel. That fixed the problem!

            Source https://stackoverflow.com/questions/66510507


            How to fix ld: cannot find kernel.bin: No such file or directory
            Asked 2021-Mar-04 at 20:58

            I'm trying to run an implementation of an operating system and I get this error when I run make on the terminal, I use ubuntu 20.04.

            This is the makefile:



            Answered 2021-Mar-04 at 20:40

            You linker commands are buggy because you misplaced the -no-PIE option.

            Instead of ld -o -no-PIE $@, write ld -o $@ -no-PIE:

            Source https://stackoverflow.com/questions/66481887


            Compiling C to ELF32 on Windows
            Asked 2021-Jan-16 at 23:47

            I am trying to compile a C program to ELF format on Windows, so I tried to do several things:

            1. Compiled with MinGW gcc -Wall -c test.c -o test.o, but got no test.o as an output
            2. Downloaded https://github.com/nativeos/i386-elf-toolchain/releases (the 32 bit version), and compiled with "[...]/i386-elf-gcc" -c test.c -o test.o, but I got the error i386-elf-gcc/libexec/gcc/i386-elf/5.2.0/cc1.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory

            What I'm trying to do is to follow this tutorial here: https://github.com/cfenollosa/os-tutorial, but I'm stuck on the part of making the actual link between Assembly and C. I'm well aware of the fact that this tutorial is made for Linux, not Windows, but I just... Let's just say I'm having trouble using Linux.

            I don't know what files are needed to resolve my issue, so here's:

            1. kernel.c


            Answered 2021-Jan-16 at 23:47

            So, it's a little complicated, so buckle up.

            First, I've used NASM and MinGW. Here's a list of my following actions:

            1. Assembled bootsector.asm as normal (nasm bootsect.asm -o bootset.o)
            2. Assembled kernel_entry.asm with nasm kernel_entry.asm -f elf32 -o kernel_entry.o,after
            3. Compiled kernel.c with gcc -m32 -c kernel.c -o kernel.o -ffreestanding -nostdlib -nostdinc
            4. Linked kernel_entry.o and kernel.tmp with ld -m i386pe -o kernel.tmp -Ttext 0x1000 kernel_entry.o kernel.o
            5. Transformed kernel.tmp to bin with objcopy -O binary -j .text kernel.tmp kernel.bin
            6. Merged together bootsect.o and kernel.bin with type bootsect.o kernel.bin > drive.bin

            Source https://stackoverflow.com/questions/65752272


            How to make the entire page scrollable, when UITextView is inside UIScrollView?
            Asked 2021-Jan-07 at 17:40

            Currently, I have a layout design as following



            Answered 2021-Jan-07 at 16:03

            Scroll in scroll always been a tricky thing to handle. My suggestions -

            Don't use UITextView if it's not editable, use UILabel.


            Calculate height of text and make text view equal to it and disable scrolling. this way you will ultimately have only one scrollable view. Helpful link.

            Source https://stackoverflow.com/questions/65615231


            GDB-remote + qemu reports unexpected memory address for static C variable
            Asked 2020-Dec-16 at 17:44

            Remote debugging a code running in Qemu with GDB, based on an os-dev tutorial.
            My version is here. The problem only happens when remote-debugging code inside qemu, not when building a normal executable to run directly inside GDB under the normal OS.

            Code looks something like this:



            Answered 2020-Dec-05 at 06:35

            For me, this doesn't seem to happen:

            Source https://stackoverflow.com/questions/65154359


            How to update footer in Section via DiffableDataSource without causing flickering effect?
            Asked 2020-Oct-22 at 02:36

            A Section may contain 1 header, many content items and 1 footer.

            For DiffableDataSource, most of the online examples, are using enum to represent Section. For instance



            Answered 2020-Oct-14 at 05:50

            if you want to update only collectionview footer text then make it variable of TabInfoSettingsFooterCell.

            Source https://stackoverflow.com/questions/64326881


            DiffableDataSource - No animation, but flickering during delete operation
            Asked 2020-Oct-13 at 00:35

            Previously, I have a pretty straightforward code, which perform delete operation for UICollectionView.



            Answered 2020-Oct-13 at 00:35

            Currently, instead of using enum, we are using struct to represent Section.

            The reason is that, we have a dynamic content footer. Using struct enables us to carry the dynamic content information for the footer.

            Our initial Section class looks as following

            Source https://stackoverflow.com/questions/64306393


            How to you activate drag and order mode immediately after you tap on a button
            Asked 2020-Sep-21 at 13:39


            Answered 2020-Sep-21 at 13:39

            remove UILongPressGestureRecognizer from UICollectionView, Remove gesture comment from TabInfoSettingsItemCell class. Replace this method in TabInfoSettingsController:

            Source https://stackoverflow.com/questions/63920146

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install os-tutorial

            You can download it from GitHub.


            This is a personal learning project, and even though it hasn’t been updated for a long time, I still have hopes to get into it at some point. I’m thankful to all those who have pointed out bugs and submitted pull requests. I will need some time to review everything and I cannot guarantee that at this moment.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone cfenollosa/os-tutorial

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link