linux-kernel-and-bash-sources

Started by
17 comments, last by Miserable 19 years, 1 month ago
One really cool thing I can do right now is experiment with shells. I can compile applications that emulate and them. I'm just tryingto find the right type of shell to base mine off of.

-Linux joke I made: She sells C-Shell's by the sea shore
Take back the internet with the most awsome browser around, FireFox
Advertisement
I think I'll hold off on the custom shell until I learn about the Kernel more. Because I really don't know that much(at all really) system commands that I can utilize in a shell. SO don't think making a wrapper or shell for the Kernel is such a good idea right now because I would run into wall after wall. I'll stick with a shell that's already been tested and used. I'm really not to fond of bash because I'm not experienced with it. I've been researching on Linux shells and came across a few that I would like to look into. Those would include Korn Shell and C-Shell. I've learned Korn Shell is own by AT&T, so I would have to pay them for it. However, C-Shell isn't and it's free. And since I'm a C fan at heart, I think I might like it.

I've learned so far the Kernel really isn't that big. A lot of it is wrote in C and the few parts that need to be; are wrote in assembly. Most of the Kernel source contains modules that run a user's hardware. One of the most interesting parts I came across is the USB modules because I was recently studying USB devices; which I still am. Studying the Kernel is giving me more of an experience and I'm learning Linux more quickly. If only I knew this before I would probably be past this point and on to more advanced topics and projects.

I'm getting tired of reading and my fingers are starting to ich. I so badly want to jump into coding. These documents have got mw drooling. But I know I need to have a good understanding before I code anything so I must research more. There's a lot of information to cover here!

I'll probably start off with making modifications to the kernel instead of rewriting it completely. This way I know it still works and I can just undo what I've done; unless of course I really screwed something up. Who knows, I may even be able to make my own distribution out of this project.

I know this topic really isn't geared for game programming or isn't game related, but to me it is. It is because I'll use the knowledge I learn here in developing a game of some sort. Do you see that most really good application architectures fallow an operating system's architecture as I do? Besides that, learning more about a system will give me the advantage of taking advantage of what it has to offer.

So far, I've decided that I want Intel & IBM as the supported platforms for the OS. I don't care for support on such weird devices like touch screens but I do care for support on other devices like mice, keyboard, sound & video cards and all that type of stuff. I would like to use either KDE or 3D-Desktop as the desktop environment. I'm also shooting for a Desktop & Client / Server OS. I want the ability to share files easily with friends among little networks or workgroups and maybe host small HTTP/FTP servers. Linux supports a lot of this type of functionality already so I don't really have to much to worry about. Also, I'm looking for power! I want the OS to be specially geared for multi-media and have support for all types; one thing I know Linux can do.

That's about as far as I've got for now. So what do you think? Think I can pull this off? If I do, would any of you care to use my little OS? Or would you point and laugh!
Take back the internet with the most awsome browser around, FireFox
I'm learning about Linux files systems and FSSTND. This is quite interesting and reassuring. I wanted to do my own architecture that ran by my own rules. But now I think that FSSTND is a good ting to stick with. After all, if I were to make this OS and it became popular, chances are the existing Linux users may assume that the FS structure is that of most other Linux distributions. If I changed it, I could through off more then just users but programs that depend on things like that too.

I was going to add support in the shell for most of the utilities that are in /bin. But I just realized something. What if a user wanted to re code on of those utilities to there liking? They couldn't if I implemented it into the shell. If I leave those things how they are them other users may do with them as they want. However, I can rewrite some of them to add a few colorful things that might seem cool to some users and provide them with the source. If I did this, I must also provide the original copy so that users could revert back to the original if they didn't like what I made for them. But the utilities do a good job with out me fooling around with them.

There's not to much to Linux & friends that I can do that really change anything it seams like. Just adding a few modifications here and there is all. IT seams like Linux isn't so big and bad as I though it once was. Meaning, I use to picture it as a huge hassle that I would never understand and be constantly flabergasted about. Every time I looked at Linux I thought "What king of shenanigans are going on here?".

Wait I just thought of something. What if I made a Linux distribution called Shenanigans? It would be sort of cool wouldn't it?
Take back the internet with the most awsome browser around, FireFox
Quote:Original post by sakky
Don't get me wrong, but I think Linux could use a good face lift. All those modules that I've been reading through and looking at seam to be a waste. I really don't need support for touch-screens or stuff like that.

So don't compile them into the kernel.

Quote:If I did want that support, then I would like to be able to install a library that the Kernel could use. The library would have to register it's self with the kernel via "I am a driver for this type of device" type of thing. And then any application the request this type of device interfaces will communicate with the library. Of course the Kernel supervises all this. But that's the just of it.

Sounds a lot like kernel modules.

Quote:
I would like to remove all the modules from the Kernel and make them external opposed to internal. The modules can be kept in libraries that the Kernel could load and use when it needs. But special types of functions like FS routines and stuff like that should be compiled with it.

