What UNIX-like operation system is most hackable?
By hack I mean I would like to modify the core systems in the operating system including creating new drivers, filesystems, protocols and change existing code.
|
What UNIX-like operation system is most hackable? By hack I mean I would like to modify the core systems in the operating system including creating new drivers, filesystems, protocols and change existing code. | |||||
feedback
|
This question came from our site for professional and enthusiast programmers.
|
No personal experience, but I'd recommend an "academic" operating system. Often there will be course notes or even books nearby. I'm thinking in particular of Minix by Andrew Tanenbaum - it's what Linus Torvalds started with before creating Linux. | |||
|
feedback
|
|
DVL is the least secure Linux distro I know off the top of my head. It's designed for testing. As for the most changeable distro that award probably goes with something like gentoo | |||
|
feedback
|
|
You might look at Puppy Linux (not affiliated ;) or Slackware...Nice, small, clean distros without a lot of frills. And plain old BSD is good, though that wouldn't be my first choice...Hacking Linux is more likely to lead to a job, and hacking BSD is more likely to lead to living in a lair, and cackling a lot. | ||||
|
feedback
|
|
I would personally use ubuntu because it most likely has the biggest user base...that is my unscientific answer. | |||
|
feedback
|
|
I market success is any indication then obviously the Linux kernel must be pretty hackable. | ||||
|
feedback
|
|
You could take a look at FreeBSD, you can see all the source code at: http://www.freebsd.org/cgi/cvsweb.cgi/src/ | |||
|
feedback
|
|
It depends, the smallest code-base would be Minix, which is also documented in an university undergraduate level Operating Systems textbook written by Andy Tanenbaum, called Operating Systems Design and Implementation (pubisher's site). But one of its problems is that it has the smallest base of drivers, and the least amount of testing for various PC hardware (and nowadays Virtual Machines such as VirtualBox, Xen). This can make the installation process more complex, and gives you less real-life working drivers to learn, as well as less code to derive your own drivers from. I think it does a great job as a teaching / learning resource, but so far it has not been as well-tested or as widely deployed so I would avoid using it to make something I want to depend upon for production usage. Next would be NetBSD, which is derived from BSD 4.4 (BSD4.4/Net2 or BSD4.4/Lite2 I forget) from Berkeley. The code case is much larger, having a longer history, and spends quite a bit of effort on keeping their code clean, so that it can be easily ported to many different systems (across various processors and system designs). More code that is reasonably easy to read, but has less written about it. The best overview in print would probably be The Design and Implementation of the 4.4BSD Operating System. There is FreeBSD which is a more PC/x86 centric fork (actually NetBSD forked from FreeBSD I believe) that does include amd64 / x86-64 (Intel 64) and does have some other platforms (Alpha, ARM, MIPS, sparc64, IA-64) but I believe are still considered "secondary" for the most part. The advantage is a larger userbase, so more drivers, more optimization for performance, in particular network performance than NetBSD. There is also an update to Design and Implementation of the 4.4BSD OS, for FreeBSD, The Design and Implementation of the FreeBSD Operating System which covers FreeBSD nicely. Finally there is Linux which is licensed under the GNU GPL license, rather than one of the BSD license forms. AFAIK, it has the largest code base in terms of size, userbase, and number of drivers, filesystems, network protocols, and well supported on a number of modern platforms. It has the most written about it, including several books on the Linux kernel, writing device drivers, and various specialized usages. So while it has the most support, it is also the most complex. There is also a specific community for people new to the Linux kernel (in terms of development, not usage), Kernel Newbies. I hope that gives you an decent overview to most common open-source OS kernels, to let you decide what direction you wish to take. I cannot tell you which one to try. | |||
|
feedback
|