LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 11-04-2011, 06:02 AM   #1
DeVarga
LQ Newbie
 
Registered: Feb 2011
Distribution: crunchbang, debian
Posts: 20

Rep: Reputation: 0
Making a distribution


Hi,

I'm a year 11 high school student going to a steiner school(in Australia); where instead of formal exams in year 12 we do a year long project of our design.
One of the ideas(I have far too many) I had was to make my own GNU/linux distribution.
There are several things that I am not sure about in regards to this particular idea.
First of all what amount of prior knowledge and of what kind(other than knowledge of GNU/linux and programming) would be involved?
I imagine that it would be easier to make a fork rather than an entirely new distribution but what would people suggest?
Personally I like the idea of making an entirely new distribution but I don't know how much work that would be(If I enjoy it I would probably continue after year 12).

Really I'm just looking for advice on the whole idea as I don't know any people with experience in this area or indeed any GNU/linux related area.
I would very much appreciate any advice, e.g suggested reading, things to learn etc, and anything else that comes to mind.

I relation to my amount of experience, I have been using GNU/linux(mainly debian and crunchbang) for about a year and a half know and I have only a little(very little) programming knowledge, but I am a fast learner and I have always wanted to learn how to program anyway.
Would LFS be a good way to get a feel for what it might be like?

Also if anyone is interested(I might not be doing this project mind you) I am required to have a mentor(preferably in Victoria/Australia) who knows something or a lot about the subject.

Thanks.
 
Old 11-04-2011, 06:44 AM   #2
Roken
Member
 
Registered: Oct 2011
Location: Warrington, UK
Distribution: Arch local, Debian on VPS, several RPIs.
Posts: 300
Blog Entries: 1

Rep: Reputation: 55
As you have already identified, there are several options available to the distribution builder:

Fork and modify an existing distro
Build a new distro from a base (such as Debian)
Build a new distro from source

The time and experience required for each increases as you go down the list, and option three is probably really only for a hardcore distro builder. Most commonly available distros are built using one of the first two options.

Having said that, if you look at the differences between many distros, there's little more than artwork to tell them apart, so unless you are going to build something a little different (for example, a distro built for a specific purpose such as those listed under "Others" at http://en.wikipedia.org/wiki/List_of..._distributions) there's probably not too much work in it. You simply find a distro you like, change what you don't like about it, and repackage. If you are going for a specialist distro you will probably be better going with the second option, which will take more time, needs more knowledge and will require more configuration, but will result in something more unique.

The third option could take more time that you have, depending on what you want to develop it in to, and may require programming or modifying existing sources to achieve your end result. Maintenance is likely to be more difficult if you build everything from source, since you would have to rebuild packages after each update.

At the end of the day, it's Linux, and like everything else in the Linux world, you are free to take your own direction according to your own needs and desires.
 
1 members found this post helpful.
Old 11-04-2011, 02:01 PM   #3
bgeddy
Senior Member
 
Registered: Sep 2006
Location: Liverpool - England
Distribution: slackware64 13.37 and -current, Dragonfly BSD
Posts: 1,810

Rep: Reputation: 232Reputation: 232Reputation: 232
Quote:
Build a new distro from source
Re this option I recommend looking at Linux from scratch and also the less well known version called DIY Linux - either will get you started and also help you learn a lot about Linux systems and building software from source.
 
Old 11-04-2011, 03:04 PM   #4
sundialsvcs
LQ Guru
 
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 10,599
Blog Entries: 4

Rep: Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905Reputation: 3905
You're biting off too much. Start smaller. Much smaller.

When my brother was pursuing a degree at Georgia Tech (Atlanta, USA), he had to do a rather-perfunctory electronics project. Most of his classmates decided to do "digital dice." Uh uh. Not my brother! He decided to sign-up to build a computer that would play tic-tac-toe (or was it checkers?) and win. And his professors simply smiled and said, "okay."

Ummmm... don't do that.

Bite off the smallest project you can think of: it will prove to be much bigger than you think. If your professors reject it and say it must be larger, then try to once again find the smallest project that meets the objective.

