Monday, October 8, 2012

new project: creating a custom linux distro

So I was browsing the web a couple weeks ago and suddenly I acquired the desire to create my own custom Linux distribution. I mean, isn't it something we've all thought about? No? Oh... Okay. Anyway, from there, I went on to do some research into what, exactly, I would be able to accomplish with my skill level. I knew I wouldn't be able to create a large-scale, graphics-intensive OS or anything, but I at least wanted to delve into the Linux architecture so that I could learn more about how exactly the individual components work together to create a robust, UINIX-like system.

Eventually, I stumbled upon the Linux From Scratch program (LFS for short). This website is basically an online textbook that teaches you how to take each of the individual bits of source code that make up a Linux system and compile them into a bare-bones, command-line operating system. When I say bare bones, I mean bare bones. Not in the sense that it is only an command-line OS, but in the sense that it only meets the Linux Standard Base requirements, meaning it doesn't have things like Emacs, or other programs that aren't strictly part of the base required components of a linux system. These components are Bash, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, Grep, Gzip, M4, Man-DB, Ncurses, Procps, Psmisc, Sed, Shadow, Tar, Util-linux, Zlib, and Gcc. That's it. Of course, it's very simple to tack on any other program you could want to make a completely customizable distro to suit your specific needs. Personally, I plan on tacking on a few programs to my personal taste. I can't stand Vim, so I'll start with installing Emacs.

I plan on specifying some details as to what I do to make my distro personal. However, I'm not going to go through the process step by step. That's what the LFS book is for. This project doesn't seem terribly difficult, however, a basic knowledge of bash and shellcode is essential.

I'm doing this project for my CS 125 Honors section with another student. The name we have come up with for our OS is "Nevlox," a contraction of our last names. I learned basic HTML in thirty seconds and threw together a homepage, which you can access by clicking this.

But beyond the command-line operating system I plan on turning in for school, I plan on taking Nevlox further (and hopefully obtaining something to put on my résumé) and extrapolating it into a fully functional(ish) and modern(ish) graphical OS. The LFS project allows for a lot of expansion of the base system. You can install your own Desktop Environment and turn it into something that is actually usable in the 21st century. I don't actually plan on doing that though. I plan on implementing a sort of pseudo-GUI, written in Java. What I mean by that exactly will be outlined in a future post.

For now, this is where the Nevlox project stands. Stay tuned for more updates and details.

1 comment:

  1. Sounds like a good time. I've been wanting to do something similar if I ever find the time. Good Luck