I'm not sure what manner of change you envision here (and I'm no Linux guru, either); what is the difference between your proposed scheme and the present module loading architecture? Do you know how it works?

Perhaps what you're aiming for is something more like a microkernel; microkernels are very nice in theory, but in practice tend to be complex and rather inefficient. I'm not aware of any significantly used OS that uses a real microkernel.

Quote:
I'm still reading lot and learning a lot too, but I think I could do with out 10,000 source files just for a Kernel. I don't think the Kernel should be that complicated at all. If I were to remove a lot of modules I bet the Kernel might even run faster. There's only so many things that you really need, the rest is just junk that is there just in case you wanted to use it (in my opinion).

But so what if the source files are there? Who cares? I manually select (via make menuconfig) exactly what modules I want to compile in (actually, since I know exactly what I need, I compile it all into my kernel rather than as loadable modules). I don't have modules for hundreds of device drivers that I don't need—but I'm glad that there are device drivers for hundreds of devices in the kernel sources, so that I could compile them in if I needed them. Good hardware support is imperative for any operating system.

Quote:But I would like the Kernel and shell together as one.

Why? What's the benefit? (Not intended as a snip; I'm curious to hear your intent.)
When I want to compile the Kernel, I want to leave out a lot of things. I'm still learning what I need to keep. I need to know how the "Makefile" works. I've been reading parts of them and it looks like script that a compiler uses (if one it to be found to be used) to build the modules and keren l executable.

I really don't care for BTFX support on Linux(because I have WindowXP ) or any other Microsoft based file systems. I also want the NVIDIA driver compiled with the Kernel. I have a MSI motherboard with VIA and intergrated sound. KDE likes to turn the sound off a lot via no volume but the card works. So I only want hardware support for hardware that I have. I don't have any printers or do I use any, so no printer support is needed.

So help me out here guys, how do I use the Makefiles to compile a special Kernel for my system? I could give you my system specs if you needed them.
Take back the internet with the most awsome browser around, FireFox
look at the menuconfig program that someone else mentioned.
then look at the makefiles it generates.

Quote:Original post by sakky
When I want to compile the Kernel, I want to leave out a lot of things. I'm still learning what I need to keep. I need to know how the "Makefile" works. I've been reading parts of them and it looks like script that a compiler uses (if one it to be found to be used) to build the modules and keren l executable.

I really don't care for BTFX support on Linux(because I have WindowXP ) or any other Microsoft based file systems. I also want the NVIDIA driver compiled with the Kernel. I have a MSI motherboard with VIA and intergrated sound. KDE likes to turn the sound off a lot via no volume but the card works. So I only want hardware support for hardware that I have. I don't have any printers or do I use any, so no printer support is needed.

So help me out here guys, how do I use the Makefiles to compile a special Kernel for my system? I could give you my system specs if you needed them.


In the directory where the kernel source is located :

make menuconfig

and then just uncross what you don't need. No need to go mucking around in the bloody makefiles.
"THE INFORMATION CONTAINED IN THIS REPORT IS CLASSIFIED; DO NOT GO TO FOX NEWS TO READ OR OBTAIN A COPY." , the pentagon
I feel like trolling this poor fellow... but I'll help instead :/

Something you might be interested in is BusyBox, it is... well... something you should find interesting.

It allows you to eliminate a lot of the external applications and have them all in one place.
Quote:Original post by sakky
When I want to compile the Kernel, I want to leave out a lot of things. I'm still learning what I need to keep. I need to know how the "Makefile" works. I've been reading parts of them and it looks like script that a compiler uses (if one it to be found to be used) to build the modules and keren l executable.

Sounds to me like you need to learn how to install a kernel, not write one. [grin]

Quote:
I really don't care for BTFX support on Linux(because I have WindowXP ) or any other Microsoft based file systems.

... Again, just don't compile it in. My kernel is compiled only with the filesystems I need.

Quote:I also want the NVIDIA driver compiled with the Kernel.

The proprietary NVIDIA driver is not distributed with the kernel because it's not Free (only free as in beer).

Quote:I have a MSI motherboard with VIA and intergrated sound. KDE likes to turn the sound off a lot via no volume but the card works. So I only want hardware support for hardware that I have. I don't have any printers or do I use any, so no printer support is needed.

... And again, support for compiling only what you want is already in the kernel.

Quote:
So help me out here guys, how do I use the Makefiles to compile a special Kernel for my system? I could give you my system specs if you needed them.

Assuming that you have your kernel sources and a symlink at /usr/src/linux pointing to the correct version,
mount /bootcd /usr/src/linuxmake menuconfig# configure your kernel to your likingmakemake installmake modules_install

should about do it. Just be careful that you don't exclude things that you do need. Mind half asleep, I once accidentally left out ReiserFS support, with my / filesystem being Reiser ... not fun! (Thankfully I'm cautious enough to provide a boot entry for the last working kernel, so fixing it was trivial.)

This topic is closed to new replies.

Advertisement