Discuss the matter, objectively and at length, with your professors or teachers. "Choosing the project" is a very major part of the learning process in assignments like this.

Last edited by sundialsvcs; 11-04-2011 at 03:06 PM.
 
1 members found this post helpful.
Old 11-04-2011, 04:10 PM   #5
DeVarga
LQ Newbie
 
Registered: Feb 2011
Distribution: crunchbang, debian
Posts: 20

Original Poster
Rep: Reputation: 0
Hello again,

Roken, I like the last two options more so the the first, basically they sound more interesting and I would like to at least attempt to make something a little more unique.
In regards to the packages could I make a distro that was compatible with .deb or .rpm packages but not be based on debian or fedora, or would that be too much work?
I was thinking of starting with a debian base(I have used it more than fedora or others) quickly building up to some sort of usable system and then going back down to modifying the internals to suit my needs, would that be reasonable?

bgeddy, I am going to start with LFS and then DIY linux(or vice versa).

sundialsvcs, I still have a lot of time to decide on a project, so I shall try LFS and DIY before I decide whether or not it would be too hard. Biting off more than I can chew is not anywhere near as relevant in this project as I imagine it would be in university.

One thing about this project is that I decide(essentially) when it is finished(not the time but at what stage of development) and also if it is too much to do in year(not that there is any set amount of work) I imagine that I will learn a lot, which is more to the point of the project(learning rather than just finishing something because you have to).

Again the more advice/thoughts the better.

Last edited by DeVarga; 11-04-2011 at 04:32 PM.
 
Old 11-04-2011, 05:00 PM   #6
Roken
Member
 
Registered: Oct 2011
Location: Warrington, UK
Distribution: Arch local, Debian on VPS, several RPIs.
Posts: 300
Blog Entries: 1

