i learned user space programs(with sys calls and ipc).Now i need to jump into kernel space-building modules and device drivers particularly.I have googled a lot and most sites project codes like rocket science.With what book/pdf can I get a good start?
thanks in advance..
I think you can try Robert loves book (3rd Edition, Kernel development), and if you are interested in Linux device drivers (try Oreilly Linux device drivers book, 3rd edition).
Linux Device Drivers, 3rd Edition by Jonathan Corbet, Alessandro Rubini and Greg Kroah-Hartman
Linux Kernel Development (3rd Edition) by Robert Love.
May be later you can refer
understanding the Linux kernel for more advance stuff.
before doing Kernel programming, do some reading on Operating systems concepts ( THIS IS A GOOD BOOK
Operating System Concepts by Abraham Silberschatz, Peter B. Galvin and Greg Gagne - ANY EDITION)
Those are really good books to start Kernel development.
Hope this helps.
Cheers,
Tharanga
Related
Preface: I'm a student about to take a course in Operating Systems. I thought I'd do some prep by watching a series on YouTube first.
Throughout the course of watching about 10 of the videos in this series, I have learned that roughly the operating system's purpose is to serve as an interface for System Programs/Applications/I/O devices/etc. to communicate with the system's hardware.
This got me thinking about how Apple's hardware is not modularly customizable. How Apple users can't swap out hardware components as easily as users on a system running Windows OS. I began to think that most likely this is because the OS Apple implements is built very specifically with the original hardware their products come with to run as efficiently as possible.
Is there any truth to this logic? I'm basically just trying to apply what I've been learning to a "real-life" example.
This got me thinking about how Apple's hardware is not modularly customizable.
It is quite customizable but not with their own hardware. The "hardware" that Apple is shipping is mostly x86-64 CPUs with a recent chipset like an xHCI, an AHCI and a modern PCI network card, etc. This is unless you have an M1 computer which is their most recent product based on an ARM architecture. They licensed the architecture from ARM ltd. and are manufacturing their own CPU. I think this is a very good and open decision from Apple unlike several bad ideas they had about their phones like removing the 3.5mm jack or using a lightning plug instead of USB-C.
If you do have an x86-64 CPU, the OS Apple built called MacOS can run on the computer. It is simply forbidden by Apple's license of use. The fact that their hardware is less customizable has mostly to do with screws and the way that the case is made than with the OS itself.
I have just recently finished an OS internals and design course at school and thought it's about time I start developing my own Operating System (a very simplified one) for an additional Raspberry Pi board I won at a programming contest last month. The class I had was more focused on the theory and had very little attention to the practical thing. So, I guess my question is: Is there a good operating system design book/tutorial I can use to develop a basic Operating System on ARM11?
I am heavily interested in Operating System theory and design and have decided I would like to play with developing an OS. I have a background in x86 assembly and have looked into ARM also. I would like a development board to develop the OS for. Has anyone had experience with OS development and/or can suggest some hardware to use?
One board I am considering is the LPC1769 LPCXpresso board.
I am aware I could use a VM, but I would like to use actual hardware.
Well.. I personally started off with an RTOS called freertos (http://www.freertos.org/). This is an open source RTOS and is very minimalistic. It is also supported across a ton of platforms and is well written and maintaned. I ran it on a PIC32 microcontroller kit. However I would recommend you try something like Arduino boards which are more suited for beginners.
Happy learning!
Old thread, you have found your way by now, but I would definitely recommend the FreeRTOS + LPCXpresso 1769 combination.
Is there a way to use mainframe on Mac machine. I want to practice mainframes(COBOL, JCL, DB2) on MAC or windows, preferably MAC.
I have never tried, but Hercules is a mainframe emulator that should run on OSX. The main problem though with any kind of mainframe emulation is getting the software you want. Very few (if any) of the software that runs on modern mainframe is licensed to run on emulators.
If you provide a bit more background as to what you are trying to achieve, then someone should be able to come up with a more helpful answer. That is, are you trying to understand the architecture, learn assembler, work with IMS or CICS, etc?
I would recommend using Topaz on AWS by Compuware (https://compuware.com/topaz-on-aws/). The mainframe IDE runs in a browser so it doesn't matter what operating system you use. Plus, it works great and has tons of useful, modern features. But if you need a free emulator, you can use tn3270x (https://www.brown.edu/cis/tn3270/).
You should look for a service that let's you connect to a minframe from the internet with a 3270 emulator that would run on your PC or Mac. Maybe some colleges would offer that.
You can register for Master the Mainframe contest organized by IBM, to get free access to genuine IBM Mainframes.
Click here and Register for Learning System.
Read these lines in link's description.
Master the Mainframe is a fun way to learn, earn digital badges and
experience hands-on mainframe technology with no prior knowledge
required!
Master the Mainframe’s Learning System is open to anyone year-round
for technology training and earning IBM digital badges.
Yearly, the IBM Z Academic Initiative sponsors a Master the Mainframe
global contest where academic students can learn while vying to win
prizes. New challenges are posted each September.
I've been using Vista TN3270 terminal on my PC for a month and it's quite interesting and useful.
There are a few utilities out there that help you undervolt your cpu. For the PC, for example, there is RMClock. For the Mac, there is Coolbook.
On the Cookbook website, however, it states that it is incompatible with OX X 10.7 Lion, and the i3/i5/i7 processors. I am interested in replicating the functionality of Coolbook, which works with OS X 10.6 Snow Leopard, and the Core 2 Duo processors, but for the newer OS and CPUs. I really have no idea where to start. As far as I know, Coolbook holds a monopoly on the Mac platform, and I was wondering if there is even a hackerish way of accomplishing the same functionality? What are some resources that you could point me to so I can begin understanding what is going on in the driver level when adjusting the voltage of a CPU?
The Problem is, i7 Cpus have no possibility to manage the voltage via software. The reason is simple. Intel has cut the external register address for voltage management, only AMD cpus has the possibility to manage voltage via software, or older core duo intel cpus. Coolbook wors but not very well on OSX Lion on older Intel CPUs, there is no update for Lion at this time. I hope that help.
I have used this on my Android phones. Not sure how it would work on a mbp but they are both the linux environment:
echo> 0 /sys/devices/system/cpu/cpu1/online
On my phone it stops the phone from using the second core and saves a little battery life. Hope it helps to reverse it. Just replace the 0 with a 1 (you must be a superuser for this to work).