Giter Club home page Giter Club logo

curriculum-bootloader's Introduction

My curriculum is also a bootloader

ScreenShot

What?

The PDF attached in this repository is both a working PDF of my CV and a custom bootloader created by me to impress technical recruiters. Check the discussion in HN.

How?

I wrote a tiny bootloader of 1018 bytes. Then I just copy the first bytes of my bootloader at the beginning of my CV and that is it, a working PDF and bootloader.

Can I try it?

Sure! You can do so by two means, in real hardware (I spend a lot of time making it compatible) or in an emulated environment.

Real hardware

NOTE: All the data on the USB will be lost, please make sure you have a backup before continuing.

Windows

You can use Win32 Disk Imager and use the PDF as the input image.

To recover your USB just right click on it and format normally.

Linux

NOTE: Please be very careful with this command. If you select the wrong drive you will lose data.

Get a USB, check the device name (you can use df -h) and do:

sudo dd if=cv.pdf of=/dev/sdX bs=512 count=2880

where X is your device.

To recover your USB just use gparted.

Emulated environment

Qemu
qemu-system-i386 -drive format=raw,file=cv.pdf
Bochs:

Create a bochsrc.txt file with this contents:

megs: 32
romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xfffe0000
vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest
floppya: 1_44=cv.pdf, status=inserted
boot: a
log: bochsout.txt
mouse: enabled=0
display_library: x, options="gui_debug"

And then execute bochs as follows:

bochs -f bochsrc.txt

Compiling from source

nasm boot.asm -o boot.bin

Get your vanilla PDF, CV_english.pdf in this example, and do:

qpdf --stream-data=uncompress CV_english.pdf uncompressed.pdf
cat boot.bin uncompressed.pdf > cv.pdf

FAQ

  • But why?

    As a learning experience. I realized that I had no practical knowledge on how the booting process works, and also my assembly was a little bit rusty. This is a project I really enjoyed, although it was a little bit overwhelming at some points.

  • Can you explain how?

    I have tried my best to comment the code thoroughly, including my optimization decisions as well as the encoding of the sprites. I have also linked to a couple of Stackoverflow answers for deeper understanding.

  • But now your PDF is bigger!

    Yes, but 1018 bytes bigger or 0.01% bigger. For comparison, the gif in this readme is 2778093 bytes or 2728,97 times bigger! The Firefox icon is 8532 bytes, 8.38 times bigger!

This program is licensed under Creative commons Attribution 3.0 Unported, more info : http://creativecommons.org/licenses/by/3.0/deed.en_US

curriculum-bootloader's People

Contributors

pablojimenezmateo avatar jhtimmins avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.