Rep: Reputation: 55
If you build from a Debian base then there's no problem to install (or keep, since it will be installed with the base) dpkg and apt support, and rpm is easily installed if it's not there as standard (I can't remember off the top of my head).

If you build LFS then you will have to build apt, dpkg and rpm yourself from the sources (though I suppose technically you could just build apt and install from there, but you may hit dependency problems with that approach (I haven't tried, when building LFS I try to stay true to the experience and build everything).
 
Old 11-05-2011, 07:33 PM   #7
rob.rice
Senior Member
 
Registered: Apr 2004
Distribution: slack what ever
Posts: 1,076

Rep: Reputation: 205Reputation: 205Reputation: 205
I would suggest slackware as your base
slackware is built with scripts
the scripts check dependencies for you http://slackbuilds.org/ has a load of build scripts that allow you to tack YOUR personal distro in another direction other than a general propose distro (like multi-media networking etc etc)
You could even build for a CPU other than x86 by changing the build scripts (provided you have unlimited access to such a computer and there is a version of nix that runs bash for it)
 
Old 11-05-2011, 09:09 PM   #8
unSpawn
Moderator
 
Registered: May 2001
Posts: 29,415
Blog Entries: 55

Rep: Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600
Quote:
Originally Posted by DeVarga View Post
make my own GNU/linux distribution.
On the application level the traditional motive for Linux users to venture out and change something is their desire for improvement. Without such a drive, "the itch to scratch", things will be hard to accomplish let alone complete qualitatively well. On a distribution level this drive will be needed tenfold as there'll be tenfold things to change. More than that the traditional drive for creating a distribution was based on a certain philosophy (later: developer feuds, even later on: diversification based on nothing but choice of DE's). To make your mark and establish one there's more to it than just cannibalizing an existing distribution by packaging only preferred applications, an "easy installer" and some custom GUI theme.

If you intend to pursue this anyway try to answer the following questions:
- who is the distribution aimed at?
- what improvements are added compared to the top 3 competitors?
- percentage-wise how much will be actually changed if you decide to use an existing distribution?
- will you deal with security updates, bug fixes and improvements as quickly and with the same quality as your top 3 competitors?
- do you know how to spot and avoid licensing violations?
- have you ever contributed to any Open Source Software project?


* I'm not saying you shouldn't (after all people often need to make mistakes to learn from) but I'm with sundialsvcs, albeit for other reasons...
 
Old 11-05-2011, 09:36 PM   #9
k3lt01
Senior Member
 
Registered: Feb 2011
Location: Australia
Distribution: Debian Wheezy, Jessie, Sid/Experimental, playing with LFS.
Posts: 2,900

Rep: Reputation: 637Reputation: 637Reputation: 637Reputation: 637Reputation: 637Reputation: 637
Everyone who wants to tackle such a project has various reasons for doing so. Here's my take on your situation.

Most year 11-12s who have a project in IT to do develop an application or a variant of an application. I have seen students develop small apps and also seen students develop skins for apps such as Windows Media Player. My advice to you would be to start small either doing a small application or helping a current project. If you decide to actually try and build your own distribution I'd be using something like DebianLive (its not as easy as some may think) as it helps you to work through features, dependencies, end user requirements etc.
 
Old 11-06-2011, 12:50 AM   #10
Brains
Senior Member
 
Registered: Apr 2009
Distribution: All OS except Apple
Posts: 1,591

Rep: Reputation: 389Reputation: 389Reputation: 389Reputation: 389
My suggestion:

Last winter, as with any winter, I had time on my hands and ventured into building a Debian Live distribution as all other live distributions lacked ultimate hardware support. The monster I churned out loads Nvidia graphics proprietary driver by default if an applicable device ID is found early in the boot process, If an applicable ATI graphics device ID is found, it boots using proprietary FGLRX driver, if any other video card is found, the appropriate xorg driver is loaded by default. (They say: you cannot install both proprietary Nvidia and ATI on the same Linux OS, they are wrong).

As I built it, I would go to as many computer venders with demo computers/laptops on display and get the info on the hardware within, as well as what hardware was not supported by default and integrate support for it in the next build(s). I also tested it in as many units in my circle of friends and family. It probably took about 400 or so builds before I got automatic full hardware support in every unit I plugged it into. As it was Debian wheezy, the kernel at the time was 2.6.38-2, there was only one ralink wireless card I did not get which was slated to be integrated in the next kernel from what I read through Google at the time. The rtl8192 wireless drivers are built and loaded during the boot process as there is a few versions of this one, so the appropriate one is built based on the device found and it is ready for use about a minute after the boot process is complete. All custom modifications are done through two LSB compliant boot scripts I put together with no prior experience, just lots of trial and error.

It's on a USB key in the second partition, so when I plug it into a Windows running box, the only thing that shows up is the first large NTFS data partition, keeping Wallawalla Baby (it's name) hidden. I will not show how I built it due to license issues and such.

I had previously been mostly a Linux user prior to this venture, I learned a lot more that I originally set out to learn building it. It was time consuming and fun to the point I would go 50 plus hours straight at times.

You also would learn most of what you need to learn in order to build your dream Linux OS from scratch by playing with Debian Live.
 
Old 11-06-2011, 08:36 AM   #11
onebuck
Moderator
 
Registered: Jan 2005
Location: Central Florida 20 minutes from Disney World
Distribution: SlackwareŽ
Posts: 13,922
Blog Entries: 44

Rep: Reputation: 3158Reputation: 3158Reputation: 3158Reputation: 3158Reputation: 3158Reputation: 3158Reputation: 3158Reputation: 3158Reputation: 3158Reputation: 3158Reputation: 3158
Hi,
Quote:
Originally Posted by DeVarga View Post
Hi,
I'm a year 11 high school student going to a steiner school(in Australia); where instead of formal exams in year 12 we do a year long project of our design.
There must be a project model for the curriculum. How must you describe or define the project? What are the phases and time table for this model?

Quote:
Originally Posted by DeVarga View Post
One of the ideas(I have far too many) I had was to make my own GNU/linux distribution.
There are several things that I am not sure about in regards to this particular idea.
Not to discourage you but if you do not understand the inner workings of a Gnu/Linux then possibly the task(s) will be more than you can handle. Lower the project expectations! Instead of building a Gnu/Linux why not select a project within a Gnu/Linux to improve on or modify to suit that distribution.

Quote:
Originally Posted by DeVarga View Post
First of all what amount of prior knowledge and of what kind(other than knowledge of GNU/linux and programming) would be involved?
Level of programming will be mostly use of 'BASH'. Leave things to upstream development. Unless you are into major changes to applications or stream lining code to get the most out of the project. That is the nice thing about UNIX or Gnu/Linux in that there are code utilities & libraries available to build upon. No need to re-invent the wheel.
Quote:
Originally Posted by DeVarga View Post
I imagine that it would be easier to make a fork rather than an entirely new distribution but what would people suggest?
Look at this wiki for fork. Reasoning for a project for fork of distribution would be to make things better for particular group or class of users. Improve active Gnu/Linux to suit the needs of users within a particular audience.
Quote:
Originally Posted by DeVarga View Post
Personally I like the idea of making an entirely new distribution but I don't know how much work that would be(If I enjoy it I would probably continue after year 12).
Doable by an experienced user with vast experience in scripting. Most work is done with script. Unless you plan on custom coding for applications, devices or even kernel work then plan on learning to script. Evaluate different Gnu/Linux. Look at KNOPPIX and the way it works as compared to Debian. Or look at Slackware and it's variant Salix. Dig into the inner workings of a few Gnu/Linux and their forks.
Quote:
Originally Posted by DeVarga View Post
Really I'm just looking for advice on the whole idea as I don't know any people with experience in this area or indeed any GNU/linux related area.
I would very much appreciate any advice, e.g suggested reading, things to learn etc, and anything else that comes to mind.
Cooking Up Some Slack. (CUSS) is a LQ Post 'Cooking Up Some Slack (or CUSS) is a website that explains how to make your own SlackwareŽ-based distribution. Good read to give you an idea for the scope of that project.
Quote:
Originally Posted by DeVarga View Post
I relation to my amount of experience, I have been using GNU/linux(mainly debian and crunchbang) for about a year and a half know and I have only a little(very little) programming knowledge, but I am a fast learner and I have always wanted to learn how to program anyway.
You will need to decide where and what the project needs are. What level of composition for the project. I stated earlier to learn BASH;
Bash Beginners Guide
Bash Reference Manual
Advanced Bash-Scripting Guide


Links above would be a good start. Plus do not forget Linux Documentation Project for a useful source of information.
Quote:
Originally Posted by DeVarga View Post
Would LFS be a good way to get a feel for what it might be like?
Yes, it would familiarize you with the base distribution and how things are laid out.

Quote:
Originally Posted by DeVarga View Post
Also if anyone is interested(I might not be doing this project mind you) I am required to have a mentor(preferably in Victoria/Australia) who knows something or a lot about the subject.
Thanks.
You might consider Linux User Groups which is a World list that might provide a resourceful group of local users willing to aid.

Defining the project will be the hardest portion. Be sure to document as you go. Most project models do have the goal guidelines set or defined hierarchy so that cycle completions are met.

HTH!
 
Old 11-09-2011, 02:26 AM   #12
DeVarga
LQ Newbie
 
Registered: Feb 2011
Distribution: crunchbang, debian
Posts: 20

Original Poster
Rep: Reputation: 0
Hi everyone,

First of all thanks for all the advice.
I have decided that, for now at least, I will stick to messing around with Linux in my spare time and find some other project.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Making a project distribution folder Mitchell314 Programming 2 06-26-2010 08:55 AM
making your own distribution DVD tkmsr Linux - Distributions 5 12-07-2007 07:52 AM
LXer: Making a distribution secure LXer Syndicated Linux News 0 12-08-2006 07:33 AM
Making a new distribution CyberTron Linux - Distributions 2 04-13-2005 10:03 AM
Making a distribution dadelcas Linux - General 2 03-17-2003 02:06 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 09:34 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration