Hi Brian and Stuart,
I am 14 and have been using Ubuntu for quite some time. But I am bit tired of the constraints. I have tried modding the look and feel and also installed derivatives (Kubuntu, Mint, and so on), but I quickly got bored of all that, too.
What I really want to do is build my own Linux system from scratch. Any advice on how to go about this and where I should start.
My ultimate aim is to build a whole new operating system like Linus did. I am teaching myself C, but do you have any advice on how to do that?
Cheers, Martin
BRYAN: Building your own OS, from scratch, is awesome. Everyone should try to do it at least once in their life. You probably won't get very far, but what you'll learn in the process will be worth it. Plus… it's just good, nerdy fun.
A great place to start is not actually with Linux at all, but with Minix. Minix is what actually inspired Linus Torvalds to start writing Linux, and it was designed and built by Professor Andrew Tannenbaum to be a fully-functional Unix-like OS, which he could teach people how to build in his operating system classes.
The best guide for doing this is Tannenbaum's book, Operating Systems: Design and Implementation , and you will want to get the third edition. This book walks you through creating an OS and all the things you need to know, using Minix as its example, and it's exactly designed for people who want to do what you want to do: make their own OS.
After you're up to speed with Minix, you might then want to look at Linux From Scratch [2], which describes how to build your own Linux system by putting together all the various pieces and parts. It's not quite "build a whole OS from the ground up", but it does show you how and why a modern Linux system is put together, and it also comes with a book (which is free to download and read).
Linux famously differs from Minix in a few ways (in particular, Minix is microkernel-based, which is a term you'll learn about as you explore this stuff, and Tannenbaum and Torvalds had a much-quoted disagreement, back in the early days of Linux, about how Linux is not based around a microkernel).
Understanding those different choices and why they happened will help you make similar decisions about MartinOS as you start to build it and learn about how to build it.
Or, if you want to stay a (quite) bit higher-level, you could simply look at putting together your own Linux distro based on many of the available toolsets, such as RemasterSys or SUSE Studio.
Either way, good luck!
STUART: Although I'm all for not limiting anyone's creativity here, I am inclined to say this: Building a whole OS from scratch is a gargantuan task and, frankly, most of it is pretty boring, especially because you'll be doing it on your own.
Bryan mentions Minix, and you'll note that Minix is pretty good at basic OS services such as "having a filesystem" and "being able to talk TCP/IP," but if you want anything advanced, you just won't have it.
Talking MTP to your phone? Managing system services so they restart automatically? Having a working X or Mir or Wayland display system on an ATI card? Reading NTFS disks? Handling multiple cores on your Intel core i5 chip?
The reason people use existing things is so you're not spending your time solving problems that are already solved. There's so much cool stuff that the open source ecosystem doesn't have and could do: Why spend your time doing things that have already been done? Yes, you'll learn a lot about how to build an OS, but without attracting lots of others to your project, you're essentially doomed to either build something with ungreat filesystem support and ungreat graphics, or to still be doing this when you're 70 years old, 56 years from now.
You'll make a much more effective contribution, I'd suggest, by picking something else that you'd really like to see on Ubuntu and then making it happen. Build a great video editor, or become an important player in one of the ones that already exists. Make a way to make great games for the Ubuntu phone. Work on the open source nouveau driver and help people with NVidia cards get truly great displays. Make Intel WiDi wireless displays work on an Ubuntu laptop. Build a great Fitbit app.
There's so much that we need and don't yet have, and you have a much better chance of attracting both users and other contributors and really affecting people's lives with a targeted projected than if you write an OS. We already have OSes.
I don't want to rain on your parade, and Bryan's advice is (remarkably) actually pretty good if you really want to build your own operating system, but I'd suggest that you have a better chance of making your mark if you work on something that people will use every day and love you for it.
Hi,
I am considering changing the laptop I use for college over to Ubuntu rather than having partitions, and I have a question about the open office programs. Are they compatible with Microsoft office file types? And, can I start work on an open office file then continue using Word on my desktop? I have heard there are conversion problems sometimes. Is there anything I can do to avoid them?
Rob
STUART: Rob. Seriously. Worrying about this stuff is so 2005.
What you're really talking about is what is called "Roundtripping," which is being able to work on a document using LibreOffice, make some changes on that document in Microsoft Office, then open it back up in LibreOffice again. Ideally, without anything exploding. The good news is twofold:
First: LibreOffice itself has phenomenally good support for a multitude of office document formats – including multiple revisions of Microsoft Word and Excel. Sure, there was a time, in days long past, when a bit of formatting would get lost or a table messed up, but those days are gone. They've been relegated to whatever discard pile hosts other such software curiosities of the distant past, such as Internet Explorer and Pets.com.
Second: Microsoft Office, itself, has the ability to work with Open Document Format files (the format used by LibreOffice) – been there since Office 2007.
So, you see my son, you have nothing to fear here. Create your text documents. Put in pictures and footnotes. They will still be there on whatever platform you find yourself next.
BRYAN: My dear friend, Stuart, is a crazy man. Do not listen to anything he says. Ever. I'm going to put this as nicely, and as gently, as possible… You are totally screwed.
The fact of the matter is, no matter how much progress has been made in the realm of document format compatibility between office suites – and, for sure, the progress as been plentiful – the problems are still many-fold. And, they will bite you in the butt every chance they get. Like badgers. Angry little, document-destroying badgers.
For one thing, the fonts are different on different systems. That screws everything up right there. Sure, you can standardize on a small set of freely available OpenType Fonts – and just make sure you have them installed on every system you use – but that will only help so much.
Use a picture with the body text of your document wrapping around it? Have an auto-generated table of contents? Your document is writing checks the office suite can't cash. Sometimes working with an Open Document file in MS Word will work great. Sometimes it really, really won't. Don't worry. It gets worse.
Even if you say "Bag it! I'm just going to standardize on Open Document Format for all of my files and stick to open source office suites!" you are still in for a world of hurt. Save a file in LibreOffice and open it up in Calligra or AbiWord and – assuming the document is more complex than a simple grocery list – some formatting will get, for lack of a better word, really and truly dorked up.
But, all is not lost. Here's what I recommend. Get a thumbdrive (or some cloud storage). Standardize on one office suite (LibreOffice is a dandy choice). Put portable versions of those apps, for Windows, on that thumbdrive – along with all of the fonts you tend to use. If you've got space on that thumbdrive, I also recommend installing a copy of Linux with the same version of your office suite.
Then, wherever you go, shazam. You can edit and work on documents – presentations, your thesis, complex spreadsheets, and what have you – without needing to worry about something getting lost when "roundtripping."
Infos