# FreeBSD customization tools



## delusion777 (Dec 5, 2011)

Hi 

I would like to know if I could get your assistance on something im struggling with. I am currently working with a programmer on trying to develop a communications system server (it's going to be hardware-based) and we would like to use *F*reeBSD as the base operating system and running our applications on top of it. 

Since this is going to be a client/server architecture I would like to know if there is any info on modifying the freebsd FreeBSD OS in order to suit us in terms of what's part of the OS and how we can build stuff within it such as a voice server etc. Would it be possible to get some guide or something on modifying this? 

I hope this makes sense, sort of like cusotmizing your linux distro (I know the differences between FreeBSD and linux so please, no flaming :r) similar to suse stuido.

Thank you so much for your help in advance!


----------



## SirDice (Dec 6, 2011)

There's a strict separation between the base OS and the ports. In your case you would probably need to create a port.

I'm not sure what 'modifications' you're looking for but I doubt the base OS will need to be modified.


----------



## fluca1978 (Dec 6, 2011)

If I get it right you want to customize the installation of a FreeBSD system. I've never done it, but I would suggest to have a look at the PC-BSD installer, which can be customized and automated and can install also a "pure" FreeBSD system.
This could help.


----------



## delusion777 (Dec 7, 2011)

SirDice said:
			
		

> There's a strict separation between the base OS and the ports. In your case you would probably need to create a port.
> 
> I'm not sure what 'modifications' you're looking for but I doubt the base OS will need to be modified.



Yeah this is basically the info I was looking for. I was hoping the base OS didn't really need to be modified at least for now though. Thanks for the responses. Problem is I'm based in South Africa and there aren't programming firms here that I find can code what I need, so I'm looking at outsourcing.

Does this mean that all features I need for the operating system have to be created in the form of ports?


----------



## wblock@ (Dec 7, 2011)

Ports are generally add-on applications, not modifications to the operating system itself.  There are lots of ways of modifying and packaging the operating system.  The right one for you will depend on what is being done.  Some examples of customized versions of FreeBSD are pfSense, FreeNAS, and PC-BSD.  There's also nanoBSD, a way to build a small, embeddable version of FreeBSD.


----------



## SirDice (Dec 8, 2011)

Yes, you can also create 'custom' installs of FreeBSD. Have a look at release(7) and the scripts in /usr/src/release/.


----------



## delusion777 (Dec 8, 2011)

Alright, well, if you have seen Microsoft Lync, it's a similar system with a few mods and will be a hardware-based platform. I hope this helps?

If you haven't seen Lync, check out http://en.wikipedia.org/wiki/Microsoft_Lync.

But the main features include voip, video, IM etc. I've seen Lync (set up the whole server + client side) and it's okay, but there's quite a few things that Microsoft has done that can be changed to improve the entire system.

I do know that this is a huge project as I'm told by a lot of people, because of maintenance even after the the system is written.

So i guess the question is, how to go around planning a system like this using BSD?


----------



## SirDice (Dec 9, 2011)

I guess this can be done using a custom install script. This functionality already exists. You can tell the installer which parts of the base OS you need and which additional ports will need to be installed.

Have a look at sysinstall(8) and /usr/src/usr.bin/sysinstall/install.cfg.


----------



## segfault (Dec 9, 2011)

My company just started using Microsoft's Lync and I find it quite lame. It is clunky and boy is it ugly.
Would be nice to see a FreeBSD varient done right.
Best of luck on it!


----------



## wblock@ (Dec 9, 2011)

SirDice said:
			
		

> I guess this can be done using a custom install script. This functionality already exists. You can tell the installer which parts of the base OS you need and which additional ports will need to be installed.
> 
> Have a look at sysinstall(8) and /usr/src/usr.bin/sysinstall/install.cfg.



Except sysinstall is on life support...

After the complete embedded application works on a development system, it needs to be squeezed onto some type of media to go into the target hardware.  NanoBSD can do that, or a custom script can do it too.  But while final packaging might be nontrivial, it's secondary to developing the actual application.


----------



## SirDice (Dec 9, 2011)

wblock@ said:
			
		

> Except sysinstall is on life support...


And rightfully so. Thought about this too but couldn't find the right documentation for the new system.

Regardless, 8.2 is going to be around for a while. Not sure what 8.3 will be using but I suspect 8.x will keep sysinstall(8). While 9.x will use the new system.

For stability reasons I would base the system on 8.x, 9.0 is just too new.


----------



## delusion777 (Dec 9, 2011)

Wow thanks for all the feedback guys, really appreciate it. 



			
				segfault said:
			
		

> My company just started using Microsoft's Lync and I find it quite lame. It is clunky and boy is it ugly.
> Would be nice to see a FreeBSD varient done right.
> Best of luck on it!



Yeah, this is what i want to get around lol, i used Lync for a while and i found it rubbish, so i came up with quite a few things eventually it became too big just to label an improvement. 

From a developerâ€™s perspective, what do you think the Base OS would require besides the usual networking tools. Does FreeBSD offer load balancing amongst different systems. Sort of like the HA stuff out there or simple cluster support? And how far does it span?


----------



## mix_room (Dec 21, 2011)

delusion777 said:
			
		

> Does FreeBSD offer load balancing amongst different systems. Sort of like the HA stuff out there or simple cluster support? And how far does it span?



For a start: 
http://forums.freebsd.org/showthread.php?t=17133
http://www.freebsd.org/doc/handbook/carp.html


----------

