Skip to content

This project is a custom implementation of an operating system using Freestanding C. This project was completed as part of my Fall 2018 Graduate Operating Systems class.

Notifications You must be signed in to change notification settings

scavet64/GradOS-MyOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 

Repository files navigation

My Grad OS Project

This is my custom operating system for the Fall 2018 Graduate Operating Systems Class. It is developed in c and is a standalone.

Building

The make file was tailored to my environment so it would copy the resulting ISO into my share directory. This allowed me to test on my Host Machine very efficiently. The Make file will compile all of the c files and link them together. Finally it will inject the grub bootloader and build a final ISO file that can be used in VirtualBox.

make clean
make all

Usage example

When the operating system is first launched, you will be presented with a login screen. There are several default users on the system to test with.

Username Password
ADMIN PASSWORD
Edward fullmetal
ZeroTwo franxx
LeLouch geass

Choose any of the example users above and login.

Once you are logged in, several commands are available to you.

The Max input length that a user can enter is 250 characters.

Commands are case sensitive

  • Arithmetic

    • Add param1 param2
      • Adds param 1 and param2 and displays the result
    • SUB param1 param2
      • Subtracts param 2 from param1 and displays the result
    • MULT param1 param2
      • Multiplies param 1 and param2 and displays the result
    • DIV param1 param2
      • Integer Divides param 1 and param2 and displays the result.
  • Users:

    • USER REGISTER param1
      • Creates a new user account with the name of param1.
    • USER PASSWORD param1
      • Modifies the password of the account matching param1
    • USER LIST
      • Lists the current users that the system knows about
    • LOGOUT
      • This will log the user out of their session
  • Misc:

    • CLEAR
      • This will clear the terminal window
    • END
      • This will END the session

Testing Steps

  1. Launch the OS
  2. Enter ADMIN as the username and press the enter key
  3. Enter PASSWORD as the password and press the enter key
  4. Enter Add 2 2 and press the enter key. Verify the output is correct
  5. Enter Add 2 -5 and press the enter key. Verify the output is correct
  6. Enter Add -5 2 and press the enter key. Verify the output is correct
  7. Enter Add and press the enter key. Verify there is an error shown
  8. Enter Add 3 and press the enter key. Verify there is an error shown
  9. Enter Sub 2 2 and press the enter key. Verify the output is correct
    • Note At this point the screen should start scrolling
  10. Enter Sub 2 -5 and press the enter key. Verify the output is correct
  11. Enter Sub -5 2 and press the enter key. Verify the output is correct
  12. Enter Sub and press the enter key. Verify there is an error shown
  13. Enter Sub 3 and press the enter key. Verify there is an error shown
  14. Enter Mult 2 2 and press the enter key. Verify the output is correct
  15. Enter Mult 2 -5 and press the enter key. Verify the output is correct
  16. Enter Mult -5 2 and press the enter key. Verify the output is correct
  17. Enter Mult and press the enter key. Verify there is an error shown
  18. Enter Mult 3 and press the enter key. Verify there is an error shown
  19. Enter Div 2 2 and press the enter key. Verify the output is correct
  20. Enter Div 2 -5 and press the enter key. Verify the output is correct
  21. Enter Div -5 2 and press the enter key. Verify the output is correct
  22. Enter Div and press the enter key. Verify there is an error shown
  23. Enter Div 3 and press the enter key. Verify there is an error shown
  24. Enter Div 3 0 and press the enter key. Verify there is an error shown
  25. Enter User List and press the enter key. Verify a list of users is shown
  26. Enter User Password ZeroTwo and press the enter key. The system should ask for a new password
  27. Enter newpass and press the enter key. The system should now give you a success message
  28. Enter Logout and press the enter key. The system should now log you out and prompt for a new username and password
  29. Enter ZeroTwo as the username and press the enter key
  30. Enter newpass as the password and press the enter key. You should be logged in as ZeroTwo now
  31. Enter Clear and press the enter key. The screen should clear
  32. Enter End and press the enter key. The system will halt

Known Limitations/Issues

  • Commands are case sensitive
  • Buffer overflow can occur during arithmetic functions (Handled in atoi function)
  • Without malloc, there are a few hacky methods in order to handle parsing of the command
  • Creating a new user is not working due to malloc related issues. The data being entered into the array is being overwritten.

About

This project is a custom implementation of an operating system using Freestanding C. This project was completed as part of my Fall 2018 Graduate Operating Systems class.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages